深度学习——优化算法

本文介绍了深度学习中优化算法的重要性,包括梯度下降、随机梯度下降及其变种,如小批量梯度下降。讨论了局部最小值和鞍点等挑战,以及如何通过动量法、AdaGrad、RMSProp、AdaDelta和Adam等算法来应对。这些优化技术旨在提高模型的训练效果,平衡训练速度与泛化能力。
摘要由CSDN通过智能技术生成

在训练模型时,我们会使用优化算法不断迭代模型参数以降低模型损失函数的值,当迭代终止时,模型的训练随之终止,此时的模型参数就是模型通过训练所学习到的参数。
优化与深度学习的关系
优化与深度学习的关系:优化算法的目标函数通常是一个基于训练数据集的损失函数,优化的目标在于降低训练误差;深度学习的目标在于降低泛化误差。为了降低泛化误差,除了使用优化算法降低训练误差以外,还需要注意应对过拟合
优化在深度学习中的挑战
优化在深度学习中有很多挑战。下面描述了其中的两个挑战,即局部最小值和鞍点
局部最小点:深度学习模型的目标函数可能有若干局部最优值。当一个优化问题的数值解在局部最优解附近时,由于目标函数有关解的梯度接近或变成零,最终迭代求得的数值解可能只令目标函数局部最小化而非全局最小化。
在这里插入图片描述

鞍点:梯度接近或变成零可能是由于当前解在局部最优解附近造成的。事实上,另一种可能性是当前解在鞍点(saddle point)附近。一个不是局部最小值的驻点(一阶导数为0的点)称为鞍点。数学含义是: 目标函数在此点上的梯度(一阶导数)值为 0,但从该点出发的一个方向是函数的极大值点,而在另一个方向是函数的极小值点
在这里插入图片描述
假设一个函数的输入为k维向量,输出为标量,那么它的海森矩阵(Hessian matrix)有 个特征值。该函数在梯度为0的位置上可能是局部最小值、局部最大值或者鞍点:
1.当函数的海森矩阵在梯度为0的位置上的特征值全为正时,该函数得到局部最小值。
2.当函数的海森矩阵在梯度为0的位置上的特征值全为负时,该函数得到局部最大值。
3.当函数的海森矩阵在梯度为0的位置上的特征值有正有负时,该函数得到鞍点。

在深度学习中,虽然找到目标函数的全局最优解很难,但这并非必要。接下来的几节中逐一介绍深度学习中常用的优化算法,它们在很多实际问题中都能够训练出十分有效的深度学习模型。

梯度下降和随机梯度下降
一维梯度下降
多维梯度下降
随机梯度下降(在每次迭代中只随机采样一个样本来计算梯度)
小批量随机梯度下降(随机均匀采样多个样本来组成一个小批量,然后使用这个小批量来计算梯度):
当批量大小为1时,该算法即为随机梯度下降
当批量大小等于训练数据样本数时,该算法即为梯度下降。
当批量较小时,每次迭代中使用的样本少,这会导致并行处理和内存使用效率变低。这使得在计算同样数目样本的情况下比使用更大批量时所花时间更多。
当批量较大时,每个小批量梯度里可能含有更多的冗余信息。
为了得到较好的解,批量较大时比批量较小时需要计算的样本数目可能更多,例如增大迭代周期数。
在这里插入图片描述

动量法
动量法的提出是为了解决梯度下降的上述问题(会扩散)
动量法依赖指数加权移动平均使得自变量的更新方向更加一致,从而降低发散的可能
在这里插入图片描述

AdaGrad算法
(动量法)里我们看到当 和 的梯度值有较大差别时,需要选择足够小的学习率使得自变量在梯度值较大的维度上不发散。但这样会导致自变量在梯度值较小的维度上迭代过慢。
AdaGrad算法,它根据自变量在每个维度的梯度值的大小来调整各个维度上的学习率,从而避免统一的学习率难以适应所有维度的问题。
需要强调的是,小批量随机梯度按元素平方的累加变量 出现在学习率的分母项中。因此,如果目标函数有关自变量中某个元素的偏导数一直都较大,那么该元素的学习率将下降较快;反之,如果目标函数有关自变量中某个元素的偏导数一直都较小,那么该元素的学习率将下降较慢。然而,由于 一直在累加按元素平方的梯度,自变量中每个元素的学习率在迭代过程中一直在降低(或不变)。所以,当
学习率在迭代早期降得较快且当前解依然不佳时,AdaGrad算法在迭代后期由于学习率过小,可能较难找到一个有用的解。

在这里插入图片描述

小结:
AdaGrad算法在迭代过程中不断调整学习率,并让目标函数自变量中每个元素都分别拥有自己的学习率。
使用AdaGrad算法时,自变量中每个元素的学习率在迭代过程中一直在降低(或不变)。

** RMSProp算法**
为了解决当学习率在迭代早期降得较快且当前解依然不佳时,AdaGrad算法在迭代后期由于学习率过小,可能较难找到一个有用的解的问题,RMSProp算法对AdaGrad算法做了一点小小的修改。该算法源自Coursera上的一门课程,即“机器学习的神经网络” 。
不同于AdaGrad算法里状态变量是截至时间
步 所有小批量随机梯度 按元素平方和,RMSProp算法将这些梯度按元素平方做指数加权移动平均。
在这里插入图片描述
在这里插入图片描述
AdaDelta算法
除了RMSProp算法以外,另一个常用优化算法AdaDelta算法也针对AdaGrad算法在迭代后期可能较难找到有用解的问题做了改进。有意思的是,AdaDelta算法没有学习率这一超参数
在这里插入图片描述

Adam算法
算法过程如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值