1.当提到神经网络中的卷积时,我们通常是指由多个并行卷积组成的运算。(因为单个核只能特区一种类型的特征,我们usually希望可以在多个位置提取多个特征)
2.输入也不仅仅是实值的网格,而是由一系列观测数据的向量构成的网格。
我们有的时候会希望跳出核中的一些位置来降低计算的开销(相应的代价是提取特征没有先前那么好了)我们就把这个过程看作对全卷积函数输出的下采样(downsampling).如果只是在输出的每个方向上每间隔s个像素进行采样,那么可重新定义一个 下采样卷积函数。我们把s称为下采样卷积的步幅(stride)。
在任何卷积网络的实现中都有一个重要性质:能够隐含地对输入V用零进行填充(pad)使得它加宽。
如果没有零填充,我们iu会面临二选一的局面(网络空间宽度的快速缩减or一种小型的核)。
有三种 零填充的设定情况值得注意:
1)无论怎样都不进行零填充的极端情况,并且卷积核只允许访问那些图像中能够完全包含整个核的位置。(也称为有效卷积)
在这种情况下,输出的所有像素都是输入中相同数量像素的函数,这使得输出像素的表示更加规范。然而输出的大小在每一层都会缩减。如果输入的图像宽度是m,核的宽度是k,那么输出的宽度就会变成m-k+1.如果卷积核非常大,缩减率会非常显著。因为缩减数大于0,这限制了网络中能够包含的卷积层的层数。当层数增加时,网络的空间维度最终会缩减到1*1,这种情况下增加的层就不可能进行有意义的卷积了。
2)只进行足够的零填充来保持输出和输入具有相同的大小(相同卷积)
在这种情况下,只要硬件支持,网络就能包含任意多的卷积层,这使得卷积运算不改变下一层的结构。然而,输入像素中靠近边界的部分比中间部分相对于输出像素的影响更小,可能会导致边界像素存在一定程度的欠表示。
3)进行足够多的零填充,使得每个像素在每个方向上恰好被访问了k次,最终输出的图像的宽度是m+k-1。(全卷积)
在这种情况下,输出像素中靠近边界的部分相比于中间部分是更少像素的函数。这将导致学得一个在卷积特征映射的所有位置都表现不错的单核更为困难。
通常零填充的最优数量处于有效卷积和相同卷积之间的某个位置。
非共享卷积(unshared convolution),只是想要局部连接的网络层。(它和具有一个小核的离散卷积运算很像,但并不横跨位置来共享参数。)
平铺卷积(tiled convolution)对卷积层和局部连接进行了折衷。