4.1 从卷积到像素分类


4.1 从卷积到像素分类

本节摘要:神经网络用可学习的加权与非线性拟合复杂决策;卷积神经网络用共享核扫图,得到有空间结构的特征图。分割要把「整图一个标签」改成「每个像素一个标签」,因此必须保住或恢复空间尺寸,用全卷积而不是把图压扁成向量。感受野决定一个像素能看见多大上下文。

阅读收获

阅读完本节,你应当能够:

  1. 用一层线性加激活说明前向,并指出深度网络靠反向传播改权重
  2. 解释卷积核、步长、填充、池化如何改变特征图尺寸与感受野
  3. 说明分类网末尾的全连接为何不能直接用于任意尺寸的分割
  4. 设计一个「下采样再上采样」的玩具头,输出与输入同高同宽

一、从神经元到扫图的窗户

一个神经元做加权求和加偏置再激活。多层叠起来能逼近很弯的函数,前提是你能用损失把误差传回去改权重。图像若拉成向量进全连接,参数量随分辨率平方涨,且丢掉「邻近像素更相关」的先验。卷积把同一组核在图上滑动,参数只跟核大小和通道有关,平移过去的猫仍被同一组核看见。

核是小窗户。3×3 看邻域,叠多层再加下采样,窗户在原图上对应的区域变大,这就是感受野。分割边缘像素若感受野太小,会看不见「这是车灯还是反光」;太大且下采样太猛,定位变糊。后文 U-Net 用跳跃把浅层细定位送回来,DeepLab 用空洞在少下采样时扩大野,都是在调这组矛盾。

# 概念:一次卷积不改变空间尺寸(填充1、步长1、核3) # 输出通道变成特征图条数 y = conv3x3(x) # x: 批次 通道 高 宽 y = relu(y) y = maxpool2(y) # 高宽减半,感受野变大

二、尺寸账必须算清

步长 2 的卷积或池化让高宽减半。分类网一路减到 7×7 再摊平。分割若停在这里,每个位置对应原图一大块,出不了像素级边界。于是要上采样:插值、转置卷积、反池化。转置卷积可学,但可能棋盘伪影;双线性插值稳,细节靠跳跃补。动手第一课:在纸上写每一层的高宽通道,最后一层必须回到输入的高宽,通道数等于类别数。

填充使核在边上也有定义。分割很在意边:器官贴着视野边缘时,错误的填充会当背景。反射填充有时比常数 0 更少「假黑边物体」。

全连接要求固定长度输入,所以分类网锁死输入边长。全卷积没有这根钉子,任意高宽都能走,只要能被下采样因子整除。这就是 FCN 的出发点,下一章展开。本节先接受:分割头是 1×1 卷积当像素分类器,不是全连接。

构件 对空间尺寸 对感受野 分割中的角色
步长1填充同核半径的卷积 基本不变 略增 抽特征、1×1 当分类头
池化或步长2 减半 明显增 上下文,但定位变差
上采样 加倍 不增信息 把分数图拉回原图
全连接 毁掉空间 全局 分类网用,分割网丢掉

⚠️ 常见坑:输出比输入少几圈像素,叠图时看起来「整体对、边对不齐」。差的是填充与尺寸账,不是学习率。
💡 关键直觉:分类问整图是什么,分割问每个格子是什么。格子要在,就不能把图压成一条向量。

三、过拟合一张图来验尺寸

造一张小图和一个圆掩码,网络哪怕只有两层卷积加一个上采样,也必须能把输出做成与掩码同形。若损失接口要求类别维在通道上,就 permute 清楚。这一步不追求泛化。尺寸错,后面所有指标脚本都会在广播里静默出错或直接崩。

激活:中间用整流线性,最后一层对多类用对数 Softmax 配交叉熵,对二类可用一个通道加 Sigmoid 配二值交叉熵。别在最后一层再套一层 Softmax 又把交叉熵内部的 Softmax 算第二遍,除非你清楚库的接口吃的是 logits。

感受野可用公式逐层估,也可用「中心像素对输入的梯度」可视化。边缘任务若梯度只集中在 5×5 里,说明太浅或下采样不够,模型在用局部颜色,等价于昂贵的阈值。

图 分类压扁与分割保住格子

图 分类压扁与分割保住格子

四、接到训练环

本节的积木在下一节装进循环:批次、前向、损失、反向、步进。再下一节把损失换成 Dice 与交叉熵的组合。第 5 章把两层玩具换成有名字的结构,积木不变。若你从预训练分类骨干出发,要砍掉摊平与全连接,接上上采样头,并确认下采样倍数与输入边长匹配。

非线性与深度让模型能表示「车」而不是「灰色团」。没有足够感受野和数据,深度只是更贵的聚类。用第 3 章基线对照:若卷积模型只是复现了颜色团,特征还没工作。

五、感受野不够时的症状

叠图上看起来像「按颜色团涂」,和 K-Means 差不多,说明像素没用上足够上下文。可以加一层步长 2,或换更大核,或后面用空洞。不要先把通道数加倍——那更吃显存,野不一定够。用中心像素对输入的梯度热图:若热图只围着该像素一小圈,上下文没进来。若热图铺满全图却边界糊,下采样太猛,该加跳跃或少砍格子。

输入边长与总步长:常见骨干总步长 32。512 能整除,500 不能。不能时填充到可整除,掩码同样填充,填充区用忽略。中心裁切会丢掉贴边器官,医学上我更常填充。分类预训练权重的输入均值,要在填充之后再减,还是填充用均值颜色,选一种写进契约,避免边框被当成物体。

1×1 分类头前是否加 dropout 或 dropout2d,小样本可以,但推理必须关掉。最后一层不要接 ReLU 再接交叉熵,会截断负 logits,概率校准变差。接口约定:损失吃未归一的 logits。

问题:一定要预训练吗?

不是。两类小图从头训 U-Net 很常见。预训练的价值是边缘和纹理滤波器现成,自然图像域帮助大,工业纹理帮助不一定大。对照一次随机初始化,用验证 Dice 说话,不要信仰。

纸上的尺寸账比任何可视化工具先做。每一层写:高、宽、通道、感受野大约。融合前两行高宽必须相等。差 1 是填充和奇数边长的常客,assert 比事后叠图猜更快。

六、尺寸账模板

每一层写一行:名称、高、宽、通道、步长累积、大约感受野。融合前两行高宽必须相等,assert。差 1 来自奇数边长和无对称填充。输入边长优先选能被总步长整除的数,不能则填充,掩码同填,填区忽略。填充颜色用均值还是反射,写进契约,避免边框变物体。

1×1 头吃的是 logits。最后一层不要 ReLU 再交叉熵。Dropout 推理必须关。感受野诊断用中心像素梯度热图:过小像彩色阈值,过大且糊则下采样太猛该加跳跃。预训练不是信仰,两类小图可从头训,对照一次随机初始化。

分类网摊平是分割的禁区。接到骨干时砍掉全连接,接上采样头。打印成功加载层数。新头大学习率,骨干小学习率。纸上的账比可视化先做,账不平不要开训。

尺寸账每层一行,融合前 assert。边长整除或同填忽略。1×1 头吃 logits,禁止末层 ReLU 再交叉熵。热图诊断感受野。加载层数打印。新头与骨干分组学习率。账不平不开训。摊平是禁区。填充色与减均值顺序写进契约,边框物体多数来自这里而不是来自学习率。把账贴在训练脚本注释顶部,换人也能接着算。

尺寸账作为脚本头注释或生成报告,融合 assert 失败信息含两路形状。整除检查在加载器做,不在模型里静默裁。末层激活审查搜 ReLU 接交叉熵。热图存档用于感受野讨论。加载层数低于预期百分比则失败。学习率分组配置化。边框物体排查先看填充减均值顺序。账贴在训练入口。随机张量测输出高宽等于输入,不必等真实图。不能整除的边长在加载器报错,免得模型里 pad 与掩码 pad 各写各的。1×1 头通道等于类别数,断言。分组学习率日志打印两组当前值,防止有人把骨干学习率改成与头相同还以为在微调。

反例档案:模型内偷偷 pad,加载器另 pad,差两圈。整除检查前移到加载器后消失。第二份:末层 ReLU 加交叉熵,logits 截断,概率怪。审查搜到删掉。边框假物体来自填充色,契约写清顺序后叠图干净。随机张量测高宽成为提交门禁。

口令卡:账在头、融合 assert、整除在加载器、末层无 ReLU 交叉熵、热图存档、加载层数门禁、分组学习率打印、随机张量高宽门禁。填充顺序查边框。1×1 类别维断言。骨干学习率不得偷偷等于头。

提交门禁:随机张量高宽、融合 assert、加载层数百分比、1×1 维、分组学习率打印。末层激活审查。整除失败在加载器红。边框物体先查填充。账在入口注释。骨干学习率等于头视为微调失败配置。这些门禁不过,第 5 章禁止插模块。

交付门禁庚

随机张量高宽门禁、融合形状门禁、加载层数门禁、1×1 维门禁、分组学习率打印,五关不过禁止插第 5 章模块。末层 ReLU 加交叉熵搜索应为零。整除问题只允许加载器报错。边框假物体未查填充顺序不得开新结构。骨干学习率等于头的配置标为微调失败。尺寸账缺失视为未编译。

现场抽问:随机张量高宽过了没?融合 assert 信息含两路吗?加载层数百分比够不够?1×1 维对不对?两组学习率打出来了没?末层还有没有 ReLU 加交叉熵?整除是不是只在加载器报?边框查了填充没有?骨干学习率是不是小于头?

全卷积意味着去掉全连接后,任意高宽都应能出同空间尺寸的分数图。打印 logits 的高宽与输入高宽,对不上就停,不要用插值掩盖尺寸账。下采样倍数必须能整除训练裁切边长,否则边角类别会错位。

要点串联

  • 卷积共享核:参数不随分辨率平方爆炸
  • 感受野与定位是对偶:野要大、格子要细,靠结构调和
  • 算清每层高宽:输出必须对齐掩码
  • 丢掉全连接:1×1 卷积当像素分类器
  • 最后一层接口:logits 还是概率,和损失约定死
  • 单图过拟合验形状:先通再谈泛化

下一节把这些层放进能在一张卡上跑的循环里,不再对照两套框架语法。


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