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

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

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

状态 b0

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

三个相互独立的结构轴单元:GRU方向:双向深度:堆叠hₜ₋₁hₜ更新门混合旧/新我昨天给了前向与反向状态拼接hhhhhhhhh每层跨时间共享参数没有独立cell c

状态 b1

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

三个相互独立的结构轴单元:GRU方向:双向深度:堆叠hₜ₋₁hₜ更新门混合旧/新我昨天给了前向与反向状态拼接hhhhhhhhh每层跨时间共享参数没有独立cell c双向可读完整源句;自回归目标不能偷看未来。

公式与算例详情

这三个词回答不同问题。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的门到底怎样工作、M14 双向、堆叠与其他序列任务。页码均按PDF物理页计。

继续学习

本页自学核对:分别改变单元、方向和深度,说明生成时哪些输入未知;整理成三条独立结构轴。

若想知道双向、深度与读取接口怎样影响比较,可进入《2014:先拥有一个可工作的翻译器,再决定改哪里》;动手时打开LAB02的“D/E · 固定源序,比较两种读取接口”:核对固定/动态组共同编码器与各自参数,不把编码方向变化算成读取接口单项收益。 门控与长依赖比较另见实验路线C。