深度学习: 模型优化算法

优化算法 类型

优化算法 类型 包括 一阶优化法 和 二阶优化法:

一阶优化法

二阶优化法

具体算法

随机梯度下降法、基于动量的随机梯度下降法、Nesterov型动量随机下降法、Adagrad法、Adadelta法、RMSProp法、Adam法

牛顿法

计算难度

较易

运用程度

主流

少有人用

一阶优化法 对比

随机梯度下降法

基于动量的随机梯度下降法

Nesterov型动量随机下降法

Adagrad法

Adadelta法

RMSProp法

Adam法

运用程度

最广

训练速度

模型结果

可靠

可靠

随机梯度下降法、基于动量的随机梯度下降法 和 Nesterov型动量随机下降法 彼此性能相近; Adagrad法、Adadelta法、RMSProp法 和 Adam法 彼此性能相近

一阶优化法

ωω\omega :待学习参数; ηη\eta :学习率; ggg :一阶梯度值; ttt :第ttt轮训练。

随机梯度下降法

随机梯度下降算法,Stochastic Gradient Descent,简称 SGD

ωt←ωt−1−η⋅gωt←ωt−1−η⋅g

\omega_{t} \leftarrow \omega_{t-1} - \eta \cdot g

基于动量的随机梯度下降法

由于SGD更新时可能出现 振荡 ,遂通过 累积前几轮的动量 (momentum) 信息辅助参数更新

vt←μ⋅vt−1−η⋅gvt←μ⋅vt−1−η⋅g

v_{t} \leftarrow \mu \cdot v_{t-1} - \eta \cdot g

ωt←ωt−1+vtωt←ωt−1+vt

\omega_{t} \leftarrow \omega_{t-1} + v_{t}

μμ\mu :动量因子,控制动量信息对整体梯度更新的影响程度。设置方法分为 静态 (始终为 0.9) 和 动态 (初始为 0.5,逐渐增长为 0.9 或 0.99) 。

Nesterov型动量随机下降法

较罕见,遂略过。

Adagrad法

根据训练轮数的不同,对学习率进行动态调整:

ηt←ηglobal∑tt'=1g2t′+ϵ−−−−−−−−−−√⋅gtηt←ηglobal∑t′=1tgt′2+ϵ⋅gt

\eta_{t} \leftarrow \frac{\eta_{global}}{\sqrt{\sum_{t′=1}^t g_{t'}^2 + \epsilon}} \cdot g_{t}

ηglobalηglobal\eta_{global} :全局学习率 (必须提前指定) ; ϵϵ\epsilon :防止分母为0。

初始时,ηtηt\eta_{t} 接近于 ηglobalηglobal\eta_{global} ,随着 ∑tt'=1g2t′∑t′=1tgt′2\sum_{t′=1}^t g_{t'}^2 的不断增大,ηtηt\eta_{t} 渐渐趋近于 0 。

Adadelta法

Adadelta法 在 Adagrad法 的 基础上,通过引入衰减因子 ρρ\rho ,使得 ggg 也和 ηglobalηglobal\eta_{global} 一起来对 ηtηt\eta_{t} 施加影响,防止 ηglobalηglobal\eta_{global} 垄断:

rt←ρ⋅rt−1+(1−ρ)⋅g2rt←ρ⋅rt−1+(1−ρ)⋅g2

r_{t} \leftarrow \rho \cdot r_{t-1} + (1-\rho) \cdot g^2

ηt←st−1+ϵ−−−−−−√rt+ϵ−−−−−√ηt←st−1+ϵrt+ϵ

\eta_{t} \leftarrow \frac{\sqrt{s_{t-1} + \epsilon}}{\sqrt{r_t + \epsilon}}

st←ρ⋅st−1+(1−ρ)⋅(ηt⋅g)2st←ρ⋅st−1+(1−ρ)⋅(ηt⋅g)2

s_{t} \leftarrow \rho \cdot s_{t-1} + (1-\rho) \cdot (\eta_{t} \cdot g)^2

ρρ\rho :衰减因子,取值范围 [0, 1] ,值越大越促进网络更新,推荐为 0.95 ; ϵϵ\epsilon :防止为 0,推荐为 10−610−610^{-6} 。

RMSProp法

较罕见,遂略过。

Adam法

在 RMSProp法 基础上 加上了 动量项

利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。

优点: 经过偏置校正后,每一次迭代学习率都有一个确定范围,这样可以使得参数更新比较平稳。


[1] 解析卷积神经网络—深度学习实践手册

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI2ML人工智能to机器学习

攒说 Geoff Hinton

大家都知道深度学习的鼻祖Geoff Hinton, 传说, 他安静的办公室, 经常会突然传出一句很大声的自言自语, 就是 我现在终于理解大脑怎么工作的啦(I u...

9010
来自专栏marsggbo

Andrew Ng机器学习课程笔记--week10(优化梯度下降)

本周主要介绍了梯度下降算法运用到大数据时的优化方法。 一、内容概要 Gradient Descent with Large Datasets Stochast...

23880
来自专栏数据科学与人工智能

Python scikit-learn 做线性回归

线性回归是简单易用的机器学习算法,scikit-learn是python强大的机器学习库。 本篇文章利用线性回归算法预测波士顿的房价。波士顿房价数据集包含波士顿...

50740
来自专栏SimpleAI

【DL碎片2】神经网络中的优化算法

从【DL笔记1】到【DL笔记N】以及【DL碎片】系列,是我学习深度学习一路上的点点滴滴的记录,是从Coursera网课、各大博客、论文的学习以及自己的实践中总结...

10730
来自专栏计算机视觉战队

简单易懂的讲解深度学习(入门系列之七)

1986年,辛顿教授和他的团队重新设计了BP算法,以“人工神经网络”模仿大脑工作机理,又一次将人工智能掀起了一个浪潮。但是,当风光不再时,辛顿和他的研究方向,逐...

10130
来自专栏AI科技评论

学界 | 有哪些学术界都搞错了,忽然间有人发现问题所在的事情?

神经网络优化 说一个近年来神经网络方面澄清的一个误解。 BP算法自八十年代发明以来,一直是神经网络优化的最基本的方法。神经网络普遍都是很难优化的,尤其是当中间...

437100
来自专栏人工智能

有哪些学术界都搞错了,忽然间有人发现问题所在的事情?

AI 科技评论注:本文作者李振华,本文整理于作者在知乎问题「有哪些学术界都搞错了,忽然间有人发现问题所在的事情?」下的回答。AI 科技评论已获得转载授权。 神经...

25160
来自专栏YoungGy

ISLR_LinearRegression

Simple linear regression Estimating the coefficients Assessing the accuracy of t...

44250
来自专栏机器之心

学界 | 深度梯度压缩:降低分布式训练的通信带宽

选自arXiv 机器之心编译 参与:Panda ICLR 2018 将在当地时间明年 4 月 30 日~5 月 3 日在加拿大温哥华举办。目前正处于评审阶段的会...

485120
来自专栏人工智能头条

使用scikit-learn解释随机森林算法

25320

扫码关注云+社区

领取腾讯云代金券