前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >10分钟教你深度学习的调参

10分钟教你深度学习的调参

作者头像
linxinzhe
发布2018-04-10 15:16:37
3.7K0
发布2018-04-10 15:16:37
举报
文章被收录于专栏:林欣哲林欣哲

深度学习的训练方法可参见我之前的文章深度学习的训练,以下则是调参的手法及典型值。

两类需要调参的参数(parameters)

  1. 优化类的参数:学习率(learning rates)、mini batch、训练代数(epochs)
  2. 模型类的参数:隐含层数(hidden layers)、模型结构的参数(如RNN)

优化类的参数

一、学习率 Learning Rate

一个好的起点是从0.01尝试起 可选的几个常用值:

  • 0.01
  • 0.001
  • 0.0001
  • 0.00001
  • 0.000001

判断依据:验证集的误差(validation error)

常用策略:

  • 学习率衰减(learning rate)
    • 如果选用了Adam和Adagrad的作为优化器(optimizer),则他们自带了可自适应的学习率(adaptive learning rate)
二、Mini Batch

可选的常用值:1,2,4,8,16,【32】,64,128,256

推荐32比较常用。32、64、128、256都比较合适

256比较大,一次性计算的多,速度会快,但因为矩阵计算量较大,内存可能超过

小的mini batch size可能因为收敛的抖动比较厉害反而不容易卡在局部最低点 但是mini batch也不能太大,反而准确率下降。

三、Training Iterations/Epochs

要选择合适的Epochs,就可以用early stopping的方法:

  • 具体就是观察validation error上升时就early stop,但是别一看到上升就停,再观察一下,因为有可能只是暂时的现象,这时候停止反而训练会不充分

模型类的参数

一、隐含层单元数Hidden Units
  • 解决的问题的模型越复杂则用越多hidden units,但是要适度,因为太大的模型会导致过拟合
  • 可以增加Hidden Units数量直到validation error变差
  • 通常来说3层的隐含层比2层的好,但是4,5,6层再深就没什么明显效果了 ,一个例外情况是CNN
二、RNN的调参
  • RNN内参数
  1. 选择CELL类型,常用LSTM和GRU
  2. stack多少个layer,通常两层
  • 用作RNN模型前端的word embedding层的embedding数量控制在 50-200之间
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 林欣哲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 深度学习的训练方法可参见我之前的文章深度学习的训练,以下则是调参的手法及典型值。
  • 两类需要调参的参数(parameters)
    • 优化类的参数
      • 一、学习率 Learning Rate
      • 二、Mini Batch
      • 三、Training Iterations/Epochs
    • 模型类的参数
      • 一、隐含层单元数Hidden Units
      • 二、RNN的调参
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档