码迷,mamicode.com
首页 > 其他好文 > 详细

深度学习(十)训练时的调参技巧

时间:2018-08-20 19:05:15      阅读:661      评论:0      收藏:0      [点我收藏+]

标签:深度网络   大小   自动   慢慢   mgr   one   logs   sgd   log   

训练过程中需要适时的调整参数,以获得比较好的模型,下面介绍几种调参方式:

  • 参数初始化
    • 初始化参数对结果的影响至关重要,要引起重视
    • Xavier

      权重初始化太大容易发散,初始化太小容易弥散而不收敛,Xavier是让权重均值为0,方差为2/in+out,可以初始化的不大不小

    • 在深度网络中,随机初始化权重,使用SGD的话一般处理的都不好,这是因为初始化的权重太小了。
  • 优化器的选择
    • 用Adam或者AdamGrad代替SGD,可以设置较小的初始值实现自动调参数
  • learningRate调整
    • 从一个正常大小的学习率(LR)开始,朝着终点不断缩小
    • 如果大的LR容易使Loss爆掉,可以尝试先使用一个小LR保证不爆, 等loss降下来了, 再慢慢升LR, 之后当然还会慢慢再降LR
  • mini batch
    • 一般选择128,过大的minibatch容易出现过拟合,后面会介绍一下对于大batch size的训练问题
  • 梯度检查
    • 自己手动写的backward容易出现bug,可以做gradient check检查是否有错误
  • fine tune
    • 所谓fine tune就是用别人训练好的模型,加上我们自己的数据来训练新的模型。fine tune相当于使用别人的模型的前几层,来提取浅层特征,然后在最后再落入我们自己的分类中。

具体例子可以参考:http://www.cnblogs.com/xuanyuyt/p/6062204.html

深度学习(十)训练时的调参技巧

标签:深度网络   大小   自动   慢慢   mgr   one   logs   sgd   log   

原文地址:https://www.cnblogs.com/lightsun/p/9489448.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!