梯度下降算法动图_深度学习之梯度下降算法(必看)

本文通过通俗的盲人下山比喻解释了梯度下降算法的基本原理,指出梯度是函数最陡峭方向,沿着梯度相反方向更新参数能最快降低损失函数值。通过数学解释和示例,展示了如何利用学习率控制步长,确保损失函数不断减小,最终找到最小值。
摘要由CSDN通过智能技术生成

上一章学习了什么是损失函数,可以看出损失函数的大小决定模型的精确程度。损失函数值越大,说明模型预测的越不准确,损失函数越小,说明模型预测的越准确。

我们当然期望损失函数值越小越好,那么通过什么方法能够使损失函数值达到最小呢?这里就要引出梯度下降算法(Gradient Descent)。

通俗解释梯度下降

先从一个生活中的例子出发,通俗的解释一下什么是梯度下降算法:

你可以想象一下,从前有座山,山里有座庙,咳咳,跑题了。假设在山顶上有一个盲人,此时这个盲人要下山,山上天气还不好,而且下山的路径还无法确定,这个盲人想要下山,就可以采用梯度下降算法。盲人以他当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着山的高度下降的地方走,一直重复上述过程,那么就能够达到山底,请原谅我这糟糕的画画功底。

盲人下山图

那么有一个问题,如何找到山最陡峭的位置呢,这里就引出了我接下来要讲的梯度。

什么是梯度

首先损失函数是要可微分的,损失函数就是我们上面提的山,而我们要做的就是达到山底,也就是找到损失函数的最小值。接下来我们就要找到山最陡峭的方向,有数学基础的同学可以知道,这个最陡峭的方向也就是我们常说的斜率。而梯度就可以理解为函数的斜率,然后朝着梯度相反的方向,就能让损失函数值下降的最快。

梯度下降的数学解释

大家肯定很好奇:为什么沿着梯度相反的方向,就能让损失函数值下降的最快呢?接下来我通过举一个例子让大家彻底搞懂它。

假设我们的损失函数为J=θ^2,那么损失函数的图像为:

J=θ^2

梯度下降算法要求我们的初始点可以从任何地方出发,我们分别从左边和右边进行实验:

假设小球先从右边的θ0点出发:

小球起始点在θ0点,这个时候θ0的梯度方向为斜向上,我们沿着其梯度的反方向行走就到达了θ1点,然后在沿着θ1梯度的反方向行走,就到达了最低点。但是还有一种情况,就是万一小球沿反方向行走的步子太大,一下跨过了最低点,这可怎么办呢?不要着急,我们可以通过学习率来控制小球的步子,具体公式如下图所示:

这个θ0是起始位置,θ1是下一次移动的位置,α是学习率,用来控制小球的步长,▼J(θ)是某一点的梯度,减号()代表沿着梯度相反的方向行走。

此公式的意义是:J是关于θ的一个函数,我们当前所处的位置为θ0点,要从这个点走到J的最小值点,也就是山底。首先我们先确定前进的方向,也就是梯度的反向,然后走一段距离的步长,也就是α,走完这个段步长,就到达了θ1这个点!

假设小球先从左边的θ0点出发:

小球起始点在θ0点,这个时候θ0的梯度方向为斜向上,我们沿着其梯度的反方向行走就到达了θ1点,然后在沿着θ1梯度的反方向行走,就到达了最低点。

可以看出无论小球在什么位置,采用梯度下降算法,不断地更新小球的位置,也就是不断更新我们的参数,那么损失函数的值会变得越来越小的。

我想看到这里,大家应该对梯度下降算法有所了解了,下面我们来具体计算一下我们上边举的例子吧:

可以看到θ的值不断减小,最终趋近于0,这就是梯度下降算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值