五、循环神经网络语言模型(RNN)

1 循环神经网络基础知识

  • 循环核(Recurrent Cell)定义: 指在时刻 t 时的神经网络单元,用来处理当前时刻的输入和上一时刻的隐藏状态,并生成当前时刻的输出和下一时刻的隐藏状态。
  • 记忆体(Memory)定义: 指网络中的隐藏状态在处理序列数据时具有记忆功能,可以捕捉到序列数据中的长期依赖关系,能够保存当前时刻之前的信息,并传递到当前时刻。

2 循环神经网络定义

循环神经网络(Recurrent Neural Network, RNN),又称为递归神经网络(Recursive Neural Network, RNN)是一种用于处理具有序列关系数据的网络。
RNN的本质就像人一样拥有记忆的能力,表现为网络会对当前时刻之前的序列信息进行记忆并应用于当前时刻输出的计算中。

在序列的演进方向进行递归运算,其中隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括当前时刻输入层的输出还包括上一时刻隐藏层的输出。

3 循环神经网络原理图

RNN数学推导及其python代码实现

  • 前向传播时:记忆体内存储的状态信息ht,在每个时刻都被刷新,三个参数矩阵Wxh, Whh, Why自始至终都是固定不变的。
  • 反向传播时:三个参数矩阵Wxh, Whh, Why被梯度下降算法更新。

4 循环神经网络缺点

但是RNN循环神经网络会出现深度神经网络中的梯度消失问题:

RNN的权重是共享的。每一时刻都由前面所有时刻共同决定,是一个相加的过程,这样的话就有个问题,当距离长了,计算最前面的导数时,最前面的导数就会消失或爆炸,而当前时刻整体的梯度并不会消失,因为它是求和的过程,当下的梯度总会在,只是前面的梯度没了,因此更新时,由于权值共享,所以整体的梯度还是会更新。参考RNN
通常人们所说的梯度消失指的是当下梯度更新时,用不到前面的信息了,因为距离长了,前面的梯度就会消失,也就是没有前面的信息了,但要知道,整体的梯度并不会消失因为当下的梯度还在,并没有消失。
RNN 所谓梯度消失的真正含义是,梯度被近距离梯度主导,导致模型难以学到远距离的依赖关系,存在长期依赖问题,只能处理我们需要较接近的上下文的情况。

相关推荐
简简单单做算法7 小时前
基于GA遗传优化的Transformer-LSTM网络模型的时间序列预测算法matlab性能仿真
深度学习·matlab·lstm·transformer·时间序列预测·ga遗传优化·电池剩余寿命预测
龙文浩_8 小时前
AI中NLP的文本张量表示方法在自然语言处理中的演进与应用
人工智能·pytorch·深度学习·神经网络·自然语言处理
deardao8 小时前
【LLM+时序控制】闭环控制:基于控制理论的可证明稳定时间序列预测框架与大型语言模型
人工智能·语言模型·自然语言处理
极光代码工作室9 小时前
基于BERT的新闻文本分类系统
深度学习·nlp·bert·文本分类
XINVRY-FPGA9 小时前
XC7VX690T-2FFG1157I Xilinx AMD Virtex-7 FPGA
arm开发·人工智能·嵌入式硬件·深度学习·fpga开发·硬件工程·fpga
AI视觉网奇10 小时前
生成GeoGebra
人工智能·深度学习
古希腊掌管代码的神THU10 小时前
【清华代码熊】图解 Gemma 4 架构设计细节
人工智能·深度学习·自然语言处理
Purple Coder10 小时前
7-RNN 循环网络层
人工智能·rnn·深度学习
大写的z先生10 小时前
【深度学习 | 论文精读】Qwen-VL:从“纯文本”到“火眼金睛”,通向多模态大模型的进阶之路
人工智能·深度学习
workflower10 小时前
深度学习是通用型人工智能的基础
人工智能·深度学习·设计模式·软件工程·软件构建·制造