卷积定义

示例:一个激光传感器输出 $x(t)$,表示宇宙飞船在时刻 $t$ 的位置的观测结果。假设传感器包含噪声,则 $x(t)$ 与飞船在时刻 $t$ 的真实位置有偏离。

可以利用观测结果的均值来估计飞船的位置。假设越近的观测结果越相关,于是对最近的观测结果赋予更高的权重。

令 $w(a)$  为权重函数,其中 $a$ 表示观测结果距离当前时刻 $t$ 的间隔,则得到时刻 $t$ 飞船真实位置的估计:

$s (t) = \int x (a) w (t-a) da$

这种运算就称作卷积convolution,用符号星号  表示。

理论上  可以为任意的实值函数,但是在这个示例中要求:

- 是个有效的概率密度函数,否则 就不是一个加权平均。
- 在自变量为负数时,取值为零。否则涉及到未来函数,因为激光传感器只能输出 时刻之前的观测结果。
  1. 通常当计算机处理数据时,连续的数据会被离散化,因此时间  只能取离散值。

    假设  都是定义在整数时刻  上,则得到离散形式的卷积:

    实际操作中,因为只能存储有限的数据,所以这些函数的值在有限的点之外均为零。因此无限级数的求和最终是有限级数的求和。

  2. 在卷积神经网络中,函数  称作输入,函数  称作核函数,输出有时被称作特征图 feature map

  3. 可以对多个维度进行卷积运算。

    如果二维图像  作为输入,则需要使用二维核函数 ,卷积运算的输出为:

    其中  表示二维图像  的像素点的坐标, 表示该坐标处的像素值。

    • 通常  的尺寸较大,如  ;而  的尺寸较小,如 

    • 因为卷积是可交换的,所以可以等价写作:

      这称作翻转flip了核。

      卷积的可交换性在数学证明中有用,但是在神经网络中很少使用。

1.1.2 数学卷积与矩阵乘法

  1. 离散卷积可以视作输入矩阵与一个特殊的核矩阵的乘法。

    • 对于一维的离散卷积,核矩阵的每一行必须和上一行移动一个元素后相等。

      这种类型的矩阵叫做Toeplitz矩阵。

    • 对于二维的离散卷积,核矩阵对应着一个双重块循环矩阵。

      该矩阵大部分元素相等,且非常稀疏(几乎所有元素都为零)。

  2. 卷积运算可以转换成矩阵乘法,所以不需要对神经网络库的实现作出大的修改。

1.1.2.1 一维卷积和矩阵乘法
  1. 循环矩阵的定义:

    可以利用循环矩阵求一维卷积。

  2. 假设有两个长度分别为  和  的序列  和 , 则一维卷积为:

    卷积的长度为 。

    • 首先用 0 扩充序列 :

    • 由于用  取卷积 ,因此构造  的循环矩阵:

      这里列优先,因此第一列是完全顺序的。

    • 一维卷积为:

      其中  。

1.1.2.2 二维卷积和矩阵乘法
  1. 二维卷积:

    假设 :

    • 先将  扩充到  维:。扩充之后的新矩阵为  。其中:

    • 用  构造一个列向量  :将  的第一行转置之后将其成为  的前  个元素;接下来是第二行的转置….第  行的转置。

    • 将  中的每一行,都按照一维卷积中介绍的循环矩阵生成的方法构成一个  的循环矩阵。这些矩阵记做:  。

    • 用这些循环矩阵构造一个大的块循环矩阵:

    • 计算:  。将  的结果分配到  的各行(与构造  相反的过程),即得到二维卷积。

1.2 神经网络卷积