美文网首页Machine Learning 教程机器学习与数据挖掘
ML 教程 5 - 梯度下降法(二) 定义和公式

ML 教程 5 - 梯度下降法(二) 定义和公式

作者: LiuHDme | 来源:发表于2017-07-21 14:16 被阅读223次

上一篇文章中,我介绍了损失函数的图像,以及什么是局部最优解和全局最优解,那么这篇文章就来讲解如何找到最优解,方法就是梯度下降法。

梯度下降法是一种比较古老的方法,但是对于入门机器学习而言,这是一个不能避开的话题。

什么是梯度下降法

还记得上一篇文章中的损失函数的二维图像吧

大家应该学过导数,没学过也没关系。狭义并且笼统的说,导数可以作为衡量函数图像下降或上升快慢的工具。比如在上面的图中,J(𝜃1) 其实是个二次函数,那么,以 x=1 为中心,越往两边的图像上升的越快,导数的绝对值也越来越大。沿 x 轴正方向,图像上升部分的导数为正,下降部分的导数为负。

由于我们的目标是找到图像中的最低点,那么就要使 𝜃 不断的靠近 𝜃=1 这个位置,一个办法就是让 𝜃 减去当前的导数值。比如,假如 𝜃=2,那么此时导数值大于 0,如果减去导数值,就会使 𝜃 减小,更靠近 𝜃=1 这个位置,假如 𝜃=0,那么此时导数值小于 0,如果减去导数值,就会使 𝜃 增大,同样更靠近 𝜃=1 这个位置。因此,只要一遍又一遍的让 𝜃 减去当前的导数值,最后让 𝜃 到达最优解(有可能是局部最优),这就是梯度下降法。

在下文中,我会用 梯度下降 来表示 𝜃 减去导数值这个过程。

需要注意的问题

上面提到,让 𝜃 不断的减去导数值是梯度下降法的思想,也许有人会疑惑,万一在靠近 𝜃=1 时,𝜃 在减去导数值后跳到了 𝜃=1 的另一边怎么办。这的确是个问题,所以这里要引入学习率的概念。

所谓学习率,其实就是导数值乘上的一个比较小的数,用来把导数值控制在一个比较小的范围,这样就可以避免在靠近最优解时 𝜃 的跨度过大的问题。

而且,在上面的图像中,越靠近 𝜃=1 的图像下降/上升的越缓慢,导数值也越小,这本身就有利于避免 𝜃 的跨度过大。

不过,学习率的大小很关键,如果过大,会导致 𝜃 在靠近最优解时直接跨过最优解,如果过小,会导致 𝜃 需要减去很多很多次导数值之后才达到最优解,消耗会比较大,所以如何设置学习率成为了一个需要注意的问题,下面这张图可以帮助大家理解。

公式表达

Machine Learning 绕不开用公式表达各种方法和思想,也只有用公式表达了,才能将公式转化为代码,毕竟 ML 是用来解决实际问题的。

我们将问题推广到一般的形式,即 𝜃 的数量不止一个,这时,在每次梯度下降的过程中,每个 𝜃 都要减去当前的导数值,而由于有很多 𝜃,这时的导数是对每个 𝜃 求偏导,所谓偏导,其实就是把除了当前 𝜃 外的其余所有变量都当作常数,再对当前 𝜃 求导。

举个例吧,假如有两个 𝜃 分别为 𝜃1,𝜃2,并且用 𝛼 表示学习率,那么在每次梯度下降中,就会有如下过程

其中



就代表求 𝜃0 的偏导,相当于把 J(𝜃0,𝜃1) 中的 𝜃1 当作常数,只求 𝜃0 的导数。

这里有一点需要注意,对 𝜃0,𝜃1 的梯度下降要同时进行,也就是说,当 𝜃0 完成梯度下降后,𝜃0 的值已经进行了更新,再对 𝜃1 进行梯度下降时,应该使用 𝜃0 更新前的值,而不是更新后的值,这样就保持了同步更新,至于为什么,大家可以自己上网找找,这不是这个教程的重点。

把这个式子推广到一般情况,就是如下形式:

小结

虽然这篇文章给出了梯度下降法的公式,但也许有人还不是很理解,下一篇文章中我会举一个具体的例子来帮助大家理解这个公式。

相关文章

  • ML 教程 5 - 梯度下降法(二) 定义和公式

    上一篇文章中,我介绍了损失函数的图像,以及什么是局部最优解和全局最优解,那么这篇文章就来讲解如何找到最优解,方法就...

  • 机器学习系列(十七)——关于梯度下降法的更多思考

    本篇主要内容是梯度下降法的总结。 梯度的调试 实际编程实现中,梯度下降法很可能因为编写的某个公式的运算错误,导致梯...

  • 2019-11-01第二课二周优化算法

    指数加权平均: 动量梯度下降法: RMSprop:和动量梯度下降法相似 adam优化算法:将动量梯度下降法和RMS...

  • 梯度下降法

    梯度下降法 本文主要是为了讲解 梯度下降法 的原理和实践,至于什么是梯度下降法,他能做什么,相信百度一下你就都知道...

  • 2020-08-19--梯度下降法01

    梯度下降法简介 多元线性回归中的梯度下降法 随机梯度下降法 梯度下降法 的调试 1.梯度下降法简介 不是一个机器学...

  • 2019-03-17神经网络——optimizer

    神经网络优化算法,通常有三种:小批量梯度下降法,随机梯度下降法和批量梯度下降法。 小批量梯度下降法 适用于训练数据...

  • 线性回归求解中梯度下降法与最小二乘法的比较

    在线性回归算法求解中,常用的是最小二乘法与梯度下降法,其中梯度下降法是最小二乘法求解方法的优化,但这并不说明梯度下...

  • xgboost学习笔记 + GBDT

    从泰勒公式说起 泰勒公式损失函数存在二阶导数的时候,可以提供参数下降的方向梯度下降法的泰勒展开理解.png 为什么...

  • 线性回归-梯度下降法

    梯度下降法求解最小二乘 1、批量梯度下降法 (1)构造损失函数 (2)求梯度对J(theta)关于theta求偏导...

  • 学习笔记:两种梯度下降法的思考

    在看梯度下降法的时候最初还真没看明白两种梯度下降法的区别,于是昨天散步的时候认真的思考了一下。 两种梯度下降法分别...

网友评论

    本文标题:ML 教程 5 - 梯度下降法(二) 定义和公式

    本文链接:https://www.haomeiwen.com/subject/achekxtx.html