《机器学习实战》 chapter5梯度上升算法 数学推导

在本书中我们将Sigmoid函数的输入几位z,于是函数即可设为


公式(1)


这种写法也可以表示为向量的写法:


公式(2)

同样的道理,我们也可以这样子表示


公式(3)

因为需要使用梯度上升算法,因此我们需要定义损失函数:


公式(4)

其中的y表示我们给出的标准的特征

公式(5)

       因为梯度上升算法是用来计算函数的最大值的,而梯度下降算法则是计算函数最小值的。而我们的损失函数自然是越小越好,我们需要求得一个系数来使得f(w)最小,可是使用梯度上升法是用于求最大值的,因此为了用上梯度上升算法,我们最终应该在f(w)前加上负号。假设:

公式(6)

       接下来我们开始利用矩阵来推算我们的数学公式。假设我们的输入为X,我们有m组训练数据,每个数据有n个特征。则:

公式(7)

于是通过(3)可以推出


公式(8)


公式(9)

由矩阵内积可得


公式(10)


公式(11)

则梯度为


公式(12)

说明:

第二步:类似于括号展开

第三步:实数的迹等于它本身

第四步:因为


不含w,因此它对w求导为0.并且利用了公式

进行简化

第五步:由公式


,令


,利用公式转化即可得到。


最后再回到《机器学习实战》中,P78,代码清单5-1②的部分。

dataMatrix=X;

weights=w;

labelMat=y;

把等号右边的用左边的变量代入就是最终的结果。

参考

>吴恩达《机器学习》notes1

>周志华《机器学习》chapter3 线性模型

推荐阅读更多精彩内容