两个关键设计
局部连接:每个神经元只看输入的一小块区域,而不是全部。对图像来说,这个假设非常自然——判断一条边缘,只需要看相邻的几个像素。
权重共享:同一个卷积核在整个图像上滑动,位置不同、用的是同一组权重。
这两个设计带来了巨大的参数节省,也带来了一个更有价值的性质:平移不变性——一只猫在图片左边还是右边,都会被同样的卷积核检测到。
它在做什么
可以把卷积网络理解成一个逐层抽象的过程:
- 浅层:检测边缘、角点、颜色块这些最基础的局部模式。
- 中层:把边缘组合成纹理和简单形状(圆、条纹)。
- 深层:把形状组合成有意义的部件(眼睛、轮子),再到完整对象。
这个层级结构并不完全是人工设计的,而是训练出来的——但它的规律性相当稳定,这也是卷积网络最漂亮的地方之一。
池化在做什么
池化层把相邻区域的信息压缩成一个值(取最大或取平均)。它的作用常被误解为「降维省算力」,但更本质的作用是用细节换取对小幅位移的鲁棒性。
池化是一种「有意的信息损失」。它丢掉了「特征具体在哪一个像素上」这种精度,换来「只要大致在这个区域就能被识别」。对分类任务这是划算的;但对需要精确定位的任务(如分割、检测),过度的池化就成了障碍——这也是后来很多架构倾向于减少池化的原因。
为什么它在图像上赢了这么久
因为它的结构假设恰好匹配图像的性质:局部相关性(相邻像素相关)、平移不变性(位置变化不改变语义)、层级组合性(复杂图案由简单图案组成)。
这也提示了一个更普遍的规律:好的网络结构,来自于对问题本身结构的理解,而不是通用的堆叠。这一点在后面 Transformer 的出现上会看得更清楚——注意力之所以有效,是因为它匹配的是「序列中任意两个位置都可能有关系」这个性质。
它的边界在哪
卷积网络的感受野是有限的(虽然可以通过堆叠和空洞卷积扩大)。它擅长捕捉局部模式,但对长距离的依赖关系处理得比较吃力——比如理解一句话里相隔很远的两个词之间的关系。
这正是注意力机制要解决的问题。
要点回顾
- 卷积网络的两个关键设计:局部连接和权重共享,带来参数节省与平移不变性。
- 它逐层抽象:浅层学边缘,中层学纹理形状,深层学部件和对象。
- 池化是有意的信息损失——用位置精度换对位移的鲁棒性。
- 它在图像上胜出的原因,是结构假设匹配了图像的局部性、平移不变性和层级组合性。
- 局限是感受野有限,对长距离依赖处理吃力,这正是注意力机制要解决的。