一张图把 CNN 全部串起来
Image输入图片,由像素组成
滤波器(Filter)局部连接,检测边缘、纹理、形状
Shared Weights同一个 Filter 扫完整张图
特征图(Feature Map)记录特征在各位置的响应
池化(Pooling)压缩尺寸,提高一定的平移鲁棒性
Repeat重复多层,提取更高级特征
Fully Connected汇总特征并输出 logits
Softmax转成类别概率,给出预测
一句话:用很多小滤波器在图片上滑动,逐层提取从边缘、纹理到物体的高级特征,最后完成分类。
为什么 CNN 比全连接参数少?
Local局部连接
一个神经元只看输入的一小块区域,不需要与整张图片的每个像素相连。
Shared权重共享
同一个 Filter 在不同位置复用同一组权重,检测“同一种特征是否出现在这里”。
DetectorFilter 是什么?
一个可学习的特征检测器,用来识别边缘、纹理、形状等局部特征。
Feature Map
Filter 与各局部区域计算后得到的二维响应图。数值越大,表示该位置越像 Filter 要找的特征。
Pooling
不学习参数,只负责降采样、减小尺寸,并增强一定的平移鲁棒性;它会牺牲部分精确位置信息。
公式一:卷积输出尺寸
Output = 1 + (N + 2P − F) / SN = 输入大小 · F = Filter 大小 · P = Padding · S = Stride
考试检查:如果 (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 + 1 | 13 × 13 |
| Neurons | 13 × 13 × 16 | 2704 |
| Parameters | (8 × 8 × 4 + 1) × 16 | 4112 |
| Connections(不含 bias) | (8 × 8 × 4) × 2704 | 692224 |
最大坑: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 = ADDResidual connection
\[y=F(x)+x\]
shortcut 把原特征逐元素加回来,为信息与梯度提供直接路径,缓解深层网络的优化困难。相加要求张量形状兼容,必要时会用 projection 匹配维度。
DENSENET = CONCATDense 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。概念