自适应学习速率调整和常用的梯度下降算法

chapter 4 Beyond Gradient Desent

英语词汇

intracttable 棘手的,难以解决的

hundle 障碍

内容

主要讲述几种优化算法。
接下来探索局部最小值以及由此在训练网络中可能引起的问题。接着探索由于网络模型过深而引起的误差非凸面化,在这种情况下,小批量梯度下降算法失效。接着将探索非凸优化方法是如何克服这种问题的。

1. 误差曲面的非凸性

有很多的局部最小值,而神经网络需要找到全局最小值
这里写图片描述

这个是题外话,了解一下阿偶:
* 模型唯一性
这里写图片描述
对于一个l层,每层有n个神经元的网络,有 n!l n ! l 中安排参数的方法,最终网络的输出相同。

解决局部最小值的方法:
  • mini-batch gradient descent

  • 蒙特卡洛方法

    使用随机数(或更常见的伪随机数)来解决很多计算问题的方法,很经典的一个问题:利用投针实验求解圆周率 π π

  • 二阶方法(second-order methods)

2. 学习比率的问题

学习速率调整(learning rate adaptation)

选择正确的学习速率很重要,学习速率过小,收敛速度过慢
学习速率太大, 直接忽略某些局部最小值

学习速率自适应调整(learning rate adaption):在训练过程中适当的修改学习速率来达到更好的收敛性

三个最流行的学习速率自调整算法
  • AdaGrad
    利用每次迭代历史的梯度平方根的和来修改学习速率

    是矩阵的点乘, ϵ ϵ 是初始学习速率

    r0=0 r 0 = 0

    ri=ri1+gigi r i = r i − 1 + g i ⨀ g i

    θi=θi1ϵδrig θ i = θ i − 1 − ϵ δ ⨁ r i ⨀ g

    δ107 δ ≈ 10 − 7 避免除以0
    python tensorflow调用代码:

    tf.train.AdagradOptimizer(
      learning_rate,
      initial_accumulator_valuer=0.1,
      use_locking=False,
      name='Adagrad'
    )

    在tensorflow中, δ δ 和initial_accumulator_valuer在一起.

    • RMSProp
      ri=ρri1+(1ρ)gigi r i = ρ r i − 1 + ( 1 − ρ ) g i ⨀ g i

      衰退因子 (decayfactor) ( d e c a y f a c t o r ) ρ ρ 决定对历史梯度的保留程度

    python tensorflow调用代码:

    tf.train.RMSPropOptimizer(
    learning_rate,
    decay=0.9,
    momentum=0.0,
    epsilon=1e-10,
    use_locking=False,
    name='RMSProp'
    )

通过调整momentum来确定是否使用蒙特卡洛方法

RMSProp是一个非常高效的算法,对于很多的资深从业者而言是默认的选择

  • Adam 将蒙特卡洛和RMSProp结合起来

    tf.train.AdamOptimizer(
    learning_rate=0.001,
    beta1=0.9,
    beta2=0.999,
    epsilon=1e-8,
    use_locking=False,
    name='Adam'
    )

    很先进高效
    默认参数下已经表现的很好了,只需要修改参数learning_rate就好了。

    总结

    最流行的算法:

  • 误差曲面非凸
    1. mini-batch gradient descent
    2. mini-batch gradient with momentum
    • 学习速率
      1. RMSProp
      2. RMSProp with momentum
      3. Adam

主要是好的网络结构可以比训练算法有更好的效果,所有好的网络结构更值得花时间构建

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值