《机器学习实战》 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 线性模型