R15.md · 可读全文
这里保留原文的中文、公式标记、代码和链接。可直接交给 Agent 读取,也可选取下方原文复制。此入口返回 HTML;原始 .md / .py 文件仍保留,完整候选包同时包含 UTF-8 原件。
# R15 · 展开的是计算,复用的是规则 R14已经算出前两个状态。这条延伸把同一规则的连续调用并排展开,区分新增计算位置、共享参数和输出放置方式。 <span id="r15-b0"></span> ## 状态 b0 “我/昨天/给了”按时间展开。先沿箭头确认第三步应取得h₂,而非h₀。 <span id="r15-b1"></span> ## 状态 b1 同一θ连接三个计算位置;E(给了)进入第三次调用,新增h₃。多一次计算不等于多一套权重。 <span id="r15-b2"></span> ## 状态 b2 输出可接每步或最后状态。观察输出布局与时间参数共享是两项不同选择。 ## 公式与算例详情 把 RNN 沿时间展开,是把同一个更新函数的多次调用画出来。仍取同一句子开头的三个 token“我/昨天/给了”,暂略 BOS,从指定零初态开始。暂指定其输入向量为 $e_1=(1,0)$、$e_2=(0,1)$、$e_3=(1,1)$,沿用上一页的 $W_x=I$、$W_h=0.5I$、零偏置与零初态。前两步数值与上一页相同;第三步为 $$h_3=\tanh(0.5h_2+(1,1))=(0.827987,0.881130).$$ 展开图里的 $f_\theta$ 不是三个可独立学习的网络。它们引用相同的参数,所以更长输入不会按长度增加参数量;运行时间和保存的激活却会增加。一个时间步仍要等前一个状态算完。 输出方式可以改变:语言模型用每个 $h_t$ 预测下一 token;句子分类可以读取最后状态并接分类头;逐词标注可以在多个位置输出标签。最后状态也可作为另一个网络的条件。骨架相似不表示监督目标相同,更不表示所有任务都只能依赖前缀。 此处向量是三个 token 的教学输入,不是事件图像编码。图画不是网络里的物理记忆,也不是本项目模型生成的预测。 原课页采用记录:[M09 状态更新与参数共享](sources.html#M09)、[M14 双向、堆叠与其他序列任务](sources.html#M14)。页码均按PDF物理页计。 ### 继续学习 [本页自学核对](lecture.html#read-R15):接上“给了”再算 h₃,标出不变的更新参数;整理成共享参数与变化状态两列。 若展开图仍像几套独立网络,可进入[《状态在流动,梯度可以停在边界》](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 · 共享参数的梯度到底加了几次?”:把各时间位置的贡献相加,并与有限差分比较;同时区分参数量与激活存储。 状态模型训练另见[实验路线B](experiments.html#experiment-B)。