R22.md · 可读全文

这里保留原文的中文、公式标记、代码和链接。可直接交给 Agent 读取,也可选取下方原文复制。此入口返回 HTML;原始 .md / .py 文件仍保留,完整候选包同时包含 UTF-8 原件。

# R22 · 换单元、加深网络、改方向,是不同选择

刚才改变了递推单元内部。接下来把单元、可读方向和深度这三个结构选择分开,为恢复条件生成确定合法的信息范围。

<span id="r22-b0"></span>

## 状态 b0

三列分别改单元、方向和深度。把每个名称落到对应结构轴,理解它们可组合而非互斥。

<span id="r22-b1"></span>

## 状态 b1

新增可见范围条件:完整源句已给定,可两侧编码;未知目标未来不能进入自回归预测。堆叠中各层有自己的参数,同层沿时间共享。

## 公式与算例详情

这三个词回答不同问题。GRU 改变单个递推单元;双向改变位置能取得的上下文;堆叠改变逐层表示的深度。它们可以组合,例如LSTM或GRU也可双向、也可堆叠,但不能互相替代。

一种与 Cho 等人记号一致的 GRU 写法是

$$r_t=\sigma(W_re_t+U_rh_{t-1}+b_r),\quad z_t=\sigma(W_ze_t+U_zh_{t-1}+b_z),$$
$$\widetilde h_t=\tanh(W_he_t+U_h(r_t\odot h_{t-1})+b_h),$$
$$h_t=z_t\odot h_{t-1}+(1-z_t)\odot\widetilde h_t.$$

这里 $z$ 越大越保留旧状态;有的文献将 $z$ 定义成新写入比例,符号相反但机制可以等价。reset gate 作用在候选内容的旧状态输入上。GRU 通常没有单独的 $c_t$;具体软件实现还可能把 reset gate 放在仿射变换之后,移植权重时须核对公式。来源:Cho et al.,2014,https://arxiv.org/abs/1406.1078。

双向 RNN 分别得到 $\overrightarrow h_t=f(\overrightarrow h_{t-1},e_t)$ 与 $\overleftarrow h_t=g(\overleftarrow h_{t+1},e_t)$,再拼接。整句已知的编码器、标注任务可利用两侧;严格自回归 LM 不能把目标未来词交给反向分支。

堆叠 RNN 用 $h_t^{(\ell)}=f^{(\ell)}(h_{t-1}^{(\ell)},h_t^{(\ell-1)})$,同一层跨时间共享参数,不同层通常有各自参数。增加层数也增加参数、计算和优化难度,不能仅靠层数宣称效果更好。V-RNN PDF p91 显示时间与深度两个不同方向。

原课页采用记录:[M13 LSTM的门到底怎样工作](sources.html#M13)、[M14 双向、堆叠与其他序列任务](sources.html#M14)。页码均按PDF物理页计。

### 继续学习

[本页自学核对](lecture.html#read-R22):分别改变单元、方向和深度,说明生成时哪些输入未知;整理成三条独立结构轴。

若想知道双向、深度与读取接口怎样影响比较,可进入[《2014:先拥有一个可工作的翻译器,再决定改哪里》](https://codingai-lec05.pages.dev/course/knowledge/translation-choices-2014.html);动手时打开[LAB02](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-05-841ec8e7-e352-4840-b628-d3742b03d6d0/notebook/LAB-02-bba1d024d8e64a589c290b09381de692?utm_content=bba1d024d8e64a589c290b09381de692&utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_term=get_notebook)的“D/E · 固定源序,比较两种读取接口”:核对固定/动态组共同编码器与各自参数,不把编码方向变化算成读取接口单项收益。 门控与长依赖比较另见[实验路线C](experiments.html#experiment-C)。