R20.md · 可读全文

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

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

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

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

## 状态 b0

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

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

## 状态 b1

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

<span id="r20-b2"></span>

## 状态 b2

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

<span id="r20-b3"></span>

## 状态 b3

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

## 公式与算例详情

常用带 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的门到底怎样工作](sources.html#M13)。页码均按PDF物理页计。

### 继续学习

[本页自学核对](lecture.html#read-R20):先复算给定门值,再改变保留门;整理成记忆任务职责与 cell 轨迹,不将手动改门称为训练。

若门的职责与公式仍对不上,可进入[《状态在流动,梯度可以停在边界》](https://codingai-lec05.pages.dev/course/knowledge/recurrent-state-and-credit.html);动手时打开[LAB01](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-05-841ec8e7-e352-4840-b628-d3742b03d6d0/notebook/LAB-01-ec403d28cc2c400ba661cd270588669f?utm_content=ec403d28cc2c400ba661cd270588669f&utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_term=get_notebook)的“C · 共享参数的梯度到底加了几次?”:核对i/f/g/o门序、cell与hidden路径,再看固定门值算例和实际可学习门值的区别。 实施范围见[实验路线C](experiments.html#experiment-C)。