目录
老饼讲解:一步一步上手学习

【辨析】梯度下降算法-优点缺点

作者 : 老饼 发表日期 : 2025-11-15 15:29:35 更新日期 : 2026-05-21 13:38:30
老饼讲解-简单易懂,干货满满,爽过嗦螺!


前面我们已经学习了梯度下降算法了,也弄清楚它的实现流程了,最后,作为补充,我们这一节来说说它的优点和缺点,进一步了解它的特点,加深对梯度下降算法的理解。

一、梯度下降算法-优点

我们先来简单回顾一下梯度下降法:

梯度下降算法原理

如图,梯度下降算法就是先初始化一个,然后再不断地往负梯度方向迭代,使目标函数持续下降,直到满足终止条件则退出迭代,这就是梯度下降算法了。好了,下面我们来说说梯度下降法的优缺点。

1.1. 梯度下降算法-优点

我们直接来看看梯度下降法的优点,如下:

1. 必能下降

 按负梯度调整,加上学习率的控制,则能保证x的调整,函数一定能下降。

 2.下降速度快

 按负梯度下降,由于负梯度是下降最快的方向,在下降速度上更加有效,
 所谓最快,即调整同样的步长,该方向能令函数下降最快。

 3.算法简单有效

梯度下降法只需求一阶导,且迭代机制也简单,相对其它算法更为简单,
因此不管是推导、计算、代码编写上都非常简单明了,且效果不错,性价比非常高。


✍️笔者语

    还是在读大学的时候,刚接触到梯度下降法,当时觉得梯度下降法真厉害,因为它能使目标函数最速下降!然而,好些年后才发现,梯度下降法最卓越的地方不在于它下降最快,而是它能保证下降!
    正是因为梯度下降法能保证下降,因此有许多算法,可以采取"更大胆的算法策略“来下降,当"大胆策略"能下降时,就用"大胆策略",当"大胆策略"不能下降时,则退化为梯度下降,如此一来,进可攻退可守,既可以放心大胆地去下降,又有梯度下降算法进行兜底。也正是因此,梯度下降作为一种经典算法,在其它算法中仍然能经常看到它的身影~

二、梯度下降算法的缺点

上面已经说完了梯度下降算法的优点,那下面我们再来说说梯度下降算法的一些缺点。

2.1. 缺点1-对初始值敏感

梯度下降法是对初始值极为敏感的,我们直接来上个图,如下:

 梯度下降算法的初始值意义

如图所示,如果初始化在点A,那么最终能找到的就是局部最优值,而初始化在点B,最终就会找到全局最优值。总的来说,梯度下降法只能找到离初始值最近的局部极小值,如果初始化不好,找到的结果也不好。

2.2. 缺点2-不能跳出局部最优

我们都知道,梯度下降法它只能找到由初始值决定的局部最小值,而它没有没有任何跳出局部最优值的机制。

梯度下降的缺点-无法跳出局部最优

如上图所示,目标函数中随便的一个小坑 ,都能够把梯度下降法坑住,这就非常亏,如果目标函数中有很多小坑,那梯度下降法就基本没法搞了,因为不管初始化在哪,都会被这些小坑给坑住。

2.3. 缺点3-收敛速度慢

梯度下降法在梯度平缓处的迭代速度较慢,而极值附近一般都是相对较为平缓的:

 梯度下降的缺点-收敛速度慢

因此,当无穷接近极值处时,梯度下降算法的迭代会变得无穷慢,即收敛速度缓慢,这样就注定了梯度下降算法必须迭代比较久,而且也几乎永远无法迭代到最优点,所以一般在梯度较小时就直接退出训练了。但更坑的是梯度下降法在一些拐点处,或者极为平缓处,也会迭代得非常慢,往往需要很多很多的迭代次数才能走出这些平缓区。

总结

总的来说,梯度下降法有优点也有缺点,它最大的优点是在学习率足够小时,一定能保证下降。而它是一个比较基础的算法,所以有许多不足,例如对初始值极敏感、收敛慢、平缓区域迭代慢、不能跳出局部最优等等,但即使它有再多缺点,也是机器学习中最最最经典的算法。



图标 评论
添加评论