Scheduled Sampling 解决 Teacher Forcing 的什么问题?
简化版
Scheduled Sampling 在训练 decoder 时按计划混合真实上一 token 与模型自身预测,试图缩小 teacher forcing 和自回归推理的条件差异。它能增强错误恢复,但采样不可微且可能引入不一致目标,需谨慎消融。
详细版
-
teacher forcing 比例通常随 epoch/step 从高到低。
-
每步或每序列采样会产生不同训练分布。
-
采样 token 可用 argmax 或随机抽样。
-
被采样离散 token 通常停止梯度。
-
它不是 exposure bias 的完整理论解法。
完整版教学
一、训练中逐步引入模型自己的历史
纯 teacher forcing 总在正确前缀上训练,推理一旦犯错就进入未见状态。
Scheduled Sampling 让模型提前接触这些偏离轨迹。
但模型可能学会判断输入来自真值还是自身,并且训练目标不再严格对应序列似然,因此效果依任务而异。
二、底层机制与公式
input_t = y_(t-1) with prob epsilon
= sample(p_(t-1)) otherwise
epsilon(step) decreases
三、带数字的推演
初始 ε=1 全用真值;训练中期 ε=0.5,长度 20 的序列期望约 10 步使用模型输出;若过早降到 0,模型尚差时会被大量错误历史淹没。
ε 的调度决定训练上下文从真值向模型分布迁移的速度,需要与验证集自由生成误差一起选择;仅看 Teacher Forcing Loss 会掩盖推理时的误差累积。
四、方案对比
| 方案/对象 | 核心特点 | 代价或边界 |
|---|---|---|
| Teacher forcing | 真值历史使优化较稳定 | RNN 仍串行,且推理分布不匹配 |
| Scheduled sampling | 见到自身错误 | 目标不一致、训练抖动 |
| 序列级训练 | 直接优化任务奖励 | 方差与实现成本高 |
五、执行流程
设定 ε 曲线 -> 每步生成 Bernoulli mask -> 选择真值/预测 token
-> decoder 前向 -> 仍对目标算 loss -> 按验证与推理质量调计划
六、边界条件与工程代价
padding 后的无效位置不能参与采样,EOS 后也应停止更新。
训练使用 argmax 会降低多样性,随机采样会增加方差;选择必须与推理策略和任务指标联合验证。
记忆钩子:Scheduled Sampling 是训练时逐步“断奶”:从真值历史过渡到自己预测。
七、常见误区与追问
-
误区:Scheduled Sampling 消除了 exposure bias。 它只缓解且引入新的目标不一致。
-
追问:采样 token 能反传吗? 普通离散选择不可微,通常停止梯度。
-
误区:teacher forcing 比例越快降越好。 早期模型差会产生失控噪声。
-
追问:按步还是按序列采样? 粒度影响上下文连续性和方差。
-
追问:如何验收? 比较自由运行序列质量、错误恢复和多 seed 稳定性。
八、加强记忆
Scheduled Sampling 按计划把 decoder 输入从真值历史部分替换为自身预测,试图让训练见到偏离正确轨迹的上下文。离散选择通常不可微,训练目标也不再是标准自回归似然的一致估计,因此它只是需要消融验证的工程折中。调度过快会让尚未学好的模型被错误历史淹没;验收应看自由生成质量、错误恢复和多随机种子稳定性,而非只看 teacher-forcing loss。