图像语义分割实践(五)优化器与学习率

概述

在数据制作环节中,提到minibatch思想用于数据批次量获取,是一种优化器思想,而该文则是对各种优化器进行介绍。
优化器:最小化损失函数算法,把深度学习当炼丹的话,优化器就是炉子,决定火候大小,炉子属性等,在深度学习监督学习的模型中,常用梯度下降法求解最优参数;
学习率:在优化器中,决定着梯度下降的速度,炉子调整火候的时间点;

Pytorch中,torch.optim 提供优化器类型选择,torch.optim.lr_scheduler 提供学习率调整策略;

优化器策略

优化器(“炉子”)的属性分析

1.根据每次更新使用的样本数量产生的梯度下降方法

梯度下降方法(Gradient Descent)变体如图所示,BGD全样本训练,计算量太大,计算速度慢;SGD太过震荡,容易陷入鞍点找不到最优点;MBGD训练稳定,计算速度快;

BGD, MBGD, SGD梯度下降法收敛过程.png

SGD 公式
v_t=η∇_θJ(θ_{t−1}) \\θ_t=θ_{t-1}−v_t
即使采用MBGD的方法仍然有很大难题,还不能保证良好的收敛性。

  • 学习率选择和设计问题;
  • 参数更新都在同一个学习率下更新的,实际训练特征出现频率少的需要更大的学习率;

2.根据局部历史梯度对当前梯度进行平滑方法

由 SGD -> Momentum
v_t = γ v_{t−1} + η \nabla_θ J(θ_{t−1}) \\ θ_t = θ_{t-1} − v_t
Momentum,动量法, 除了保留∇_θJ(θ_{t−1})该位置的梯度向量,同时加入v_{t−1}考虑上一次梯度向量,保证更新的梯度方向不会过分偏离上一次梯度,从而方向抖动不会很明显,前进方向由惯性动量决定,因此,γ称为动量超参。可以看出,缺陷还是很明显的,所有参数还是无法逃离共享同一个学习率的命运。

由 Momentum -> Nesterov Accelerated Gradient
v_t = \gamma v_{t−1} + \eta \nabla_θ J(θ_{t−1} - \gamma v_{t−1}) \\ θ_t = θ_{t-1} − v_t
Nesterov Accelerated Gradient,NAG加速动量法,当前位置梯度加入-γv_{t−1}近似预测未来的权重,部分RNN网络上表现良好,比Momentum震荡幅度会小,“冲坡”不至于太快 。

# NAG加速动量法
optimizer = torch.optim.SGD(model.parameters(), lr=1e-3, momentum=0.9, nesterov=True)

3.根据自动调整梯度下降方法

Adagrad(Adaptive Gradient 自适学习率应梯度下降)
n_t = n_{t-1} + g_t^2, \quad \quad [ 其中,g_t为当前梯度] \\ \Delta θ_t = - \frac{\eta}{\sqrt{n_t + \epsilon }} . g_t , \quad \quad [\epsilon防止分母为0而已]
其中,\Delta θ_t项是 θ_t 的差值,更新较频繁的θ_t累计的n_t越大,分母越大,学习率变小,从而θ_i的学习率就调小。因此,Adagrad对于更新频率较低的参数用较大的学习率,对于更新频率较高的参数用较小的学习率。

有的时候学习速率收敛的过快会导致模型在训练到局部最优解前就停止参数更新。为了解决这个问题,人们提出了RMS Prop梯度下降法
Adadelta & Rmsprop
θ_t=θ_{t−1}−\eta RMS[g]_{t−1} . g_{t−1}
优点是不需要指定学习率

Adaptive Moment Estimation(Adam)
本质是带 Momentum 的 RMSProp 方法,新手推荐该方法,万金油。

# Adam
optimizer = torch.optim.SGD(model.parameters(), lr=1e-3, momentum=0.9, nesterov=True)

几个优化器的梯度下降过程如图所示

1.优化器寻找最优点的收敛过程.gif

学习率策略

PyTorch提供的学习率调整策略分为三大类,分别是

  • 有序调整:等间隔调整(Step),按需调整学习率(MultiStep),指数衰减调整(Exponential)和余弦退火(CosineAnnealing)。
  • 自适应调整:自适应调整学习率 ReduceLROnPlateau。
  • 自定义调整:自定义调整学习率 LambdaLR。
    注:PyTorch提供的学习率调整策略, 学习率调整策略接在优化器后头即可,torch.optim.lr_scheduler为代码接口。
# 对构建的模型选择 optimizer       :: torch.optim
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
# 对optimizer选择 learning_rate   :: torch.optim.lr_scheduler
scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=500, gamma=0.9)

各类 optimizer 的原理
自适应学习率优化器伪代码
优化器推导公式
优化器文字描述推荐
优化器方法
pythorch优化器学习率写法
md符号
【Pytorch 】笔记七:优化器源码解析和学习率调整策略
【Pytorch 】笔记六:初始化与18种损失函数的源码解析
kaggle学习率示例:https://www.kaggle.com/code/isbhargav/guide-to-pytorch-learning-rate-scheduling/notebook

在MFC全局使用UDP

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容