M4-006M4: Sequences & TransformersRecurrent Models (RNN/LSTM/GRU)Hard
Mastery:
Recurrent Models (RNN/LSTM/GRU): RNN 时代有哪些正则化技巧?
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: dropout 变体(variational/zoneout)、recurrent dropout、weight noise、以及 embedding dropout 等,核心是'不破坏时间维的递归结构'。
📌 Key Takeaways
- •普通 dropout 直接加在 h 上会破坏长记忆
- •variational dropout:同一条序列共享一个 dropout mask
- •zoneout:随机保留上一步隐状态而非置零
📐 Mathematical Derivations
数学机理:<strong>问题</strong>——在 RNN 的隐状态上直接施加标准 dropout(每步独立采样 mask)会破坏时间维的<strong>信息连续性</strong>:同一条序列的 h_t 在不同步被不同的 mask 扰动,等价于给递归注入高频噪声,模型无法学习稳定的长记忆(Gal & Ghahramani 的实验显示标准 dropout 在 RNN 上反而有害)。<strong>variational dropout(Gal & Ghahramani 2016)</strong> 的修正:<strong>同一条序列的所有时间步共享同一个 dropout mask</strong>(mask 只在序列间重采样),这样噪声是'序列级'的、不破坏时间相关性,且理论上等价于对权重的变分推断(故得名)。<strong>其他技巧</strong>:(a) <strong>embedding dropout</strong>——对输入 embedding 施加 dropout(不破坏递归);(b) <strong>recurrent dropout</strong>——只对递归连接 W_h h_{t−1} 施加共享 mask;(c) <strong>zoneout(Krueger 等 2016)</strong>——与 dropout 相反:随机<strong>保留</strong>上一步的隐状态(h_t←h_{t−1})而非置零,直觉是'让模型偶尔跳过更新',类似 stochastic depth;(d) <strong>权重噪声</strong>——给权重加高斯噪声(与 dropout 的乘法噪声互补);(e) <strong>激活正则</strong>——惩罚激活的 L2 或稀疏性。<strong>与 Transformer 的对照</strong>——Transformer 无时间递归,故标准 dropout 可直接用(且大模型已基本不用 dropout,见 M3)。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>为什么'共享 mask'是关键</strong>——这实际上是把 dropout 从'逐时间步的独立噪声'改为'逐序列的固定噪声',使模型在整条序列上面对同一个'子网络';这与 dropout 的集成解释(每条序列对应一个子网络)一致。② <strong>zoneout 的直觉</strong>——它让隐状态'偶尔冻结',类似于时间维的 stochastic depth;在语音识别等任务上与 dropout 互补使用。③ <strong>正则化强度随数据规模下降</strong>——RNN 时代数据小、模型小,故需多种正则;现代 LLM 数据海量,正则需求大幅下降。这条规律贯穿整个深度学习。④ <strong>与归一化的配合</strong>——RNN 也可用 LayerNorm(沿特征维,与时间无关),稳定各步的隐状态分布;这对深层 RNN 尤为重要。⑤ <strong>历史意义</strong>——variational dropout 是'贝叶斯深度学习'在 RNN 上的成功应用,也提供了 MC dropout 做不确定性估计的基础(多次采样不同 mask 得到预测分布)。⑥ <strong>面试要点</strong>——被问'RNN 怎么正则化',应点出'<strong>普通 dropout 破坏时间结构</strong>'这一核心问题,并给出 variational/recurrent/zoneout 三种修正;能联系到'贝叶斯近似'与'MC dropout'是明显加分。
⚠️ Common Interview Pitfalls
- ✕在 RNN 隐状态上用标准逐时间步 dropout
- ✕忽略 embedding dropout 与 recurrent dropout 的区别
🎯 Interviewer Follow-ups
- ?为什么普通 dropout 在 RNN 上效果差?
- ?zoneout 与 dropout 的区别?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.