赞
踩
神经网络的学习能力受神经元数目以及神经网络层次的影响,神经元数目越大,神经网络层次越高,那么神经网络的学习能力越强,那么就有可能出现过拟合的问题;(通俗来讲:神经网络的空间表达能力变得更紧丰富了)
Regularization:正则化,通过降低模型的复杂度,通过在cost函数上添加一个正则项的方式来降低overfitting,主要有L1和L2两种方式
Dropout:通过随机删除神经网络中的神经元来解决overfitting问题,在每次迭代的时候,只使用部分神经元训练模型获取W和d的值,参考:
《Dropout: A Simple Way to Prevent Neural Networks from Overfitting》
http://www.cs.toronto.edu/~rsalakhu/papers/srivastava14a.pdf
一般情况下,对于同一组训练数据,利用不同的神经网络训练之后,求其输出的平均值可以减少overfitting。Dropout就是利用这个原理,每次丢掉一半左右的隐藏层神经元,相当于在不同的神经网络上进行训练,这样就减少了神经元之间的依赖性,即每个神经元不能依赖于某几个其它的神经元(指层与层之间相连接的神经元),使神经网络更加能学习到与其它神经元之间的更加健壮robust(鲁棒性)的特征。另外Dropout不仅减少overfitting,还能提高准确率。
正则化是通过给cost函数添加正则项的方式来解决overfitting,Dropout是通过直接修改神经网络的结构来解决overfitting
一般都可以使用Dropout解决过拟合问题
回归算法中使用L2范数相比于Softmax分类器,更加难以优化
对于回归问题,首先考虑是否可以转化为分类问题,比如:用户对于商品的评分,
可以考虑将得分结果分成1~5分,这样就变成了一个分类问题。
如果实在没法转化为分类问题的,那么使用L2范数的时候要非常小心,比如在
L2范数之前不要使用Dropout。
一般建议使用L2范数或者Dropout来减少神经网络的过拟合。
和一般的机器学习算法一样,需要先定义Loss Function,衡量预测值和实际值之间的误差,一般使用平方和误差公式
找到最小损失函数的W和b的值,CNN中常使用的是SGD
其实就是一般深度学习中的BP算法;SGD需要计算W和b的偏导,BP算法就是计算偏导用的,BP算法的核心是求导链式法则。
在神经网络中一般采用Mini-batch SGD,主要包括以下四个步骤的循环:
使用BP算法逐级求解出ΔW和Δd的值
根据SGD(随机梯度下降),迭代更新W和b
Maxpool 池化层反向传播,除最大值处继承上层梯度外,其他位置置零。
Maxpool 池化层反向传播,除最大值处继承上层梯度外,其他位置置零。
平均池化,我们需要把残差平均分成2*2=4份,传递到前边小区域的4个单元即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。