DL4J中文文档/模型/更新器

什么是更新器?

更新器之间的主要区别是他们如何对待学习率。随机梯度下降是深度学习中最常用的学习算法,它依赖于Theta(隐藏层中的权重)和alpha(学习率)。不同的更新器有助于优化学习速率,直到神经网络收敛到其最高性能状态为止。

用法

若要使用更新器,请将一个新类传递到计算图或多层网络中的updater()方法。

ComputationGraphConfiguration conf = new NeuralNetConfiguration.Builder()
    .updater(new Adam(0.01))
    // 在下面添加你的层和超参数
    .build();

可用的更新器


NoOpUpdater (无操作更新器)

[源码]

NoOp 更新器: 对梯度不做改变的更新器


RmsPropUpdater(均方根传播更新器)

[源码]

RMS 传播更新:

http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf http://cs231n.github.io/neural-networks-3/#ada


SgdUpdater(随机梯度更新器)

[源码]

SGD更新器仅适用学习速率


AMSGradUpdater (Adam变体更新器)

[源码]

AMSGrad 更新器
参考文献: https://openreview.net/forum?id=ryQu7f-RZ


NesterovsUpdater

[源码]

涅斯特罗夫动量。跟踪前一层的梯度,并使用它作为更新梯度的方式。

applyUpdater

public void applyUpdater(INDArray gradient, int iteration, int epoch) 

获得涅斯特罗夫更新

  • 参数 gradient 获取更新的梯度
  • 参数 iteration 迭代

AdaMaxUpdater

[源码]

AdaMax 更新器, Adam的一个变体。 http://arxiv.org/abs/1412.6980

applyUpdater

public void applyUpdater(INDArray gradient, int iteration, int epoch) 

根据给定的梯度计算更新

  • 参数 gradient 获取更新的梯度
  • 参数 iteration 迭代
  • 返回递度

AdaDeltaUpdater

[源码]

http://www.matthewzeiler.com/pubs/googleTR2012/googleTR2012.pdf https://arxiv.org/pdf/1212.5701v1.pdf

Ada增量更新器。更健壮的adagrad,它跟踪梯度的移动窗口平均值,而不是adagrad的每个衰减学习速率

applyUpdater

public void applyUpdater(INDArray gradient, int iteration, int epoch) 

得到给定梯度的更新梯度,也更新ada delta的状态。

  • 参数 gradient 获取更新的梯度
  • 参数 iteration 迭代
  • 返回递度

GradientUpdater 

[源码]

梯度修改:随着时间的推移处理更新,计算更新和跟踪相关信息的梯度变化。


AdaGradUpdater

[源码]

每个连接权重使用的向量化学习率

改编自: http://xcorr.net/2014/01/23/adagrad-eliminating-learning-rates-in-stochastic-gradient-descent

也可以看 http://cs231n.github.io/neural-networks-3/#ada

applyUpdater

public void applyUpdater(INDArray gradient, int iteration, int epoch) 

获得特定的学习率AdGrad特征,保持正在传入的梯度的历史。注意,传入的每个梯度随着时间的推移而适应,因此opName adagrad。

  • 参数 gradient 获得学习速率的梯度
  • 参数 iteration 迭代

AdamUpdater (自适应矩估计更新器)

[源码]

自适应矩估计更新器 http://arxiv.org/abs/1412.6980

applyUpdater

public void applyUpdater(INDArray gradient, int iteration, int epoch) 
  • 参数 gradient 获取更新的梯度
  • 参数 iteration 迭代
  • 返回梯度

NadamUpdater (涅斯特罗夫加速自适应矩估计更新器)

[源码]

涅斯特罗夫加速自适应矩估计更新器 https://arxiv.org/pdf/1609.04747.pdf

applyUpdater

public void applyUpdater(INDArray gradient, int iteration, int epoch) 

根据给定的梯度计算更新

  • 参数 gradient 获取更新的梯度
  • 参数 iteration 迭代
  • 返回梯度
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值