Fork me on GitHub

神经网络CNN训练心得--调参经验

1.样本要随机化,防止大数据淹没小数据

2.样本要做归一化。关于归一化的好处请参考:为何需要归一化处理
3.激活函数要视样本输入选择(多层神经网络一般使用relu)
4.mini batch很重要,几百是比较合适的(很大数据量的情况下)
5.学习速率(learning rate)很重要,比如一开始可以lr设置为0.01,然后运行到loss不怎么降的时候,学习速率除以10,接着训练
6.权重初始化,可用高斯分布乘上一个很小的数,这个可以看:权值初始化
7.Adam收敛速度的确要快一些,可结果往往没有sgd + momentum的解好(如果模型比较复杂的话,sgd是比较难训练的,这时候adam的威力就体现出来了
8.Dropout的放置位置以及大小非常重要
9.early stop,发现val_loss没更新,就尽早停止

另:心得体会
深度学习真是一门实验科学,很多地方解释不了为什么好,为什么不好。
网络层数、卷积核大小、滑动步长,学习速率这些参数的设置大多是通过已有的架构来做一些微调



参考:知乎讨论 https://www.zhihu.com/question/41631631
posted @ 2016-08-07 21:29  程序优化  阅读(442)  评论(0编辑  收藏  举报