想象一间大饭店的后厨,主厨是个“乱炖快手”:每道菜都把几十种食材倒进同一口锅里,猛火翻炒五分钟就出锅。你尝一口,好吃,却压根说不清里面放了什么——盐、糖、花椒、陈醋的味道全缠在一起。大模型的内部世界就是这样一座后厨:当它思考“猫”时,相关信息并不安稳地躺在某个单独的“格子”里,而是和“毛茸茸”“宠物”“夜晚”“警觉”等几十种概念,重重叠叠地压在同一群神经元的方向上——研究者称之为“特征叠加”。于是,稀疏自编码器(SAE)登场了,它像一位专职的“味觉解构师”:把一锅糊状物反推出原料清单——豆瓣酱两勺、花椒一把、豆腐三块。这篇文章就带你参观这间“味觉解构实验室”:看解构师如何搭设备、定标准、报成果,以及当工作量从一道菜变成满汉全席时,又会遇到什么麻烦。
对 AI 从业者的价值:SAE 是当代机制解释性的核心工具。掌握它意味着你不仅能训练模型,还能“拆开”模型,发现可验证、可操控的单义特征——这是可解释性工具开发、模型安全审计和忠实性研究岗位的硬通货。
可视化演示
展示神经网络如何用少于特征数的维度编码大量特征,通过近正交方向实现特征叠加与干扰权衡。
本节配有交互动效(进入视口后自动加载,约 3KB)。
特征叠加 Superposition 近正交方向:N个特征编码到D维空间(N>D) 特征干扰:非完全正交带来噪声 稀疏激活:稀疏性降低干扰影响 Features > Dimensions → Superposition Superposition让网络编码超出维度数的特征
特征叠加困境
后厨里的“乱炖快手”并非手忙脚乱——恰恰相反,他是在省锅。饭店的灶台(神经网络的隐藏层)只有那么几口锅(维度),每天却要出几千道菜(概念)。唯一的办法,就是把相近的菜混着一锅出。当模型处理“猫”时,“毛茸茸”“宠物”“夜晚”“戒备”这几个概念就被一起倾进了同一口锅。
这种现象在机制解释性研究中被称为特征叠加(superposition)。大模型隐藏层是一个有限维空间——比如一个中等模型的某层只有 4096 个方向(维度),但它要表示的概念数量远超这个数字。模型发现,与其给每个概念分配一个专用方向(那是浪费),不如把概念们重叠挤压在同一个方向附近,反正大多数时候它们不会同时派上用场。
叠加的直接后果是“多义方向”:任何一个隐藏层方向都同时对应多个概念,单个神经元不再是“猫神经元”或“狗神经元”,而是“猫+狗+眼睛”的复杂混合体。早期研究者试图逐个神经元解读网络,发现绝大多数神经元都是“一锅端”。这让机制解释陷入困境:想理解模型为什么输出这个答案,先得把每个神经元的“乱炖”拆开。
所以,“解构师”的第一课就是认清现实:没有哪口锅是干净的,每口锅都是乱炖。想品出“豆瓣酱”,就不能靠鼻子闻,得靠专门的解构工具。
- 隐藏状态 h模型某一层对输入产生的中间表示,也就是我们要分析的那“锅汤”。
- 特征方向 fᵢ假设中存在的“单义特征”,比如“猫”或“引号”各自占用一个方向。
- 叠加系数 cᵢ每个特征在当前输入下的强度贡献,相当于“这锅汤里豆瓣酱放了多少”。
- 连加号 Σ把 k 个特征方向按各自的强度线性地“炖”进同一个状态里,这就是叠加的数学模样。
字典学习原理
解构师要拆菜,首先得有一本“原料风味字典”:上面记录了豆瓣酱、花椒、陈醋等每一种原料单独呈现时的风味特征。有了这本字典,任何一道菜都能被翻译成一串“用了哪几种原料、各用多少”的清单,而不是一句“反正就是那个味儿”。
这本字典在数学上称为字典(dictionary)。字典学习(dictionary learning)的目标,是找到一组方向向量 d₁, d₂, ……, dₘ,使得任意信号 x(比如某个隐藏状态)都能被写成这组方向的线性组合,而且组合系数尽量稀疏——大多数系数为零。所谓字典原子,就是字典矩阵里的每一列,一个列对应一个可供调用的“基本特征”。
注意这里有个关键设计:字典是“过完备”的——字典原子的数量 m 通常远大于信号维度 n(例如 n=512 时 m 可以到 16384)。过完备意味着表达方式有冗余,原子之间不必正交;正因为冗余,我们才能从众多候选里挑出“最精简”的那几个原子来解释 x。这一步挑选过程,就是稀疏编码(sparse coding):在这本字典中为 x 找到最优稀疏组合。
有了这本“原料风味字典”,解构师的工作就从“凭空猜味道”变成了“机械查表”:先尝一口(观测 x),再翻字典(匹配方向),最后只勾选少数几样原料,就是一张简洁的配方卡。
- 待解构信号 x模型某层的激活向量,是我们要分析的那道菜。
- 字典原子 dⱼ字典 D 的第 j 列,代表一个“原料”方向,比如某个语义特征。
- 稀疏系数 aⱼx 在原子 dⱼ 上的用量。稀疏意味着绝大多数 aⱼ 恰好等于零。
- 矩阵乘积 Da把 m 个原子按系数加权求和,紧凑写成字典矩阵 D 与稀疏系数向量 a 的乘法。
SAE架构设计
味觉解构实验室的设备是一台三段式仪器:前端是“采样器”,把混合风味读成信号;中段是一个摆满几千种原料的大型储物架,但每次只允许少数几格被点亮;后端是“复原锅”,把选中的原料重新加热还原成菜,用来检验拆解有没有走样。
这台仪器就是稀疏自编码器(Sparse Autoencoder, SAE)。它直接作用在模型的隐藏层激活上:输入 x 是某层神经元的激活向量;编码器 W_enc 把它映射到一个更宽的稀疏空间;再经过 ReLU 激活;最后解码器 W_dec 把稀疏表示映射回原空间,得到重建 x̂。
架构上有三个要点。其一,中间层是“过完备”的:特征维度 m 通常取隐层维度 n 的 8 到 32 倍,这个倍数叫宽度扩展比(dict_mult),比如 n=512 时 m=16384——这是给“稀疏”留出挑选空间。其二,编码器输出必须经过 ReLU:它把负激活压成 0,确保稀疏层只记录“正向证据”,这正好对应字典系数的非负约定。其三,解码器权重做字典用:训练完成后,它的每一列就是一个学习到的特征方向,可以直接读出来当作字典原子。实践中为了训练稳定,还会给编码器加一个 pre-encoder bias,先把输入减去均值再编码。
采样器保证信息不丢,储物架保证答案稀疏,复原锅保证结论可信——三段式设备搭好,解构师就可以开工了。
- 编码器权重 W_enc把 n 维输入线性映射到 m 维特征空间(m 远大于 n),相当于把信号“摊”到巨大的储物架上。
- ReLU 激活把所有负值清零,保证特征激活非负,也天然地让一部分格子保持熄灭。
- 稀疏表示 zm 维向量,只有少数分量非零——这就是“清单上只写了少数原料”。
- 解码器权重 W_dec把稀疏表示映射回 n 维空间得到重建输出,其列向量就是字典原子。
训练目标设计
设备搭好后,解构师怎么知道自己分解得对不对?他给自己立了两条铁律:第一,按清单复原的菜必须和原菜味道八九不离十;第二,每张清单只能列少数几样原料,不许把整个厨房都写上去。
这两条铁律正是 SAE 训练损失的两部分。第一条是重建损失(reconstruction loss),度量解码器输出 x̂ 与原始输入 x 的差距;第二条是稀疏惩罚(sparsity penalty),惩罚稀疏层激活 z 的冗余程度。两者相加,就是一次解构的总评分,梯度则通过编码器和解码器一路回传,让设备不断自我校正。
重建损失一般用均方误差:逐维度计算平方差再求和。稀疏惩罚最常用 L1 范数,即所有激活绝对值之和乘上一个权重系数 λ。L1 的特殊之处在于,它在梯度上对每个非零激活施加一个恒定的“推力”,把很小的激活往零推,直到恰好归零——这才是真正的“稀疏”。两个目标互相拉扯:重建损失希望 z 携带全部信息,稀疏惩罚希望 z 尽量精简。
两条铁律听起来简单,却是一切解构工作的核心:既要“复原得像”,又要“清单够短”。谁能同时做到这两点,谁就是合格的味觉解构师。
- 重建损失 ‖x − x̂‖₂²逐维计算平方差再求和,要求解构后能复原原信号,平方让大误差受重罚。
- 稀疏惩罚 λ‖z‖₁把所有激活的绝对值加起来,惩罚“用料慷慨”;L1 的梯度恒定,能把小激活推成真正的 0。
- 权衡系数 λ控制“还原逼真”与“原料精简”哪个更重要。λ 太小会退化成复读机,λ 太大会答非所问。
稀疏正则方法
“不许写太多原料”可以落实成不同的记事习惯。有的解构师每写一样原料都心疼(被扣钱),于是自然少写;有的解构师规定自己最多只写 k 样,超额的直接划掉;有的解构师追求整批菜谱的平均用料低,个别菜多写几样也无所谓。
这三种记事习惯,对应 SAE 训练中三种主流的稀疏化手段:L1 惩罚、TopK 激活和批量级熵正则。L1 惩罚直接在损失中加入稀疏项,简单通用,是当下用得最多的方案。TopK 方法换了个思路:编码器先算出所有激活值,只保留最大的 k 个、其余全部置零,再用重建损失训练,不再需要显式稀疏惩罚项,可以精确控制每个输入的稀疏度。批量级熵正则(batch sparsity)则约束一个 batch 内的平均激活率,希望字典里的特征被“均匀使用”,从而减少某些特征永远不被激活的情况。
三种方法各有取舍:L1 的缺陷是“收缩效应”(shrinkage)——为了让绝对值总和变小,模型会把激活值整体压小,导致重建系数偏小;TopK 的缺陷是置零操作不可导,需要近似梯度或绕过它训练;熵正则的缺陷是控制粒度在批量层面,单个样本的稀疏度不受保证。
三种记事方式各有适用场景:L1 像“罚钱制”,省心但账目会缩水;TopK 像“限额制”,精确但规则不好学;批量稀疏像“平均主义”,能防浪费但对单道菜不严格。选哪种,取决于你更在意重建质量还是稀疏的可控性。
- 激活值 zⱼ编码器对第 j 个特征算出的原始点亮强度。
- 秩函数 rank(zⱼ)把全部激活值从大到小排序后,zⱼ 所处的位次,排第 1 表示最强。
- 阈值 k用户指定的保留数量,相当于“最多写 k 样原料”,例如 16384 个特征中只留 64 个。
- 指示函数 𝟙[·]条件成立取值 1,保留该激活;否则取值 0,把这个格子熄灭。
特征可视化评估
解构师交作业时,光说“我找到第 7 号特征是豆瓣酱”是不够的。评委要看到证据:什么菜里它会冒头?把它抽掉,味道变不变?这两个提问,就是特征评估的两板斧。
SAE 训练完成后,我们得到一本字典和一批稀疏系数。要确认每个特征真的对应人类可理解的概念,需要一整套可视化与验证流程。这套流程回答两个问题:这个特征“是什么”,以及它“真的在起作用吗”。
第一步是激活采样:在大量真实文本或图片上跑模型,收集每个特征激活值最高的样本,拼成“触发器图集”——比如特征 17 激活时对应的句子都与“引号结尾”有关,那它很可能就是“引号特征”。第二步是特征图谱:把解码器对应列向量投影到模型词表(类似 logit lens 的思路),找出与之最相似的词,快速给出语义标签。第三步是可解释性打分:用自动语言模型或人工标注,评估该特征是否单义。第四步是消融验证:在推理时把该特征激活强行置零或反向缩放,观察模型输出是否按预期变化——这是因果层面的确认,比如把“金门大桥”特征放大,模型就开始不停谈论金门大桥。
四板斧下来,解构师才能真正在清单上写“豆瓣酱”而不是“某种红色酱状物”。可视化回答“它是什么”,消融回答“它真的在起作用吗”——两者缺一不可。
- 样本批次数 T用于统计的文本批次数,样本覆盖越多,出勤率越可靠。
- 激活指示 𝟙[zᵢ,ₜ > 0]第 t 批数据里第 i 个特征是否被点亮,点亮记 1,否则记 0。
- 平均出勤率 rᵢ点亮次数除以总批次数,接近 0 说明特征几乎从不工作(可能是死特征)。
规模扩展挑战
解构一道麻婆豆腐容易,但要给整桌满汉全席、几十位客人的每一道菜都写清单,解构师就忙不过来了:原料品种爆炸、储物架放不下、有的解构师干了几天直接罢工。这就是从玩具模型走向真实大模型时的规模之痛。
在真实场景中,SAE 要作用在大模型每一层的残差流上——一个 70 亿参数的模型可能需要上百万个特征才能覆盖主要行为。规模放大后,三个问题立刻凸显:特征数量爆炸、训练不稳定、死特征泛滥。
其一是特征数量爆炸:隐层维度越大、模型能力越强,需要的字典原子越多,字典矩阵的内存以“特征维度 × 隐层维度”增长,一个 16384×512 的字典就是 823 万参数,几十层叠加非常可观。其二是训练不稳定:大模型的激活分布方差大、残差流范数会随层累积,直接训练常出现 loss 震荡甚至发散,研究者需要用 micro-batch 统计(如 Gemma Scope 项目中引入的 pre-encoder bias)来补偿分布漂移。其三是死特征(dead features):初始化不当或学习率过高时,大量特征从头到尾从未被激活,梯度为零、永久沉睡,占比可达 20% 以上。对应的修复手段包括周期性重新初始化死特征、引入辅助重建损失(auxk)为沉睡特征提供梯度等。
满汉全席的解构靠的是流水线和体检制度:特征数量做预算、训练统计做补偿、死特征定期“叫醒”。规模化的本质,是把解构师的手艺变成工程。
- 特征总数 M字典里所有原子的数量,规模越大,覆盖面越广但管理越难。
- 零出勤指示 𝟙[rᵢ = 0]第 i 个特征在全部样本上从未被激活过,就记 1 次“罢工”。
- 死特征率 d_dead沉睡特征占全体特征的比例。比例过高说明初始化、学习率或稀疏惩罚需要调整。
跨层调参应用
单道菜解构只是开始。真正的后厨管理大师会把整桌宴席的每一道菜都解构,然后把清单排成一张“风味地图”:辣味从宫保鸡丁传到水煮鱼,甜味从糖醋排骨传入拔丝地瓜——看味道如何在菜与菜之间流转。这就是跨层 SAE 的视野。
语言模型由几十层 Transformer 堆叠而成,信息逐层加工。研究者不再只对某一层做 SAE,而是对每一层的残差流或 MLP 输出分别训练 SAE,得到一组“层 × 特征”的跨层特征。跨层 SAE 的核心观察是:特征有生命周期——低层特征(如“字母”“标点”)会逐步组合成高层特征(如“句法结构”“情感倾向”)。
跨层研究最常用的工具是特征间接效应(feature indirect effect):把某层某个特征的激活人为扰动,观察它在下一层特征激活上的变化,从而建立跨层因果链。实现上通常按层采样策略来省成本,比如每 4 层训一个 SAE。训练超参方面,关键旋钮包括:字典宽度扩展比(常见 8 到 32 倍)、批量大小(需足够大,如 16k 到 128k token,保证统计可靠)、学习率与 warmup 步数,以及稀疏惩罚系数 λ。实践中通常先用小字典跑通,再做超参扫描(sweep),以“重建损失—激活占比”散点图上的帕累托前沿为选型依据。
有了整桌宴席的风味地图,后厨管理者能解释味道如何流转、哪道菜改了会影响哪道菜。这正是跨层 SAE 带给模型研究者的礼物:从“黑盒后厨”到可定位、可解释、可干预的风味地图。
- 跨层激活向量 aₗ 与 aₗ₊₁同一输入在相邻两层上的 SAE 激活向量(可先按特征做平均)。
- 向量点积衡量两个向量方向上的对齐程度,方向越一致,点积越大。
- 范数归一除以各自长度,得到只关心方向、不关心幅度的余弦相似度,范围在 −1 到 1 之间。
AI 应用场景
场景 1:大模型可解释性工具(特征浏览器)
阶段:机制解释性分析 / 模型审计
解决的问题:调试模型时只能看损失曲线,无法定位“模型在胡说八道时到底在想什么”。传统做法靠人工逐个神经元探测,效率低,而且绝大多数神经元都是多义的。用 SAE 把隐层激活解耦成单义特征后,可以像查字典一样检索特征,快速定位问题概念。
具体案例:OpenAI 的 GPT-4 可解释性工作与 Anthropic 的 Golden Gate Claude 都基于 SAE 技术。研究者在 Claude 某一层的 SAE 特征中找到“金门大桥”特征,并在推理时人为放大该特征,模型回答问题时便开始强行提及金门大桥——这是从特征到行为的直接因果操控。
场景 2:越狱与有害内容检测
阶段:AI 安全监控 / 红队防御
解决的问题:传统有害内容检测依赖分类器或关键词,面对未知的越狱变体容易失效。SAE 特征能捕捉模型内部对“欺骗”“违规”等概念的激活强度,在模型真正说出有害内容之前就提供预警信号。
具体案例:在对话模型上离线训练 SAE 后,实时监控“越狱”或“有害意图”相关特征的激活频率。当用户尝试越狱时,这些特征在模型生成对抗性输出之前就显著激活,从而触发拦截。同理,“讨好用户”的奉承(sycophancy)特征也能被识别出来,用于后续抑制。
场景 3:模型行为控制(特征编辑)
阶段:模型对齐 / 行为微调
解决的问题:微调整个模型改动大、成本高、容易遗忘原有能力。基于 SAE 特征的干预只在推理时对稀疏系数做加减,方法轻量、可解释、可回滚。
具体案例:在开源模型的残差流上训练 SAE,识别“诚实”与“讨好”两类特征;推理时沿对应方向做 steering(特征引导),减少无故夸赞用户的讨好行为,同时保持回答质量。这种“手术刀式”干预正在成为 RLHF 之外的对齐补充手段。
Python 演示
import torchimport torch.nn as nn torch.manual_seed(42) def build_data(n_data=4000, n_obs=32, n_feat=8): """生成合成数据: 稀疏特征经字典矩阵混合成观测信号.""" D = torch.randn(n_obs, n_feat) D = D / D.norm(dim=0, keepdim=True) X = [] for _ in range(n_data): k = torch.randint(2, 4, (1,)).item() idx = torch.randperm(n_feat)[:k] coef = torch.rand(k) + 0.5 x = D[:, idx] @ coef + 0.02 * torch.randn(n_obs) X.append(x / x.norm()) return torch.stack(X), D def train_sae(X, n_dict=24, lam=0.05, steps=600): """训练稀疏自编码器: 重建损失 + L1 稀疏惩罚.""" n_obs = X.shape[1] encoder = nn.Linear(n_obs, n_dict, bias=False) decoder = nn.Linear(n_dict, n_obs, bias=False) opt = torch.optim.Adam( list(encoder.parameters()) + list(decoder.parameters()), lr=0.02 ) for step in range(steps): z = torch.relu(encoder(X)) recon = decoder(z) loss = ((X - recon) ** 2).mean() + lam * z.abs().sum(dim=1).mean() opt.zero_grad() loss.backward() opt.step() if step % 200 == 0: print("step %3d loss=%.4f" % (step, loss.item())) decoder.weight.data.div_(decoder.weight.data.norm(dim=0, keepdim=True)) return encoder, decoder def evaluate(decoder, D): """检查学到的字典原子是否与真实特征方向对齐.""" W = decoder.weight.data.T sim = (D.T @ W).abs().max(dim=1).values for i, v in enumerate(sim): print("真实特征 %d 余弦相似度: %.2f" % (i, v.item())) print("平均相似度: %.2f" % sim.mean().item()) if __name__ == "__main__": X, D = build_data() enc, dec = train_sae(X) evaluate(dec, D)
D = D / D.norm(dim=0, keepdim=True)把每个真实“原料方向”归一化成长度为 1,方便后面算余弦相似度。x = D[:, idx] @ coef + 0.02 * torch.randn(n_obs)模拟“乱炖”:随机挑 2-3 个特征方向,按随机系数混合成一道菜(观测信号)。z = torch.relu(encoder(X))编码器把混合信号“摊”到 24 维储物架上,ReLU 把负值熄灭。loss = ((X - recon) ** 2).mean() + lam * z.abs().sum(dim=1).mean()两条铁律:重建损失保证复原得像,L1 稀疏惩罚保证清单够短。decoder.weight.data.div_(decoder.weight.data.norm(dim=0, keepdim=True))训练完成后把解码器每一列(字典原子)归一化,方便对比方向。sim = (D.T @ W).abs().max(dim=1).values计算每个真实特征与最相似的学习原子之间的余弦相似度,验证解构质量。
常见误区
误区稀疏自编码器的本质就是把模型的一层压缩成更小的表示,跟 PCA 差不多,中间层越小信息越浓缩。
正解恰恰相反。SAE 的中间层是“过完备”的,特征维度通常是隐层维度的 8-32 倍,比如 4096 维输入映射到 16384 维。它做的不是压缩,而是把纠缠的信息“摊开”进更大的储物架,再通过稀疏性让大部分格子归零。关键在“稀疏”而非“窄”——就像解构师把一锅乱炖倒进更大的分拣台,一格一味。
为何常见:很多人先接触过普通自编码器,习惯了“瓶颈越小越好”的直觉,忽略了 SAE 的瓶颈是稀疏结构而不是窄宽度。
误区稀疏惩罚既然是为了让激活更少,那把 λ 调大,特征一定更干净、更好解释。
正解λ 过大会让重建损失被压制,解构师为了“少写原料”宁可不还原味道——重建质量崩坏,稀疏的特征也不再可信。正确做法是在“重建损失-激活占比”的帕累托前沿上挑拐点:既要稀疏率达标,又要重建损失没有明显恶化。稀疏不是越强越好,而是在“说得清”和“说得对”之间取平衡。
为何常见:直觉上“惩罚越重越听话”,但忽略了两个损失项是竞争关系,天平一端压死,另一端必然失衡。
误区SAE 把 4096 维变成 16384 个特征,每个特征都应该对应一个真实概念,比如“猫”或者“引号”。
正解SAE 学到的是在数据和训练目标下的最优分解,不代表每个特征都有语义。有些特征是冗余裂变(一个概念拆成多个高度相关的特征)、有些是噪声拟合、有些是伪相关(与输入统计相关但不具备因果意义)。必须经过激活采样、可解释性打分和消融验证,才能确认某个特征“真的”代表某概念。字典告诉你的只是“可以这样分解”,不是“世界就是这样”。
为何常见:论文和展示里往往挑选语义清晰的特征来叙事,“找到猫特征”这类故事传播力极强,容易让人只见树木不见森林。
误区训练完 SAE 发现 30% 的特征从来没激活过。反正活跃的那些已经够用了,死特征顶多浪费一点内存,不用管。
正解死特征是训练不良的警报。大量死特征说明初始化不合适、学习率过大、稀疏惩罚过强或缺少辅助损失。它们不参与重建,意味着字典的有效容量缩水,可能漏掉重要特征。主流做法包括监控激活频率、周期性重新初始化沉睡特征、引入辅助重建损失(auxk)来保持字典活跃。
为何常见:死特征不报错、不体现在 loss 的表面数值上,容易被误认为“这就是稀疏”。实际上稀疏指的是输入激活稀疏,而不是字典里躺着大量永远不会被用到的列。
面试题
Q1. 稀疏自编码器的“稀疏瓶颈”直接要求是?
- A.中间层维度小于输入
- B.中间层只有少数激活← 正确答案
- C.编码器必须使用LSTM
- D.解码器必须冻结权重
答案:B。SAE 的中间层维度远大于输入(过完备),但每个样本只激活极少数特征,这种“少而宽”的稀疏结构才是瓶颈的核心。C、D 选项与 SAE 架构无关。
Q2. 特征叠加的直接后果是?
- A.单个方向混合多义特征← 正确答案
- B.模型梯度必然会消失
- C.模型参数量必然减小
- D.训练数据需要做增强
答案:A。特征叠加指有限维空间里多个概念共用同一方向,导致单个神经元/方向呈现多义性,就像一锅乱炖分不清食材。梯度消失、参数减少等都与叠加无必然关系。
Q3. SAE 中解码器权重矩阵列向量的作用是?
- A.对输入做归一化统计
- B.充当可读的特征字典← 正确答案
- C.压缩信号的维度大小
- D.计算注意力的权重
答案:B。训练完成后,解码器每一列就是一个学习到的特征方向,即字典原子,负责把稀疏系数映射回隐层空间。归一化统计、维度压缩、注意力权重都是干扰项。
Q4. 以下哪些属于 SAE 常用的稀疏化手段?
- A.L1 范数稀疏惩罚← 正确答案
- B.TopK 激活保留← 正确答案
- C.随机失活 Dropout
- D.批量级熵正则← 正确答案
答案:ABD。L1 通过恒定梯度把激活推成真正的零;TopK 直接保留前 k 大激活;熵正则约束批量平均激活率。Dropout 是密集网络的随机正则化,不产生结构稀疏,故选 A、B、D。
Q5. SAE 训练损失中 λ 的作用是?
- A.控制稀疏惩罚强度← 正确答案
- B.控制解码器宽度
- C.控制学习率大小
- D.控制批量的大小
答案:A。λ 是稀疏惩罚项 λ‖z‖₁ 的权重系数,好比天平上的砝码,调节“复原得像”和“清单够短”的偏好。解码器宽度、学习率、批量大小都是独立的超参。
Q6. L1 稀疏惩罚带来的“收缩效应”是指?
- A.激活值整体被压小← 正确答案
- B.模型参数整体变小
- C.特征维度自动降低
- D.梯度出现爆炸现象
答案:A。L1 对每个非零激活施加恒定梯度推力,把激活值整体压低,导致重建用到的系数偏小、需要解码器补偿。参数变小属于权重衰减的效果;维度降低与梯度爆炸均与收缩效应无关。
Q7. 训练大规模 SAE 时应对死特征的常用手段有?
- A.周期性重新初始化← 正确答案
- B.引入辅助重建损失← 正确答案
- C.降低批量大小
- D.监控激活频率← 正确答案
答案:ABD。死特征梯度为零,需要外部干预:重新初始化唤醒、auxk 辅助重建损失为沉睡特征提供梯度、监控激活频率以尽早发现。降低批量大小会加剧统计不稳定,不属于应对手段。
Q8. 消融验证在 SAE 评估中的作用是?
- A.验证特征的因果作用← 正确答案
- B.降低模型的推理成本
- C.提升特征的稀疏程度
- D.加速字典学习过程
答案:A。消融把某特征激活置零或缩放,再观察模型输出的变化,是在因果层面确认该特征是否真的驱动行为。推理成本、稀疏程度、训练速度都与消融无关。
Q9. 跨层 SAE 的“特征间接效应”主要用于研究什么?
- A.特征在层间的因果传递← 正确答案
- B.特征在数据的分布
- C.特征维度的压缩率
- D.特征梯度的量级
答案:A。间接效应通过扰动某层特征激活,观察其在后续层特征激活上的变化,揭示跨层因果链,比如低层“标点”特征如何影响高层“句法”特征。其余选项与跨层因果无关。
Q10. SAE 在 AI 安全领域的典型应用包括?
- A.越狱行为特征监控← 正确答案
- B.模型行为特征干预← 正确答案
- C.训练数据自动标注
- D.可解释性工具开发← 正确答案
答案:ABD。SAE 特征可实时监控越狱与有害意图(安全监控),可对特征激活做加减来控制行为(干预),也是可解释性浏览器的基础工具。训练数据自动标注不是 SAE 的典型应用。