AI 入门 101
深度学习中的RNN和LSTM是什么?

许多自然语言处理和AI聊天机器人领域的进展都是由循环神经网络(RNN)和长短时记忆(LSTM)网络驱动的。RNN和LSTM是特殊的神经网络架构,可以处理顺序数据,即数据的时间顺序很重要。LSTM本质上是RNN的改进版本,能够解释更长的数据序列。让我们来看看RNN和LSTM的结构以及它们如何实现复杂的自然语言处理系统。
什么是前馈神经网络?
在讨论LSTM和卷积神经网络(CNN)之前,我们需要了解神经网络的基本结构。
神经网络的目的是检查数据并学习相关模式,以便将这些模式应用于其他数据并对新数据进行分类。神经网络分为三个部分:输入层、隐藏层(或多个隐藏层)和输出层。
输入层负责接收数据,隐藏层负责学习数据中的模式。隐藏层通过“权重”和“偏差”与输入层和输出层相连,这些权重和偏差是数据点之间关系的假设。在训练过程中,这些权重会被调整。随着网络的训练,模型对训练数据的预测(输出值)会与实际的训练标签进行比较。在训练过程中,网络应该变得更加准确地预测数据点之间的关系,以便能够准确地分类新数据点。深度神经网络是具有更多中间层(或更多隐藏层)的网络。模型的隐藏层和神经元(或节点)越多,模型就越能在数据中识别模式。
普通的前馈神经网络,如上所述,通常被称为“密集神经网络”。这些密集神经网络与其他专门用于解释不同类型数据的网络架构相结合。
什么是RNN(循环神经网络)?

RNN通过给模型一个内部记忆来处理顺序数据,实现了前馈神经网络的基本原理。RNN名称中的“循环”部分来自输入和输出的循环。一次输出产生后,输出会被复制并返回到网络中作为输入。在做出决定时,不仅考虑当前输入和输出,还考虑之前的输入。换句话说,如果网络的初始输入是X,输出是H,那么H和X1(数据序列中的下一个输入)都会被输入到网络中进行下一轮学习。这样,数据的上下文(之前的输入)在网络训练过程中得以保留。
RNN的结果是,它们能够处理顺序数据。然而,RNN存在几个问题。RNN存在梯度消失和梯度爆炸问题。
RNN能够解释的序列长度相对较短,尤其与LSTM相比。
什么是LSTM(长短时记忆网络)?
LSTM可以被认为是RNN的扩展,同样保留输入的上下文。然而,LSTM在几个重要方面进行了修改,以便能够以更好的方式解释过去的数据。LSTM的修改解决了梯度消失问题,并使得LSTM能够考虑更长的输入序列。

LSTM模型由三个组件或门组成:输入门、输出门和遗忘门。与RNN类似,LSTM在修改模型的记忆和输入权重时考虑来自前一时间步的输入。输入门决定哪些值重要并应该被模型接受。输入门使用sigmoid函数,决定哪些值应该通过模型传递。0表示丢弃该值,1表示保留该值。这里还使用了TanH函数,决定输入值对模型的重要性,范围从-1到1。
在当前输入和记忆状态被考虑之后,输出门决定哪些值应该被推送到下一个时间步。输出门分析值并为它们分配一个重要性,从-1到1。这样可以在数据被传递到下一个时间步之前对其进行调节。最后,遗忘门的任务是丢弃模型认为不必要的信息。遗忘门使用sigmoid函数对值进行操作,输出0(忘记)到1(保留)之间的数字。
LSTM神经网络由特殊的LSTM层和密集连接层组成,后者如上所述。数据通过LSTM层后,进入密集连接层。












