接上次:https://blog.csdn.net/cyr429/article/details/102458430
最近开组会耽误了一些进度。
6.题外话:感知机算法
这一部分在公开的课程视频中并没有讲到,我只能按我的理解来说了。
如果我们强迫逻辑回归的输出为0或1,会“自然而然”地使用阈值函数代替原来的g(z):
如果我们再结合前面使用过的,我们会得到一个新的参数更新规则:
这就是感知机算法。
这是上世纪的算法了,是学习类算法的起点之一。值得注意的是虽然它与之前我们讨论的算法大致相似,与线性回归和逻辑回归相比它其实是一种完全不一样的算法。事实上,这个算法并没有概率论上的解释。
7.最大化l(theta)的另一种算法
回到逻辑回归算法,我们使用sigmoid函数作为g(z),现在我们讨论另一个可以使得最大的算法。
开始之前我们先考虑牛顿法解方程的原理,即在求使得f(theta)=0成立的theta的值时使用如下更新规则:
下图是应用此方法的求解过程的图像:
其实这个算法很简单这里就不赘述了。
既然有了牛顿法找0点,如果我们想找到使得函数最大的点呢,很自然的我们会找使得其导数为0的点,所以与牛顿找0点相似,有以下的更新规则:
(思考:如果我们想找最小值而不是最大值这个式子怎么改变呢?)
最后,在逻辑回归中,我们的theta是向量,所以我们需要归纳牛顿法到逻辑回归中。这个多维化的牛顿法的更新规则是:
这里的是l(theta)对theta i求偏导数所组成的向量,H则是一个d*d的矩阵叫做黑塞矩阵,定义为:
牛顿法通常比梯度下降更快收敛,并且需要更少的循环计算来到达目标值。但是一次循环中牛顿法的计算量要比梯度下降大,因为它要计算黑塞矩阵并且翻转它,不过如果d不是很大的话它还是更快一些。