我遇到了这句话,描述了CNN和DNN之间的区别:
对于图像处理而言,卷积也具有主要优点,其中彼此附近的像素彼此之间的相关性更高以用于图像检测。
和
每个CNN层都会查看图像中越来越大的部分。
然而,我无法理解这背后的想法。 CNN使用较少的连接到下一层,但是如何缩小每个层中每个节点的范围会增加下一层的范围?我误解了什么,或者这背后真的有什么想法吗?
感谢。
答案 0 :(得分:2)
就你的问题而言,这两个陈述有些不相关,听起来这是引起混淆的第二个陈述:
每个CNN层都会查看图像中越来越大的部分。
我认为这是指卷积/池化层的输入量(通常/有时)大于输出量的事实。这是怎么发生的?请参阅here中的以下图片:
输出音量中的每个“神经元”都是使用输入上的卷积运算来计算的。在示例图像中,它们具有3x3x3滤波器,该滤波器一次在输入的3x3x3窗口上操作。这导致输出中的单个值。根据他们为其示例选择的特定步幅,此过程最终创建的输出量小于输入(7x7x3对3x3x2)。请注意,卷积运算不会始终创建更小的输出(取决于填充,步幅大小等)。但是,池化层将减少输出相对于输入的大小。
这个相对减小的输出音量被传递到下一个卷积层(C2)。由于C2的输入小于原始图像,因此C2中的每个过滤器同时查看“图像”的较大部分。
这几乎就像有一个固定大小的窗口,但每次看完图像时图像都会变小 - 看起来你每次都在看越来越多的图像
我应该注意,即使输出大小永不减少,该语句也是如此。想象一下,你有一堆卷积层,输出卷总是保持相同的大小(无论出于何种原因)。输出体积中的每个单独单元格都是来自多个周围输入单元格的编码信息。当您将此输出传递给C2时,C2内核将查看输入的窗口,但输入的该部分实际上包含在先前层中从其他周围像素编码的信息。因此,当您浏览图层时,过滤器每次都会查看越来越多的周围信息