晚上偶然有兴致,搜索了一下卷积神经网络的注意事项,搜到了一篇好文,与大家共享,写的挺好,很有感触:
原文链接:卷积神经网络的一些细节
感谢原作者的分享。
结合文献『Deep Learning for Computer Vision』, 以下讲讲卷积神经网络的一些注意点和问题。
激励函数
激励函数,要选择非线性函数,譬如tang,sigmoid,rectified liner。在CNN里,relu用得比较多,原因在于:(1)简化BP计算;(2)使学习更快。(3)避免饱和问题(saturation issues)
池化(Pooling)
其作用在于(1)对一些小的形态改变保持不变性,Invariance to small transformations;(2)拥有更大的感受域,Larger receptive fields。pooling的方式有sum or max
Normalization
Equalizes the features maps。它的作用有:(1) Introduces local competition between features;(2)Also helps to scale activations at each layer better for learning;(3)Empirically, seems to help a bit (1–2%) on ImageNet
*训练CNN
back-propagation;stochastic gradient descent;Momentum;Classification loss,cross-entropy;Gpu实现。
预处理
Mean removal;Whitening(ZCA)
增强泛化能力
Data augmentation;Weight正则化;在网络里加入噪声,包括DropOut,DropConnect,Stochastic pooling。
DropOut:只在全连接层使用,随机的将全连接层的某些神经元的输出置为0。
DropConnect:也只在全连接层使用,Random binary mask on weights.
Stochastic Pooling:卷积层使用。Sample location from multinomial。模型不work,怎么办
结合我自身的经验,learning rate初始值设置得太大,开始设置为0.01,以为很小了,但实际上0.001更合适。