Gradient Descent

2019-12-30 15:02:25 浏览数 (1)

梯度下降法可以做什么?

在你测试集上,通过最小化代价函数$J(omega,b)$来训练参数$omega$和$b$

梯度下降法的形象化说明

在这个图中,横轴和纵轴表示你的空间参数$omega$和$b$,在实践中,$omega$可以实更高的维度,但是为了更好地绘图,我们定义$omega$和$b$,都是单变量实数,曲面的高度就是$J(omega,b)$在某一点的函数值,我们所做的就是找到使得代价函数$J(omega,b)$取最小值时的$omega$和$b$

上图是一个凸函数($convex function$),像一个大碗一样

上面这张图就与就与刚才的图有些相反,因为它是非凸的并且有很多不同的局部最小值。由于逻辑回归的代价函数$J(omega,b)$的特性,我们必须定义代价函数$J(omega,b)$为凸函数

我们以上图的小红点的坐标来初始化参数$omega$和$b$

朝最陡的下坡方向走一步,不断地迭代

如上图,走到了第二个小红点处

我们可能停在这里也有可能继续朝最陡的下坡方向再走一步,如上图,经过两次迭代走到第三个小红点处

通过以上的三个步骤我们可以找到全局最优解,也就是代价函数$J(omega,b)$这个凸函数的最小值点

梯度下降法的细节化说明(假设仅有一个参数)

假定代价函数$J(omega,b)$只有一个参数$omega$,即用一维曲线代替多维曲线

迭代就是不断重复做上图所示的公式,$:=$表示更新参数,$alpha$表示学习率($learning rate$),用来控制步长($step$),即向下走一步的长度,也就是$J(omega)$对$omega$的导数$frac{dJ(omega)}{domega}$,在代码中我们会使用$domega$表示这个结果

对于导数更加形象化的理解就是斜率($slope$),如上图,该点的导数就是这个点相切于$J(omega)$的小三角形的高除宽。假设我们以上图的点为初始化点,该点处的斜率的符号是正的,即$frac{dJ(omega)}{domega} > 0$,所以接下来会向左走一步

整个梯度下降法的迭代过程就是不断地向左走,直至逼近最小值点

假设我们以上图的点为初始化点,该点处的斜率的符号是负的,即$frac{dJ(omega)}{domega} < 0$,所以接下来会向右走一步

梯度下降法的细节化说明(两个参数)

逻辑回归的代价函数$J(omega,b)$是含有两个参数的

$$ omega := omega - alpha frac{partial J(omega,b)}{partial omega}\ b := b - alpha frac{partial J(omega,b)}{partial b} $$

0 人点赞