图解循环神经网络(RNN)

目录

1.循环神经网络介绍

2.网络结构

3.结构分类

4.模型工作原理

5.模型工作示例

6.总结


1.循环神经网络介绍

RNN(Recurrent Neural Network,循环神经网络)是一种专门用于处理序列数据的神经网络结构。与传统的神经网络不同,RNN具有记忆能力,能够捕捉序列数据中的时间依赖关系。

也就是说相比其他仅靠输入单一预测结果的神经网络,循环神经网络可以考虑前面输入的多个因素。比如现在流行的语言模型,他能记住你前面输入的内容,当你新输入某一个问题时候,他会去寻找是否和你前面输入的问题有联系。

2.网络结构

RNN的基本结构包括输入层、隐藏层和输出层。在每个时间步,RNN都会接收当前的输入数据(如一个词的嵌入表示)和前一个时间步的隐藏状态,然后生成一个新的隐藏状态和输出。这个新的隐藏状态不仅包含了当前时间步的信息,还融合了之前所有时间步的信息,因此RNN能够捕捉到序列数据中的上下文信息。

具体来说,RNN的隐藏状态是记忆部分,它在每个时间步都会被更新。隐藏状态的计算通常包括将当前时间步的输入数据和前一个时间步的隐藏状态传递给一个激活函数(如tanh或ReLU),从而生成新的隐藏状态。这个隐藏状态随后会被用作下一个时间步的输入之一,同时也可能用于生成当前时间步的输出。

3.结构分类

一对一结构:单个神经网络,即输入和输出都是单个值或向量。

一对多结构:单一输入转为序列输出。这类RNN可以处理图片,然后输出图片的描述信息。

多对一结构:序列输入转为单个输出。这种结构多用在电影评价分析等领域。

N对N结构:输入输出等长序列。这类限制比较大,常见的应用有作诗机器人等。

多对多结构(Seq2Seq结构):输入输出不等长的多对多结构,又叫Encoder-Decoder模型。这种结构的应用范围非常广泛,包括语言翻译、文本摘要、阅读理解、对话生成等。

4.模型工作原理

初始化状态:在序列的开始,RNN会有一个初始隐藏状态,通常是一个零向量或通过某种方式初始化。

序列处理:对于序列中的每个元素,RNN会计算当前时间步的隐藏状态。这通常通过一个激活函数(如tanh或ReLU)来完成。

信息传递:隐藏状态会传递到下一个时间步,与新的输入一起更新。

输出生成:在每个时间步,RNN可以生成一个输出,这通常通过另一个激活函数来完成。

序列结束:当序列结束时,RNN可以输出最终的隐藏状态,或者通过一个额外的输出层来生成最终的预测。

5.模型工作示例

对于一个词汇表,先将其转换成向量的形式。

这里那填词案例来演示,就是说当一段词语有一个空白需要填词,一般的神经网络是考虑前一个词语来预测这个空白,而循环神经网络不光是考虑空白前的那个词,还会考虑前面的已有的词,进一步预测空白处的词语,RNN可以捕捉到前面输入词语之间的联系,提高填入的词语的准确度。

通过RNN的隐藏层获取输入之间的联系,下一个输入的同时会联系到上一个输入的隐藏状态,当输入结束时候输出最终的结果。

6.总结

循环神经网络可以很好的捕捉到之前的各项输入之间的联系,相对于其他传统的神经网络更加灵活,应用的场景也更多,结果也更准确。并且RNN中的权重参数是共享的,这有助于减少模型的参数数量并提高计算效率。但是循环神经网络也存在一些不足,比如梯度消失和梯度爆炸问题:在长序列任务中,RNN容易出现梯度消失或梯度爆炸的问题,导致模型难以训练。

相关推荐
新知图书16 小时前
FastGPT版本体系概览
人工智能·ai agent·智能体·大模型应用开发·大模型应用
老蒋新思维16 小时前
创客匠人 2025 全球创始人 IP+AI 万人高峰论坛:AI 赋能下知识变现与 IP 变现的实践沉淀与行业启示
大数据·人工智能·网络协议·tcp/ip·重构·创始人ip·创客匠人
黑客思维者16 小时前
LLM底层原理学习笔记:Adam优化器为何能征服巨型模型成为深度学习的“速度与稳定之王”
笔记·深度学习·学习·llm·adam优化器
Keep_Trying_Go17 小时前
基于Zero-Shot的目标计数算法详解(Open-world Text-specified Object Counting)
人工智能·pytorch·python·算法·多模态·目标统计
AKAMAI17 小时前
Akamai 宣布收购功能即服务公司 Fermyon
人工智能·云计算
河南博为智能科技有限公司17 小时前
高集成度国产八串口联网服务器:工业级多设备联网解决方案
大数据·运维·服务器·数据库·人工智能·物联网
光路科技17 小时前
人工智能时代,工业以太网正在“进化”成什么样?
人工智能
翔云 OCR API17 小时前
承兑汇票识别接口技术解析-开发者接口
开发语言·前端·数据库·人工智能·ocr
roman_日积跬步-终至千里18 小时前
【模式识别与机器学习(16)】聚类分析【1】:基础概念与常见方法
人工智能·机器学习
nvd1118 小时前
一个简单的GitHub AI Agent 实现指南
人工智能·langchain