第 1 题
为什么把多层全连接直接堆叠而不加激活函数是没有意义的?
尚未检查本题。
查看答案与评价要点
参考答案:线性变换的复合仍是线性变换,因此堆叠若干层线性层的表达能力与单层相同,参数增加但可拟合的函数族没有扩大。必须在层间插入非线性激活,网络才能逼近非线性映射,深度才产生额外表达力。
评价要点:指出线性变换复合仍为线性;说明表达能力与单层等价;得出非线性是深度产生意义的前提
浏览器未允许保存进度;当前为只读学习模式。
第 7 周 · 初阶
进入神经网络的世界
周目标:理解神经网络原理,掌握PyTorch基本操作
课程成果:CO3 CO8
已学习 0 / 7 天
Day 43
建议时长:75 分钟
本日 CO:CO3 CO8
神经网络的基本单元是「线性变换加非线性激活」的堆叠。没有激活函数时,无论堆多少层,整体仍等价于一次线性变换,因此非线性是深度带来表达力的前提。训练依赖两个机制:前向传播计算预测与损失,反向传播沿计算图用链式法则求出每个参数的梯度。PyTorch 的自动微分会在前向时记录操作构成动态计算图,调用反向时沿图回溯累积梯度——注意是累积而非覆盖,所以每个训练步都要先清零,这是初学者最常见的错误来源之一。
6 分钟 · MP3 · 双主持人讲解
一层全连接做的是矩阵乘法加偏置,这是一个线性变换。两个线性变换的复合仍然是线性变换,因此把若干层线性变换直接堆叠,其表达能力与单层完全相同——参数变多了,能拟合的函数族却没有扩大。在每层之间插入非线性激活函数后,网络才能逼近复杂的非线性映射,深度才开始有意义。这是理解「为什么深度学习需要激活函数」最直接的解释,也是设计网络时不能省略的一步。
常用激活函数各有特点。整流线性单元计算简单、在正区间梯度恒定,缓解了深层网络中梯度逐层衰减的问题,但输入为负时梯度为零,可能导致部分神经元长期不更新。带泄漏的变体给负区间保留一个小斜率来缓解这一点。选择激活函数不是玄学,而应结合梯度传播行为与实测收敛曲线来判断,并把对比结果记录下来。
PyTorch 采用动态计算图:前向传播执行的每个操作都会被记录,形成一张从输入到损失的有向图;调用反向传播时,框架沿这张图从损失出发,用链式法则逐步计算出每个参数的梯度并写入参数的梯度属性。官方文档特别说明梯度是累积的——新计算出的梯度会加到已有值上,而不是替换。这个设计支持梯度累积等技巧,但也意味着常规训练必须在每步开始前显式清零。
标准训练循环有四步:清零梯度、前向计算损失、反向传播求梯度、优化器更新参数。少了清零,梯度会跨批次累加,等效于用一个不断变化的巨大批次训练,表现为损失剧烈震荡或不下降。评估阶段还要做两件事:把模型切到评估模式(影响随机失活与批归一化的行为),以及关闭梯度计算以减少显存占用和加速推理。这两点漏掉不会报错,只会让结果悄悄失真。
用 PyTorch 实现一个两层全连接网络完成手写数字分类,手动写出训练循环的四个步骤并解释每一步的作用。
为什么把多层全连接直接堆叠而不加激活函数是没有意义的?
尚未检查本题。
参考答案:线性变换的复合仍是线性变换,因此堆叠若干层线性层的表达能力与单层相同,参数增加但可拟合的函数族没有扩大。必须在层间插入非线性激活,网络才能逼近非线性映射,深度才产生额外表达力。
评价要点:指出线性变换复合仍为线性;说明表达能力与单层等价;得出非线性是深度产生意义的前提
训练循环中忘记清零梯度会出现什么现象?为什么框架不默认清零?
尚未检查本题。
参考答案:梯度会跨批次累加,参数更新方向被历史批次污染,表现为损失剧烈震荡或迟迟不下降。框架不默认清零是因为累积行为本身有用途,例如在显存不足时用多个小批次累积梯度来模拟大批次训练,所以清零时机交由使用者显式控制。
评价要点:描述梯度跨批次累加的后果;指出损失震荡或不收敛的现象;说明梯度累积的正当用途
尚未完成自测。
在教师提供的骨架上补全训练循环四个步骤,并说出每一步的作用。
独立实现网络与训练循环,完成两组对照实验并提交曲线。
实现梯度累积模拟更大批次,验证其与直接使用大批次的等价性与差异。
学习状态:未学习
Day 44
建议时长:75 分钟
本日 CO:CO3 CO8
训练能否收敛,往往取决于优化器、学习率与初始化的配合,而不是模型结构。随机梯度下降沿当前批次的梯度方向更新,加入动量后可以在震荡方向上相互抵消、在一致方向上累积速度;自适应方法为每个参数维护独立的步长,对稀疏梯度与不同尺度的参数更友好,但也可能在某些任务上泛化略差。学习率是影响最大的单个超参数:过大导致发散,过小导致训练缓慢并容易停在较差的位置。判断这些选择的唯一可靠方式是画出损失曲线并对比,而不是照搬别人的配置。
6 分钟 · MP3 · 双主持人讲解
基础的随机梯度下降只用当前批次的梯度决定更新方向,在损失曲面狭长的区域会反复横跳。动量把历史更新方向按衰减系数累加进来:在方向不断变化的维度上,正负相消抑制了震荡;在方向一致的维度上,速度不断累积,穿越平坦区域更快。这解释了为什么加动量往往比单纯调小学习率更有效。
自适应方法为每个参数维护基于历史梯度平方的缩放因子,使梯度小的参数获得较大步长、梯度大的参数获得较小步长。这在特征尺度差异大或梯度稀疏时很有帮助,通常也让初始调参更容易。代价是引入了额外的状态与超参数,并且在部分视觉任务上其泛化表现不如带动量的随机梯度下降。因此实践建议是:把优化器当作需要实测比较的选项,而不是默认答案。
学习率过大时,参数越过极小值区域,损失曲线上表现为剧烈跳动甚至变成非数值;过小时损失下降极慢,长时间停在高位。实用的做法是先用一个较大的范围做粗扫,观察损失开始稳定下降的量级,再在该量级附近细调,并配合学习率调度(如按轮次衰减或在验证指标停滞时下调)。所有这些判断都应基于实际曲线,而不是沿用他人配置。
批归一化与随机失活在训练与评估时行为不同,这是两个必须记住的细节。批归一化训练时使用当前批次的统计量并更新全局的滑动平均,评估时使用滑动平均值;随机失活训练时按概率丢弃部分单元,评估时全部保留。若评估时忘记切换模式,前者会让结果依赖批次组成,后者会引入随机性,都会让评估结果不稳定且偏低,而且不会有任何报错提示。
在同一个模型与数据上对比至少三种优化器与学习率组合的收敛曲线,并记录出现发散与停滞的具体设置。
动量为什么能同时抑制震荡并加速穿越平坦区域?
尚未检查本题。
参考答案:动量把历史更新按衰减系数累加进当前更新。在梯度方向反复变化的维度上,正负分量相互抵消,震荡被抑制;在梯度方向长期一致的维度上,更新量不断累积形成较大步长,因此能更快穿越梯度较小的平坦区域。
评价要点:说明历史更新被累加;解释方向变化维度上的相消;解释方向一致维度上的累积
评估时忘记切换到评估模式,会分别对批归一化与随机失活造成什么影响?
尚未检查本题。
参考答案:批归一化会继续使用当前批次的统计量而非训练期累积的滑动平均,使结果依赖于评估批次的组成,批次较小时波动明显;随机失活会继续随机丢弃单元,给推理引入随机性并通常降低指标。两者都不会报错,只会让评估结果不稳定且偏低。
评价要点:说明批归一化改用批次统计量导致结果依赖批次;说明随机失活引入推理随机性;指出不会报错这一隐蔽性
尚未完成自测。
在教师提供的脚本上完成两种优化器的对比,并读出损失曲线差异。
独立完成三种优化器与学习率扫描实验,提交完整曲线与结论。
在同一任务上找出自适应优化器与带动量随机梯度下降在验证指标上的差异,并设计实验说明差异是否稳定。
学习状态:未学习
Day 45
建议时长:75 分钟
本日 CO:CO3 CO8
卷积网络利用图像的两个先验:局部性——相邻像素相关性更强,因此用小窗口提取局部特征;平移不变性——同一个特征在图像不同位置都应被识别,因此同一组卷积核在整幅图上共享参数。参数共享使卷积层的参数量远小于同等规模的全连接层。池化通过降采样扩大感受野并提供一定的位移容忍。迁移学习是实际项目中最常用的做法:用在大规模数据上预训练好的骨干网络提取通用特征,只训练新的分类头,或在此基础上以较小学习率微调,能在样本很少时取得远好于从零训练的结果。
6 分钟 · MP3 · 双主持人讲解
全连接层把输入的每个像素与每个输出单元相连,参数量随图像尺寸迅速膨胀,而且完全没有利用像素的空间关系。卷积层改为在局部窗口内连接,并让同一组权重在整幅图上滑动共享。前者体现了局部性先验,后者体现了平移不变性先验——一个边缘检测器不应该因为边缘出现在图像右下角就失效。参数共享带来的直接好处是参数量大幅下降,同时也提升了对位置变化的鲁棒性。
单层卷积只能看到一个小窗口,但多层堆叠后,深层单元对应的原始图像区域会逐层扩大,这个区域称为感受野。池化通过降采样进一步扩大感受野并压缩空间尺寸,同时提供对小幅位移的容忍。设计网络时需要估算最深层的感受野是否覆盖了目标物体的典型尺寸——感受野过小时,模型无法看到完整对象,增加宽度也无济于事。
冻结特征提取是指保持预训练骨干的权重不变,只训练新加的分类头。它训练快、显存占用低、在样本极少时不容易过拟合,适合目标任务与预训练数据分布接近的情况。微调是指同时更新骨干权重,通常对骨干使用比分类头小得多的学习率,适合目标任务与预训练分布差异较大且有一定样本量的情况。两者不是二选一,常见做法是先冻结训练分类头至收敛,再解冻部分深层做小学习率微调。
一个容易被忽略的陷阱是预处理必须与预训练时一致。预训练权重是在特定的输入尺寸、通道顺序和归一化统计量下学到的,torchvision 的官方模型页面为每套权重提供了对应的预处理变换。如果自行使用了不同的归一化参数,输入分布与骨干期望的分布错位,特征质量会明显下降,而现象往往表现为「迁移学习没有效果」,很难直接联想到预处理。因此使用预训练权重时,应当直接使用其配套的预处理定义。
用预训练骨干网络完成一个小样本图像分类任务,对比冻结特征提取与微调两种策略的效果与训练成本。
卷积层相对全连接层的参数量优势来自哪里?这带来了什么额外好处?
尚未检查本题。
参考答案:来自局部连接与参数共享:每个输出单元只连接输入的一个小窗口,且同一组卷积核在整幅图上滑动复用同一份权重,因此参数量与图像尺寸基本无关。额外好处是引入了平移不变性先验,同一特征出现在不同位置都能被识别,提升了对位置变化的鲁棒性。
评价要点:指出局部连接与参数共享两点;说明参数量与图像尺寸解耦;指出平移不变性带来的鲁棒性
使用预训练权重时,为什么必须采用与预训练一致的输入预处理?
尚未检查本题。
参考答案:预训练权重是在特定输入尺寸、通道顺序与归一化统计量下学到的,骨干各层对输入分布有隐含期望。预处理不一致会使输入分布与该期望错位,提取到的特征质量显著下降,表现为迁移学习效果不佳,且这种问题不会报错,很难被直接察觉。官方模型页面为每套权重提供了配套的预处理定义,应直接使用。
评价要点:指出权重与输入分布相绑定;说明错位导致特征质量下降;提出使用官方配套预处理
尚未完成自测。
使用教师提供的脚本完成冻结特征提取,并读出与从零训练的准确率差距。
独立完成两种迁移策略与预处理对照实验,提交完整对比。
设计分阶段策略(先冻结训练头部再解冻深层微调),验证其相对单一策略的收益并说明代价。
学习状态:未学习
Day 46
建议时长:75 分钟
本日 CO:CO3 CO8
序列数据的特点是顺序本身携带信息。循环网络按时间步依次处理输入并维护一个隐藏状态,把历史信息向后传递。它的结构性困难在于长距离依赖:梯度沿时间步反向传播时会连乘,导致逐步衰减或爆炸,因此难以学到相隔很远的依赖关系。长短期记忆网络引入门控与一条相对畅通的记忆通路来缓解衰减问题,但仍然是顺序计算的——第 t 步必须等第 t-1 步算完,无法在时间维度上并行,这正是后来注意力机制取而代之的主要动因之一。
6 分钟 · MP3 · 双主持人讲解
循环网络在每个时间步接收当前输入与上一步的隐藏状态,输出新的隐藏状态。隐藏状态因此承担了「到目前为止看到了什么」的压缩表示。这个设计天然适合变长序列,参数量也不随序列长度增长。但压缩是有损的:越早的信息经过越多次变换,保留下来的成分越少,模型对开头信息的记忆会随序列变长而快速衰减。
更根本的困难来自梯度传播。反向传播要沿时间步逐级回溯,梯度是一连串因子的乘积;当这些因子普遍小于一时,连乘结果指数级趋近于零,早期时间步几乎收不到有效梯度,模型学不到长距离依赖;当因子普遍大于一时则会爆炸,训练发散。梯度裁剪可以处理爆炸,衰减则要靠结构改进。门控网络通过一条加性的记忆通路让信息能够较少衰减地跨越多个时间步,从而在一定程度上缓解这一问题。
即使解决了梯度衰减,循环结构还有一个无法绕开的限制:第 t 步的计算依赖第 t-1 步的结果,因此同一条序列内部无法并行。批次维度可以并行,但序列长度方向必须逐步推进。当序列很长时,训练时间与序列长度基本成正比,这在现代硬件的大规模并行能力面前是明显的浪费。
这正是注意力机制的动因之一:它让每个位置直接与序列中所有位置建立关联,计算可以在序列维度上并行展开,长距离依赖也不必经过多次传递。代价是计算量随序列长度平方增长,且需要额外的位置编码来补回被放弃的顺序信息——因为完全并行的注意力本身不知道谁在前谁在后。理解这一组取舍,是理解下一节 Transformer 的关键铺垫。
用循环网络完成一个短文本分类任务,观察序列长度增加时的效果变化,并解释顺序依赖对训练速度的影响。
为什么循环网络难以学到长距离依赖?梯度裁剪能解决这个问题吗?
尚未检查本题。
参考答案:梯度沿时间步反向传播时是一连串因子的连乘,因子普遍小于一时结果指数衰减,早期时间步几乎收不到有效梯度。梯度裁剪只处理梯度过大导致的发散,对衰减无效;缓解衰减需要结构改进,例如引入门控与加性的记忆通路。
评价要点:说明梯度连乘导致指数衰减;指出早期时间步收不到有效梯度;明确梯度裁剪只解决爆炸不解决衰减
循环网络的顺序计算限制体现在哪里?注意力机制用什么代价换取了并行?
尚未检查本题。
参考答案:第 t 步依赖第 t-1 步的隐藏状态,同一条序列内部无法在时间维度并行,训练耗时随序列长度线性增长。注意力让每个位置直接关联所有位置,序列维度可并行,代价是计算量随序列长度平方增长,并且需要额外的位置编码来补回顺序信息。
评价要点:指出时间步之间的依赖阻碍并行;说明注意力可在序列维度并行;指出平方复杂度与位置编码两项代价
尚未完成自测。
在教师提供的脚本上运行两种序列长度的对比,并读出准确率与耗时差异。
独立完成分类器实现与三种长度的对比实验,提交完整记录。
构造一个需要跨越很长距离才能判断的合成任务,验证循环结构在其上的失败,并解释失败机制。
学习状态:未学习
Day 47
建议时长:75 分钟
本日 CO:CO3 CO8
注意力机制把每个位置的表示拆成查询、键、值三个角色:用查询与所有键计算相似度得到一组权重,再用这组权重对值加权求和。这样任意两个位置之间只需一步就能建立关联,不必像循环网络那样逐步传递。缩放点积注意力在计算相似度后除以维度的平方根,目的是避免维度较大时点积数值过大、经归一化后梯度过小。多头机制把表示切分成若干子空间并行做注意力,让模型在不同子空间关注不同类型的关系。由于注意力对位置是对称的,必须显式加入位置编码,否则打乱词序不会改变输出。
6 分钟 · MP3 · 双主持人讲解
ALL in Transformer | 全网最清晰、最易懂的transformer讲解(上)编码器层 | 一次性讲清楚transformer架构
Hi_王汉三 · 已核验 2026-08-29
注意力的直观理解是「按相关程度取信息」。每个位置生成一个查询向量表示它想要什么,同时生成键向量表示它能提供什么样的匹配依据,以及值向量表示它实际携带的内容。查询与所有键做点积得到相似度分数,经归一化后成为一组和为一的权重,再用这组权重对所有值加权求和,得到该位置的输出。整个过程是可微的矩阵运算,因此可以高效地在硬件上并行执行。
缩放因子的作用常被忽略。当向量维度较大时,随机初始化下的点积数值会随维度增长而变大,归一化函数的输入落入饱和区,输出接近独热分布,反向传播时梯度极小,训练难以进行。除以维度的平方根把点积的数值范围拉回合适区间,使权重分布不至于过早极化。这是一个纯粹出于数值稳定考虑的设计,理解它有助于判断其他类似结构中的缩放选择。
多头注意力把表示切分成若干较低维的子空间,在每个子空间独立计算注意力,最后把结果拼接并做一次线性变换。它与「单头但维度更大」的差别在于:多头允许不同的头学到不同类型的关联——有的头可能关注相邻词,有的关注句法上远距离的搭配——而单个大头只能给出一组权重。代价是每个头的维度变小,单头能表达的细粒度信息减少,因此头数与每头维度是一组需要权衡的超参数。
注意力对输入位置是对称的:如果把序列中的元素打乱顺序,每个位置计算出的注意力权重集合不变,输出只是随之重排,模型无法感知谁在前谁在后。因此必须显式注入位置信息,常见做法是给每个位置加上一个与位置相关的编码向量。这一点可以直接用实验验证——去掉位置编码后打乱词序,模型输出的集合不变,这个实验比任何文字解释都更能说明位置编码的必要性。
手工计算一个小规模注意力矩阵的完整过程,并用框架实现验证结果,同时验证去掉位置编码后词序被忽略。
缩放点积注意力中的缩放因子解决了什么问题?去掉它在高维情况下会发生什么?
尚未检查本题。
参考答案:它解决点积数值随维度增大而变大的问题。去掉缩放时,高维下的点积方差较大,归一化函数输入进入饱和区,输出接近独热分布,反向传播时梯度极小,训练难以推进。除以维度的平方根把数值范围拉回合适区间,使权重分布不过早极化。
评价要点:指出点积数值随维度增大;说明归一化饱和导致梯度过小;指出缩放使权重分布不过早极化
为什么 Transformer 必须显式加入位置编码?如何用实验证明?
尚未检查本题。
参考答案:注意力对位置是对称的,打乱序列顺序后各位置计算出的权重集合不变,输出只是随之重排,模型无法感知顺序。可以设计实验:在不加位置编码的情况下,把输入序列打乱后比较输出集合,若集合不变即证明模型忽略词序;加入位置编码后重复,输出会随顺序变化。
评价要点:指出注意力对位置对称;说明打乱后输出集合不变;给出可执行的对照实验设计
尚未完成自测。
在教师给出的数值上完成手工注意力计算,并核对每一步中间结果。
独立完成手工计算、框架验证与两组对照实验。
实现一个简化的多头注意力,验证不同头在同一输入上学到的权重模式差异并给出可视化。
学习状态:未学习
Day 48
建议时长:75 分钟
本日 CO:CO3 CO8
从能跑通到能复现,中间隔着一整套工程习惯。可复现的最低要求是:固定随机种子、记录框架与驱动版本、记录数据版本与划分方式、保存完整的超参数配置。使用加速设备时还要注意数据在设备之间的搬运往往是瓶颈——数据加载线程数、批大小与显存占用需要一起调。混合精度可以显著提升吞吐并降低显存占用,但要确认结果的精度损失在可接受范围内。最重要的一条是:每次实验只改一个变量,否则得到的差异无法归因。
6 分钟 · MP3 · 双主持人讲解
深度学习实验的不可复现,多数不是因为框架的随机性无法控制,而是因为记录不全。一份最低限度的记录清单包括:随机种子、框架与加速库版本、数据集版本与划分方式(含划分所用的种子)、完整超参数配置、以及硬件型号。缺任何一项,几周后想重现同一个结果都会变得困难,更不用说让别人验证。把这份清单写进实验脚本的输出里,比事后凭记忆补写可靠得多。
需要说明的是,即使记录完整,某些加速库的算子实现本身可能是非确定性的,多次运行会有细微差异。这不是问题,只要在报告中说明「同一配置下重复三次的指标范围」,读者就能判断某个改进是真实提升还是落在波动范围内。用单次运行的小幅提升论证一个改动有效,是深度学习实验中最常见的不严谨之处。
训练慢不一定是算力不足。如果加速设备的利用率长期偏低,瓶颈往往在数据侧:磁盘读取、解码、增强都在处理器上完成,跟不上设备的消耗速度。此时增加数据加载的工作线程数、使用更高效的图像解码、把数据预先转成更紧凑的格式,收益通常远大于换更好的设备。反之,若设备利用率已经很高,则应从批大小、混合精度或模型结构上想办法。先测利用率再动手,是避免无效优化的基本纪律。
批大小的调整会牵动其他参数。增大批大小会提高显存占用与单步吞吐,但每轮的参数更新次数减少,通常需要相应调整学习率;同时较大批次的梯度噪声更小,这既可能加速收敛也可能影响泛化。因此把批大小从三十二改到二百五十六的同时又改了学习率和优化器,得到的结果无法归因于任何单项。单变量原则说起来简单,但在追求「先跑出一个好结果」的压力下最容易被放弃。
在加速设备上训练一个图像分类器,记录完整的可复现配置,并做一次单变量对照实验说明某项改动的实际收益。
训练很慢但加速设备利用率很低,应优先排查什么?为什么换更强的设备通常无效?
尚未检查本题。
参考答案:应优先排查数据侧:磁盘读取、解码与数据增强是否跟不上设备消耗速度,可从增加数据加载工作线程、使用更高效的解码或预先转换为紧凑格式入手。设备利用率低说明计算并非瓶颈,换更强设备只会让空转时间占比更高,实际训练耗时改善有限。
评价要点:指出瓶颈在数据加载侧;给出至少两种数据侧优化方向;解释利用率低时换设备无效的原因
为什么用单次运行的小幅指标提升论证一个改动有效是不严谨的?
尚未检查本题。
参考答案:同一配置多次运行本身存在波动,部分算子实现是非确定性的。若提升幅度落在重复运行的波动范围内,就无法区分是真实改进还是随机波动。严谨做法是报告同一配置下重复多次的指标范围,并说明改进幅度是否超出该范围。
评价要点:指出同配置重复运行存在波动;说明小幅提升可能落在波动范围内;提出报告重复运行的指标范围
尚未完成自测。
在教师提供的脚本上补齐配置记录项,并读出设备利用率判断瓶颈。
独立完成配置清单、瓶颈定位与单变量对照实验。
对比开启与关闭混合精度的吞吐、显存与指标差异,并判断精度损失是否在可接受范围内。
学习状态:未学习
Day 49
建议时长:75 分钟
本日 CO:CO3 CO8
本周收尾把结构演进串成一条有内在逻辑的线:全连接不利用任何结构先验,参数量大且难以扩展到高维输入;卷积引入局部性与平移不变性,用参数共享换来效率与鲁棒性;循环网络引入时间维度的状态传递以处理变长序列,但受制于梯度衰减与顺序计算;注意力放弃顺序递推,让任意两个位置直接关联,换来并行能力与长距离建模,代价是平方复杂度与需要显式位置信息。理解每一步「解决了什么、引入了什么新代价」,比记住每种结构的公式更重要,也是判断新模型是否适合自己任务的基础。
6 分钟 · MP3 · 双主持人讲解
全连接层不做任何结构假设,因此通用,但参数量随输入维度线性增长,对图像这种高维输入既低效又容易过拟合。卷积用局部性与平移不变性两个先验换来了参数共享,代价是这两个先验必须成立——对于本身不具备平移不变性的数据(如表格特征),卷积并不合适。这说明先验不是免费的:它在合适的数据上是效率,在不合适的数据上是偏差。
循环网络为序列引入了状态传递,解决了变长输入的建模问题,代价是梯度沿时间连乘带来的衰减与无法并行的顺序计算。注意力放弃递推,让任意两个位置一步关联,同时解决了长距离依赖与并行度两个问题,但引入了随序列长度平方增长的计算量,并且必须显式补回位置信息。把这条线索完整讲出来,就能理解后续各种高效注意力变体在优化的是哪一项代价。
选择结构时,除了任务类型还要看三个现实约束:数据量决定能否支撑从零训练还是必须迁移学习;序列长度决定注意力的平方复杂度是否可承受;算力预算决定单次实验的迭代速度,进而决定能做多少次对照。一个在论文中效果最好的结构,如果在自己的数据量与算力下无法收敛或无法迭代,就不是好选择。把这三个约束写在方案开头,能避免大量走弯路。
本周的工程纪律可以压缩成一份清单:训练循环是否清零梯度、评估是否切换模式并关闭梯度、预处理是否与预训练权重匹配、随机种子与版本是否记录、瓶颈是否先测再优化、每次实验是否只改一个变量、结论是否给出重复运行的波动范围。这份清单适用于本周所有实验,也适用于后续的大模型微调与部署环节。
画出从全连接到注意力的结构演进图,为每一步标注引入的先验、解决的问题与新增的代价,并据此为三个任务各选一种结构。
为什么说卷积引入的先验「不是免费的」?请举一个不适合使用卷积的例子。
尚未检查本题。
参考答案:局部性与平移不变性是关于数据的假设,只有在假设成立时才带来效率与鲁棒性;假设不成立时它就是一种偏差,会限制模型表达。例如一般的表格型特征,各列之间没有空间上的邻近关系,也不存在平移不变性,对其使用卷积会引入无依据的结构约束。
评价要点:指出先验是关于数据的假设;说明假设不成立时先验变成偏差;给出表格数据等具体反例
注意力相对循环网络解决了哪两个问题?各自引入了什么新代价?
尚未检查本题。
参考答案:解决了长距离依赖(任意两位置一步关联,不必逐步传递)与并行度(序列维度可并行计算)两个问题。新代价是计算量与显存随序列长度平方增长,以及必须显式加入位置编码来补回被放弃的顺序信息。
评价要点:指出长距离依赖与并行度两个问题;指出平方复杂度代价;指出需要显式位置编码
尚未完成自测。
在教师给出的演进图骨架上补齐每一步的先验与代价。
独立完成演进图、三个任务的选择与个人检查清单。
针对长文档场景调研一种降低注意力复杂度的思路,说明它优化的是哪一项代价以及引入了什么新的限制。
学习状态:未学习