深度学习-05带步长的卷积

卷积中的步长:Strided convolutions

例子:用 3x3 的过滤器对 7x7 的矩阵进行卷积,得到了一个 3x3 的输出

输入和输出的维度间的关系可以用以下的方程进行表示:

 如果你有一个 n x n 大小的图像,用一个f x f大小的过滤器对这个图像进行卷积,对图像使用p层填充(padding),并假设步长为s (strided)。由于每次要移动s步长,而不是一步一步进行,所以要除以s,再加上1后得到公式。此时得到结果的维度为:

PS:如果这个分数中。分子不能被分母整除怎么办?

答:可以向下取整。这个原则实现的方式是,你只在蓝框完全包括在图像或填充完的图像内部时,才对它进行运算。如果有任意一个蓝框移动到了外面,那就不要进行相乘操作,这是一个惯例(convention)。说明3×3的过滤器必须完全处于图像中或者原图像加上填充之后的图像范围内才输出相应结果。

深度学习-05带步长的卷积_第1张图片

(这一部分可选择了解)如上图,这里有一个关于互相关(cross-correlation)卷积(convolution)的技术性建议(technical comment)。这不会影响到你构建卷积神经网络的方式,但取决于你读的是数学教材(math textbook)还是信号处理教材(signal processing textbook)。在数学教材中,(卷积之前需要另外的步骤)首先将3 x 3的过滤器沿水平和垂直轴翻转,然后再用这个翻转的过滤器(矩阵)进行元素乘积求和,而我们在视频中定义卷积运算时,跳过了这个镜像操作(mirroring operation)。从技术上讲,我们在前面视频中使用的操作,有时被称为互相关(cross-correlation)而不是卷积(convolution)。但在深度学习文献中,按照惯例,我们将(不进行翻转操作)叫做卷积操作。因此我们将在这些视频中使用这个约定。如果你读了很多机器学习文献的话,你会发现许多人都把它叫做卷积运算,不需要用到这些翻转。
 

事实证明在信号处理中或某些数学分支中,在卷积的定义包含翻转,使得卷积运算符拥有这个性质(enjoy this property),即结合律(associativity)

这一性质在信号处理领域很有用。但对深度神经网络而言,它并不重要。因此省略了这个双重镜像操作(omitting this double mirroring operation),既简化了代码,又使神经网络也能正常工作。

贴链接:卷积(convolution)与互相关(cross-correlation)比较 - IllidanStormrage - 博客园

                

你可能感兴趣的:(深度学习,cnn,python)