当前位置: 首页 > news >正文

循环神经网络RNN---LSTM

一、 RNN介绍

循环神经网络(Recurrent Neural Network,简称 RNN)是一种专门用于处理序列数据的神经网络,在自然语言处理、语音识别、时间序列预测等领域有广泛应用。

传统神经网络

无法训练出具有顺序的数据。模型搭建时没有考虑数据上下之间的关系。

提出一种新的神经网络

RNNRecurrent Neural Network)在处理序列输入时具有记忆性,可以保留之前输入的信息并继续作为后续输入的一部分进行计算。

RNN的特点:引入了隐状态hhidden state)的概念,隐状态h可以对序列形的数据提取特征,接着再转换为输出。

(1)、在计算时,每一步使用的参数UWb都是一样的,也就是说每个步骤的参数都是共享的,这是RNN的重要特点;

(2)下文的LSTMGRU中的权值则不共享。

RNN结构中输入是x1, x2, .....xn,输出为y1, y2, ...yn,也就是说,输入和输出序列必须要是等长的。

RNN的局限性:

        当出现“我的职业是程序员,…,我最擅长的是电脑。当需要预测最后的词“电脑。当前的信息建议下一个词可能是一种技能,但是如果我们需要弄清楚是什么技能,需要先前提到的离当前位置很远的“职业是程序员的上下文。这说明相关信息和当前预测位置之间的间隔就变得相当的大。

在理论上,RNN绝对可以处理这样的长期依赖问题。人们可以仔细挑选参数来解决这类问题中的最初级形式,但在实践中,RNN则没法太好的学习到这些知识。

原因是:梯度会随着时间的推移不断下降减少,而当梯度值变得非常小时,就不会继续学习。​

二、LSTM

长短期记忆网络(Long Short - Term Memory,LSTM)是一种特殊的循环神经网络(RNN),它在处理序列数据时,能有效解决传统 RNN 存在的梯度消失和梯度爆炸问题,从而更好地捕捉序列中的长期依赖关系。

原理:

传统 RNN 在处理长序列时,由于在反向传播过程中梯度会不断相乘,容易导致梯度消失(梯度趋近于 0)或梯度爆炸(梯度变得非常大),使得模型难以学习到序列中的长期依赖信息。LSTM 通过引入门控机制,能够选择性地记忆和遗忘信息,从而有效解决这一问题。

结构

LSTM 单元主要由三个门(输入门、遗忘门、输出门)和一个细胞状态组成:

遗忘门(Forget Gate):

功能决定应丢弃哪些关键词信息。

步骤:来自前一个隐藏状态的信息和当前输入的信息同时传递到 sigmoid 函数中去,输出值介于 0 1 之间,越接近 0 意味着越应该丢弃,越接近 1 意味着越应该保留。

输入门(Input Gate):

功能:用于更新细胞状态。

步骤:1首先将前一层隐藏状态的信息和当前输入的信息传递到 sigmoid 函数中去。将值调整到 0~1 之间来决定要更新哪些信息。0 表示不重要,1 表示重要。2、将前一层隐藏状态的信息和当前输入的信息传递到 tanh 函数中去,创造一个新的侯选值向量。最后将 sigmoid 的输出值与 tanh 的输出值相乘,sigmoid 的输出值将决定 tanh 的输出值中哪些信息是重要且需要保留下来的。

细胞状态(Cell State):它是 LSTM 的核心,用于保存序列中的长期信息。在每个时间步,细胞状态会根据遗忘门和输入门的输出进行更新。

输出门(Output Gate):

功能:用来确定下一个隐藏状态的值。

步骤:1、将前一个隐藏状态和当前输入传递到 sigmoid 函数中,然后将新得到的细胞状态传递给 tanh 函数。2、将 tanh 的输出与 sigmoid 的输出相乘,以确定隐藏状态应携带的信息。再将隐藏状态作为当前细胞的输出,把新的细胞状态和新的隐藏状态传递到下一个时间步长中去。

sigmoid函数图像:

tanh函数图像:

三、总结

RNN:在每个时间步,接收当前输入和上一时刻的隐藏状态,通过激活函数计算当前隐藏状态和输出,信息传递较为直接,但容易出现梯度消失或爆炸问题,导致长序列信息难以有效传递和利用。
LSTM:在每个时间步,输入门决定当前输入信息有多少要存入细胞状态,遗忘门控制细胞状态中需要遗忘的信息,输出门根据细胞状态和当前隐藏状态决定输出内容。这种机制使得 LSTM 能够选择性地记忆和遗忘信息,更有效地处理长序列中的关键信息。

http://www.xdnf.cn/news/163783.html

相关文章:

  • 函数递归之青蛙跳台阶+汉诺塔
  • 网络原理 - 8
  • 某海关某署 【瑞数6】逆向分析
  • 矩阵系统私信功能开发技术实践,支持OEM
  • Eigen的主要类及其功能
  • ACPs:面向智能体互联网的智能体协作协议体系
  • 经典反转结构——案例分析
  • 《算法竞赛进阶指南》0x20章目录
  • 57常用控件_QLineEdit的属性
  • 使用css修饰网页元素
  • 聚合分销系统开发:短剧小说外卖网盘电商cpscpa系统
  • PCL点云处理之基于FPFH特征的SAC-IA全局配准算法 (二百四十六)
  • 基于javaweb的SpringBoot小说阅读系统设计与实现(源码+文档+部署讲解)
  • Unity网络编程入门:掌握Netcode for GameObjects实现多人游戏基础(Day 39)
  • dubbo 隐式传递
  • MATLAB 2022a 部分讲解
  • 类和对象(下)
  • 综述类论文读后报告——重庆大学《深度学习在人类活动识别中的应用综述》
  • 16. LangChain自主智能体(Autonomous Agent):模拟人类工作流的进阶设计
  • 4.26-count部分的渲染
  • 参考平面的宽度-信号与电源完整性分析
  • 云原生--核心组件-容器篇-3-Docker核心之-镜像
  • 考研系列-计算机组成原理第四章、指令系统
  • 012组合数学——算法备赛
  • [创业之路-390]:人力资源 - 社会性生命系统的解构与重构:人的角色嬗变与组织进化论
  • 前端职业发展:如何规划前端工程师的成长路径?
  • RAG技术解析:以Text2SQL为例看检索增强生成的全流程应用
  • 第1章 基础知识
  • brew 安装openjdk查看其版本
  • 一文了解TOGAF 认证考试,如何选择科目?