本来这周计划写下逻辑回归的学习笔记,但是其中用到了最优化对数似然函数,因此决定先复习下梯度方法和拟牛顿法。本节先从纯数学的角度总结下梯度下降法。
一、柯西-施瓦茨不等式
对于 Rn中的任意两个向量 x 和y, 有:
|<x,y>|≤||x||||y||
成立。当且仅当对于某个 α∈Rn,有x=αy时,该不等式的等号成立。
二、梯度下降法
函数 f:Rn→R水平集的概念。水平集是指能够满足f(x)=c的所有x组成的集合,其中
如果函数f在
⟨▽f(x),d⟩≤||▽f(x)||
若令 d=▽f(x)||▽f(x)||,则有:
⟨▽f(x),▽f(x)||▽f(x)||⟩=||▽f(x)||
因此,可以看出梯度方向 ▽f(x)就是函数 f在
令x(0)作为初始搜索点,并沿着梯度负方向构造一个新点x(0)−α▽f(x(0)),由泰勒定理可得:
f(x(0)−α▽f(x(0)))=f(x(0))−α||▽f(x(0))||2+o(α)
因此,如果 ▽f(x(0))≠0, 那么当 α>0足够小时,有
f(x(0)−α▽f(x(0)))<f(x(0))
给定一个搜索点 x(k),由此点出发,根据向量 −αk▽f(x(k)))指定的方向和幅度运动,构造一个新点 x(k+1),αk>0,称为步长,那么迭代公式如下:
x(k+1)=x(k)−αk▽f(x(k))
这称为梯度下降方法。在搜索过程中,梯度不断变化,当接近极小点的时候梯度应该趋于0.可以设置很小的步长,这时计算量比较大,每次梯度都要重新计算;也可以设置很大的步长,这样,计算量会小一些,但是会在极小点附近产生锯齿状的收敛路径。下面会继续总结梯度下降法中的最速下降法。