卷积神经网络的层数一般超过三层_卷积神经网络CNN的意义

一、选用卷积的原因局部感知简单来说,卷积核的大小一般小于输入图像的大小(如果等于则是全连接),因此卷积提取出的特征会更多地关注局部 —— 这很符合日常我们接触到的图像处理。而每个神经元其实没有必要对全局图像进行感知,只需要对局部进行感知,然后在更高层将局部的信息综合起来就得到了全局的信息。

参数共享参数共享最大的作用莫过于很大限度地减少运算量了。

多核一般我们都不会只用一个卷积核对输入图像进行过滤,因为一个核的参数是固定的,其提取的特征也会单一化。这就有点像是我们平时如何客观看待事物,必须要从多个角度分析事物,这样才能尽可能地避免对该事物产生偏见。我们也需要多个卷积核对输入图像进行卷积。

二、卷积神经网络中的参数计算举例1:

比如输入是一个32x32x3的图像,3表示RGB三通道,每个filter/kernel是5x5x3,一个卷积核产生一个feature map,下图中,有6个5x5x3的卷积核,故输出6个feature map(activation map),大小即为28x28x6。

a1bb2f4d36168abf7dd7a7945d443ec8.png
   下图中,第二层到第三层,其中每个卷积核大小为5x5x6,这里的6就是28x28x6中的6,两者需要相同,即每个卷积核的“层数”需要与输入的“层数”一致。有几个卷积核,就输出几个feature map,下图中,与第二层作卷积的卷积核有10个,故输出的第三层有10个通道。
02a7237178223d79bfb1983dedf8a9b8.png

举例2:

NxN大小的输入(暂时不考虑通道数),与FxF大小的卷积核(暂时不考虑个数)做卷积,那么输出大小为多大?计算公式为:(N - F) / stride + 1,其中stride为做卷积是相邻卷积核的距离。

e16bc5aa40f41b873d304864757c0f2d.png

举例3:

当输入为7x7大小,卷积核为3x3,stride=1,在7x7周围补上一圈0(pad=1个像素),那么输出大小为多大?

是7x7。

4e4b30aafbb013fbb7b82e3bbbb914d7.png

举例3:

   输入为32x32x3,卷积核大小为5x5,总共有10个卷积核,做卷积的时候stride=1,pad=2,那么这一层总共含有多少参数?   每个卷积核含有的参数个数为:5*5*3 + 1 = 76,其中1是偏置bias,由于有10个卷积核,故总参数为76*10=760。
2d93403aa40f2a2ae878c06c6bf3f412.png

总结:

dc558483c24b523029413907e4dc7588.png

其中,卷积核的数量K一般是2的整数次幂,这是因为计算方便(计算机计算2^n比较快)

关于池化层的参数计算:

78d166f47e0a8fd8b8347e5a0de23753.png
61883c2f4a481e3eb3264dd56117f0bd.png
1c1b56c0cef9a10dfb0f88991c91e171.png

Pooling 的意义,主要有两点:

其中一个显而易见,就是减少参数。通过对 Feature Map 降维,有效减少后续层需要的参数。另一个则是 Translation Invariance。它表示对于 Input,当其中像素在邻域发生微小位移时,Pooling Layer 的输出是不变的。这就使网络的鲁棒性增强了,有一定抗扰动的作用。参考:

三、边界填充问题卷积操作有两个问题:

  1. 图像越来越小;
  2. 图像边界信息丢失,即有些图像角落和边界的信息发挥作用较少。因此需要padding。

卷积核大小通常为奇数一方面是为了方便same卷积padding对称填充,左右两边对称补零;n+2p-f+1=np=(f-1)/2另一方面,奇数过滤器有中心像素,便于确定过滤器的位置。

两种padding方式:"same"/"valid"

59607e02c0a6bb42c071188633ad4f74.png

“VALID”只会丢弃最右边无法扫描到的列(或者最底部无法扫描到的列)。

“SAME”试图在左右添加padding,但如果列添加的数量是奇数,则将额外的添加到右侧(即保持双数时,左右padding相通,偶数时,右侧/底部 比 左侧/顶部 多1),在垂直方向同理)。

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页