机器学习与数据挖掘机器学习与计算机视觉

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

2017-06-07  本文已影响401人  会打代码的扫地王大爷

在本书中我们将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 线性模型

上一篇下一篇

猜你喜欢

热点阅读