1 · Learning to See Network Architecture · 从监督学习到动态计算
28×28 灰度图 输入 x 局部计算 × 2 Conv / ReLU / Pool 784 → 32 → 10 展平与分类头 10 个类别分数 参数 θ 由训练学习 局部怎样连接? 预算花在哪里? 输入决定多少计算? 概念插画 · 非实测响应 · 末步画面;完整展开见主讲。 今天先固定一件事:给图像和类别标签,训练一台能够判断的网络。叶片上的重复窗口提示局部计算与共享;它是概念插画,不是实测响应。人的结构选择规定运算如何相连,训练再调整其中参数。接下来直接看本讲反复使用的同一台小 CNN,沿输入、类别分数和训练反馈理解这些决定。
ImageGen 原创视觉网络概念题图:输入像素平面经过层叠特征平面走向紧凑分类读出。特征纹理、连接与读出仅为概念艺术,不是本课模型的实测激活、精确拓扑或分类结果。HTML 独立排版标题与课程身份。
本页说明与来源 ImageGen 原创视觉网络概念题图:输入像素平面经过层叠特征平面走向紧凑分类读出。特征纹理、连接与读出仅为概念艺术,不是本课模型的实测激活、精确拓扑或分类结果。HTML 独立排版标题与课程身份。
mono-color · 编辑设计方法
参考项目素材许可
留下的问题: 先给出整台网络,再逐段解释其中的计算。
返回主讲 CLS 01 LAB 06 回本章开头 2 · 一台 CNN 把图像变成类别分数,监督信号再调整参数 先认清预测与学习两个方向,后面再拆开局部计算。
1×28×28 两组局部处理 Conv / ReLU / Pool 展平与分类读出 784 → 32 → 10 十个类别分数 s₀, s₁, …, s₉ 真实标签 y 监督损失 L 训练反馈 改变可训练参数 结构:连接与计算 θ:卷积核与分类头 权重与偏置由训练调整 末停点;逐步展开见主讲。 先别算每一层。沿蓝色箭头从真实输入指向十个分数。两组处理仍是本课原模型的 Conv8/ReLU/MaxPool、Conv16/ReLU/MaxPool;16×7×7 展平为784,再经Linear32/ReLU和Linear10,不是GAP。第一次空格才引入标签、损失和紫色虚线反馈,卷积与分类头都可训练。第二次空格框出人规定的结构,区分连接与可学习数值。此图不显示虚构的预测数值;完整尺寸账本在CLS03和整网回访页。
本页说明与来源
D2L · LeNet
CS231n 2026 · CNNs
留下的问题: 下一页:同为自行车,为什么像素可以差别很大?
返回主讲 CLS 01 LAB 06 回本章开头 3 · 同为自行车,为什么像素可以差别很大? 本讲固定图像分类:类别相同,视角、位置、背景和可见部分仍可变化。
请先看几张自行车图,指出一次位置变化和一次局部遮挡。我们希望输出仍是同一个类别,但输入阵列的许多数已经改变。这给网络提出的是任务要求,并没有证明任何现成模型已具备它;这些图只是问题情境。接着把整张图抽象为输入向量:要从大量像素得到几个类别分数,至少需要一个可调整的评分规则。先从一次加权求和开始,再检查为什么网络中还需要非线性和局部连接。
本页说明与来源
CS231n 2026 · Image Classification with Linear Classifiers
D2L · From Fully Connected Layers to Convolutions
留下的问题: 把图像评分写成具体的可调整计算。
返回主讲 CLS 01 LAB 06 回本章开头 4 · 给每个类别一套权重,就得到可调整的评分 固定输入 (2, 1) 与一套类别权重,先预测各项贡献,再完成评分。
把这张图中的两项输入看成一个最小接口例,并非两像素就能解决自然图像。B类使用权重(1,−1)、偏置0,得到2−1=1;其他类别各有一行权重,合起来就是s=Wx+b。请指出哪些数来自输入,哪些数会被训练改变。一个分数还不是概率,多个类别需要比较同一套输出。再留意结构限制:如果后面再接一层线性变换,整体仍可合成一次线性评分。增加层数之前,先说明怎样让层间计算不只是重写同一个矩阵。
本页说明与来源
CS231n 2026 · Image Classification with Linear Classifiers
D2L · Softmax Regression
留下的问题: 检查线性层的复合,再引入一个具体的非线性运算。
返回主讲 CLS 01 LAB 06 回本章开头 5 · 只堆线性层,仍可合成一次线性变换 ReLU 做一件具体的事:负值归零,非负值保留。
W₂(W₁x) = (W₂W₁)x 多写一层,不自动增加这类表达能力 ReLU(z) = max(0,z) 逐位置截断负响应 −1 → 0 0 → 0 1 → 1 结构机制 · 末步画面;完整展开见主讲。 先指上方两层线性变换:把矩阵乘开并合并偏置,仍能写成Wx+b。现在看下方ReLU,把−1、0、1分别送入max(0,z),结果是0、0、1。这里多出来的不是神秘能力,而是一个不能合成同一线性变换的操作。不要由此说“有ReLU就一定学得好”;它改变可表达的函数,训练能否找到有用权重仍要检验。完整的两灯任务及手算解留在CLS和Lab,本讲只保留这个运算接口。网络既能输出分数,接下来要给错误一个能够驱动更新的量。
本图解释结构与计算关系;没有把构造示意标作实测结果。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
D2L · Multilayer Perceptrons
CS231n 2026 · Neural Networks and Backpropagation
留下的问题: 从能够计算分数,走到利用标签衡量预测误差。
返回主讲 CLS 01 LAB 06 回本章开头 6 · 都预测成狗,为什么 20% 与 1% 的猫概率不同? 类别分数取指数再归一化成概率(softmax);真类固定为猫,比较分给猫的概率。
这里从网络分数接到概率接口:softmax把各分数取指数,再除以总和,得到非负且总和为1的三项。本页直接给出三组完整概率,不再逐项展开指数计算。真实标签是猫,我们只追踪猫这一项:60%、20%、1%对应负对数损失约0.51、1.61、4.61。后两组都把狗排第一,准确率同样记错,但损失区分了错误的程度。请把模型给出的概率和数据提供的真标签分开;正是标签告诉训练应该提高哪一项。接下来把这份监督误差沿整张计算图送回参数。
本页说明与来源
D2L · Softmax Regression
CS231n 2026 · Image Classification with Linear Classifiers
留下的问题: 让损失、梯度与参数更新组成一次完整训练闭环。
返回主讲 CLS 01 LAB 06 回本章开头 7 · 同一个分类误差,怎样改到前面的权重? 图像前向产生分数;标签形成损失;反向求导后才执行参数更新。
28×28 灰度图 输入 x 局部计算 × 2 Conv / ReLU / Pool 784 → 32 → 10 展平与分类头 10 个类别分数 参数 θ 由训练学习 类别标签 y 仅训练时给出答案 监督损失 L(scores,y) 分数与标签在这里比较 优化器写回 θ′ = θ − η∇θL;下一次前向使用新参数。 同一批数据:前向 → 误差 → 反向 → 一次参数更新 结构机制 · 末步画面;完整展开见主讲。 先沿实线从图像经过网络到分数与损失,标签只接到损失处。现在沿反向箭头追踪依赖:后层把“若某个中间值改变,损失怎样变化”传给前层,最后得到各参数的梯度。暂停在求导完成处,参数此时还没有变;优化器执行更新后,下一次前向才使用新参数。训练不是把正确类别逐层复制,也不是自动改掉我们画的连接方式。请在图上分别指出架构、参数、中间值与标签,随后划清哪些数据可以进入这个更新循环。
本图解释结构与计算关系;没有把构造示意标作实测结果。
机制示意;详细实现与实验身份见对应 CLS / Lab。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
留下的问题: 一旦能更新,就必须规定训练、验证和测试各自的职责。
返回主讲 CLS 01 LAB 06 回本章开头 8 · 训练改参数,验证选方案,测试做最终评价 比较架构前,先固定允许使用哪些数据、允许做哪些选择。
请看三条箭头的终点:训练数据经过损失直接更新参数;验证数据帮助开发者选择学习率、轮次或检查点;测试数据只评价已经锁定的方案。验证虽然通常不参与反向求导,却能通过我们的选择影响最终模型,因此反复看测试再改方案也会破坏独立评价。后面不论选卷积模块、搜索子网还是设早退阈值,都沿用这条分工。现在读一份已有训练记录,检查训练拟合和独立样本表现是否是同一个量。
本页说明与来源
CS231n 2026 · Regularization and Optimization
He et al. · Deep Residual Learning (2015)
留下的问题: 用已保存曲线核对这三种数据职责。
返回主讲 CLS 01 LAB 06 回本章开头 9 · 训练损失下降后,还要用未参与更新的数据检验模型 训练用于更新参数,验证用于选择方案;先分清曲线记录了什么。
交叉熵 ↓ 0 0.5 1 1.5 1 2 3 4 5 6 训练轮次 训练记录 online:更新中的累计均值 验证记录 每轮结束:固定当轮参数评估 按最小验证损失选择第 6 轮 验证 CE = 0.1610 MNIST · CNN / 无增强 末停点;逐步展开见主讲。 本图逐点读取既有 LAB02 受控2×2记录中的 CNN / no augmentation。训练曲线是每轮更新过程中按样本数累计的online交叉熵;验证是在epoch结束后固定参数评估,两者统计时点不同。训练12,000、验证10,000,6轮Adam、batch128、学习率0.001,单种子MNIST。最小验证交叉熵0.1610109955072403出现在第6轮,按此规则选检查点;不是根据准确率虚线选点。本例两条损失均下降,没有观察到用于展示的上升验证曲线。验证证据不能证明任意分布泛化;测试集在方案确定后才报告。此次只重绘历史结果,没有重训。
单种子;训练样本 12,000,验证样本 10,000;训练是online累计均值,验证是每轮结束固定参数评估。
本页说明与来源 数据来源:teaching/labs-v2/results/lab02-results.json → runs["CNN / no augmentation"].history。逐点保留原值,无拟合、插值或新训练。
CS231n 2026 · Regularization and Optimization
He et al. · Deep Residual Learning (2015)
LAB02 原始 JSON 记录
留下的问题: 下一页:监督卷积早于 2012:先从字符识别的结构说起
返回主讲 CLS 01 LAB 02 回本章开头 10 · 监督卷积早于 2012:先从字符识别的结构说起 1989—1990 年代已有局部共享与端到端监督;这里固定的是网络怎样连接。
看早期字符识别的输入、层叠处理和分类出口:LeNet说明局部共享与监督反馈并非2012年才出现。我们此刻只借这张历史图确认计算链已经存在,不展开所有层表。自然图像后来扩大了类别、背景变化和数据规模,受控字符任务的成功不能直接当作规模化成功。更早、更晚也不是好坏排序。回到本讲的设计问题:前端如果由人固定,类别训练能改到哪里;如果前端本身也含可学参数,反馈又能到哪里?
本图概括 LeNet 的局部共享与监督反馈关系,不逐层复刻论文结构。
本页说明与来源
D2L · LeNet
D2L · AlexNet
CS231n 2026 · CNNs
留下的问题: 用一个最短的固定前端/可学前端对照,定位训练更新范围。
返回主讲 CLS 03 LAB 01 回本章开头 11 · 分类错误,能否调整提取信息的前端? 只比较反馈能到哪里:固定手工测量与可学的局部测量。
类别损失能改变哪一段? 固定手工前端 如局部边缘测量 分类读出 输出类别分数 只训练分类读出 可训练卷积前端 结构固定,核参数可学 分类读出 输出类别分数 分类误差也反馈到前端 结构机制 · 末步画面;完整展开见主讲。 先看上排:我们预先固定怎样量局部变化,例如算邻近亮度差,再让分类器使用这些结果。标签反馈只更新最后的评分参数;被前端丢掉的信息,后面无法凭空补回。再看下排:把前端测量也写成含参数的计算,最终分类损失就能沿依赖调整这些参数。这里不要求先学词袋或聚类,也不声称传统方法都完全不可学习;比较范围只限图中的两个接口。端到端仍保留人的结构选择。下面先看最重要的两个决定:一次读多大范围,不同位置是否共用同一套数。
本图解释结构与计算关系;没有把构造示意标作实测结果。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
D2L · Convolutions for Images
D2L · LeNet
CS231n 2026 · CNNs
留下的问题: 把“可学前端”拆成局部读取与参数共享。
返回主讲 CLS 03 LAB 01 回本章开头 12 · 每次读附近,不同位置共用权重 局部决定读取范围;共享决定不同位置是否使用同一组参数。
先指一个输出读取的窗口,再把测量器移到另一个位置:变化的是读入的输入,核中的数保持相同。局部和共享是两个独立决定;只连附近不代表必然共享,同一权重共享也不代表一次看全图。这样安排减少独立参数,并让同样的局部模式在多个位置接受同一种测量。它并未规定核一定检测某种边缘,更没有保证最终类别对所有平移不变。具体检测什么,还要看结构中哪些数由训练改变。
图示连接依赖,不显示实测响应。
本页说明与来源
D2L · From Fully Connected Layers to Convolutions
D2L · Convolutions for Images
留下的问题: 把人的连接选择与训练学到的数值放在同一个算子上。
返回主讲 CLS 03 LAB 01 回本章开头 13 · 人规定连接方式,训练调整具体测量 核的读取范围与共享规则先给定,权重值再由监督误差调整。
请分别指图上的窗口边界和核内权重:局部范围、通道数、共享关系属于架构;权重的正负与大小属于训练参数。选择卷积既不是让网络自行发明全部连接,也不是把它学到的特征预先写死。最终分类损失可以影响核,但不能因此说训练自动发现了这里的共享规则。为了让“学一个测量器”不是抽象说法,我们暂时取一个只有四项的窗口,完整核对一次加权求和。
本页说明与来源
D2L · From Fully Connected Layers to Convolutions
D2L · Multiple Input and Multiple Output Channels
留下的问题: 缩小为四个乘积,检查一个局部输出如何产生。
返回主讲 CLS 03 LAB 01 回本章开头 14 · 四个配对乘积,只写入一个输出 3×3 输入 · 2×2 核 · stride=1 · padding=0;采用互相关约定。
输入 · 3×3 同一核 · 2×2 配对乘积 输出 · 2×2 0 1 2 3 4 5 6 7 8 0 1 2 3 0 × 0 = 0 1 × 1 = 1 3 × 2 = 6 4 × 3 = 12 累加 = 19 19 末停点;逐步展开见主讲。 这是独立的精确构造算例,不是整台CNN的实测响应。初态给出输入和核但隐藏乘积;每次空格只计算下一项。最后一项完成后,19进入唯一对应输出格。下一页复用同一核,只移动窗口。
采用 CNN 常用互相关约定;为精确构造算例,四个位置共用核。
本页说明与来源
Dive into Deep Learning · Convolutions for Images
留下的问题: 下一页:移动窗口,复用同一组权重
返回主讲 CLS 03 LAB 01 回本章开头 15 · 移动窗口,复用同一组权重 输入 3×3、核 2×2;stride=1、padding=0。每次移动只改变读取位置。
输入 · 3×3 同一核 · 2×2 配对乘积 输出 · 2×2 0 1 2 3 4 5 6 7 8 0 1 2 3 4 × 0 = 0 5 × 1 = 5 7 × 2 = 14 8 × 3 = 24 累加 = 43 19 25 37 43 末停点;逐步展开见主讲。 前页算清左上输出19。本页每次空格只把窗口移动到一个新的合法起点,并写入相应输出;四个结果为19、25、37、43。响应值不同来自输入局部不同,不是每个位置使用新参数。
本页说明与来源
Dive into Deep Learning · Convolutions for Images
留下的问题: 下一页:一个 filter 读取全部输入通道
返回主讲 CLS 03 LAB 01 回本章开头 16 · 一个 filter 读取全部输入通道 每个输入通道各给一份贡献,求和后形成一个输出通道。
看RGB三个输入通道:同一个filter为每个通道备有一个空间核切片。在同一输出位置,把三份局部贡献相加,左上角为1+6+1=8。请不要把三个通道的贡献当成三个输出通道;它们共同形成这一套filter的一项输出。整套filter移到别处,得到一张响应图。标准卷积在这里同时做空间读取和通道混合,后面讨论计算成本时会拆开这两件事。现在先增加filter数,看网络怎样保留多种测量。
本页说明与来源
D2L · Input and Output Channels
CS231n 2026 · CNNs
留下的问题: 一个 filter 产生一张响应图,多套 filter 构成更多输出通道。
返回主讲 CLS 03 LAB 01 回本章开头 17 · 多套 filter,让同一张图保留多种响应 区分样本数、输入通道和输出通道,才能读懂计算图的接口。
先读输入[2,3,5,5]:两张图,每张三个5×5通道。再读权重[4,3,3,3]:四套filter,每套读取三个输入通道;不是四张图片。步长1且无补零时,输出[2,4,3,3]。两张图共享同一个网络参数,但它们的激活仍分别计算。此处增加filter是增加测量种类,不是额外分支网络。前向关系完整后,回看监督闭环:图像只有最终类别标签,这些不同位置与通道的参数怎样获得反馈?
本页说明与来源
D2L · Multiple Input and Multiple Output Channels
留下的问题: 从多位置、多通道的前向计算回到共享参数的监督反馈。
返回主讲 CLS 03 LAB 01 回本章开头 18 · 只有类别标签,局部窗口怎样收到反馈? 最终损失经过后续计算形成各位置的反馈;共享参数汇总各次使用的贡献。
先指最终类别损失,再沿后层回到图中的两个局部位置。并没有人为给每个窗口指定一张正确响应图;各位置的δ来自后续计算对最终损失的影响。δ₀与δ₁可以不同,但这两个位置使用的是同一个核权重,因此要把“局部输入×局部反馈”的贡献求和,再更新这一份参数。此处一维缩例只说明汇总关系,不是实际3×3卷积层的完整张量。共享梯度手算与自动微分核对留在LAB01。下面继续搭网络:卷积输出保留多少个空间位置?
这里用一维局部卷积核缩例,δ是最终类别损失经后层传回的局部导数。
本页说明与来源
D2L · Convolutions for Images
Stanford CS231n · Backpropagation
留下的问题: 保持参数学习关系不变,检查空间接口由哪些采样规则决定。
返回主讲 CLS 03 LAB 01 回本章开头 19 · 输出尺寸,可以用合法窗口起点数出来 固定 7×7 输入、3×3 核、步长 1,并补一圈零。
先把7×7输入补成9×9计算网格,再沿横纵方向分别数3×3窗口的合法起点:每边7个,因此输出仍是7×7。这个计数比直接背公式更能帮助检查AI写出的padding配置。补零没有创造额外真实观察,只是规定边界外参与计算的值;边缘响应因此有特定条件。现在保持输入、核、padding不变,只改移动窗口的步长,看看哪个接口尺寸改变。
本页说明与来源
D2L · Padding and Stride
D2L · Convolutions for Images
留下的问题: 只改步长,观察计算位置减少而核权重不变。
返回主讲 CLS 03 LAB 01 回本章开头 20 · 步长改变采样位置,核的权重没有变 7×7 输入、3×3 核、padding=1 固定;补零后9×9,stride=2。
7×7 输入 + 四周补零 → 9×9 核 3×3 · stride=2 · padding=1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 0 2 4 6 合法窗口始终完整落在 0…8 内 两个方向都使用 0、2、4、6 y00 y01 y02 y03 y10 y11 y12 y13 y20 y21 y22 y23 y30 y31 y32 y33 4 个行起点 × 4 个列起点 = 4×4 权重保持 同一组 3×3 核 只改变采样位置 末停点;逐步展开见主讲。 先指明灰色补零边界和0到8坐标。输入原大小7×7,加两侧padding1变9×9。每次只移动2格,合法起点需满足起点+3≤9,依次0、2、4、6。8是被拒绝的位置,不是第五个输出。横向解释完后将同一规则应用到纵向,直接构成4×4,无需自动扫描16格。只改变采样位置,不改变3×3核的9个权重。
本页说明与来源
D2L · Padding and Stride
Zhang · Making CNNs Shift-Invariant Again (2019)
留下的问题: 下一页:多个局部层叠起来,能联系更远的输入
返回主讲 CLS 03 LAB 01 回本章开头 21 · 多个局部层叠起来,能联系更远的输入 独立三层算例:追踪理论支持范围,不把它当成本课小 CNN 的逐层配置。
从输入单点出发,第一层三点窗口覆盖3,第二层组合后覆盖5;第二层步长2让后层坐标在原输入中间隔更远,第三层覆盖扩大到9。请沿连线回溯哪些原输入有可能影响这个输出,而不是把大框直接叫作“模型关注区域”。理论支持范围内的像素不一定贡献一样多,实测响应仍要看参数与输入。本例专门隔离层叠和步长作用。另一种空间变粗的办法,是把一片响应压成一个统计量。
本页说明与来源
Araujo et al. · Computing Receptive Fields (2019)
D2L · VGG
Luo et al. · Understanding the Effective Receptive Field (2016)
留下的问题: 从覆盖更多输入,转向用一个统计量压缩局部响应。
返回主讲 CLS 03 LAB 01 回本章开头 22 · 池化保留一种统计,也舍弃部分细节 每个通道分别取局部最大值:宽高可减半,通道数不变。
先看2×2窗口中的四个值,再只留下最大值。问一句:仅凭这个结果,能恢复峰值原来在哪一格以及其他三个数吗?一般不能。本课小CNN用2×2、步长2最大池化,空间变粗但通道数不变;这是明确的信息取舍。它不自动保证任意平移都不改变输出。网络还常在中间值上加一个尺度调整步骤,先把它讲清,再回看真实训练响应;这一步只作为可选模块,不修改原有小CNN的身份。
本页说明与来源
D2L · Pooling
Zhang · Making CNNs Shift-Invariant Again (2019)
Long et al. · Fully Convolutional Networks (2015)
留下的问题: 区分空间汇聚与另一个常见模块:通道值的归一化和可学仿射变换。
返回主讲 CLS 03 LAB 01 回本章开头 23 · 同一通道的值,怎样先规范化再作可学变换? BN 分两步:用一组均值方差规范化,再以 γ、β 作仿射变换。
每个通道:先用统计规范化,再用参数作变换 x̂ = (x − μ) / √(σ² + ε) μ、σ²:所选数据的统计 y = γ x̂ + β γ、β:每通道可学习参数 固定同一个响应 x=3,换一个 batch 同伴 同伴 1:μ=2,σ²=1 该响应输出 ≈ +1 同伴 5:μ=4,σ²=1 该响应输出 ≈ −1 γ=1 · β=0 · ε=10⁻⁵ 结构机制 · 末步画面;完整展开见主讲。 沿公式分两步读:先用μ和σ²把当前通道的值规范化,再乘γ并加β。μ、σ²是由指定样本集合估计的统计量;γ、β是能够接受监督梯度的参数,二者不要混为一组权重。训练时BatchNorm2d通常跨当前batch和空间位置估计通道统计,固定x时换batch同伴也可能改变它的规范化结果。running buffers记录统计以供约定的推理方式使用,记录统计和执行梯度更新仍是不同动作。本页是独立模块说明;开场的28×28小CNN并未因此增加BN。现在回到它原有checkpoint的真实响应。
本图解释结构与计算关系;没有把构造示意标作实测结果。
机制示意;详细实现与实验身份见对应 CLS / Lab。
构造比较固定同一响应x=3,单通道,当前batch方差按样本数归一化。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
留下的问题: 从可选模块回到身份固定的小 CNN,读取真实中间响应。
返回主讲 CLS 03 LAB 03 回本章开头 24 · 真实响应里,哪些位置和通道不同? 固定输入、模型与层,再把响应位置对应回输入。
回到原有28×28小CNN,固定MNIST测试序号0、标签7。先指出输入,再看第一层全部8个通道;切到第二层时只展示前8个通道。颜色深浅表示响应数值,同层共用色标,两层独立定标,不能把跨层深浅直接当作大小比较。它们来自保存的cnn-plain-state.pt、验证选择第6轮的前向结果;并非本页临时训练出来。请描述实际看到的差异,而不是凭一张图给通道命名为“7检测器”。把这些数组重新接回整网,看它们最终怎样进入分类头。
来自本课训练 CNN 的保存响应,编号仅标通道,不直接赋予语义。
本页说明与来源
D2L · From Fully Connected Layers to Convolutions
D2L · Input and Output Channels
Zeiler & Fergus · Visualizing and Understanding Convolutional Networks (2014)
本课CNN响应:检查点、输入序号、色标与逐通道数值索引
留下的问题: 将真实响应的形状放回全网图,核对空间数组到类别分数的接口。
返回主讲 CLS 05 LAB 08 回本章开头 25 · 把局部模块放回整网,核对三个接口 两组空间计算、一次展平、一个分类头,共同完成同一张图的预测。
现在沿开场同一台网络走完:Conv8/ReLU/Pool使28变14,Conv16/ReLU/Pool使14变7;16×7×7个数按固定顺序展平成784维,再经32维隐藏层得到10个类别分数。请找出通道数在哪里改变,空间尺寸在哪里改变,哪里只是重新编号。Flatten本身没有删除这些数,也没有新增学习参数;但后续全连接读出可以使用位置索引。我们已有完整可计算网络,接下来检查一个关键预期:局部规则共享,是否就能保证图像平移后整网答案不变?
本页说明与来源
D2L · Convolutional Neural Networks (LeNet)
D2L · Multiple Input and Multiple Output Channels
留下的问题: 用同一网络检验共享结构带来的关系,避免从局部性质跳到整网保证。
返回主讲 CLS 03 LAB 01 回本章开头 26 · 响应跟着输入移动,还不等于类别判断不变 固定核[1,2,1]、stride=1与补零约定;只看远离边界的内部位置。
原输入与响应 输入右移一格 0 0 0 0 1 0 0 0 0 核 [1, 2, 1] 0 0 0 1 2 1 0 0 0 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 0 0 0 0 0 1 0 0 0 同一核 0 0 0 0 1 2 1 0 0 [1, 2, 1] 整体右移一格 末停点;逐步展开见主讲。 一维剖面的精确构造用于分开位置与数值模式。初态两侧输入相同,右侧响应尚未揭示。第一按只移右侧输入,左侧作为参照;第二按才出现对应移位的[1,2,1]响应。内部区域、stride1和相同边界约定是必要条件。本页没有类别分数,不能推出平移不变;下一页用实际CNN分类结果检验。
此页只计算卷积响应,没有测量最终类别分数;下一页用已保存分类实验检验。
本页说明与来源
D2L · From Fully Connected Layers to Convolutions
Zhang · Making CNNs Shift-Invariant Again (2019)
留下的问题: 下一页:同一结构增加平移训练,结果怎样改变?
返回主讲 CLS 03 LAB 02 回本章开头 27 · 同一结构增加平移训练,结果怎样改变? 先在同一 CNN 内比较增强,再谨慎读跨 MLP/CNN 的差异。
先只看CNN的两列:加入训练增强后,右移测试准确率由84.64%到93.84%,原图由95.33%到95.81%。再看MLP:右移66.39%到84.21%,原图却92.11%到89.94%。请把观察和解释分开:这组结果说明训练条件影响指定变化下的表现,不能说明所有增强都无代价;两个架构也并非等参数、等计算,不能把全部差异归给卷积。局部机制已能计算,真实失败也已看到。之后的任务是读懂和检验结构,而不是人人重写底层算子。
有无增强对照采用同一数据划分、6 epochs、Adam和单种子;MLP/CNN跨模型计算量未对齐。
本页说明与来源
D2L · From Fully Connected Layers to Convolutions
Zhang · Making CNNs Shift-Invariant Again (2019)
D2L · LeNet
留下的问题: 明确学习任务转变:从精确理解算子,转向提出并检验结构改动。
返回主讲 CLS 03 LAB 02 回本章开头 28 · 算子已经看清,接下来要能检查一张计算图 让 AI 协助实现;由你核对接口、共享关系、反馈与证据。
28×28 灰度图 输入 x 局部计算 × 2 Conv / ReLU / Pool 784 → 32 → 10 展平与分类头 10 个类别分数 参数 θ 由训练学习 提出结构改动 → 请 AI 实现 → 核对接口与对照 shape 是否匹配?参数是否共享?记录的模型与结果是否同一身份? 结构机制 · 末步画面;完整展开见主讲。 回指刚才完整小CNN:每个方框怎样读取、共享和输出,我们已经有可核对的小例。现在不要求每个人再从头手写卷积,而是提出一个结构变化,让AI帮助实现,再由你检查shape、参数共享和梯度是否符合设计。自动生成能运行的代码并不证明实现了想要的模型。Lab保留手算、自动微分、真实响应和失败例作为检查工具。接下来把问题从一个算子推进到组合:串行叠层之外,能否让同一输入并行走几种处理,再让更深层继续使用?
本图解释结构与计算关系;没有把构造示意标作实测结果。
机制示意;详细实现与实验身份见对应 CLS / Lab。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
留下的问题: 从单个局部块转向怎样串行、并行和跨层组合。
返回主讲 CLS 03 LAB 01 回本章开头 29 · 哪些条件让监督 CNN 扩大到自然图像? 2012 · 已懂计算机制后,再看数据、算力和训练经验怎样共同支撑规模化。
分别指出数据、算力和训练方法的角色:大规模类别标注提供训练与评测基础;GPU承担反复张量计算;激活、增强、正则与优化经验支持训练和泛化。三者共同使监督CNN扩大到自然图像,不能把系统结果单独归因于更深的结构。
本页说明与来源 情境图为生成概念插画,不是历史照片或实验输出;具体系统事实据AlexNet原论文,同年成绩据ILSVRC2012官方记录。
D2L · AlexNet
Krizhevsky et al. · ImageNet Classification with Deep CNNs (2012)
ILSVRC 2012 · Official Results
留下的问题: 读同一任务下的竞赛结果,再区分系统进步与单一组件贡献。
返回主讲 CLS 04 LAB 03 回本章开头 30 · 2012 年的结果显示路线转折,也需要比较口径 读 top-5 错误率,保留集成与额外数据条件。
先读纵轴,它是top-5错误率,越低越好。2012年官方测试中,最佳非CNN系统约26.2%,只用比赛数据的CNN集成约16.4%;常见的15.3%还包含额外ImageNet监督预训练。后两者都是集成,不是单网,所以不能把它们与论文另一验证集上的单网数字混在一起。差距说明这条路线值得继续投入,但没有隔离每个组件。接下来固定我们已经会用的卷积模块,尝试一种不同组织:同一输入能否并行读取不同范围,再一起交给后层?
本页说明与来源
ILSVRC 2012 · Official Results
Krizhevsky et al. · ImageNet Classification with Deep CNNs (2012)
留下的问题: 从成功的串行 CNN,推进到多条固定分支共同处理输入。
返回主讲 CLS 04 LAB 03 回本章开头 31 · 同一输入,能否并行经过不同范围的处理? Inception:所有分支都执行,最后沿通道拼接;分支内可先用 1×1 降维。
同一输入 28×28×192 1×1 →64 保持空间大小 1×1 →96 3×3 →128 1×1 →16 5×5 →32 3×3 max pool 1×1 →32 通道拼接 28×28×256 64 + 128 + 32 + 32 = 256 结构机制 · 末步画面;完整展开见主讲。 从同一输入分出几条路线:一条直接作1×1变换,另一些在较大空间核之前先作1×1通道压缩,还有池化分支。1×1不混合相邻位置,但会混合当前位置的输入通道;先降维可减少后续大核成本。请逐条走到输出,核对各分支空间尺寸一致,再沿通道拼接。它与一个层里放多个filter不同,因为每条分支本身含有一段运算;也不是输入只挑一条路,图中各分支都执行。固定结构能同时组合不同尺度,但继续加深这些计算时,训练是否一定更容易?
本图解释结构与计算关系;没有把构造示意标作实测结果。
主图采用 GoogLeNet Inception 3a 的真实通道配置;shape 为 HWC,省略 batch。卷积后含 ReLU;本块卷积和池化 stride=1,padding 保持网格。
原论文的训练辅助分类头在推理时移除,不能拿来等同动态早退。
图为 GoogLeNet 3a。预印本2014/CVPR2015;分支不同于单个filter,四分支全部执行。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
1409.4842v1
Szegedy_Going_Deeper_With_2015_CVPR_paper.html
留下的问题: 固定分支组合之后,检查继续加深会遇到什么可观察的训练困难。
返回主讲 CLS 06 LAB 03 回本章开头 32 · 能画出更深网络,不代表它容易训练 前向信号与反向反馈都经过更多层;先检查训练表现,而不是只看模型大小。
在图上给串行链增加几层,然后分别追踪前向激活和反向反馈。初始化、各层尺度和局部敏感性都会影响优化过程,更多层能表达更多关系,不保证训练能找到它们。这里的初始化指训练起点的随机参数,与下一讲复用已训练权重不同。也不要用一句“梯度消失”解释所有失败。先找一个更直接的诊断:如果更深模型连训练误差也更高,这只是对未见数据过拟合吗?看一组真实文献现象再判断。
三段局部敏感性固定为0.5是构造例,并非所有深网都会衰减。
本页说明与来源
CS231n 2026 · Neural Networks and Backpropagation
Hinton et al. · A Fast Learning Algorithm for Deep Belief Nets (2006)
Hinton & Salakhutdinov · Reducing the Dimensionality of Data with Neural Networks (2006)
留下的问题: 从一般训练困难落到 plain 网络加深后训练误差上升的证据。
返回主讲 CLS 04 LAB 03 回本章开头 33 · 更深的普通网络,为什么连训练误差也更高? ResNet 2015 预印本/CVPR 2016:先把优化问题和泛化问题分开。
先指文献重绘中的训练曲线,再看测试曲线:CIFAR-10的plain56相较plain20,训练误差也更高。过拟合只说训练与未见样本之间的差距,无法单独解释这里连已见数据都拟合更差。原研究已使用归一化等措施,不能把现象直接等同于梯度消失。我们的设计目标因此很具体:让加深后的网络更容易保留一个已有好行为,再在需要处作修改。先问更深函数族是否原则上已经包含这个行为。
He等 Figure1 的 plain 20/56 层训练退化现象;这里是定性关系重绘,不是新增测量。
本页说明与来源
He et al. · CVPR2016 原论文
留下的问题: 构造新增层保持输入的情况,区分好解存在与容易找到。
返回主讲 CLS 04 LAB 03 回本章开头 34 · 存在一个好解,不等于训练容易找到它 新增层若能保持已有表示,浅层模型的行为原则上可继续保留。
沿图中的浅层模型走到原表示,再插入保持映射,原来的后续计算仍能接收相同输入。这个构造说明更深的函数族可以包含已有解,但并没有说明随机初始化和优化会自然找到保持映射。请把“能够表示”和“容易学到”分别说完整。残差的思路就是把保持行为变成更直接的参数选择:让一条路径直接传递旧表示,新分支只需输出需要加上的变化。
本页说明与来源
D2L · ResNet
He et al. · Deep Residual Learning (2015)
留下的问题: 将“学会原样传递”改写为“先保留,再学习修正”。
返回主讲 CLS 04 LAB 03 回本章开头 35 · 先保留已有表示,再学习需要改变的部分 同形张量相加:零分支保留输入,非零分支逐分量修正。
沿直达路径把h送到相加节点,再沿可学分支得到F(h)。当F(h)=0,节点输出仍为h;取图中的修正(0.2,−0.3,0.1),就得到(2.2,0.7,−0.9)。请检查这里两条路径形状相同,而且停在相加处,不包含随后激活;换尺寸时需要投影或其他对齐,不能无条件画shortcut。修正也不必永远很小。反向的两条反馈与精细导数留在CLS和Lab,主讲用配对结果检查这种连接是否带来预期帮助。
讨论的是同形张量相加节点,捷径无投影,且未在结果后接激活。
本页说明与来源
He et al. · Deep Residual Learning for Image Recognition
He et al. · Identity Mappings in Deep Residual Networks
留下的问题: 把结构动机交给同深度、同协议的证据检验。
返回主讲 CLS 04 LAB 03 回本章开头 36 · 连接改了,怎样检验它是否有用? 先同深度配对,再比较加深的方向;这张表报告验证集错误率。
先固定18层比较plain与residual:27.94%和27.88%;再固定34层比较28.54%和25.03%。现在才看加深的方向,普通网络变差而残差网络改善明显。口径是ImageNet验证集10-crop top-1错误率,不能拿这张验证表直接证明训练误差下降,训练拟合有另一份论文证据。结果支持所给条件下的残差设计,却不保证加深总有效。相加让旧表示进入新的通道值;如果后层需要分别读取更早的特征,还有别的连接方式吗?
本页说明与来源
He et al. · CVPR2016 原论文
留下的问题: 从逐元素相加转向沿通道保留各组旧特征。
返回主讲 CLS 04 LAB 03 回本章开头 37 · 相加之外,旧特征能否单独保留给后层? DenseNet 2016 预印本/CVPR 2017:沿通道拼接旧特征,改变后层的读取接口。
残差相加 沿通道拼接 H × W × C H × W × C + H × W × C H×W×C₀ H×W×k H×W×k C₀ k k H × W × (C₀ + 2k) 末停点;逐步展开见主讲。 先数两种接口的通道维度:逐元素相加将两份 H×W×C 合成 H×W×C;沿通道拼接把旧特征组分别保留,示例输出为 H×W×(C₀+2k)。相加要求形状匹配,拼接要求非拼接维度一致。后层直接读取更多旧特征,同时需要保存和搬运更多激活,因此参数较少不等于激活内存较低。
本页说明与来源 按 DenseNet 的连接方式绘制张量接口对照,未进行两模型实测;原论文为2016预印本、CVPR2017。
DenseNet · CVPR 2017
留下的问题: 统一比较连接方式与形状,再沿同一结构问题进入运算和存储成本。
返回主讲 CLS 06 LAB 03 回本章开头 38 · 同样的计算块,四种连接怎样改变信息? 串行、全分支 concat、残差 add、跨层 concat,各有不同的形状与存储条件。
串行:上一层成为下一层的输入 x F₁ F₂ 相邻接口逐一匹配 并行:同一输入,分别计算后拼接 x F₁ F₂ concat C + C → 2C 残差:学习修正,与原值逐元素相加 x F + shape 相同;C + C → C 稠密连接:后层继续读取较早的特征 x₀ F₁ [x₀,x₁] F₂ 第 l 层输入:C₀ + (l−1)k 通道 结构机制 · 末步画面;完整展开见主讲。 让输入和计算块使用同一画法,依次指四种组织。串行把前层输出交给下一层;固定并行分支各自处理,再沿通道拼接;残差在同形位置逐元素相加;DenseNet式跨层拼接让后层直接读取旧通道。请在合并处写出输出通道,而不是把add与concat都叫“融合”。分支输出和旧特征存留的时间也不同,所以仅数参数不足以判断成本。现在我们已经会改变深度和连接,把识别任务与评价固定下来,检查怎样在同一预算下组织这些计算。
本图解释结构与计算关系;没有把构造示意标作实测结果。
这里只核对形状与信息组织,不声称四者等参数、等 MAC 或等训练预算。峰值内存依赖具体实现和保存策略。
比较连接接口,不等同完整架构性能排名。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
1512.03385
1608.06993
留下的问题: 每种连接都消耗运算或存储;保持任务不变,开始完整成本账。
返回主讲 CLS 06 LAB 03 回本章开头 39 · 连接越来越丰富,用户却只等一次答案 继续本讲的数字识别请求,区分模型推理时间与完整请求的等待。
本讲的数字识别请求 采集 取得图像 预处理 缩放 / 归一化 模型推理 神经网络 反馈 显示结果 单独测推理 用户等待的是端到端时间 机制示意 · 未运行模型 · 末步画面;完整展开见主讲。 沿一次识别请求依次看采集、预处理、模型推理和反馈;“单独测推理”只覆盖其中一个节点。若主要等待在其他环节,推理减半也不使总等待减半。先确定实际瓶颈与计时边界,才决定优化什么。
本页说明与来源 图中节点表示处理流程,没有设备计时,块宽不编码时长。输入复用官方 MNIST 测试样本0(/responses-v8/test-0000/input.png),没有为该样本新增预测或测速。
ShuffleNetV2 · ECCV 2018
MobileNetV4 · ECCV 2024
留下的问题: 在同一个卷积接口上分解空间计算与通道混合。
返回主讲 CLS 07 LAB 10 回本章开头 40 · 空间过滤与通道混合,必须一起完成吗? MobileNet 2017:把标准多通道卷积拆为 depthwise 与 pointwise。
普通卷积 3×3 · 32输入通道 · 64输出通道 3² × 32 × 64 18,432 MAC / 位置 逐通道空间过滤 depthwise · 3×3×32 1×1 通道混合 pointwise · 32×64 288 + 2,048 = 2,336 算术工作量约相差 7.89 倍 乘加次数 / 输出位置 精确教学算例 · 非模型实测 · 末步画面;完整展开见主讲。 回指一个 filter 读取全部输入通道的机制:标准卷积在每个输出位置做 k²MN 次乘加。先逐通道做 depthwise 空间过滤,再用 1×1 pointwise 混合通道,成本变为 k²M+MN。取 k=3、M=32、N=64,18,432 变为 2,336,约差 7.89 倍。账本保持输出空间相同,忽略 bias;这不是设备提速测量,分解也不是任意普通卷积的无损替换。
本页 MAC 指 multiply-accumulate 乘加次数,与 ShuffleNetV2 原文的 memory access cost 不同义。
本页说明与来源 按 MobileNets §3.1、Eq.4–5、Figure 2 重绘算子与乘加账本。
MobileNet
留下的问题: 在已拆分的空间与通道运算之间,安排宽度与非线性。
返回主讲 CLS 07 LAB 10 回本章开头 41 · 窄表示、非线性与残差,怎样放在同一个块里? 先展开通道,再作空间处理,最后线性投影;不是每个块都有 shortcut。
二维 ReLU: (−1, 2) 与 (−2, 2) 都变成 (0, 2) 窄通道输入 C 展开 + 非线性 tC depthwise tC 线性投影 C′ + stride=1 · C′=C 精确教学算例 · 非模型实测 · 末步画面;完整展开见主讲。 先看两个不同负值经过 ReLU 都变成 0,说明截断可能合并原本不同的输入。这是信息损失的直觉反例,不是对真实高维流形的完整证明。MobileNetV2 先用 1×1 展开通道,在较宽表示里做 depthwise 与非线性,再线性投影回窄通道,避免在窄投影后继续截断。
shortcut 只在 stride=1、输入输出形状一致时直接相加。即使账面乘加次数减少,展开后的激活、重排和算子启动仍会影响设备速度。
本页说明与来源 按 MobileNetV2 §3.2–3.3、Figures 1–4 绘制结构;二维 ReLU 数值为教学构造。
MobileNetV2
留下的问题: 从算术量回到执行:通道关系和数据搬运会改变实测排序。
返回主讲 CLS 07 LAB 10 回本章开头 42 · 算术量相近,吞吐仍由执行方式决定 ShuffleNetV2:先看通道交换,再看同一 ARM 平台的通道比对照。
ARM 吞吐,越高越好 ↑ 单位:images/s ARM · 近似等 FLOPs 通道比 1:1 76.2 通道比 1:2 72.9 通道比 1:6 69.1 通道比 1:12 57.6 0 论文报告重绘 · 非本次实测 · 末步画面;完整展开见主讲。 先看通道来源经拼接与shuffle重新安排,它使后续分组能够接触不同来源;这只是结构机制。再看另一项受控测量:56×56特征图、十个双1×1模块、同一Snapdragon810单线程、FLOPs近似相同,通道比1:1与1:12的吞吐分别76.2与57.6 images/s。先把机制示意和测量对象分开,不能说这两个数单独证明shuffle的收益。它们支持通道平衡与访存影响效率,也不是整网分类器延迟。继续沿已懂的depthwise、通道变换和残差,看看现代卷积块还怎样组织这些运算。
数据核对于 ShuffleNetV2 Table 1 的 ARM ×1 列,单位 images/s;CLS07 若保留 GPU ×1 列,其单位为 batches/s,不能横向混排或换称延迟。原论文 MAC 指 memory access cost(内存访问成本);本讲算术账与 LAB11 的 MAC 指 multiply-accumulate(乘加次数)。两种口径须写全称。
速度证据须来自同设备、同后端与输入条件;不能拼接 CPU 和 GPU 成绩排行。
ShuffleNetV2 Table1 ARM列:Snapdragon810,Neon单线程,56×56输入,10个双1×1块;GPU列另用batches/s。
本页说明与来源 ShuffleNetV2 v1 Table1,Snapdragon810 Neon 单线程、输入56×56、10个双1×1 block、近似等FLOPs。吞吐76.2/72.9/69.1/57.6 images/s。非完整分类器测速。 arXiv v1, 2018-07-30; ECCV 2018 · Sec.2, Table 1, Figure 3(c)
ShuffleNetV2 · ECCV 2018
留下的问题: 已有模块没有固定的唯一排法:用 ConvNeXt 的代表块检查新的组织。
返回主讲 CLS 07 LAB 10 回本章开头 43 · 现代卷积块,怎样重排空间与通道计算? ConvNeXt 2022:depthwise 空间混合、LayerNorm、通道展开与投影,再接残差。
ConvNeXt v1 · 输入、输出均为 H×W×C;LN 在当前位置跨通道 输入 x 保留残差路 7×7 depthwise 每通道空间混合 LayerNorm 按通道规范化 Linear C → 4C 逐位置通道展开 GELU 非线性 Linear 4C → C 回到原通道数 分支缩放 LayerScale / DropPath + x 直接进入相加 结构机制 · 末步画面;完整展开见主讲。 从输入特征进入代表性的同分辨率ConvNeXt块:7×7 depthwise先在每个通道内混合空间,LayerNorm调整当前位置的通道值,逐位置线性层把通道从C展开到4C,经GELU后投影回C,最后与输入相加。这里的逐位置线性层可理解为通道混合;无需先学Attention。LayerNorm按一个位置的通道规范化,不是刚才BN跨batch估计统计,二者不能换名。若图中保留layer scale与stochastic depth,它们作用于残差分支,详细设置留说明。这个块改变了明确的计算顺序,但结果更好是否全来自结构?先检查训练配方。
本图是 ConvNeXt v1 代表块。GRN 是后来的 ConvNeXt V2 机制,不在此块中。
本图解释结构与计算关系;没有把构造示意标作实测结果。
采用 ConvNeXt v1 代表 block:DW7×7→LN→Linear C→4C→GELU→Linear4C→C→LayerScale→DropPath→残差加。DropPath 是训练正则,评价时不随机丢弃;主图可省略但本说明保留。
官方代码在 NCHW/NHWC 间排列;主图统一用 HWC 说明数学 shape。无末尾 ReLU。v1 不含 GRN,不能把 V2 的模块混入 v1 图。
按ConvNeXt v1 block组织;相加之后不另加ReLU。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
2201.03545v2
convnext.py
留下的问题: 块的结构已经具体,接着区分结构变化与训练配方贡献。
返回主讲 CLS 06 LAB 10 回本章开头 44 · 结构变了多少,配方又贡献多少? ConvNeXt 2022:先固定 ResNet-50 改 recipe,再读结构现代化路径。
ImageNet-1K · top-1 准确率 ↑ ResNet-50 · 既有配方 76.1% 同结构 · 增强训练配方 78.8% 再按顺序逐步改结构 82.0% 0 100% 论文报告重绘 · 非本次实测 · 末步画面;完整展开见主讲。 先固定 ResNet-50,原配方记录为76.1%,增强训练配方后为78.8%;然后按顺序调整结构,探索路径终点为82.0%。训练配方本身已带来增益,所以判断结构贡献必须先更新基线。
本页说明与来源 数值取自 A ConvNet for the 2020s(2022,arXiv v2)的§2.1及Fig.2结构探索路径。配方由90增至300 epochs,并改变优化器、增强与正则;结构终点约4.49G FLOPs。后续是累计改造路径,并非独立因素或等训练成本消融;82.1%是另一个正式模型表记录,不混入本图。
ConvNeXt · CVPR 2022
留下的问题: 把真实论文比较中的限制,转成可操作的控制变量检查。
返回主讲 CLS 06 LAB 10 回本章开头 45 · 一项更高成绩,究竟支持哪一个结构判断? 固定有监督识别主题,逐项检查数据、架构、目标、计算与评价。
比较条件 方案 A 方案 B 数据与划分 相同监督图像 相同监督图像 结构 原 block 新 block 训练配方 旧优化/增强 现代优化/增强 如果 B 更好,可以把全部收益归给新 block 吗? 结构机制 · 末步画面;完整展开见主讲。 先隐藏教学配置的改变项,请大家说需要哪些信息才会相信“新结构更好”。再逐项展开:数据划分是否相同,卷积连接是否变化,分类目标是否相同,训练轮次与增强是否变了,最后评价在哪个测试集。这里不填写虚构成绩;配置表只是归因练习。如果数据和recipe也变了,我们可以说整个系统在该条件下不同,却不能单独计算结构贡献。完全正交对照做不起时,至少保留竞争解释。接着将这一纪律带回设备设计:同一模块在不同硬件下也需要重新计账。
本图解释结构与计算关系;没有把构造示意标作实测结果。
A/B配置为用于识别混杂变量的教学构造,不是实测成绩。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
留下的问题: 结构比较不仅控制训练,还要明确部署硬件与模块计时范围。
返回主讲 CLS 06 LAB 10 回本章开头 46 · 空间混合的位置,改变要处理的通道数 MobileNetV4 · UIB:比较通道展开前后放置 depthwise 的计算条件。
MobileNetV4 · UIB 空间大小相同;展开把通道数 C 变为 tC 可选 DW 空间混合 · C 1×1 展开 通道 C → tC 可选 DW 空间混合 · tC 1×1 投影 通道 tC → C′ 位置改变:处理的通道数与中间激活大小 结构机制 · 末步画面;完整展开见主讲。 沿UIB图找两个可选的depthwise位置:通道展开前或展开后,再找1×1展开与线性投影。把空间运算放在较窄还是较宽的通道上,会同时改变表示处理与算术、激活成本;这是可以具体选择的模块配置,不是一个“新版本所以更快”的结论。UIB能够覆盖几类已有块的组织方式,但候选的设备排序仍需测量。原论文的混合模型与Attention增量计时留在说明,不把该表改造成UIB单模块速度证据。模块之外,整网还可以决定做多深、多宽,以及输入多大。
本页只解释 UIB 空间混合位置。完整 MobileNetV4 还包含其他模块;模块延迟、加入 attention 部分的延迟、整网延迟不是同一测量对象。原论文详细延迟表在参考材料。
本图解释结构与计算关系;没有把构造示意标作实测结果。
各阶段的计算量、模块延迟和整网延迟分开测量;不能跨设备拼接结论。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
MobileNetV4 · ECCV 2024
留下的问题: 从块内部位置选择,扩展到深度、宽度与输入分辨率。
返回主讲 CLS 07 LAB 10 回本章开头 47 · 多一份预算,花在深、宽还是分辨率? 深、宽、分辨率分别增加哪些计算?先在同一预算附近比较候选。
规模比较:层数、通道数与输入网格 深度 d 宽度 w 分辨率 r block block block block 沿计算路径增加层数 每层保留更多通道 每通道处理更多位置 卷积计算量近似随 d × w² × r² 增长 计算量 ≠ 实际延迟 机制示意 · 未运行模型 · 末步画面;完整展开见主讲。 分别比较重复层数、通道数与空间网格,辨认深度、宽度和分辨率改变的对象。卷积工作量近似随 d×w²×r² 增长,因此三个维度不能各自独立加满。EfficientNet 从选定基线出发协调扩展;系数依赖具体模型、训练条件与预算,不是普遍最优比例。相近 FLOPs 也不保证相近延迟或内存,比较前应固定要优化的指标。
本页说明与来源 EfficientNet,ICML 2019,Abstract 与复合缩放方法。图形比较规模关系,不表示论文测量值。
EfficientNet · ICML 2019
留下的问题: 可选项与目标已经明确,结构选择可以成为一个可检验的搜索过程。
返回主讲 CLS 07 LAB 10 回本章开头 48 · 模块与预算已有了,谁来选择它们的组合? NAS:内层训练权重,外层依据验证表现与设备目标选择结构。
外层:在结构之间选择 搜索空间 可选模块 / 深宽 结构提案 候选网络 内层:训练参数 θ 数据 → 损失 → 梯度 → 参数 验证 + 真实设备延迟 验证选择;设备测时 精度 ↔ 设备延迟:软权衡 机制示意 · 未运行模型 · 末步画面;完整展开见主讲。 固定一个候选结构后,内层用训练数据调整权重;外层根据验证表现与目标设备延迟提出下一候选。MnasNet的目标ACC×(LAT/T)^w是精度与延迟的软权衡,超过目标延迟不等于立即淘汰。研究者仍定义空间、代理、目标与预算。
本页说明与来源 按MnasNet §3、Eq.1–3、Figure3绘制循环,没有重跑搜索。验证数据参与候选选择,测试数据用于锁定方案后的最终检验。
MnasNet
留下的问题: 搜索循环并未替人定义空间与目标;检查循环外仍有哪些限制。
返回主讲 CLS 07 LAB 10 回本章开头 49 · 搜索自动化了选择,哪些决定仍在人手里? 允许的结构、评价代理、硬件目标和搜索预算,共同限定最终结果。
人仍需定义 自动搜索能做 应加的最小对照 搜索空间 在允许的模块中提案 同空间随机搜索 评价代理 较低代价估计表现 代理与最终排序是否一致 设备目标 按目标成本优化 在目标设备直接测量 机制示意 · 未运行模型 · 末步画面;完整展开见主讲。 逐行看人预先定义什么、搜索可以改变什么、该用哪个最小对照。没有放进搜索空间的模块不能被选到;低成本代理的排序也可能不同于完整训练和目标设备。判断策略是否有用,应保留同空间、同预算的随机搜索。
本页说明与来源 ProxylessNAS讨论代理与目标任务的错位,MobileNetV3结合搜索与人工改良。HPO调整超参数、NAS选择结构,二者都不能自动定义研究问题;具体选择算例留在LAB10。
ProxylessNAS
MobileNetV3
留下的问题: 面对许多设备配置,追问候选能否共享训练而在部署前再选定。
返回主讲 CLS 07 LAB 10 回本章开头 50 · 每换一部设备,都要重新训练一个网络吗? OFA 先共享训练,再按设备预算选子网;这仍是部署前的选择。
共享权重的超网 部署条件 深度 2 / 3 / 4 个块 宽度 较窄 / 较宽 卷积核 3×3 / 5×5 / 7×7 分辨率 固定候选输入尺寸 目标设备 + 计算预算 验证表现参与选择 选定子网 较浅 · 较窄 · 小核 输入 A、B、C 都执行这一配置 机制示意 · 未运行模型 · 末步画面;完整展开见主讲。 先指共享训练的超网:候选可以改变深度、宽度、核与输入分辨率。设备和预算确定后,结合验证表现选择部署子网。更换输入图像时,该设备仍可执行同一个固定子网,因此部署前选网与逐输入早退是不同的决策时点。
共享权重可能影响候选排序,需独立检验,不能假定等价于各子网分别完整训练。
本页说明与来源 Once-for-All §3、Figures 3–5 及 specialized model 部分。图中子网为配置例,没有对应设备的最优性测量。
Once-for-All
留下的问题: 选择从部署前推进到输入到达后:先训练中间出口,再制定停止规则。
返回主讲 CLS 07 LAB 10 回本章开头 51 · 中间出口,也需要学会做分类判断 中间出口先接受监督训练;参数固定后,再选择何时停止。
共享前端 θ₁ 由同一图像提取表示 后续层 θ₂ 继续处理 最终分类头 损失 L₂ 中间分类头 损失 L₁ 固定浅出口 / 全深度 / 动态策略 结构机制 · 末步画面;完整展开见主讲。 在骨干中间接一个浅出口,末端保留深出口。同一张有标签训练图在各出口产生分类损失,按既定权重组合后更新各自分类头与共享骨干;不是临时在一个未训练的中间向量上挑最大值。这里解释课程两出口模型的联合监督接口,不把它称作所有多出口算法的唯一训练法。训练完成后固定参数,用验证集选择停止阈值,测试只评价锁定策略。最大预测概率可以作为停止分数,却不保证正确:自信错停也要计入结果。接下来先看路径机制,再与简单静态出口比较。
LAB11使用联合监督的独立两出口模型。验证集允许的精度损失不会自动成为测试集保证;测试结果必须连同固定浅出口、全深度等简单基线报告。
本图解释结构与计算关系;没有把构造示意标作实测结果。
机制示意;详细实现与实验身份见对应 CLS / Lab。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
留下的问题: 出口和停止规则有了各自训练/选择职责,才能评价按输入早退。
返回主讲 CLS 07 LAB 11 回本章开头 52 · 哪些输入值得继续计算? 多出口机制与独立 digits 实验:先理解停止规则,再检查收益。
独立实验:digits 双出口 BN 模型 digits · 测试 360 张 8×8 图像 策略 测试准确率 平均 conv/linear MAC 固定浅出口 95.83% 2,944 验证选动态 95.83% 3,091.73 全深度 97.22% 20,032 τ=0.50 · 含浅出口乘加 MSDNet机制示意 + LAB11保存结果 · 末步画面;完整展开见主讲。 在MSDNet式示意里,逐个追踪出口:满足停止规则才退出,未退出的样本才需要后续计算,路径为机制示意。再明确换成课程独立的两出口digits BN模型,请先预测动态是否胜过固定浅出口。验证选τ=0.5,留出360张8×8测试图上两者都是345/360、约95.83%;动态平均conv/linear MAC约3092,固定浅出口2944,全深准确率约97.22%。这次动态同准确率而成本略高,验证限制也未自动成为测试保证。数值来自保存logits的离线策略回放,没有实际跳过尾部测速,MAC只覆盖规定算子。结论限于这一模型与协议,却足以要求更复杂策略解释自己的必要性。
前3态是MSDNet式多出口机制示意,使用MNIST真实输入仅帮助识别对象,没有运行图中输入的出口路径。A/B是条件假设,不是7/2的实测置信度或难度判断。第4态明确换成LAB11独立训练的digits两出口BN模型(8×8图像,360张留出测试),阈值τ=0.50由验证选择。动态与固定浅均345/360=95.83%,MAC分别3091.73与2944;全深350/360=97.22%、20032。MAC只计conv/linear乘加且包含出口头,不计BN、激活、路由、数据搬运与排队;基于保存logits离线回放,没有真实跳过尾部测时。这一负结果仅否定当前模型和规则在准确率—MAC账上优于浅出口,不是否定动态方法普遍无用。
前三状态为MSDNet机制示意;后两状态为LAB11本地保存结果的离线策略比较,不是MSDNet复现或实测加速。
MNIST A/B图片仅为条件假设输入,图中若…则…并非这些图片实测出口。
此独立实验换成digits双出口BN模型,与前面MNIST条件机制无连续运行关系。
阈值只由验证集选择;MAC为conv/linear乘加账本,包含出口开销;离线计算两出口结果,不是真跳尾部的设备计时。
本页说明与来源 前三状态保留机制;后两状态读取LAB11真实缓存。固定浅345/360与动态345/360,平均conv/linear MAC为2944与3091.733;全深350/360。离线回放,不含实际跳过计算的计时。 arXiv v5, 2018-06-07; ICLR2018 · Sec.3, Sec.4.1, Sec.5; Figures 5/7
MSDNet
Dynamic Neural Networks: A Survey
留下的问题: 从这一种早退,概括“输入决定什么”并检查额外开销。
返回主讲 CLS 07 LAB 11 回本章开头 53 · 动态的是执行选择,还是只是一个分数? 先区分输入改变哪些计算,再问有没有真正省掉后续执行。
改变路径 输入 分支 A 跳层 / 退出 分支 B 更深的路径 改变混合权重 输入相关权重 α(x) 软混合多个 kernel W(x) = Σ αᵢ(x) Wᵢ α(x):输入相关;Wᵢ:固定 机制示意 · 未运行模型 · 末步画面;完整展开见主讲。 回指早退:输入影响停止位置,可能改变执行深度;也可以改变分支、专家身份或前向混合权重。α(x) 由前向计算产生,不表示对已学参数 Wᵢ 执行测试时梯度更新。
检查最小反例:门控给不同输入不同分数,但仍完整执行所有分支。路径或组合方式随输入变化,并不自动意味着少算;必须核对哪些算子真正不再执行。
本页说明与来源 Dynamic Neural Networks 综述,arXiv v4 §II、III、V、VII;2021 是综述时间,不是动态网络概念的起点。
Dynamic Neural Networks: A Survey
留下的问题: 即使逻辑上跳过计算,管理与调度也可能抵消收益。
返回主讲 CLS 07 LAB 11 回本章开头 54 · 省下的前向计算,真的变成更短等待了吗? 三张图在同设备串行处理;用构造算例计入每图管理开销。
三张图,同设备串行 · 不重叠、不组批 · 总耗时(ms) 固定网络 10 10 10 30 ms 动态前向 4 8 10 22 ms 动态 + 管理 7 11 13 31 ms 假设:每图管理 +3 ms 精确教学算例 · 非模型实测 · 末步画面;完整展开见主讲。 固定同一设备串行处理三张图,不重叠、不组批。固定前向为 10+10+10=30 ms,动态前向为 4+8+10=22 ms。先请学生预测,再给每张图加入 3 ms 管理开销,总耗时变为 31 ms。前向省下 8 ms,管理却增加 9 ms,因此当前整批耗时多 1 ms。
这是构造预算,不是设备测量;它比较整批耗时,不能据此报告单请求延迟、吞吐、p95、能耗或真实组批收益。实际系统仍需测量出口、门控、搬运与调度成本。
本页说明与来源 计算值为本课教学构造;机制背景参考 Dynamic Neural Networks,arXiv v4 §II、III、V、VII。
Dynamic Neural Networks: A Survey
ShuffleNetV2 · ECCV 2018
留下的问题: 从是否继续走深,扩展到当前表示只进入哪些专家分支。
返回主讲 CLS 07 回本章开头 55 · 有多条分支,是否每次都要全部计算? router 用学到的参数选 top-2 专家;先看稀疏执行,再追问打分怎样接受监督反馈。
训练时:类别误差沿已执行路径反馈 输入 A 表示 z E₁ · θ₁ 输出 D 维 E₂ · θ₂ 输出 D 维 加权相加 输出 D 维 分类头 → L 与标签 y 比较 router · Wg 连续权重 α α₁、α₂ 紫虚线:θ₁、θ₂ 与连续 α 的梯度 结构机制 · 末步画面;完整展开见主讲。 先回忆Inception:所有分支都执行,再concat。现在指router输出的分数,为同一个输入表示选出四个等形专家中的两个;只走被选路径,其余明确保持未执行。两个输出按门控权重相加,合并维度保持接口要求,不是通道拼接。换一个输入可选不同专家,但固定top-2并不意味着每张图都少算不同次数,负载与通信还会影响延迟。专家编号只是参数组身份,不未经检验叫作“猫专家”。这是教学机制类比,不表示MoE起源于Inception;视觉V-MoE可路由patch表示,具体骨干留说明。router 也是带参数的网络。训练时,类别损失不仅经过专家输出反馈到被调用的专家,也能经过所选专家的连续合并权重反馈到路由打分。这里可微的是选中集合固定时的权重变化;top-2 的专家编号跨边界会跳变,不能把硬选择画成处处可微的普通层。如果输入总挤向少数专家,训练机会与系统负载都会失衡。推理时使用已学到的固定参数选路,并不为这张图重新训练 router。
除了选哪条路,还能让同一个块多做几轮吗?
分数与0.731/0.269为明确top-2构造例,不是训练专家的实測输出。固定k换专家身份不必然减少调用数或乘加;真实速度还受负载均衡、容量、通信与调度影响。
本图解释结构与计算关系;没有把构造示意标作实测结果。
本页通用构造采用 top-k 后 softmax,并省略训练噪声;四分数和选择是精确构造,不是语义专家实测,不给专家命名猫/车等未经检验语义。
V-MoE(2021)路由的是 patch 表示,且先 softmax 后 top-k,所选权重不必和为1;详细架构留后续。固定 k、固定 patch 数且不丢 token 时,专家身份变化并不自动使每图运算数变化。
混合专家至少可追溯到1991;2017稀疏专家层是代表性现代机制。参数容量、每次激活运算与实测延迟分别评价。
训练展开回到输入 A,沿用相同构造分数,未展示训练后数值或专家语义。图中紫色虚线表示链式法则的两条反馈路径;分类头也接受监督训练。所选集合固定时 α=softmax(s_selected),任务梯度可通过 α 到 Wg;不把离散编号求导。精细推导、k>1 的条件、importance 与 load 的差别见 CLS07。依据 Shazeer 等 2017 §2.1、§4、附录 A;原文还含噪声门控与平滑负载估计,本图省略。
top-2分数和0.731/0.269是精确构造,推理参数固定;不是模型实验结果。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
1701.06538v1
2106.05974v1
jjnh91.pdf
留下的问题: 从选择参数组,转向重复使用同一组参数处理当前状态。
返回主讲 CLS 07 回本章开头 56 · 参数不增加,同一个块能否多做几轮? 并排比较独立多层与共享 block 循环:权重标记不变,中间状态逐轮变化。
不同参数:逐层计算 block θ1 各自保存参数 block θ2 各自保存参数 block θ3 各自保存参数 同一参数:多次调用 共享 block θ h0 → h1 共享 block θ h1 → h2 共享 block θ h2 → h3 结构机制 · 末步画面;完整展开见主讲。 先指左边的独立多层,层与层有各自参数;再看右边循环,每次调用同一个fθ,h₀变h₁、再变h₂,θ的标记始终相同。这是反复计算得到新状态,不是权重在学习。相较独立展开层,共享可以减少存储的参数,但多跑一轮仍增加运算和等待;若每张图固定相同轮数,也不自动变成按输入自适应。图中使用通用计算块,不要求先懂Transformer。近期语言模型的recurrent-depth结果只作架构延伸阅读,不当成本课视觉实测。再进一步:若希望参数也依据当前输入调整,反馈从哪里来?
共享循环图是机制构造;语言模型研究仅用作同参数多次执行的例证,不据此宣称本讲视觉任务的收益。固定迭代轮数和根据输入自适应停止是不同设计。
本图解释结构与计算关系;没有把构造示意标作实测结果。
示意接口 h(r+1)=Bθ(h(r)),每轮 shape 相同。Huginn(2025)是共享核心的近期语言模型例子,只在这里作架构延伸,不引用它作为视觉分类性能证据。循环思想早于2025。
DeepLoop(2026-07首版,2026-08 v2)研究反复访问共享参数后的训练稳定性与缩放;只作延伸阅读,不展开另一套 Transformer 推导。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
2502.05171
2607.13491v2
留下的问题: 区分状态迭代与参数更新,再为参数更新寻找训练时准备好的辅助反馈。
返回主讲 CLS 07 回本章开头 57 · 若允许现场更新,反馈能从当前图像产生吗? 原始视觉 TTT:训练时已联合准备分类头与辅助头,测试时再用辅助目标更新共享部分。
更新后:回到原图,检查类别预测 原测试图 x 测试类别未知 共享提取器 fθ′ 参数已更新 分类头 hφ · 固定 原图 → 类别分数 辅助头 gψ · 固定 本步不执行 结构机制 · 末步画面;完整展开见主讲。 源训练先联合准备共享提取器、分类头和旋转辅助头。测试类别未知,但施加的旋转操作提供已知标签;辅助损失只更新选定共享参数θ,两只头固定,随后回到原图输出类别分数。辅助任务改善不能代替分类评价,要与同一源模型不更新的预测比较。
本页说明与来源 按原始视觉TTT(2019预印本/ICML2020)的单样本协议绘制;每张输入从源参数重置,在线继承更新是另一协议。类别评价标签不参与辅助更新或选参。Tent使用熵目标与规范化仿射更新;TTT layers把小模型权重作为序列状态,问题设置不同。本图没有新增TTT运行结果。
sun20b.html
sun20b.pdf
1909.13231
2407.04620v1
2604.06169v1
留下的问题: 把部署选网、选路径、重复计算与参数更新放到同一对象表中比较。
返回主讲 CLS 07 回本章开头 58 · 选计算图、走一条路、多做几轮,还是更新参数? 以固定网络为基线,比较四类变化:部署选网、动态执行、共享块循环与测试时学习。
动作 主要改变什么 测试反传? 部署前选网 固定子网与预算 否 早退 / 稀疏路由 本次深度 / 专家身份 通常否 共享块循环 中间状态与执行轮数 否(本页固定权重) 视觉 TTT 选定共享参数 θ 是,辅助目标 结构机制 · 末步画面;完整展开见主讲。 请逐行指出变化发生的时点和对象。固定网络沿同一图计算;OFA在部署前选定子网;早退与稀疏路由在当前输入到来后选择深度或分支;Loop反复调用共享参数而改变中间状态;视觉TTT利用辅助反馈执行选定参数的更新。前三类推理选路和Loop不因定义本身就需要测试时反传,TTT则明确付出反馈与更新成本。相同参数量不等于相同执行量,动态也不自动比固定模型先进。把这些差异变成一个可以失败的结构实验,而不是按新旧方法名排队。
本图解释结构与计算关系;没有把构造示意标作实测结果。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
Once-for-All · ICLR 2020
视觉 Test-Time Training · ICML 2020
Sparsely-Gated Mixture-of-Experts · 2017
Scaling up Test-Time Compute with Latent Reasoning · 2025
Learning to (Learn at Test Time): TTT Layers · 2024
留下的问题: 只选择一个变化对象,写出简单基线与能够否定方案的结果。
返回主讲 CLS 07 回本章开头 59 · 好的研究判断,来自值得解释的现象与能区分解释的比较 ResNet 与 ConvNeXt:什么比较排除了什么解释,又留下什么未知?
ResNet:从训练异常出发 ConvNeXt:排查比较条件 原先的判断 层数更多,至少应该不差 原先的判断 排名差距是否来自结构? 异常与改变 plain 深网训练更差 → 学习残差 替代解释 同结构换配方,成绩已经改变 比较排除什么 同深度比较,排除层数变化这一解释 比较排除什么 先控制配方,再讨论结构贡献 末停点;逐步展开见主讲。 ResNet团队观察到更深plain网络连训练误差也更高,因此仅说表达能力更强不够;残差参数化提出可检验的优化方向。原位置的训练现象与同深度验证对照各自承担证据,不能说解决所有梯度问题。ConvNeXt团队先更新ResNet-50训练配方,随后研究结构,提醒我们先建立强基线;累计路径不是每因素独立因果。课程参考的Impact、Priority、Edge、Incremental可理解为谁受益、机会与已有工作、自己的优势、可推进的里程碑;Priority不是必须抢先,Incremental不是只做微小增量。
ResNet的训练行为和同深度验证对照承担不同证据:验证表不能单独解释优化。ConvNeXt同结构更新配方先建立强基线,随后累计结构改造不等于每因素独立因果。以排除哪项解释来选择比较,而不是凭团队声望或方法年代。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
留下的问题: 下一页:把“早退应该更快”写成一个能够失败的研究判断
返回主讲 CLS 07 回本章开头 60 · 把“早退应该更快”写成一个能够失败的研究判断 研究设计示例:在指定设备和精度约束下,检验早退能否减少实际等待。
问题与判断 指定设备、精度约束内,早退能否减少等待? 待检验:同时满足预先约定的精度与延迟目标。 对照与观察 同设备、输入、batch、环境和划分;验证选阈值。 比较完整路径与真实跳过路径,记录退出比例与目标延迟。 反证与里程碑 精度不达标,或少算却未更快:方案不成立。 先完成一台设备、一种规则的闭合比较,再扩大条件。 末停点;逐步展开见主讲。 沿已填写示范,打开自己的研究卡 ↗
先约定准确率约束及平均或尾延迟指标。同一设备、输入、batch、环境和数据划分下,比较完整静态网络与真正跳过后续层的实现;阈值仅由验证集确定。观察精度、退出比例、实际延迟和调度开销,不能只报 FLOPs。
未达到精度约束,或计算计数减少却没有改善目标延迟,方案即不成立。首个里程碑先固定一个设备和一种退出规则完成比较,再改变输入分布、batch 或硬件。
本页说明与来源 本页为待验证研究设计。LAB11 保留的是历史离线回放,与真实跳过执行和设备计时不同;没有把该计划写成新结果。研究问题和首个里程碑的组织参考 AI-Sys Spring 2019 Lecture 1。
AI-Sys Spring 2019 Lecture 1 · 选题与首个里程碑
留下的问题: 下一页:先替换一个条件,再提出你自己的可检验问题
返回主讲 CLS 07 回本章开头 61 · 从 batch 1 到 32,早退还会带来同样的收益吗? 只改变推理 batch;固定设备、模型、阈值和输入集合,提出一个待检验预测。
同设备 · batch=1 完整路径 ↔ 真正跳过后续计算 只改推理 batch=32 同一模型、数据、阈值与精度约束 机制预测 · 待检验 共享执行更高效,但分组与重排可能抵消早退收益。 反例条件 若目标延迟仍下降且精度满足约束,收益就被保留下来。 末停点;逐步展开见主讲。 沿已填写示范,打开自己的研究卡 ↗
学生不必当场填四个空框。先沿教师示范选一个变化,例如batch、输入分布或设备;说清为何可能改变早退收益,什么比较能检验它,以及什么结果使判断不成立。完整填写进入连续讲义,保留原草稿。收尾回到六章:连接规定计算、训练学习参数、条件与输入决定哪些计算值得执行。表示如何迁移到新任务留第三讲。
这是待检验的机制预测。batch 1改为32且退出比例相同,不保证延迟收益相同:一批内早退/继续样本混合后,剩余计算可能变成较小批次,或需要重组与调度。反向预测是若实现能够高效压紧、重组继续样本,或固定开销被摊薄,收益可能保留甚至增大。先固定设备、模型、阈值、输入集合、运行环境与计时范围,使用同一指标分别比较固定全深与真实早退。没有新测量,不给结果数字。保留历史route与已有草稿入口;第三讲接表示复用。
本页说明与来源 机制关系依据所列来源重绘;图中的构造数字与已有实测记录分别标明。
CS231n 2026 · CNNs
CS231n 2026 · CNN Architectures
Long et al. · Fully Convolutional Networks (2015)
留下的问题: 停留讨论;课后填写研究卡,第三讲继续表示与多模态。
返回主讲 CLS 07 回本章开头 62 · 学会分类之后,网络里的表示还能做什么? 从识别整张图,到找到物体、分清像素与实例。
图像 骨干网络 视觉表示 新任务 3D 空间结构与几何关系 Video 连续变化与时间对应 学习这些表示, 必须依靠类别标签吗? 末停点;逐步展开见主讲。 这一讲我们主要把网络本身弄清楚:怎样连接、怎样训练、怎样分配计算。但分类只是读出方式之一。请先看图像经过骨干网络后留下的表示,再看右侧的任务:找到物体、分清像素、区分实例,需要保留的位置和细节并不相同。三维空间和连续视频还会增加空间关系与时间对应的要求。下一讲会讨论已经学到的表示怎样复用,也会补上类别标签之外的学习方法。我们不预设任何已有表示换一个头就足够;是否有用要由新任务检验。
无监督/自监督是学习表示的途径,并非“可迁移”的同义词;有监督训练的表示也可能迁移。检测、语义分割与实例分割按输出需求比较,不是彼此替代的历史。SAM 可以连接可提示分割与视觉基础模型,其原始数据线索是 SA-1B,不是 LAION。
本页说明与来源 自然图像由 ImageGen 原创生成,描绘木桌上的蓝色与橙色杯子。框、轮廓与掩码按图像人工绘制,用于定义输出任务,不是模型预测。语义态同色表示杯子类别,实例态用颜色与编号区分两只杯子;所有状态复用同一幅图。
SAM · Segment Anything
留下的问题: 如果不只用固定类别,而是用一句话描述或提问呢?
返回主讲 第三讲 · 课程导读 ↗ 第三讲 CLS01 · 从可迁移权重到可比较的表示 ↗ 回本章开头 63 · 文本加入之后,视觉系统能回答什么新问题? Lecture 03 · 可迁移表示与多模态感知
同一幅图像 图像 + 语言问题 → 回答 蓝色杯子在橙色杯子的 哪一侧? 视觉信息 左侧 打开 Lecture 03 ↗ 末停点;逐步展开见主讲。 我们还可以不只用固定类别提问,而是用语言:这张图和哪句话对应?这句话说的是哪个物体?模型怎样结合画面回答问题?第三讲会从学习信号与迁移出发,经过检测、分割以及空间和时间,最后来到视觉与语言的结合。我们要理解能力从什么数据、什么训练任务中学出来。文生图会在这里建立联系,但它还需要把条件变成图像的生成模型。
CLIP 联合学习图像和文本表示,本身不是图像生成器;原始论文使用自建 WIT 图文对,不是后来发布的 LAION-5B。GLIP 将检测与短语 grounding 联系起来,可用于解释整图对应怎样走向区域对应。LAION-5B 是大规模图文数据的例子,不能把所有多模态能力归因于同一数据集。图文对齐、区域 grounding、视觉问答与文本条件生成有关联,但训练目标及输出能力不同。
本页说明与来源 自然图像与前页相同。描述、区域框和“左侧”的回答均为教师编写的任务示例,没有调用模型、评测成功率或生成新的实验结果。论文链接集中用于说明学习问题与事实关系。
CLIP · Learning Transferable Visual Models From Natural Language Supervision
GLIP · Grounded Language-Image Pre-training
SAM · Segment Anything
LAION-5B · An open large-scale dataset
留下的问题: 第三讲将追问:这些能力来自什么数据与训练任务?
返回主讲 第三讲 · 课程导读 ↗ 第三讲 CLS03 · 图文配对、候选接口与评价边界 ↗ 回本章开头