← 深度学习地图
CORE PATH · 02

CNN:从像素到类别

卷积神经网络(Convolutional Neural Network, CNN)的核心不是“层很多”,而是局部连接、权重共享和逐层提取特征。先理解整条图像流水线,再记输出尺寸与参数量。

一张图把 CNN 全部串起来

Image输入图片,由像素组成
滤波器(Filter)局部连接,检测边缘、纹理、形状
Shared Weights同一个 Filter 扫完整张图
特征图(Feature Map)记录特征在各位置的响应
池化(Pooling)压缩尺寸,提高一定的平移鲁棒性
Repeat重复多层,提取更高级特征
Fully Connected汇总特征并输出 logits
Softmax转成类别概率,给出预测
一句话:用很多小滤波器在图片上滑动,逐层提取从边缘、纹理到物体的高级特征,最后完成分类。

为什么 CNN 比全连接参数少?

Local

局部连接

一个神经元只看输入的一小块区域,不需要与整张图片的每个像素相连。

Shared

权重共享

同一个 Filter 在不同位置复用同一组权重,检测“同一种特征是否出现在这里”。

Detector

Filter 是什么?

一个可学习的特征检测器,用来识别边缘、纹理、形状等局部特征。

Feature Map

Filter 与各局部区域计算后得到的二维响应图。数值越大,表示该位置越像 Filter 要找的特征。

Pooling

不学习参数,只负责降采样、减小尺寸,并增强一定的平移鲁棒性;它会牺牲部分精确位置信息。

公式一:卷积输出尺寸

Output = 1 + (N + 2P − F) / SN = 输入大小 · F = Filter 大小 · P = Padding · S = Stride
INTERACTIVE REVIEW

代入参数,立即计算

Output = 28 × 28
考试检查:如果 (N + 2P − F) 不能被 S 整除,要根据题目框架的 floor 规则判断;基础题通常给出可整除数字。

从 Output 到 Neurons、Parameters 与 Connections

① Output size

\[H_{out}=\frac{N-F+2P}{S}+1\]

若高宽参数不同,分别计算。

② Neurons

\[H_{out}W_{out}C_{out}\]

一个 filter 产生一张 feature map,所以必须乘 filter 数。

③ Independent parameters

\[(F_hF_wC_{in}+1)C_{out}\]

每个 filter 只有一组共享权重;\(+1\) 是该 filter 的 bias。Each filter has one shared set of weights; \(+1\) is that filter's bias.

④ Connections

\[(F_hF_wC_{in})\times\text{neurons}\]

连接很多但参数少,因为空间位置之间共享参数。若题目把 bias 也算作连接,需按题目约定额外加每个 neuron 的 bias connection。

例子:20×20×4 输入,8×8 filter,stride 1,16 filters计算结果
空间输出(20 − 8) / 1 + 113 × 13
Neurons13 × 13 × 162704
Parameters(8 × 8 × 4 + 1) × 164112
Connections(不含 bias)(8 × 8 × 4) × 2704692224
最大坑:neurons 不是 \(H\times W\),而是 \(H\times W\times\text{filters}\);parameters 也不随空间位置重复计算,因为同一个 filter 权重被共享。Common trap: neurons are not \(H\times W\), but \(H\times W\times\text{filters}\). Parameters are not recounted at every spatial position because filter weights are shared.

ResNet 与 DenseNet:一个 ADD,一个 CONCAT

RESNET = ADD

Residual connection

\[y=F(x)+x\]

shortcut 把原特征逐元素加回来,为信息与梯度提供直接路径,缓解深层网络的优化困难。相加要求张量形状兼容,必要时会用 projection 匹配维度。

DENSENET = CONCAT

Dense connectivity

\[x_\ell=H_\ell([x_0,x_1,\ldots,x_{\ell-1}])\]

保留并拼接所有前面层的 feature maps,使后续层能直接复用早期特征;它不是逐元素相加,channel 数通常会增长。

English exam sentence: ResNet adds previous features, whereas DenseNet concatenates previous features.

Final 计算与概念检查

01为什么 CNN 比全连接参数少?
局部连接 + 权重共享。
必考
02Filter 是什么?
可学习的局部特征检测器。
必考
03Pooling 是什么?
无学习参数的降采样操作,压缩尺寸并增强一定平移鲁棒性。
必考
04输出尺寸怎么算?
套用 Output = 1 + (N + 2P − F) / S。
必考
05参数量怎么算?
(高 × 宽 × 输入通道 + Bias) × 输出通道。
必考
06Neurons 与 connections 怎么算?
Neurons 乘 filter 数;connections 再乘 receptive-field 输入数。
易错
07ResNet / DenseNet?
ResNet = ADD;DenseNet = CONCAT。
概念