CNN卷积网络设计的理解点

来源:互联网 发布:skyworth怎么连接网络 编辑:程序博客网 时间:2024/05/24 13:28
1:降低特征图大小 

池化用来降低特征图大小,为避免表示瓶颈,即更有效的保存图像信息,应在池化之前增加滤波器数目。

2:低分辨率图像的识别 
对于低分辨率的图像,应降低前两层的步长,或将第一个池化层去除。

3: 大尺寸滤波器卷积分解 
GoogleNet的精度增益主要来自维度降低,这可以认为是卷积分解的特例。考虑到网络临近的激活高度相关,因此集成之前可以降维。Inception模块是全卷积的,每个权值对应一个乘法运算,进行卷积分解后可以减少参数数目进行快速训练,这样就可以增加滤波器组的大小提升精度。

4:Global Average Pooling的做法是将全连接层去掉。

全连接层的存在有两个缺点:

  • 全连接层是传统的神经网络形式,使用了全连接层以为着卷积层只是作为特征提取器来提取图像的特征,而全连接层是不可解释的,从而CNN也不可解释了
  • 全连接层中的参数往往占据CNN整个网络参数的一大部分,从而使用全连接层容易导致过拟合。

而Global Average Pooling则是在最后一层,将卷积层设为与类别数目一致,然后全局pooling,从而输出类别个数个结果

5:Data Augmentation数据增长,现在的网络中已经大量使用了。最主要的是剪裁,光照变换和水平翻转。 

6:Dropout :Dropout方法和数据增强一样,都是防止过拟合的。Dropout应该算是AlexNet中一个很大的创新,以至于Hinton在后来很长一段时间里的Talk都拿Dropout说事,后来还出来了一些变种,比如DropConnect等。 

7: ReLU激活函数 
用ReLU代替了传统的Tanh或者Logistic。好处有: 
ReLU本质上是分段线性模型,前向计算非常简单,无需指数之类操作; 
ReLU的偏导也很简单,反向传播梯度,无需指数或者除法之类操作; 
ReLU不容易发生梯度发散问题,Tanh和Logistic激活函数在两端的时候导数容易趋近于零,多级连乘后梯度更加约等于0; 
ReLU关闭了右边,从而会使得很多的隐层输出为0,即网络变得稀疏,起到了类似L1的正则化作用,可以在一定程度上缓解过拟合。 
当然,ReLU也是有缺点的,比如左边全部关了很容易导致某些隐藏节点永无翻身之日,所以后来又出现pReLU、random ReLU等改进,而且ReLU会很容易改变数据的分布,因此ReLU后加Batch Normalization也是常用的改进的方法。 

8: Local Response Normalization 
Local Response Normalization要硬翻译的话是局部响应归一化,简称LRN,实际就是利用临近的数据做归一化。这个策略贡献了1.2%的Top-5错误率。
 

9:Overlapping Pooling 
Overlapping的意思是有重叠,即Pooling的步长比Pooling Kernel的对应边要小。这个策略贡献了0.3%的Top-5错误率。

原创粉丝点击