建设网站的岗位,wordpress小工具缓存,开发区网站开发语言,上海网络推广方法Optimization 随机梯度下降#xff08;SGD#xff09;#xff1a; 当损失函数在一个方向很敏感在另一个方向不敏感时#xff0c;会产生上面的问题#xff0c;红色的点以“Z”字形梯度下降#xff0c;而不是以最短距离下降#xff1b;这种情况在高维空间更加普遍。 SGD的… Optimization 随机梯度下降SGD 当损失函数在一个方向很敏感在另一个方向不敏感时会产生上面的问题红色的点以“Z”字形梯度下降而不是以最短距离下降这种情况在高维空间更加普遍。 SGD的另一个问题损失函数容易卡在局部最优或鞍点梯度为0不再更新。在高维空间鞍点更加普遍 当模型较大时SGD耗费庞大计算量添加随机均匀噪声时SGD需要花费大量的时间才能找到极小值。 SGDMomentum 带动量的SGD基本思想是保持一个不随时间变化的速度并将梯度估计添加到这个速度上在这个速度方向上前进而不是随梯度变化方向给一个摩擦系数作为这个速度的衰减项。 这种方法解决了局部极小值和鞍点问题尽管在局部极小值和鞍点任会有朝预定速度方向步进且速度会随着时间的速度增加。 普通的Momentum更新是先估计当前梯度向量取其和速度向量的和的方向作为真实参数更新的方向 Nesterov Momentum则相反先取得速度方向的步进再估计当前位置的梯度随后回到原来位置再根据两者的和作为真实参数更新的方向。在凸优化问题有良好表现 Nesterov Momentum不会剧烈的越过局部最小值 AdaGrad 在优化过程中需要保持一个在训练过程中的每一步的梯度的平方和的持续估计与速度项不同梯度平方项在训练时会一直累加当前梯度的平方到这个梯度平方项在更新参数向量时会除以这个梯度平方项。 当一个维度上的梯度更新很小时会除以很小的平方项梯度很大时则会除以很大的平方项在一个维度上梯度下降很慢的训练会加快在另一个维度方向上训练减慢让各个参数得到相同程度的收敛。 随着时间的推移梯度更新的步长会越来越小梯度平方项随时间单调递增在学习目标是一个凸函数的情况下效果很好到达极值点步长越来越小最终收敛非凸函数则会变得复杂 RMSProp 不仅加上平方项并让平方梯度按照一定比率下降然后用1减去衰减了乘以梯度平方加上之前的结果。 随着训练的进行步长会有一个良好的性质与AdaGrad类似在一个维度上梯度下降很慢的训练会加快在另一个维度方向上训练减慢RMSProp让梯度平方衰减了可能会造成训练一直在变慢。 RMSProp会慢慢调整梯度更新方向SGD效果不好SGDMomentum会先绕过极小值再朝极小值方向前进AdaGrad在较小学习率时可能会卡住。凸优化问题 Adam 更新第一动量类似SGDMomentum中的速度和第二动量类似AdaGrad、RMSProp中的梯度的平方项的估计值第一动量的估计值等于梯度的加权和第二动量的动态估计值是梯度平方的动态估计值相当于速度项与梯度平方项的结合。 在最初的第一步第二动量的初始值为0第一步之后衰减值beta20.9或0.99第二动量还是接近于0除以第二动量后会得到很大的步长可能导致初始化到一个难以收敛的区域。1e-7为的是分母不为0。 因此Adam增加了一个偏置校正项避免出现开始时得到很大步长。 一般网络的都会使用Adam算法作为优化算法它结合了SGD和RMSProp的优点。 学习率的选择 一般选择学习率衰减策略在训练的开始选择较大的学习率然后随着步长衰减或指数衰减。 SGDMomentum的学习率衰减很常见Adam一般不使用学习率衰减学习率衰减相当于二阶超参数在开始时不使用在训练达到一定瓶颈时再考虑使用。 一阶优化与二阶优化 L-BFGS是一个二阶优化器 Adam是大多数情况下的默认选择如果能承受整个批次的更新且没有很多随机性如风格迁移可以考虑L-BFGS 模型集成是提高测试集准确率的有效办法通常选择一批不同的随机初始值上训练N个模型测试时平均N个模型的结果能够缓解过拟合。 Q1随机梯度下降的随机指得是什么 Q2尝试解释为什么Adam通常会是一个更好的选择可以结合Momentum和RMSProb的优点解释 1.随机梯度下降指的是从批量样本中随机选取一个样本按照该样本梯度下降的方向进行梯度下降2.Adam的优点可以解决局部最优和鞍点问题且下降速度较快平衡各特征梯度的大小 https://blog.csdn.net/weixin_40170902/article/details/80092628 转载于:https://www.cnblogs.com/Manuel/p/11041119.html