神经网络模型训练
Posted btschang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络模型训练相关的知识,希望对你有一定的参考价值。
神经网络的超参数有:
1. 学习率
2. 迭代次数 iteration
3. 隐藏层数 L
4. 激活函数
5. momentum
6. mini batch
7. 正则化参数
……
1. 看training集的误差 考虑 1.是否需要加深网络 2.加长训练时间 3.尝试更先进的optimize算法 4.更合适的新网络架构
2. 看testing集的误差(判断是否过拟合)考虑1.采用更多数据训练(数据增强flp,rotation) 2.正则化(使用测试集来尝试不同的正则化参数,寻找最好的参数lamd)3.更合适的网络架构
1.为什么L2正则化可以减少过拟合:1. lamda大,导致w小,简化了网络 2.w小,输出z 小,激活函数接近线性,网络简化
2. 关于inverted dropout 在某一层中,以概率p保留部分a值,而将(1-p)的a值清为0,最后对得到的a值做rescale操作 即a=a/p
对dropout的理解:由于每次训练时,每一层消除的单元是不同的,在cost function的约束下,dropout倾向于不依赖某一个节点(因为该节点很有可能在下一次训练中消除),所以dropout会将将权重压缩,均匀地分配给该层的每一个unit,即每一层的权重w的L2范数||w||2变小了。这和L2正则化的原理是相似的。
关于梯度消失和梯度爆炸:
sigmoid 函数和他的导数,导数最大不会超过0.2 因此会发生梯度消失问题,对于tahn() 也是一样
tanh()和他的导数图,导数最大也不会超过1,也会发生梯度消失问题
深度网络的退化问题 https://blog.csdn.net/u014665013/article/details/81985082
退化问题,网络层数增加,但是在训练集上的准确率却饱和甚至下降了。这个不能解释为overfitting,因为overfit应该表现为在训练集上表现更好才对。退化问题说明了深度网络不能很简单地被很好地优化。
以上是关于神经网络模型训练的主要内容,如果未能解决你的问题,请参考以下文章