没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
第
十
四
章
超
参
数
调
整
14.1 写在前面
14.2 超参数概念
14.2.1 什么是超参数,参数和超参数的区别?
14.2.2 神经网络中包含哪些超参数?
14.2.3 为什么要进行超参数调优?
14.2.4 超参数的重要性顺序
14.2.5 部分超参数如何影响模型性能?
14.2.6 部分超参数合适的范围
14.3 网络训练中的超参调整策略
14.3.1 如何调试模型?
14.3.2 为什么要做学习率调整?
14.3.3 学习率调整策略有哪些?
14.3.4 极端批样本数量下,如何训练网络?
14.4 合理使用预训练网络
14.4.1 什么是微调(ne-tune)
14.4.2 微调有哪些不同方法?
14.4.3 微调先冻结底层,训练顶层的原因?
14.4.4 不同的数据集特性下如何微调?
14.4.4 目标检测中使用预训练模型的优劣?
14.4.5 目标检测中如何从零开始训练(train from scratch)?
14.5 如何改善 GAN 的性能
14.6 AutoML
14.6.1 什么是AutoML?
14.6.2 自动化超参数搜索方法有哪些?
14.6.3 什么是神经网络架构搜索(NAS)
14.6.4 NASNet的设计策略
14.6.5 网络设计中,为什么卷积核设计尺寸都是奇数
14.6.6 网络设计中,权重共享的形式有哪些,为什么要权重共享
第十四章 超参数调整
Markdown Revision 1;
Date: 2018/10/25
Editor:
乔
成
磊
-
同
济
大
学
,
王
超
锋
Contact: qchl0318@163.com
,
syusuke0516@163.com
Updater: sjsdfg
,
王
超
锋
14.1
写
在
前
面
关于训练深度学习模型最难的事情之一是你要处理的参数的数量。无论是从网
络本身的层宽(宽度)、层数(深度)、连接方式,还是损失函数的超参数设计
和调试,亦或者是学习率、批样本数量、优化器参数等等。这些大量的参数都会
有网络模型最终的有效容限直接或者间接的影响。面对如此众多的参数,如果我
们要一一对其优化调整,所需的无论是时间、资源都是不切实际。结果证实一些
超参数比其它的更为重要,因此认识各个超参数的作用和其可能会造成的影响是
深度学习训练中必不可少的一项重要技能。
超参数调整可以说是深度学习中理论和实际联系最重要的一个环节。目前,深
度学习仍存在很多不可解释的部分,如何设计优化出好的网络可以为深度学习理
论的探索提供重要的支持。超参数调整一般分为手动调整和自动优化超参数两
种。读者可先浏览思维导图,本章节不会过多阐述所有超参数的详细原理,如果
需要了解这部分,您可以翻阅前面的基础章节或者查阅相关文献资料。当然,下
面会讲到的一些超参数优化的建议是根据笔者们的实践以及部分文献资料得到认
知建议,并不是非常严格且一定有效的,很多研究者可能会很不同意某些的观点
或有着不同的直觉,这都是可保留讨论的,因为这很依赖于数据本身情况。
14.2
超
参
数
概
念
14.2.1 什么是超参数,参数和超参数的区别?
区分两者最大的一点就是是否通过数据来进行调整,模型参数通常是有数据来
驱动调整,超参数则不需要数据来驱动,而是在训练前或者训练中人为的进行调
整的参数。例如卷积核的具体核参数就是指模型参数,这是有数据驱动的。而学
习率则是人为来进行调整的超参数。这里需要注意的是,通常情况下卷积核数
量、卷积核尺寸这些也是超参数,注意与卷积核的核参数区分。
14.2.2 神经网络中包含哪些超参数?
通常可以将超参数分为三类:网络参数、优化参数、正则化参数。
网络参数:可指网络层与层之间的交互方式(相加、相乘或者串接等)、卷积
核数量和卷积核尺寸、网络层数(也称深度)和激活函数等。
优化参数:一般指学习率(learning rate)、批样本数量(batch size)、不
同优化器的参数以及部分损失函数的可调参数。
正则化:权重衰减系数,丢弃比率(dropout)
14.2.3 为什么要进行超参数调优?
本质上,这是模型优化寻找最优解和正则项之间的关系。网络模型优化调整的
目的是为了寻找到全局最优解(或者相比更好的局部最优解),而正则项又希望
模型尽量拟合到最优。两者通常情况下,存在一定的对立,但两者的目标是一致
的,即最小化期望风险。模型优化希望最小化经验风险,而容易陷入过拟合,正
则项用来约束模型复杂度。所以如何平衡两者之间的关系,得到最优或者较优的
解就是超参数调整优化的目的。
14.2.4 超参数的重要性顺序
首先,
学
习
率
,
损
失
函
数
上
的
可
调
参
数
。在网络参数、优化参数、
正则化参数中最重要的超参数可能就是学习率了。学习率直接控制着
训练中网络梯度更新的量级,直接影响着模型的
有
效
容
限
能
力
;损失
函数上的可调参数,这些参数通常情况下需要结合实际的损失函数来
调整,大部分情况下这些参数也能很直接的影响到模型的的有效容限
能力。这些损失一般可分成三类,第一类辅助损失结合常见的损失函
数,起到辅助优化特征表达的作用。例如度量学习中的Center loss,
通常结合交叉熵损失伴随一个权重完成一些特定的任务。这种情况下
一般建议辅助损失值不高于或者不低于交叉熵损失值的两个数量级;
第二类,多任务模型的多个损失函数,每个损失函数之间或独立或相
关,用于各自任务,这种情况取决于任务之间本身的相关性,目前笔
者并没有一个普适的经验由于提供参考;第三类,独立损失函数,这
类损失通常会在特定的任务有显著性的效果。例如RetinaNet中的
focal loss,其中的参数γ,α,对最终的效果会产生较大的影响。这类
损失通常论文中会给出特定的建议值。
其次,
批
样
本
数
量
,
动
量
优
化
器
(
Gradient Descent with
Momentum
)
的
动
量
参
数
β。批样本决定了数量梯度下降的方向。过
小的批数量,极端情况下,例如batch size为1,即每个样本都去修正
一次梯度方向,样本之间的差异越大越难以收敛。若网络中存在批归
一化(batchnorm),batch size过小则更难以收敛,甚至垮掉。这是
因为数据样本越少,统计量越不具有代表性,噪声也相应的增加。而
过大的batch size,会使得梯度方向基本稳定,容易陷入局部最优解,
降低精度。一般参考范围会取在[1:1024]之间,当然这个不是绝对
的,需要结合具体场景和样本情况;动量衰减参数β是计算梯度的指数
加权平均数,并利用该值来更新参数,设置为 0.9 是一个常见且效果
不错的选择;
最后,Adam
优
化
器
的
超
参
数
、
权
重
衰
减
系
数
、
丢
弃
法
比
率
(
dropout
)
和
网络
参
数
。在这里说明下,这些参数重要性放在最后
并
不
等
价
于
这
些
参
数
不
重
要
。而是表示这些参数在大部分实践中
不
建
议
过
多
尝
试
,例如Adam优化器中的β1
,
β2
,
ϵ,常设为 0.9、0.999、
10−8就会有不错的表现。权重衰减系数通常会有个建议值,例如
0.0005 ,使用建议值即可,不必过多尝试。dropout通常会在全连接
层之间使用防止过拟合,建议比率控制在[0.2,0.5]之间。使用dropout
时需要特别注意两点:一、在RNN中,如果直接放在memory cell中,
循环会放大噪声,扰乱学习。一般会建议放在输入和输出层;二、不
建议dropout后直接跟上batchnorm,dropout很可能影响batchnorm
计算统计量,导致方差偏移,这种情况下会使得推理阶段出现模型完
全垮掉的极端情况;网络参数通常也属于超参数的范围内,通常情况
下增加网络层数能增加模型的容限能力,但模型真正有效的容限能力
还和样本数量和质量、层之间的关系等有关,所以一般情况下会选择
先固定网络层数,调优到一定阶段或者有大量的硬件资源支持可以在
网络深度上进行进一步调整。
剩余18页未读,继续阅读
刘璐璐璐璐璐
- 粉丝: 32
- 资源: 326
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0