《深度学习》 第11章 实践方法论

《深度学习》 第11章 实践方法论

要成功地使用深度学习技术,仅仅知道存在哪些算法和解释他们为何有效的原理是不够的。

一个优秀的机器学习实践者还需要知道如何针对具体应用挑选一个合适的算法以及如何监控,并根据实验反馈改进机器学习系统。在机器学习系统的日常开发中,实践者需要决定是否收集更多的数据、增加或减少模型容量、添加或删除正则化项、改进模型的优化、改进模型的近似推断或调试模型的软件实现。尝试这些操作都需要大量时间,因此确定正确做法,而不盲目猜测尤为重要的。

在实践中,正确使用一个普通算法通常比草率地使用一个不清楚的算法效果更好。

建议参考以下几个实践设计流程:

  • 确定目标——使用什么样的误差度量,并为此误差度量指定目标值。这些目标和误差度量取决于该应用旨在解决的问题。
  • 尽快建立一个端到端的工作流程,包括估计合适的性能度量。
  • 搭建系统,并确定性能瓶颈。检查哪个部分的性能差于预期,以及是否是因为过拟合、欠拟合,或者数据或软件缺陷造成的。
  • 根据具体观察反复地进行增量式的改动,如收集新数据、调整超参数或改进算法。

性能度量

默认的基准模型

具有衰减学习率以及动量的SGD是优化算法一个合理的选择

另一个非常合理的选择是Adam算法。批标准化对优化性能有着显著的影响,特别是对卷积网络和具有sigmoid非线性函数的网络而言。

除非训练集包含数千万以及更多的样本,否则项目应该在一开始就包含一些温和的正则化。

决定是否收集更多数据

收集更多的数据往往比改进学习算法有用得多。

一般过拟合时倾向于收集数据

建议在对数尺度上考虑训练集的大小,例如在后续的试验中倍增样本数目

选择超参数

手动调整超参数

手动搜索超参数的主要目标是调整模型的有效容量以匹配任务的复杂性。

有效容量受限于三个因素:模型的表示容量、学习算法成功最小化训练模型代价函数的能力以及代价函数和训练过程正则化模型的程度。

学习率可能是最重要的超参数。

超参数容量何时增加原因注意事项
隐藏单元数量增加增加隐藏单元数量会增加模型的表示能力几乎模型每个操作所需的时间和内存代价都会随隐藏单元数量的增加而增加
学习率调至最优不正确的学习速率,不管是太高还是太低都会由于优化失败而导致低有效容量的模型
卷积核宽度增加增加卷积核宽度会增加模型的参数数量较宽的卷积核导致较窄的输出尺寸,除非使用隐式零填充减少此影响,否则会降低模型容量。较宽的卷积核需要更多的内存存储参数,并会增加运行时间,但较窄的输出会降低内存代价。
隐式零填充增加在卷积之前隐式添加零能保持较大尺寸的表示大多数操作的时间和内存代价会增加。
权重衰减系数降低降低权重衰减系数使得模型参数可以自由地变大。
Dropout比率降低较少地丢弃单元可以更多地让单元彼此协力来适应训练集。

实践中能够确保学习有效的暴力方法就是不断提高模型容量和训练集的大小,直到解决问题

自动超参数优化算法

网格搜索

在超参数是数值(有序)的情况下,每个列表的最小和最大的元素可以基于先前相似实验的经验保守地挑选出来,以确保最优解非常可能在所选范围内。通常,网格搜索大约会在 对数尺度(logarithmic scale)下挑选合适的值

通常重复迭代进行网格搜索时,效果会最好。

随机搜索

相比于网格搜索,随机搜索能够更快地减小验证集误差(就每个模型运行的试验数而言)。

随机搜索能比网格搜索更快地找到良好超参数的原因是,没有浪费的实验,不像网格搜索有时会对一个超参数的两个不同值(给定其他超参数值不变)给出相同结果。

基于模型的超参数优化

大部分基于模型的超参数搜索算法,都是使用贝叶斯回归模型来估计每个超参数的验证集误差期望和该期望的不确定性。

调试策略

在大多数情况下,我们不能提前知道算法的行为。

另一个难点是,大部分机器学习模型有多个自适应的部分。

一些重要的调试检测如下所列:

  • 可视化计算中模型的行为
  • 可视化最严重的错误
  • 根据训练和测试误差检测软件
  • 拟合极小的数据集
  • 比较反向传播导数和数值导数
  • 监控激活函数值和梯度的直方图

示例:多位数字识别

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值