经常听到梯度下降法,只知道它是用于优化求解问题。即 沿着梯度的反方向(坡度最陡的方向)进行权值更新。为什么局部梯度下降最快的方向就是梯度的负方向呢?
梯度
梯度就是表示某一个函数在当前位置的导数。 为自变量,为关于的函数; 为梯度
如果函数为凸函数,那么就可以根据梯度下降算法进行优化,求得使最小的参数;
为当前下山的位置,为下山移动一小步之后的位置,为学习因子,即步长。
梯度更新公式的推导——一阶泰勒展开式
一阶泰勒展开式的基本形式为:
这个公式主要利用的是函数的局部线性近似,图解:
用红色的直线代替黑色曲线,求出 的值,即 可以看作斜率
是微小矢量,它的大小为步长,但它是有方向的矢量,将的单位向量记作 v;那么,则
由于局部下降的目的是希望每次更新的值,都能使变小,所以:
步长为标量且一般设置为正数,所以不等式变为:
v和都为向量,向量乘积有几种情况:
要使他们的向量乘积小于0,且使得乘积最小,只要cos(α) = -1,即A,B完全反向。也就是说,变量的方向v应该为:
所以
因为为标量,可以和步长合并,所以最终,变量的更新公式为:
参考:http://www.360doc.com/content/18/0526/06/36490684_757087825.shtml 感谢