Press "Enter" to skip to content

深度学习调参有哪些技巧

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

深度学习调参有哪些技巧

 

一、当网络出了问题时调整网络的技巧:

 

分析视觉领域中的深度学习模型的手段通常就是对比实验&可视化

 

通过可视化网络:非常重要, 但是不在如何训练这块, 而是帮助理解网络的原理这块. 理解网络原理后, 你才能在设计结构的时候心里有感觉(只是有感觉而已), 网络出了问题, 或者在某些情况下不满意, 有更好的直觉去调整。(没错, 只是直觉, 虽然有些情况下的调整从网络原理来看逻辑上应该可以工作, 但是人家就是不工作, 你能咬机器去幺?)

 

具体参考以下方法: http://tech.sina.com.cn/roll/2017-03-24/doc-ifycsukm3483430.shtml

 

二、怎样训练一个不错的网络呢

 

1.刚开始, 先上小规模数据, 模型往大了放, 只要不爆显存, 能用256个filter你就别用128个. 直接奔着过拟合去(造成过拟合的原因:a.数据太少,导致无法描述问题的真实分布; b.参数太多,模型就会变得复杂,拟合数据分布的能力就强,复杂模型就会过度的去拟合训练集所刻画的分布)没错, 就是训练过拟合网络, 连测试集验证集这些都可以不用.

 

2. Loss设计要合理. 一般来说 分类就是Softmax, 回归就是L2的loss ,然后还要注意loss的错误范围不要太大,太大的话结果会是nan。你预测一个label是10000的值, 模型输出0, 你算算这loss多大, 这还是单变量的情况下。 所以不仅仅输入要做normalization, 输出也要这幺弄。 然后就是 多任务情况下, 各loss想法限制在一个量级上 , 或者最终限制在一个量级上, 初期可以着重一个任务的loss

 

3. 观察loss胜于观察准确率

 

4. 确认分类网络是否学习充分,分类网络就是学习类别之间的界限. 你会发现, 网络就是慢慢的从类别模糊到类别清晰的. 怎幺发现? 看Softmax输出的概率的分布 , 如果是二分类, 你会发现, 刚开始的网络预测都是在0.5上下, 很模糊. 随着学习过程, 网络预测会慢慢的移动到0,1这种极值附近. 所以, 如果你的网络预测分布靠中间, 再学习学习.

 

5. Learning Rate设置合理:太大: loss爆炸, 或者nan。太小: 半天loss没反映。需要进一步降低了: loss在当前LR下一路降了下来, 但是半天不再降了。如果上面的Loss设计那块你没法合理, 初始情况下容易爆, 先上一个小LR保证不爆, 等loss降下来了, 再慢慢升LR, 之后当然还会慢慢再降LR。 LR在可以工作的最大值下往小收一收, 免得ReLU把神经元弄死了(这是因为如果梯度太大,而学习率又不小心设置得太大的时候,就会导致权重一下子更新过多,就有可能出现这种情况:举个例子:y = 3 x + 1,权重W=3,如果更新的步长很大,例如 ΔW = -100,那幺就变成了 y=-97x+1了,有可能出现训练集中所有的样本经过这个映射,都变成小于 0 的数了,会使得ReLU把神经元弄死了)

 

参考链接: https://www.zhihu.com/question/67151971/answer/434079498

 

6. 对比训练集和验证集的loss,判断过拟合, 训练是否足够, 是否需要early stop的依据

 

7. 清楚receptive field的大小,这个对效果的影响还是很显着的. 特别是用FCN, 大目标需要很大的receptive field

 

参考链接:

https://www.zhihu.com/question/25097993

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。