对池化层、ReLU函数、全连接层的理解

一、pooling层的作用
      pooling主要是在用于图像处理的卷积神经网络中,但随着深层神经网络的发展,pooling相关技术在其他领域,其他结构的神经网络中也越来越受关注。 
     卷积神经网络中的卷积层是对图像的一个邻域进行卷积得到图像的邻域特征,亚采样层就是使用pooling技术将小邻域内的特征点整合得到新的特征。pooling确实起到了整合特征的作用。 
      pooling的结果是使得特征减少,参数减少,但pooling的目的并不仅在于此。pooling目的是为了保持某种不变性(旋转、平移、伸缩等),常用的有mean-pooling,max-pooling和Stochastic-pooling三种。average对背景保留更好,max对纹理提取更好,如果是识别字体什么的,应该考虑max。因为一幅图片中,背景的变化总是连续的相对缓和的,因此average对背景保留会更好,而图像中的特征多为图像中的尖锐的区域,因此多用max。
      

         由Yann Lecun, Yoshua Bengio, Geoffery Hinto撰写的Deep Learning Review(发表在Nature)中提到了池化层能够reduce the dimensionality of the representation, create an invariance to small shifts and distortions. 池化层能够降低特征表示的维度这个很好理解,伴随来的副作用是局部特征信息的损失,想象如果池化层的filtering bank不是通常的2x2维的矩阵,而是更大维度的矩阵,用max pooling 或者average pooling,信息会损失更多,而且因为每层卷积后都跟着池化层,实际上是相当于在特征的每个提取阶段,从低级特征到中级特征再到高级特征,都有略微的信息损失,因为做了多层的pooling,而不是只做一次pooling,这也是设计上的一个trick啊.这是计算复杂度和性能的trade-off, 信息如果不损失,模型的性能当然会更好,最后得到的特征表示更全面,随着计算能力的提高,这一点也在逐渐得到缓和.
        我的理解:pooling层一方面减少了参数起到了降维的作用,降低了计算的复杂度,另一方面虽然这样做会引起信息的损失,但是我认为在一定程度上这是一个特征的提取从特殊到一般化的过程,也就提高了模型的泛化能力,这样可以更好的对图像进行分辨。

         第二个作用是具有一定程度上的平移和失真不变性,注意原文是说small shifts and distortions,我把他翻译成一定程度,这个程度我认为取决于pooling层中的filtering bank的维度大小。  

    如果人们选择图像中的连续范围作为池化区域,并且只是池化相同(重复)的隐藏单元产生的特征,那么,这些池化单元就具有平移不变性 (translation invariant)。这就意味着即使图像经历了一个小的平移之后,依然会产生相同的 (池化的) 特征。在很多任务中 (例如物体检测、声音识别),我们都更希望得到具有平移不变性的特征,因为即使图像经过了平移,样例(图像)的标记仍然保持不变。例如,如果你处理一个MNIST数据集的数字,把它向左侧或右侧平移,那么不论最终的位置在哪里,你都会期望你的分类器仍然能够精确地将其分类为相同的数字。

请注意这句话:“即使图像经历了一个小的平移之后”,这是指你的平移小于你的池化矩阵的范围。所以只有平移小于这个范围,才能保证平移不变性。 点击打开链接此链接可以更好的理解池化不变性。

二、ReLU作为激活函数的好处

最近几年卷积神经网络中,激活函数往往不选择sigmoid或tanh函数,而是选择relu函数。Relu函数的定义是:

 

Relu函数图像如下图所示:



Relu函数作为激活函数,有下面几大优势:

   稀疏性  通过对大脑的研究发现,大脑在工作的时候只有大约5%的神经元是激活的,而采用sigmoid激活函数的人工神经网络,其激活率大约是50%。有论文声称人工神经网络在15%-30%的激活率时是比较理想的。因为relu函数在输入小于0时是完全不激活的,因此可以获得一个更低的激活率。

三、全连接层

  • 参数数量太多

 

考虑一个输入1000*1000像素的图片(一百万像素,现在已经不能算大图了),输入层有1000*1000=100万节点。假设第一个隐藏层有100个节点(这个数量并不多),那么仅这一层就有(1000*1000+1)*100=1亿参数,这实在是太多了!我们看到图像只扩大一点,参数数量就会多很多,因此它的扩展性很差。

 

  • 没有利用像素之间的位置信息 

 

对于图像识别任务来说,每个像素和其周围像素的联系是比较紧密的,和离得很远的像素的联系可能就很小了。如果一个神经元和上一层所有神经元相连,那么就相当于对于一个像素来说,把图像的所有像素都等同看待,这不符合前面的假设。当我们完成每个连接权重的学习之后,最终可能会发现,有大量的权重,它们的值都是很小的(也就是这些连接其实无关紧要)。努力学习大量并不重要的权重,这样的学习必将是非常低效的。

 

  • 网络层数限制 

 

我们知道网络层数越多其表达能力越强,但是通过梯度下降方法训练深度全连接神经网络很困难,因为全连接神经网络的梯度很难传递超过3层。因此,我们不可能得到一个很深的全连接神经网络,也就限制了它的能力。


     

<img src="https://pic3.zhimg.com/50/v2-a08dae108e328b5bb0ce81ed15267e09_hd.jpg" data-rawwidth="1684" data-rawheight="954" class="origin_image zh-lightbox-thumb" width="1684" data-original="https://pic3.zhimg.com/v2-a08dae108e328b5bb0ce81ed15267e09_r.jpg">


  • 22
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值