Lecture 05 · 让写入、保留和读出有不同职责

R20 · 让写入、保留和读出有不同职责

钥匙事实经过无关事件时应尽量保留;只调学习率或裁剪并不能替状态作这种选择。本页把写入、保留和读出拆成可分别学习的职责。

状态 b0

先把钥匙任务中的写入、无关事件中的保留、查询时的读出三项职责分开。

关键事实:写入 | 无关干扰:保留 | 末尾查询:读出蓝扣钥匙在赭色盒子;灰色盒子是配对对照。

状态 b1

cell图出现两条相加支路:旧内容保留与候选写入;当前读出另走一支。

常见forget-gate LSTM:cell c 与 hidden h 两种状态要保留的旧内容×+保留 + 写入当前输入与旧状态沿直通路径保留;另一支写入;需要时再读出。

状态 b2

门名落到各条通路:f调保留,i调写入,o调本步读出,g提供候选内容。沿cell与hidden的分叉理解二者职责。

常见forget-gate LSTM:cell c 与 hidden h 两种状态旧 cell cₜ₋₁×+新 cell cₜzₜ = [hₜ₋₁ ; eₜ]fₜiₜgₜoₜ×f:保留多少旧内容i:写入多少新内容o:本步读出多少g:候选写入内容tanh×hidden hₜ

状态 b3

备用展开把当前输入和旧hidden接到门网络;门值成为可学习计算的输出,而非教师指定的语义开关。

常见forget-gate LSTM:cell c 与 hidden h 两种状态旧 cell cₜ₋₁×+新 cell cₜzₜ = [hₜ₋₁ ; eₜ]fₜiₜgₜoₜ×f = σ(W_f z + b_f)i = σ(W_i z + b_i)o = σ(W_o z + b_o)g = tanh(W_g z + b_g)tanh×hidden hₜ

公式与算例详情

常用带 forget gate 的 LSTM 同时维护 cell state $c_t$ 与 hidden state $h_t$。令 $z_t=[h_{t-1};e_t]$,则

$$f_t=\sigma(W_fz_t+b_f),\quad i_t=\sigma(W_iz_t+b_i),\quad o_t=\sigma(W_oz_t+b_o),$$ $$g_t=\tanh(W_gz_t+b_g),$$ $$c_t=f_t\odot c_{t-1}+i_t\odot g_t,\qquad h_t=o_t\odot\tanh(c_t).$$

$f$ 控制旧 cell 的保留,$i$ 控制候选写入量,$o$ 控制本步读出量;$g$ 是候选内容,通常不把它叫作第四个 sigmoid 门。这里$\odot$表示逐元素乘法。三个门的分量在0与1之间,候选内容在−1与1之间,cell 本身可以累积到此范围之外。权重与偏置都由目标损失学习,不是教师替模型手动设定开关。

下一页使用二维构造例子。取 $h_{t-1}=(0.2,-0.1)$、$e_t=(1,0)$,故 $z_t=(0.2,-0.1,1,0)$。为完整复算,令四个 $W$ 都等于

$$U=\begin{bmatrix}1&0&0.5&0\\0&1&0&0.5\end{bmatrix},\qquad Uz_t=(0.7,-0.1).$$

各偏置分别取 $b_f=(\ln9-0.7,-\ln4+0.1)$、$b_i=(-\ln9-0.7,\ln3+0.1)$、$b_o=(\ln4-0.7,0.1)$、$b_g=(\operatorname{atanh}(0.5)-0.7,-\operatorname{atanh}(0.2)+0.1)$。因此仿射输出及非线性结果为:

分支 本次仿射输出 门/候选向量
forget $(\ln9,-\ln4)$ $(0.9,0.2)$
input $(-\ln9,\ln3)$ $(0.1,0.75)$
output $(\ln4,0)$ $(0.8,0.5)$
candidate $(\operatorname{atanh}(0.5),-\operatorname{atanh}(0.2))$ $(0.5,-0.2)$

二维坐标未预先指定盒子颜色等语义。参数是为了课堂计算指定的,并未训练;改变输入或旧 hidden,门值仍会按上述函数改变。参考解释:V-RNN PDF p107–115,尤其 p112;这里展示通行的 forget-gate 形式,不把它等同于1997年原始论文的每个历史细节。

原课页采用记录:M13 LSTM的门到底怎样工作。页码均按PDF物理页计。

继续学习

本页自学核对:先复算给定门值,再改变保留门;整理成记忆任务职责与 cell 轨迹,不将手动改门称为训练。

若门的职责与公式仍对不上,可进入《状态在流动,梯度可以停在边界》;动手时打开LAB01的“C · 共享参数的梯度到底加了几次?”:核对i/f/g/o门序、cell与hidden路径,再看固定门值算例和实际可学习门值的区别。 实施范围见实验路线C。