目录
? ? ? ? 关注一个序列,不是每个观察都同等重要,传统RNN会一直在Whh中隐含所有以前的信息,包括了很多不必要的信息。
? ? ? ? 门控神经网络就是设计一定的控制单元,使得模型只关注相关需要的,忘记不相关的。
????????输入是由当前时间步的输入和前一时间步的隐状态给出。 两个门的输出是由使用sigmoid激活函数的两个全连接层给出。
? ? ? ? 公式:
? ? ? ? 门有自己的权重,同时接受隐变量的输出。?门的输出是被激活函数控制在0~1的范围空间的。
? ? ? ? 使用重置门构建候选隐藏状态:
? ? ? ? ?具体公式:
? ? ? ? 这一操作可以削减Ht-1的状态影响,因为Rt是0~1的,也就是一定程度上削减以往状态的影响。
? ? ? ? 然后使用更新门更新隐状态:
? ? ? ? 具体计算为:
? ? ? ? 这一操作进一步决定了更新的依据权重。?
? ? ? ? LSTM其实是门控的前身,但为啥要这样设计也不是很明白,和上述的GRU很像,稍微多一点东西,要实现的效果是一样的,就是通过现在与过去的权衡来完成更长时间的迭代学习。
? ? ? ? 和门控类似,但这里设置了三个门:
? ? ? ? 就是三个连接方式,通过MLP的形式让他们自己去学习权重:
? ? ? ? 除了以上三个门以外,还有一个候选记忆单元的设计,没有用到其他gait:
? ? ? ? 记忆单元结合了上一个时间的记忆单元和遗忘门的交互,以及这个时间的候选记忆单元和输入门的交互,所以记忆单元会不断地接受以前和现在做一个信息储存和更新。
? ? ? ? 注意这里面的激活函数是为了控制数值范围。?
?????????输出门会和记忆单元交互得到新的隐状态。
长短期记忆网络(Long Short-Term Memory,LSTM)和门控循环单元(Gated Recurrent Unit,GRU)都是用于解决循环神经网络(Recurrent Neural Network,RNN)中长序列依赖性问题的变体。它们在处理序列数据时相较于传统的RNN模型表现更好,因为它们能够更有效地捕捉和利用序列中的长期依赖关系。
以下是LSTM和GRU的主要特点和区别:
长短期记忆网络(LSTM):
结构: LSTM引入了三个门(输入门、遗忘门和输出门)以及一个记忆单元来处理长期依赖关系。
门控机制:
- 输入门(Input Gate):?控制有多少新信息可以流入记忆单元。
- 遗忘门(Forget Gate):?控制有多少过去的记忆可以被遗忘。
- 输出门(Output Gate):?决定记忆单元的输出。
记忆单元: LSTM包含一个记忆单元,它可以保存和提取信息,并通过时间步骤传递信息。
应用: 由于其较复杂的结构,LSTM常常在需要处理长期依赖性的任务中表现良好,如机器翻译、语音识别等。
门控循环单元(GRU):
结构: GRU相对于LSTM结构更为简单,只包含两个门(更新门和重置门)。
门控机制:
- 更新门(Update Gate):?控制有多少过去的记忆被保留。
- 重置门(Reset Gate):?决定多少过去的信息应该被忽略。
记忆单元: GRU没有显式的记忆单元,而是直接传递隐藏状态作为记忆。
应用: GRU在一些轻量级的序列建模任务中表现良好,同时也因其简单的结构而更容易训练。
共同点:
门控机制: LSTMs和GRUs都引入了门控机制,以便网络可以自适应地决定在每个时间步骤中保留或丢弃信息。
应对梯度消失问题: 两者都设计得更好地应对了RNN中常见的梯度消失问题,使得它们更适合处理长序列。
选择使用LSTM还是GRU通常取决于任务的性质和规模。在某些情况下,LSTM可能由于其更强大的建模能力而更为适用,而在其他情况下,GRU的简单性和较小的参数量可能更有优势。