机器学习-梯度下降算法原理及公式推导

     

目录

1.梯度下降直观理解解释

2.算法上的解释

3.常用的梯度下降法

4.梯度下降算法调优

5.其他优化算法对比


       在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降算法(Gradient Descent Algorithm)是最常采用的方法之一,也是众多机器学习算法中最常用的优化方法,几乎当前每一个先进的机器学习库或者深度学习库都会包括梯度下降算法的不同变种实现。

梯度就是导数

梯度下降法就是一种通过求目标函数的导数来寻找目标函数最小化的方法。

梯度下降目的是找到目标函数最小化时的取值所对应的自变量的值,目的是为了找自变量X。

 

       最优化问题在机器学习中有非常重要的地位,很多机器学习算法最后都归结为求解最优化问题。最优化问题是求解函数极值的问题,包括极大值和极小值。在各种最优化算法中,梯度下降法是最简单、最常见的一种,在深度学习的训练中被广为使用。

                                 

       如上图所示,当目标函数为g(x)时,求目标函数的最小值。一般首先求g(x)的导数,然后使导数等于0,那么目标函数的最小值为0,此时的自变量X取值为0。在这里我们可能会问:直接求函数的导数/梯度,然后令导数/梯度为0,解方程,问题不就解决了吗?事实上没这么简单,因为在机器学习中一般的目标函数方程可能很难解。比如下面的这个目标函数:

                         

我们分别对x和y求偏导数,并令它们为0,得到下面的方程组:

                            

       这个方程非常难以求解,对于有指数函数,对数函数,三角函数的方程,我们称为超越方程,求解的难度并不比求极值本身小。精确的求解不太可能,因此只能求近似解,这称为数值计算。工程上实现时通常采用的是迭代法,它从一个初始点开始,反复使用某种规则从移动到下一个点,构造这样一个数列,直到收敛到梯度为0的点处,即梯度下降算法。

 

1.梯度下降直观理解解释

        梯度下降法的基本思想可以类比为一个下山的过程,如下图所示函数看似为一片山林,红色的是山林的高点,蓝色的为山林的低点,蓝色的颜色越深,地理位置越低,则图中有一个低点,一个最低点。

             

       假设这样一个场景:一个人被困在山上(图中红圈的位置),需要从山上下来(找到山的最低点,也就是山谷),但此时山上的浓雾很大,导致可视度很低。因此,下山的路径就无法确定,他必须利用自己周围的信息去找到下山的路径。这个时候,他就可以利用梯度下降算法来帮助自己下山。具体来说就是,以他当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着山的高度下降的方向走,然后每走一段距离,都反复采用同一个方法,最后就能成功的抵达山谷。

                               

       假设这座山最陡峭的地方是无法通过肉眼立马观察出来的,而是需要一个复杂的工具来测量,同时,这个人此时正好拥有测量出最陡峭方向的工具。所以,此人每走一段距离,都需要一段时间来测量所在位置最陡峭的方向,这是比较耗时的。那么为了在太阳下山之前到达山底,就要尽可能的减少测量方向的次数。这是一个两难的选择,如果测量的频繁,可以保证下山的方向是绝对正确的,但又非常耗时,如果测量的过少,又有偏离轨道的风险。所以需要找到一个合适的测量方向的频率(多久测量一次),来确保下山的方向不错误,同时又不至于耗时太多,在算法中我们成为步长

按照梯度下降算法的思想,它将按如下操作达到最低点:

第一步,明确自己现在所处的位置

第二步,找到相对于该位置而言下降最快的方向

第三步, 沿着第二步找到的方向走一小步,到达一个新的位置,此时的位置肯定比原来低

第四部, 回到第一步

第五步,终止于最低点

按照以上5步,最终达到最低点,这就是梯度下降的完整流程。当然你可能会说,上图不是有不同的路径吗?是的,因为上图并不是标准的凸函数,往往不能找到最小值,只能找到局部极小值。所以你可以用不同的初始位置进行梯度下降,来寻找更小的极小值点。</

梯度下降算法机器学习中一种广泛应用的最优化算法,其主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值。梯度下降算法原理可以从一个下山的场景开始理解。算法的基本思想是沿着目标函数梯度的方向更新参数值,以期望达到目标函数的最小值。 在机器学习中,梯度下降算法常常用于求解损失函数的最小值。在简单的线性回归中,我们可以使用最小二乘法来求解损失函数的最小值。然而,在绝大多数情况下,损失函数是非线性的且复杂。因此,梯度下降算法机器学习领域得到了广泛的应用。实际上,许多优秀的算法都是在梯度下降算法的启发下诞生的,例如AdaGrad、RMSProp、Momentum等等。 梯度下降算法的核心思想是通过计算目标函数的梯度来确定参数更新的方向。梯度表示了函数在某一点上的变化率,沿着梯度的方向可以使函数值快速减小。因此,梯度下降算法沿着梯度的反方向更新参数值,朝着目标函数的最小值靠近。算法的迭代过程会持续更新参数值,直到收敛到最小值或达到停止条件。 在实际应用中,为了提高算法的效率和准确性,通常会对梯度下降算法进行改进和优化。例如,可以使用学习率来控制参数值的更新步长,或者采用批量梯度下降来同时计算多个样本的梯度。这些改进可以帮助算法更快地收敛并找到更好的解。 总之,梯度下降算法是一种重要的最优化算法,在机器学习中被广泛应用。其原理是通过计算目标函数的梯度来更新参数值,以期望达到最小值。通过迭代的方式,梯度下降算法可以找到目标函数的最优解或者接近最优解。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值