*学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

• 神经网络的学习能力受神经元数目以及神经网络层次的影响,神经元数目越大,神经网络层次越高,那么神经网络的学习能力越强,那么就有可能出现过拟合的问题
• Regularization:正则化,通过降低模型的复杂度,通过在cost函数上添加一个正则项的方式来降低overfitting,主要有L1和L2两种方式
Dropout:通过随机删除神经网络中的神经元来解决overfitting问题,在每次迭代的时候,只使用部分神经元训练模型获取W和d的值。
• 一般情况下,对于同一组训练数据,利用不同的神经网络训练之后,求其输出的平均值可以减少overfitting。Dropout就是利用这个原理,每次丢掉一半左右的隐藏层神经元,相当于在不同的神经网络上进行训练,这样就减少了神经元之间的依赖性,即每个神经元不能依赖于某几个其它的神经元(指层与层之间相连接的神经元),使神经网络更加能学习到与其它神经元之间的更加健壮robust(鲁棒性)的特征。另外Dropout不仅减少overfitting,还能提高准确率。
• 正则化是通过给cost函数添加正则项的方式来解决overfitting,Dropout是通过直接修改神经网络的结构来解决overfitting

卷积神经网络中dropout层加在哪儿 卷积神经网络 dropout_卷积神经网络中dropout层加在哪儿


池化层误差反向传播

Maxpool 池化层反向传播,除最大值处继承上层梯度外,其他位置置零。

卷积神经网络中dropout层加在哪儿 卷积神经网络 dropout_神经网络_02


卷积神经网络中dropout层加在哪儿 卷积神经网络 dropout_数据_03

Maxpool 池化层反向传播,除最大值处继承上层梯度外,其他位置置零。

平均池化,我们需要把残差平均分成2*2=4份,传递到前边小区域的4个单元即可。

误差反向传播前

卷积神经网络中dropout层加在哪儿 卷积神经网络 dropout_cnn_04


误差反向传播后

卷积神经网络中dropout层加在哪儿 卷积神经网络 dropout_数据_05

局部响应归一化( LRN )

局部响应归一化层的建立是模仿生物神经系统的临近抑制机制,对局部神经元的活动创建竞争机制,使得局部响应比较大的值相对更大,这样更能凸显需要的特征,提高模型泛化能力。 LRN一般是在激活、池化后进行的一中处理方法。用 表示经过激活函数后的输出值,对于第j 个卷积核经过激活函数输出的神经元激活值 ,选取临近的n个卷积核卷积后的输出值,将它们在同一个位置上卷积后激活函数的输出值进行求和。其中(x,y) 就代表特征层的坐标位置,i,j就代表不同的卷积核,N为总卷积核数目,k ,a, 和β都是超参数,由验证数据集决定,一般取k =2,a =10-4 , β = 0.75,具体的如下:

卷积神经网络中dropout层加在哪儿 卷积神经网络 dropout_数据_06

数据增强(Data augmentation)
增加训练数据,则能够提升算法的准确率,因为这样可以避免过拟合,而避免了过拟合你就可以增大你的网络结构了。当训练数据有限的时候,可以通过一些变换来从已有的训练数据集中生成一些新的数据,来扩大训练数据。数据增强的方法有:
1)水平翻转
2)随机裁剪
如原始图像大小为256256,随机裁剪出一些图像224224的图像。如下图,红色方框内为随机裁剪出的224*224的图片。 AlexNet 训练时,对左上、右上、左下、右下、中间做了5次裁剪,然后翻转,得到10张裁剪的图片。防止大网络过拟合(under ubstantial overfitting)。
3)fancy PCA
在训练集像素值的RGB颜色空间进行PCA, 得到RGB空间的3个主方向向量,3个特征值, p1, p2, p3, λ1, λ2, λ3. 对每幅图像的每个像素加上如下的变化:

卷积神经网络中dropout层加在哪儿 卷积神经网络 dropout_卷积神经网络中dropout层加在哪儿_07