第二章 特征提取主车间


第二章 · 特征提取主车间

本章要回答的三个问题:卷积核扫过图像时到底在算什么?每经过一道工位,张量的形状与参数量怎么变、怎么手算?为什么流水线必须插入非线性阀门,少了它会发生什么?这一章是全册的发动机,六个小节按加工顺序排布,读完你就拿到了 CNN 架构师的乘法口诀。

为什么会有这一章

第一章把合格的原料送进了厂门:形状 128×3×32×32 的归一化张量。但原料本身不含任何"猫"或"狗"的信息——它只是亮度记录。把亮度记录变成"左上有一道斜边缘""这块区域有毛发纹理""这个位置像是耳朵"的判读,靠的是主车间里的流水线作业:卷积负责检测模式,激活负责放行信号,池化负责压缩尺寸,全连接负责汇总表决。

这四个工位各自独立成节,是因为初学者的绝大多数困惑都能定位到其中一站:形状对不上去查卷积的旋钮,训练不动去查激活的饱和,参数爆表去查全连接的展平。把每站的输入输出账目算清,后面看任何经典架构都像看流水线图纸一样直白。

读完能解决什么

  1. 手工演算一个 3×3 卷积核在 5×5 输入上的完整输出,并解释特征图每个数值的来源;
  2. 用输出尺寸公式(含核尺寸、步幅、填充三个旋钮)预判任意卷积层的形状变化;
  3. 说出激活函数为什么不可省——包括"十层线性等价于一层"的实验证据;
  4. 对比最大池化与平均池化的行为差异,解释池化为何没有参数;
  5. 拆解全连接层的参数构成,指出它为什么常占全网络参数的大头;
  6. 独立完成一次前向形状巡检:给定一个小型 CNN,逐层登记形状、参数量与乘加次数。

各节怎么分工

节号 回答的问题 关键产出
2.1 卷积层 核在图上算什么 手算卷积 + 参数与乘加账目
2.2 三个旋钮 形状怎么控制 输出尺寸公式与五种配置对照
2.3 激活函数 为什么要非线性 十层线性塌缩实验
2.4 池化层 尺寸怎么压、位置怎么容忍 零参数的降采样对账
2.5 全连接层 特征怎么变成判决 参数大头分析 + 形状错误案例
2.6 前向形状巡检 全链路怎么对账 TinyCNN 逐站登记表

本章工位全景

图 2-1 主车间工位布局

图 2-1 主车间工位布局

动手前自测

其一:卷积层的参数量与特征图面积有关吗?答:无关——参数只看核尺寸与通道数,特征图面积影响的是乘加量。其二:把激活函数从流水线里抽掉,网络会发生什么?答:多层塌缩成一次线性变换,深度作废。其三:最大池化没有参数,为什么还算流水线的一部分?答:它通过取最大改变信息流向,把窗口内的位置细节折叠掉,属于"不学习但干活的工位"。其四:全连接层的参数为什么常占全网络八成?答:输入维数是整张特征图摊平的元素数,连线数按输入乘输出增长。四题里若有含糊的,先回对应小节,别带着糊涂进第三章。

先决条件

  • 已完成第一章:知道张量的 NCHW 含义,能理解"形状从 3×32×32 变到 16×32×32"这句话;
  • 会用 PyTorch 实例化一个层并打印参数量(第二章开头几节会现教);
  • 数学上只需要乘法、加法与向下取整。

往下走到哪

主车间把 3×32×32 的猫图加工成 10 维类别分数,但此时流水线只会"输出分数",还不会"把分数变对"。第三章先带你参观六代经典机型,看同样的工位如何被排布成 LeNet、ResNet 等传世流水线;第四章再回答"分数怎么变对"——损失函数、反向传播与优化器登场。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U