简单来说,卷积神经网路是神经网路至少有一层的矩阵乘操作替换 卷积操作(convolution)。
1、卷积操作
卷积操作常见表示形式是两个实值函数之间的操作。下面以一个简单的问题解释卷积操作。
假设我们使用激光传感器来追踪一个飞船的位置,由此得到飞船位置关于时间的函数 x ( t ) x(t) x(t)。并且传感器工作在有噪声的环境里,为了降低噪声的影响,我们将采取加权平均来给予最近测量更大的权重。假设权重函数为 w ( a ) w(a) w(a),其中 a a a 是测量发生的时间。我们得到以下公式来预测飞船位置, s ( t ) = ∫ x ( a ) w ( t − a ) d a s(t)=\int x(a)w(t-a)\,da s(t)=∫x(a)w(t−a)da上述即为卷积操作,卷积操作可以有 ∗ * ∗ 表示,则有 s ( t ) = ( x ∗ w ) ( t ) s(t)=(x*w)(t) s(t)=(x∗w)(t)。且在本例中 w w w 应为概率密度函数。在卷积神经网路中, x x x 函数为输入, w w w 为 kernal。
在实际问题中,激光传感器的时间是离散的,例如 1 秒一次采样。那么有离散形式的卷积操作, s ( t ) = ( x ∗ w ) ( t ) = ∑ a = − ∞ + ∞ x ( a ) w ( t − a ) s(t)=(x*w)(t)=\sum _{a=-\infin}^{+\infin}x(a)w(t-a) s(t)=(x∗w)(t)=a=−∞∑+∞x(a)w(t−a)在机器学习问题中,输入常是多维的。下面给出卷积操作的二维形式, S ( i , j ) = ( I ∗ K ) ( i , j ) ∑ m ∑ n I ( m , n ) K ( i − m , j − n ) S(i,j)=({I*K})(i,j)\sum_m \sum_n I(m,n)K(i-m,j-n) S(i,j)=(I∗K)(i,j)m∑n∑I(m,n)K(i−m,j−n)卷积操作是交换,这意味着上式等价于, S ( i , j ) = ( K ∗ I ) ( i , j ) ∑ m ∑ n I ( i − m , j − n ) K ( m , n ) S(i,j)=({K*I})(i,j)\sum_m \sum_n I(i-m,j-n)K(m,n) S