现在位置:首页 > bob体育官方网址 > 深度学习总结(一)各种优化算法

深度学习总结(一)各种优化算法

admin2021年09月29日bob体育官方网址

简介每迭代一步都要用到训练集的所有数据每次计算出来的梯度求平均 通过每个样本来迭代更新一次以损失很小的一部分精确度和增加一定数量的迭代次数为代价换取了总体的优化效率的提升。增加的迭代次数远远小于样本的数量。 为了避免SGD和标准梯度下降中存在的问题对每个批次中的n个训...

  每迭代一步都要用到训练集的所有数据每次计算出来的梯度求平均

  通过每个样本来迭代更新一次以损失很小的一部分精确度和增加一定数量的迭代次数为代价换取了总体的优化效率的提升。增加的迭代次数远远小于样本的数量。

  为了避免SGD和标准梯度下降中存在的问题对每个批次中的n个训练样本这种方法只执行一次更新。【每次更新全部梯度的平均值】

  从这里我们就可已看出指数加权平均的名称由来第100个数据其实是前99个数据加权和而前面每一个数的权重呈现指数衰减即越靠前的数据对当前结果的影响较小

  缺点存在开始数据的过低问题可以通过偏差修正但是在深度学习的优化算法中一般会忽略这个问题

  当t不断增大时分母逐渐接近1影响就会逐渐减小了

  momentum是模拟物理里动量的概念积累之前的动量来替代真正的梯度。公式如下

  即在正确梯度方向上加速并且抑制波动方向张的波动大小在后期本次计算出来的梯度会很小以至于无法跳出局部极值Momentum方法也可以帮助跳出局部极值

  β的常用值为0.9即可以一定意义上理解为平均了前10/9次的梯度。

  这种基于预测的更新方法使我们避免过快地前进并提高了算法地响应能力大大改进了 RNN 在一些任务上的表现【为什么对RNN好呢不懂啊】

  没有对比就没有伤害NAG方法收敛速度明显加快。波动也小了很多。实际上NAG方法用到了二阶信息所以才会有这么好的结果。先按照原来的梯度走一步的时候已经求了一次梯度后面再修正的时候又求了一次梯度所以是二阶信息。

  其实momentum项和nesterov项都是为了使梯度更新更加灵活对不同情况有针对性。但是人工设置一些学习率总还是有些生硬接下来介绍几种自适应学习率的方法

  前面的一系列优化算法有一个共同的特点就是对于每一个参数都用相同的学习率进行更新。但是在实际应用中各个参数的重要性肯定是不一样的所以我们对于不同的参数要动态的采取不同的学习率让目标函数更快的收敛。

  adagrad方法是将每一个参数的每一次迭代的梯度取平方累加再开方用基础学习率除以这个数来做学习率的动态更新。【这样每一个参数的学习率就与他们的梯度有关系了那么每一个参数的学习率就不一样了也就是所谓的自适应学习率】

  只需要设置初始学习率后面学习率会自我调整越来越小

  Adagrad的一大优势时可以避免手动调节学习率比如设置初始的缺省学习率为0.01然后就不管它另其在学习的过程中自己变化。当然它也有缺点就是它计算时要在分母上计算梯度平方的和由于所有的参数平方【上述公式推导中并没有写出来是梯度的平方感觉应该是上文的公式推导忘了写】必为正数这样就造成在训练的过程中分母累积的和会越来越大。这样学习到后来的阶段网络的更新能力会越来越弱能学到的更多知识的能力也越来越弱因为学习率会变得极其小【就会提前停止学习】为了解决这样的问题又提出了Adadelta算法。

  Adagrad会累加之前所有的梯度平方而Adadelta只累加固定大小的项【其实就是相当于指数滑动平均只用了前多少步的梯度平方平均值】并且也不直接存储这些项仅仅是近似计算对应的平均值【这也就是指数滑动平均的优点】

  - 为每一维参数设定不同的学习率在梯度连续性强的方向上加速前进

  - 用历史迭代的平均值归一化学习率突出稀有的梯度

  2.关于批量梯度下降的weight_decay【似乎与L2正则有关系待补充】

  如果输入数据集比较稀疏SGD、NAG和动量项等方法可能效果不好。因此对于稀疏数据集应该使用某种自适应学习率的方法且另一好处为不需要人为调整学习率使用默认参数就可能获得最优值。

  如果想使训练深层网络模型快速收敛或所构建的神经网络较为复杂则应该使用Adam或其他自适应学习速率的方法因为这些方法的实际效果更优。

  SGD通常训练时间更长但是在好的初始化和学习率调度方案的情况下结果更可靠。

  AdadeltaRMSpropAdam是比较相近的算法在相似的情况下表现差不多。在想使用带动量的RMSprop或者Adam的地方大多可以使用Nadam取得更好的效果

  在构建神经网络模型时选择出最佳的优化器以便快速收敛并正确学习同时调整内部参数最大程度地最小化损失函数。

  喜欢吃绝味鸭脖:大佬您好,优化算法是用来控制学习率加快模型收敛的吗?还是用于基于训练数据迭代的更新神经网络权重的?

  • <small id='cnwp2s0r'></small><noframes id='h1hcku9p'>

        <tbody id='49fdw1yt'></tbody>
      <legend id='0ilnxqzb'><style id='w8sbn1c2'><dir id='q8iglnbd'><q id='q16f9w4t'></q></dir></style></legend>
      <tfoot id='7eihkwr1'></tfoot>
          • <bdo id='1mxv6t92'></bdo><ul id='gdo3pi3v'></ul>
          • <i id='cswde9q0'><tr id='riidr8dw'><dt id='gjlbf50n'><q id='lep0123p'><span id='52ox2f4p'><b id='9h9vvtnt'><form id='gabcx3zf'><ins id='py5lidwi'></ins><ul id='m8o7lvdh'></ul><sub id='5sya24z1'></sub></form><legend id='ovpjmxvr'></legend><bdo id='rl5d4th2'><pre id='tbza35u3'><center id='y5teom5e'></center></pre></bdo></b><th id='f1hnjp73'></th></span></q></dt></tr></i><div id='3g7gltne'><tfoot id='tqrbp3ar'></tfoot><dl id='oyp5tjyc'><fieldset id='iw7ikry0'></fieldset></dl></div>

            1.