在机器学习算法中,使用梯度下降法对参数进行优化过程如下:
W_new = W_old - step_size * dL
这里dL 是损失函数在参数W取值为W_old时,对参数W的偏导数值。取减号进行更新的原因是,当损失函数对Wi
求偏导值为正时,说明损失函数与Wi是正相关,因此减小Wi的值可以减小损失函数的值,当偏导为负时,则负负得
正,增大Wi的值来减小损失函数的值。当W中所有元素的值都更新完一次后,再重新计算一次损失函数值,然后再次
计算损失函数在参数W取当前值时对Wi的偏导,一直循环得到损失函数值相对Wi的变化曲线,因此学习率(step_size)
就很重要,到最终收敛的时候,学习率的取值过大,会导致损失函数值在最小值两边震荡,但是不能到达最小。
以三维空间为例,假设需要优化的变量有两个x,y,z为损失函数的值,在三维空间内,z的值为一个曲面,取某一点
(x0,y0,z0)为例,经过该点分别做平行于XoZ(y=y0)和YoZ的平面(x=x0),与损失函数的曲面相交得到两条曲线,
损失函数在(x0,y0,z0)处对x和y的偏导,就是两条曲线上(x0,y0)点处的斜率,两个斜率均为向量,二者的合向量的
负方向即为曲面在该点梯度下降方向。
进一步考虑上式中dL在这里的作用:通过对损失函数求每个权重参数的偏导数,得出当前位置下,损失函数值下
降的最快方向,为保证损失函数值能够沿着这个方向下降,则各个权重参数都得按照相同比例(step_size,学习率),
按给定的变化大小(该权重对应的偏导数值)进行增大或减小,所以上式就确定了一系列权重值的变化方式。
梯度下降法的理解
最新推荐文章于 2024-08-17 23:32:55 发布