ARTICLE · 1083751
AI学习笔记06|AI是怎么“记住”前文的?
当你读到一句话:
“小王出生在山西,后来去了北京工作。多年以后,他回到了家乡。”
看到“家乡”,你自然会想到前面的“山西”。
但机器是怎么做到的?
早期处理这类序列信息的重要模型叫 RNN(循环神经网络)。它的核心思路很简单:
当前输入 + 之前的状态 → 新的状态
也就是说,模型每读一个词,都会形成一个新的 Hidden State(隐藏状态),再把它传给下一步。
注意,这不是把前面的文字原封不动存在“仓库”里,而是形成一个不断更新的向量表示。
问题是,句子一旦很长,早期信息经过很多次计算后就很难长期保留;训练时还容易出现梯度消失,导致很早以前的信息得不到足够有效的学习信号。(类似你记了个地址,有人告诉你说地址是他奶奶家,从西向东走,比较偏僻... 说了一千多个限定词之后,你就基本搞不清这个地址到底在哪里了)。
于是,**LSTM(长短期记忆网络)**出现了。
它最有意思的设计,就是给信息增加了三个“门”。
① 遗忘门:旧的留多少?
模型会判断之前的信息需要保留多少。
这里并不是简单的“记住/删除”,而是一个 0~1之间的程度:
接近 1 → 多保留接近 0 → 少保留
② 输入门:新的写多少?
当模型读到新的信息,比如:
“后来搬到了北京。”
它并不会把所有新信息一股脑塞进长期状态,而是控制:
新的信息有多少值得写进去。
③ 输出门:现在用多少?
即使某些信息被保留下来,也不代表每一次都要全部使用。
输出门决定:
当前从这些状态中拿出多少信息参与当前计算。
三个门可以浓缩成一句话:
旧的留多少,新的写多少,现在用多少。
更有意思的是,这三个“门”并不是程序员提前写好规则:
“籍贯重要,记住;其他信息不重要,忘掉。”
它们本质上仍然是神经网络计算,其中的 Weight、Bias 等参数通过训练不断调整。
所以 LSTM 所谓的“会记忆”,并不是机器突然有了一个像人脑一样的记忆仓库。
而是:
通过训练,模型学会了如何控制信息的保留、写入和使用。
这也是我觉得 LSTM 最值得理解的一点:
机器的“记住”和“忘记”,是神经网络计算的嵌套,最后的本质仍然会落回到:向量、参数、梯度和训练。