知识点

作者: 灰化肥发黑会挥发 | 来源:发表于2018-12-31 14:44 被阅读0次

优化方法

  1. 梯度下降
  • 梯度下降是一种优化算法,通过迭代的方式寻找模型的最优参数
  • 所谓最优参数指的是使目标函数达到最小值时的参数;
  • 当目标函数是凸函数时,梯度下降的解是全局最优解;但在一般情况下,梯度下降无法保证全局最优
    • 梯度仅仅指示了对于每个参数各自增长最快的方向;因此,梯度无法保证全局方向就是函数为了达到最小值应该前进的方向
  • 正负号在告诉输入向量应该调大还是调小(正调大,负调小)
  • 每一项的相对大小表明每个参数对函数值达到最值的影响程度;
  1. 随机梯度下降
  • 上一个梯度下降的问题在于每次使用全部的数据进行计算,当数据量很大的时候,需要很大的计算资源。
  • 随机梯度下降每次取一个数据进行计算,计算速度快。
  1. 小批量SGD的更新过程
    每次选择一批数据放到网络中。
  • 使用批训练的另一个主要目的,是为了利用高度优化的矩阵运算以及并行计算框架
    批的大小对于批量SGD的影响
  • 大的批量:得到更加精确的梯度估计

  • 小的批量:能得到更好的泛化误差,原因是添加了干扰,但是意味着更长的训练时间。

  • 批的大小为2的n次方时候,充分利用矩阵运算。
    批运算计算公式


    image.png
  • 存在的问题:
    * 放弃了梯度的准确性,仅采用一部分样本来估计当前的梯度;因此 SGD 对梯度的估计常常出现偏差,造成目标函数收敛不稳定,甚至不收敛的情况。

    • 容易陷入局部最小值,例如峡谷和鞍点

梯度下降的改进:

  • 惯性保持(动量)
  • 环境感知(自适应的调整学习率)
带动量的SGD算法

动量的概念:例如纸团在峡谷中会很慢,来回反弹,但是如果换成铁球会很快,
公式


image.png

动量的迭代更新公式如下


image.png

添加了一个以往的更新方向,假设其上一次的方向和本次方向相同,则会在相同的方向上不断加速。

NAG算法

NAG算法把梯度计算放在对参数附加当前速度之后。


image.png

自适应的梯度更新方法:

AdaGrad

基本思想:

  • 较大的偏导具有较大的学习率,较小的偏导有较小的学习率
    问题:
  • 学习率是单调递减的,训练后期学习率过小会导致训练困难,甚至提前结束

RMSProp

基本思想:解决AdaGrad后期的学习率较小,导致难以训练的问题。

  • 使用指数衰减平均(递归定义)以丢弃遥远的历史,也就是代替r,使其能够在找到某个“凸”结构后快速收敛;此外,RMSProp 还加入了一个超参数 ρ 用于控制衰减速。
    问题:
  • 仍然需要设置一个全局衰减率,还有一个全局学习率。

AdaDelta

  • AdaDelta 进一步解决了 AdaGrad 需要设置一个全局学习率的问题

Adam

  • 除了加入历史梯度平方的指数衰减平均(r)外,还保留了历史梯度的指数衰减平均(s),相当于动量。

基于二阶梯度的牛顿法

  • 梯度下降算法本质上是使用一阶梯度去拟合,而牛顿法使用的是二阶梯度,二阶梯度是一个曲面,反应的是梯度的变化率,一阶梯度是平面。
  • 通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。
  • 通俗理解
    比如你想找一条最短的路径走到一个盆地的最底部,
    梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步;
    牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。
    所以,牛顿法比梯度下降法看得更远,能更快地走到最底部。
  • 牛顿法优点
    更新速度更快
    -牛顿法缺点:
    每一次都需要计算二阶导数,速度过慢。

相关文章

  • 【文魁大脑实用记忆第二期】萧进才第20次《机械、经济学知识点》

    1、静态指标知识点 2、动态指标知识点 3、不确定分析知识点 4、夹具知识点 5、定位知识点

  • 普通的随笔

    在医院中的努力呃 过知识点,过知识点,过知识点

  • 测试开发知识点(三)

    传送门 测试开发知识点(一)测试开发知识点(二)测试开发知识点(三)测试开发知识点(四)测试开发知识点(五) 自动...

  • 测试开发知识点(一)

    传送门 测试开发知识点(一)测试开发知识点(二)测试开发知识点(三)测试开发知识点(四)测试开发知识点(五) 软件...

  • 测试开发知识点(二)

    传送门 测试开发知识点(一)测试开发知识点(二)测试开发知识点(三)测试开发知识点(四)测试开发知识点(五) We...

  • 面试被问到的问题

    传送门测试开发知识点(一)测试开发知识点(二)测试开发知识点(三)测试开发知识点(四)测试开发知识点(五) 1、请...

  • 前端基础知识点

    1.html常见知识点 2.css常见知识点 3.js常见知识点 数组知识点 4.计算机网络知识点 5.数据结构 ...

  • 复习 《高难度沟通》

    分享者: 复习知识点: 对知识点的理解(用你自己的话表达): 知识点的适用(使用)场景: 可以链接哪些知识点: 其...

  • 《逻辑谬误》复习知识点

    分享者: 复习知识点: 对知识点的理解(用你自己的话表达): 知识点的适用(使用)场景: 可以链接哪些知识点: 其...

  • 《批判性思维》课程复习

    分享者: 复习知识点: 对知识点的理解(用你自己的话表达): 知识点的适用(使用)场景: 可以链接哪些知识点: 其...

网友评论

      本文标题:知识点

      本文链接:https://www.haomeiwen.com/subject/gjvilqtx.html