长短期记忆(LSTM)简介

RNN 的主要限制 在于它无法记住很长的序列,并且会陷入梯度消失的问题。

什么是梯度消失问题?

当添加更多具有某些激活函数的层时,神经网络中损失函数的梯度趋近于零,这使得网络难以训练。

长短期记忆(LSTM)

LSTM 可以解决梯度消失问题。它通过忽略(忘记)网络中无用的数据/信息来实现这一点。如果没有来自其他输入(之前的句子单词)的有用信息,LSTM 就会忘记这些数据。当新的信息出现时,网络会决定哪些信息应该被忽略,哪些信息应该被记住。

LSTM 架构

让我们看看 RNN 和 LSTM 之间的区别。

在 RNN 中,我们有一个非常简单的结构,只有一个激活函数(tanh)。

在 LSTM 中,我们拥有多个组件,而不仅仅是具有单一激活功能的简单网络,从而使网络能够忘记和记住信息。

使用的符号

LSTM 有 4 个不同的组成部分,分别是

  1. 单元状态(记忆单元)
  2. 忘记门
  3. 输入门
  4. 输出门

让我们逐一了解这些组件。

1. 单元状态(记忆单元)

它是 LSTM 的第一个组件,贯穿整个 LSTM 单元。可以把它想象成一条传送带。

细胞状态负责记忆和遗忘。它基于输入的上下文。这意味着一些先前的信息应该被记住,而一些则应该被遗忘,一些新的信息应该被添加到记忆中。第一个操作(X )是逐点运算,它只是将细胞状态乘以一个[-1, 0, 1]的数组。乘以0的信息将被LSTM遗忘。另一个操作是(+),它负责向状态添加一些新的信息。

2. 忘记门

顾名思义,遗忘 LSTM 门决定哪些信息应该被遗忘。S 型函数层用于做出这一决定。该 S 型函数层被称为"遗忘门层"。

它对h(t-1)x(t) 进行点积运算,并在 sigmoid 层的帮助下,为单元状态***C(t-1)***中的每个数字输出一个介于 0 和 1 之间的数字。如果输出为"1",则表示我们将保留它。"0"表示完全忘记它。

3. 输入门

输入门向 LSTM 提供新信息,并决定是否将该新信息存储在单元状态中。

这分为三个部分-

  1. 一个S 型函数层决定需要更新的值。该层被称为"输入门层"。
  2. tanh 激活函数层创建一个新的候选值向量Č(t),可以添加到状态中。
  3. 然后我们结合这两个输出,***i(t) * Č(t),***并更新单元状态。

新的细胞状态***碳原子数(t)***是通过将遗忘门和输入门的输出相加而得到的。

4.输出门

LSTM 单元的输出取决于新的单元状态。

首先,一个 S 型函数层决定要输出单元状态的哪些部分。然后,在单元状态上使用一个tanh层将值压缩到 -1 到 1 之间,最后乘以 S 型函数门的输出。

LSTM 实际应用

现在我们已经了解了 LSTM 的架构和组件,让我们看看它的实际作用。

结论

正如文章中提到的,LSTM 可以通过遗忘和记忆信息来延长信息的保存时间。这由 4 个组件实现------一个单元状态和 3 个门控。它还能克服梯度消失问题,而这正是 RNN 的一个局限性。这使得 LSTM 比普通 RNN 更具优势。我们还了解了 LSTM 的架构和工作原理。

相关推荐
IT_陈寒2 分钟前
Vite 5个隐藏技巧让你的项目构建速度提升50%,第3个太香了!
前端·人工智能·后端
孤廖5 分钟前
吃透 C++ 栈和队列:stack/queue/priority_queue 用法 + 模拟 + STL 标准实现对比
java·开发语言·数据结构·c++·人工智能·深度学习·算法
麦麦麦造23 分钟前
有了 MCP,为什么Claude 还要推出 Skills?
人工智能·aigc·ai编程
jerryinwuhan26 分钟前
利用舵机实现机器人行走
人工智能·机器人
武子康28 分钟前
AI-调查研究-107-具身智能 强化学习与机器人训练数据格式解析:从状态-动作对到多模态轨迹标准
人工智能·深度学习·机器学习·ai·系统架构·机器人·具身智能
沫儿笙28 分钟前
KUKA库卡焊接机器人二氧化碳节气
人工智能·机器人
insight^tkk1 小时前
【Docker】记录一次使用docker部署dify网段冲突的问题
运维·人工智能·docker·ai·容器
攻城狮7号1 小时前
AI+大数据时代:如何从架构到生态重构时序数据库的价值?
大数据·人工智能·时序数据库·apache iotdb·sql大模型
智能化咨询1 小时前
AI+大数据时代:时序数据库的生态重构与价值跃迁——从技术整合到行业落地
人工智能
paopaokaka_luck1 小时前
基于SpringBoot+Vue的社区诊所管理系统(AI问答、webSocket实时聊天、Echarts图形化分析)
vue.js·人工智能·spring boot·后端·websocket