作用
LSTM为了解决RNN存在长期依赖的问题。比如分析电影的时候,某些情节的推断需要依赖很久以前的一些细节,随着时间间隔不断增大,RNN会丧失学习到连接如此远的信息的能力。
怎么做到的?
LSTM可以通过“门”结构来去除或者增加“细胞状态”的信息,实现了对重要内容的保留和对不重要内容的去除,通过Sigmoid层输出一个0到1之间的概率值,描述每个部分有多少量可以通过。
细节
假设判断一句话的情感"我喜欢这个电影":
- 预处理:首先,我们需要将这个句子转换为单词向量。我们可以使用预训练的词嵌入模型将每个单词映射为固定大小的向量。
- 时间步 t=1:在LSTM中,句子是一个序列,每个单词对应一个时间步。在第一个时间步 t=1,我们有一个输入单词 "我" 的词向量 x(1) 和初始的隐藏状态 h(0)。
- LSTM计算:在时间步 t=1,LSTM会根据输入 x(1) 和初始隐藏状态 h(0) 来计算当前时间步的输出和新的隐藏状态。
- 遗忘门:LSTM使用遗忘门 f(1) 来决定在当前时间步要遗忘哪些以前的记忆信息。
- 输入门:LSTM使用输入门 i(1) 来决定在当前时间步要添加哪些新的信息到记忆中。
- 候选记忆单元:LSTM计算候选记忆单元 C_hat(1),即一个临时的记忆单元,它将用于计算输入门和更新记忆单元 C(1)。
- 记忆单元更新:根据遗忘门 f(1)、输入门 i(1) 和候选记忆单元 C_hat(1),LSTM更新记忆单元 C(1) 来保留需要的长期依赖信息。
- 隐藏状态更新:LSTM根据输出门和记忆单元 C(1) 来更新隐藏状态 h(1),并将其作为当前时间步的输出。
4. 时间步 t=2:在第二个时间步 t=2,我们有下一个输入单词 "喜欢" 的词向量 x(2) 和上一个时间步的隐藏状态 h(1)。
5. LSTM计算:与之前一样,LSTM在时间步 t=2 会根据输入 x(2) 和上一个时间步的隐藏状态 h(1) 来计算当前时间步的输出和新的隐藏状态。
6. 重复步骤:这个过程会一直持续,直到处理完整个句子中的所有单词。
注:
xt:当前时刻的输入向量。
ht:可以理解为短时记忆。
ct:可以理解为长时记忆。
比如写日记:
想象你在写日记记录你的生活,每天都写下当天的情况和感受。在写日记的过程中,你会在每天的日记中提到前一天发生的事情,同时也会根据当天的情况记录下新的感受。这样,随着时间的推移,你的日记就成为了一个连续的序列,每个时间步代表一天的记录。
在这个比喻中:
- 输入 x(t):每天的日记内容,代表当天的输入特征或信息。
- 隐藏状态 h(t):你在某一天写下的记录,它是你对过去日记内容和当天信息的综合记忆。这个隐藏状态 h(t) 包含了过去的经历和感受,并且会传递给明天的日记,作为第二天的记忆基础。
- 记忆单元 C(t):在这个比喻中,可以将记忆单元 C(t) 视为你在每天写日记时的内心状态,它存储着更为长期的情感和信息。这些信息会在写日记的过程中根据输入 x(t) 和前一天的隐藏状态 h(t-1) 来更新。
比如看电视剧:
假设你正在观看一部电视剧,其中有一个复杂的剧情。每个时间步就是一集,而隐藏状态 h 就是你在每一集结束时的心理状态和记忆。
-
输入 x(t):在每一集中,你观看了剧情的不同事件和情节,这些事件和情节对应于输入 x(t)。每一集的情节会引发你的情感和思考。
-
隐藏状态 h(t):在每一集结束时,你会对当集的情节进行综合记忆和理解,形成一个心理状态。这个隐藏状态 h(t) 就代表了你对过去所有已观看的剧情和当前集的情节的综合记忆和情感体验。
-
记忆单元 C(t):记忆单元 C(t) 可以类比为你对整个剧情的持久记忆,即跨越整个剧集的情节线索和重要事件。这些持久记忆会在每一集结束时结合当前情节和隐藏状态 h(t) 来更新。
随着电视剧的推进,你会随着每一集的观看不断更新你的心理状态和对剧情的理解。每一集的情节都会影响你的情感和认知,而隐藏状态 h 就是你在整个观看过程中的心理状态和综合理解。记忆单元 C 则类似于你在观看电视剧过程中形成的持久记忆和情节线索,帮助你更好地理解剧情的整体。
通过这个比喻,我们可以理解 LSTM 中隐藏状态 h 的作用:它是一种记忆和综合机制,能够在序列中记住过去的信息,并结合当前的输入信息来生成新的隐藏状态,以便更好地理解和处理序列数据。类似地,当你观看电视剧时,你会在每一集结束时更新你的心理状态和记忆,并将这些综合的记忆应用于之后的剧情观看。这种记忆机制使得LSTM能够捕捉序列中的长期依赖关系,从而更好地理解序列数据中的上下文和语义。
h和C的区别
使用炼金术士炼金的过程来比喻LSTM中隐藏状态 h 和记忆单元 C 的区别,可以想象以下情景:
将LSTM比作一个炼金术士,而序列数据则是原材料。我们希望通过炼金术士的操作,将原材料逐步转化为有价值的物品。
-
隐藏状态 h: 隐藏状态 h 类比为炼金术士在每个阶段的炼金结果。在每个炼金阶段,炼金术士都会得到一个中间产物(隐藏状态 h),这个产物记录了当前阶段的一些转化结果,是一个中间的短期状态信息。
-
记忆单元 C: 记忆单元 C 可以类比为炼金术士在整个炼金过程中积累的知识和记忆。它是一个持久的存储单元,用于捕捉过去阶段的关键信息,而不仅仅是当前阶段的短期状态。