除了参数更新速度比较慢,梯度下降算法还有没有其它的缺点呢?在介绍回归时,我们使用的是平方误差的目标函数,这个函数形式简单,所以使用梯度下降算法没有出现问题,但是目标函数如果稍微复杂一点,梯度下降算法就会容易陷入局部最优解。比如下面这种比较复杂的目标函数。
在使用梯度下降算法之前,我们需要为需要更新的参数设置初始值,如果将初始值设在下图位置,那么就可以通过迭达找到全局最优解。
不过如果初始值从下图位置开始,就会陷入局部最优解。
初始点也是在训练模型之前进行设置的超参数,其实要解决这个问题也很简单,我们多选择几个初始点,然后从中选择合适的初始点。
两种梯度下降算法:
虽然随机梯度下降算法提高了更新参数的效率,但是每次使用随机的一个训练数据计算梯度,显然不能保证每次计算得到的都是目标函数减小的方向,更不能保证是减小速度最快的方向,这样的随机性会让随机梯度下降算法参数更新的行进轨迹变得异常波动,并且行进的方向随机,这也是为什么被称为随机梯度下降算法的原因所在。不过,虽然随机带来一定的不可预知性,但是大量实验表明,随机梯度下降算法依然能够差不多得来到目标函数的全局最优解附近。
简单总结一下两种梯度下降算法的优缺点:
梯度下降算法:
随机梯度下降算法:
还有一点需要注意,随机梯度下降算法由于更新的行进轨迹异常波动,所以相对于梯度下降算法不太容易陷入到局部最优解中。
梯度下降算法和随机梯度下降算法,一个使用全部的训练数据计算梯度,一个使用随机的一个训练数据计算梯度,两种方式都比较极端。小批量梯度下降算法综合了上面两种梯度下降算法的优缺点,每次参数更新不使用全部的训练数据,也不使用随机的一个训练数据,而是使用 m个训练数据。
小批量梯度下降法是综合了随机梯度下降法和批量梯度下降法的优缺点,运行的速度比梯度下降法快,而比随机梯度下降法要稳定。
References:
本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!