问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

初步理解RNN和LSTM

创作时间:
作者:
@小白创作中心

初步理解RNN和LSTM

引用
CSDN
1.
https://blog.csdn.net/m0_62056231/article/details/145972479

循环神经网络(RNN)和长短期记忆网络(LSTM)是处理序列数据的重要神经网络模型。本文将从基本概念、结构和原理等方面,深入浅出地介绍这两种模型的核心思想和技术细节。

循环神经网络(RNN)

循环神经网络(Recurrent Neural Network,RNN)是一种能够处理序列数据的神经网络。这里的时序信息可以指例如对于这一句话 “我吃了一个苹果”,“苹果” 的词性和意思,在这里取决于前面词的信息,如果没有 “我吃了一个” 这些词,“苹果” 也可以翻译为乔布斯搞出来的那个被咬了一口的苹果。

基本结构

在一个标准的RNN中,每一个时刻 tt的输入 x_txt和上一时刻 t-1t−1 的隐藏状态 h_{t-1}ht−1 会通过网络生成当前时刻的输出 y_tyt和当前隐藏状态 h_tht。RNN的每一层都有一个共享的参数(例如权重矩阵),这个参数在每一时刻的计算中都会被使用,确保网络能够在整个序列中共享信息。

数学表达

  1. 隐藏状态计算:每个时刻的隐藏状态 h_t 是由当前输入 x_t 和上一时刻的隐藏状态 h_{t-1}计算得到的,公式如下:

$$
h_t = \text{tanh}(W_h \cdot [h_{t-1}, x_t] + b_h)
$$

其中:

  • W_h 是隐藏状态的权重矩阵。
  • [h_{t-1}]是上一时刻的隐藏状态与当前时刻的输入拼接而成的向量。
  • b_h是偏置项。
  • \text{tanh} 是激活函数。
  1. 输出计算:当前时刻的输出 y_tyt是由当前隐藏状态 h_tht计算得到的,公式为:

其中:

  • W_y是输出的权重矩阵。
  • b_y 是偏置项。

梯度消失问题

RNN 所有的 timestep 共享一套参数 U,V,W在 RNN 反向传播过程中,需要计算 $U,V,W& 等参数的梯度,由公式可知,由于他是多层网络 ,计算梯度时是将各层的梯度链式 相乘的,由于激活函数的局限性,梯度会变得过大或过小,尤其是远距离的,虽然梯度不会消失,但是它是无法学习到远距离的信息的。

长短期记忆网络(LSTM)

长短期记忆网络(Long Short-Term Memory,LSTM)是RNN的一种特殊变体,专门为了解决RNN在处理长序列时面临的梯度消失问题而设计的。LSTM通过引入“门控”机制,控制信息的流动,能够有效地保留长期依赖信息。

结构图:
虽然看不太懂数学公式,但是他是通过引入门控结构来控制远距离的信息的,即

  1. 遗忘门(Forget Gate)
  2. 输入门(Input Gate)
  3. 输出门(Output Gate)

简单来说,就是引入更多的参数以便更细致的调整模型,这也是为什么结构这么复杂,实质上还是为了解决RNN的梯度下降问题。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号