前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gradient Descent

Gradient Descent

作者头像
mathor
发布2019-12-30 15:02:25
3170
发布2019-12-30 15:02:25
举报
文章被收录于专栏:mathor

梯度下降法可以做什么?

在你测试集上,通过最小化代价函数$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)}{d\omega}$,在代码中我们会使用$d\omega$表示这个结果

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

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

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档