模型底层优化(1)——optimizor优化器及梯度截断

本文介绍了深度学习中常见的优化器,包括SGD、Ftrl、Adagrad、RMSprop、Adadelta、Adam、Adamax和Nadam。同时,讨论了梯度截断技术,如tf.clip_by_norm和tf.clip_by_global_norm,用于防止梯度过大导致的训练问题。此外,还提到了模型训练初期的冷启动策略,通过逐步增加学习率来达到更好的收敛效果。
摘要由CSDN通过智能技术生成


深度学习网络中,模型底层优化也是必不可少的。模型底层优化将分成两部分来讲解,主要为1)optimizor(优化器)的选择,2)参数initialize(初始化)和loss设计。这一节先讲一下optimizor的选择。
梯度下降的方法(Gradient Descent)在机器学习中应用很广泛,用于求解可导目标函数的最优解。传统机器学习中(例如LR,FM)的目标函数是一个凸函数,梯度下降方法找到的具体最优解即是全局最优解。所以optimizor的选择更多是决定收敛的速度,例如一阶梯度优化和二阶梯度优化(牛顿法等)。在深度学习网络中,本身是非凸的,优化器的选择很多时候决定了收敛的结果。学习率等的选择也变得异常困难,现在多采用自适应学习率的算法。
结合目前tensorflow中的使用,我们分成两部分来说说业界和论文中的optimizor方法。在tensorflow中,梯度的更新分成两个函数,一个是computer_gradient算出梯度,另一个是apply_gradient应用梯度。

梯度的计算:

SGD

原始的随机梯度下降,计算batch样本的梯度。可以加入momentum,保持沿着当前方向前进,减少样本波动。

Ftrl

用在lr上的更新,保持更新点距离当前位置不会太远,可以加入l1,l2的正则项。

Adagrad

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值