我们经常听到卷积神经网络(CNN),即“Convolutional Neural Networks”。那么,卷积操作是什么?卷积的一般定义是什么?在神经网络中,卷积操作是如何实现的?
卷积操作:基础定义
卷积的基础定义源于数学分析。即,将两个实变函数$f$和$g$,通过“卷积”来得到第三个实变函数$h$。在两个函数之间移动一个函数$f$,对应于另一个函数$g$ “卷积”后的函数$h$。卷积的本质是两个函数重叠部分的积分。在离散区间$[0, T]$上的函数$f(t)$和$g(t)$,可以定义卷积操作如下:
$$ (f * g)(t) = \int_0^t f(\tau) g(t - \tau) d\tau $$
卷积操作: 神经网络实现
在神经网络中,卷积的实现方式与上文的定义不同。卷积发生在神经网络的卷积层中,通过使用滤波器实现。在卷积层中,一个滤波器不仅可以准确地被描述为一个特定大小的图像块,还可以在该输入的“特征图”上移动。滤波器权重矩阵对应于数学定义中的$g(t)$。输入的“特征图”对应于数学定义中的$f(t)$。
换句话说,卷积层将一组滤波器应用于输入数据,并在输入数据的所有位置返回该滤波器的运算结果。然后,对所有滤波器的运算结果进行统计,形成最后的输出。
神经网络的“卷积”操作实际上是跨步子卷积(stride convolution)和补零卷积(zero-padding convolution)两种操作的组合。补零卷积可使输出与输入数据的大小相同,而跨度卷积可使输出与输入数据的大小不同。
认知神经科学视角下的卷积神经网络
从认知神经科学的角度出发,卷积神经网络是为了更好模拟视觉皮层的神经元而生的。简单来说,视觉皮层中一个神经元所感受的视野范围是有限的。那么,当一个视觉刺激经过眼睛传入,被视觉皮层的神经元感受时,就会对应出视觉皮层上局部位置的神经元群,这些神经元群中的每个神经元都只感受局部区域的信息,却可以汇聚成一个局部视觉特征,这种局部特征又可以组合成更高层次的认知。
卷积神经网络中通过使用卷积核,也即滤波器,实现了类似于视觉皮层中神经元各自感受局部信息并汇聚成新的局部特征的过程。换而言之,CNN是对这种感受视野范围有限的视觉神经元的生物仿生。因此,CNN被广泛应用于以图像或视频为数据的机器学习任务。这些任务中,CNN能很好地提取和分析图像中和视觉有关的信息,并对其进行处理和预测。
总结:
本文解析卷积神经网络中的卷积操作,从定义信号处理和神经网络的两个角度来介绍卷积的基本原理。同时,我们从认知神经科学角度出发,解释卷积神经网络的设计思路和特性,以更好地理解神经网络模型的本质。