认识RNN模型

一.前言

本章节我们要介绍什么是RNN模型,RNN模型的作⽤和RNN模型的分类。

二.什么是RNN模型

RNN(Recurrent Neural Network), 中⽂称作循环神经⽹络, 它⼀般以序列数据为输⼊, 通过⽹络内部的结构设计有效捕捉序列之间的关系特征, ⼀般也是以序列形式进⾏输出。

⼀般单层神经⽹络结构:

RNN单层⽹络结构:

以时间步对RNN进⾏展开后的单层⽹络结构:

RNN的循环机制使模型隐层上⼀时间步产⽣的结果, 能够作为当下时间步输⼊的⼀部分(当下时间步的输⼊除了正常的输⼊外还包括上⼀步的隐层输出)对当下时间步的输出产⽣影响。

三.RNN模型的作用

因为RNN结构能够很好利⽤序列之间的关系, 因此针对⾃然界具有连续性的输⼊序列, 如⼈类的语⾔, 语⾳等进⾏很好的处理, ⼴泛应⽤于NLP领域的各项任务, 如⽂本分类, 情感分析, 意图识别, 机器翻译等.

下⾯我们将以⼀个⽤户意图识别的例⼦进⾏简单的分析:

第⼀步: ⽤户输⼊了"What time is it ?", 我们⾸先需要对它进⾏基本的分词, 因为RNN是按照顺序⼯作的, 每次只接收⼀个单词进⾏处理.

第⼆步: ⾸先将单词"What"输送给RNN, 它将产⽣⼀个输出O1.

第三步: 继续将单词"time"输送给RNN, 但此时RNN不仅仅利⽤"time"来产⽣输出O2, 还会使⽤来⾃上⼀层隐层输出O1作为输⼊信息.

第四步: 重复这样的步骤, 直到处理完所有的单词.

第五步: 最后,将最终的隐层输出O5进⾏处理来解析⽤户意图.

四.RNN模型的分类

这⾥我们将从两个⻆度对RNN模型进⾏分类. 第⼀个⻆度是输⼊和输出的结构, 第⼆个⻆度是RNN的内部构造.

按照输⼊和输出的结构进⾏分类:

N vs N - RNN

N vs 1 - RNN

1 vs N - RNN

N vs M - RNN

按照RNN的内部构造进⾏分类:

传统RNN

LSTM

Bi-LSTM

GRU

Bi-GRU

N vs N - RNN:

它是RNN最基础的结构形式, 最⼤的特点就是: 输⼊和输出序列是等⻓的. 由于这个限制的存在, 使 其适⽤范围⽐较⼩, 可⽤于⽣成等⻓度的合辙诗句.

N vs 1 - RNN:

有时候我们要处理的问题输⼊是⼀个序列,⽽要求输出是⼀个单独的值⽽不是序列,应该怎样建 模呢?我们只要在最后⼀个隐层输出h上进⾏线性变换就可以了,⼤部分情况下,为了更好的明 确结果, 还要使⽤sigmoid或者softmax进⾏处理. 这种结构经常被应⽤在⽂本分类问题上.

1 vs N - RNN:

如果输⼊不是序列⽽输出为序列的情况怎么处理呢?我们最常采⽤的⼀种⽅式就是使该输⼊作⽤ 于每次的输出之上. 这种结构可⽤于将图⽚⽣成⽂字任务等.

N vs M - RNN:

这是⼀种不限输⼊输出⻓度的RNN结构, 它由编码器和解码器两部分组成, 两者的内部结构都是某 类RNN, 它也被称为seq2seq架构. 输⼊数据⾸先通过编码器, 最终输出⼀个隐含变量c, 之后最常 ⽤的做法是使⽤这个隐含变量c作⽤在解码器进⾏解码的每⼀步上, 以保证输⼊信息被有效利⽤.

seq2seq架构最早被提出应⽤于机器翻译, 因为其输⼊输出不受限制,如今也是应⽤最⼴的RNN模型结 构. 在机器翻译, 阅读理解, ⽂本摘要等众多领域都进⾏了⾮常多的应⽤实践.

关于RNN的内部构造进⾏分类的内容我们将在后⾯使⽤单独的⼩节详细讲解.

五.总结

学习了什么是RNN模型:

RNN(Recurrent Neural Network), 中⽂称作循环神经⽹络, 它⼀般以序列数据为输⼊, 通过⽹络 内部的结构设计有效捕捉序列之间的关系特征, ⼀般也是以序列形式进⾏输出.

RNN的循环机制使模型隐层上⼀时间步产⽣的结果, 能够作为当下时间步输⼊的⼀部分(当下时间步的 输⼊除了正常的输⼊外还包括上⼀步的隐层输出)对当下时间步的输出产⽣影响.

学习了RNN模型的作⽤:

因为RNN结构能够很好利⽤序列之间的关系, 因此针对⾃然界具有连续性的输⼊序列, 如⼈类的语 ⾔, 语⾳等进⾏很好的处理, ⼴泛应⽤于NLP领域的各项任务, 如⽂本分类, 情感分析, 意图识别, 机 器翻译等.

以⼀个⽤户意图识别的例⼦对RNN的运⾏过程进⾏简单的分析:

第⼀步: ⽤户输⼊了"What time is it ?", 我们⾸先需要对它进⾏基本的分词, 因为RNN是按照顺序 ⼯作的, 每次只接收⼀个单词进⾏处理.

第⼆步: ⾸先将单词"What"输送给RNN, 它将产⽣⼀个输出O1.

第三步: 继续将单词"time"输送给RNN, 但此时RNN不仅仅利⽤"time"来产⽣输出O2, 还会使⽤来 ⾃上⼀层隐层输出O1作为输⼊信息.

第四步: 重复这样的步骤, 直到处理完所有的单词

第五步: 最后,将最终的隐层输出O5进⾏处理来解析⽤户意图.

学习了RNN模型的分类:

这⾥我们将从两个⻆度对RNN模型进⾏分类. 第⼀个⻆度是输⼊和输出的结构, 第⼆个⻆度是RNN 的内部构造

按照输⼊和输出的结构进⾏分类:

N vs N - RNN

N vs 1 - RNN

1 vs N - RNN

N vs M - RNN

N vs N - RNN:

它是RNN最基础的结构形式, 最⼤的特点就是: 输⼊和输出序列是等⻓的. 由于这个限制的存在, 使 其适⽤范围⽐较⼩, 可⽤于⽣成等⻓度的合辙诗句

N vs 1 - RNN:

有时候我们要处理的问题输⼊是⼀个序列,⽽要求输出是⼀个单独的值⽽不是序列,应该怎样建 模呢?我们只要在最后⼀个隐层输出h上进⾏线性变换就可以了,⼤部分情况下,为了更好的明 确结果, 还要使⽤sigmoid或者softmax进⾏处理. 这种结构经常被应⽤在⽂本分类问题上.

1 vs N - RNN:

如果输⼊不是序列⽽输出为序列的情况怎么处理呢?我们最常采⽤的⼀种⽅式就是使该输⼊作⽤ 于每次的输出之上. 这种结构可⽤于将图⽚⽣成⽂字任务等.

N vs M - RNN:

这是⼀种不限输⼊输出⻓度的RNN结构, 它由编码器和解码器两部分组成, 两者的内部结构都是某 类RNN, 它也被称为seq2seq架构. 输⼊数据⾸先通过编码器, 最终输出⼀个隐含变量c, 之后最常 ⽤的做法是使⽤这个隐含变量c作⽤在解码器进⾏解码的每⼀步上, 以保证输⼊信息被有效利⽤.

seq2seq架构最早被提出应⽤于机器翻译, 因为其输⼊输出不受限制,如今也是应⽤最⼴的RNN 模型结构. 在机器翻译, 阅读理解, ⽂本摘要等众多领域都进⾏了⾮常多的应⽤实践.

按照RNN的内部构造进⾏分类:

传统RNN

LSTM

Bi-LSTM

GRU

Bi-GRU

关于RNN的内部构造进⾏分类的内容我们将在后⾯使⽤单独的⼩节详细讲解.

相关推荐
IT_陈寒9 分钟前
Vite 5年迭代揭秘:3个核心优化让你的项目构建速度提升200%
前端·人工智能·后端
doubao3621 分钟前
审美积累,顶刊论文插图原理图、流程图
人工智能·经验分享·aigc·ai写作·绘图·文献综述·科研绘图
CG大魔王30 分钟前
SenseVoice微调
人工智能·语言模型·音频
爱编程的喵喵32 分钟前
Al Agent开发零基础构建复合智能体
人工智能·agent·智能体
Pocker_Spades_A32 分钟前
论文精读(六):微服务系统服务依赖发现技术综述
人工智能
catchadmin2 小时前
PHP 快速集成 ChatGPT 用 AI 让你的应用更聪明
人工智能·后端·chatgpt·php
机器学习之心3 小时前
基于RNN循环神经网络的锂电池剩余寿命预测Matlab实现
rnn·matlab·锂电池剩余寿命预测·rnn循环神经网络
编程武士6 小时前
从50ms到30ms:YOLOv10部署中图像预处理的性能优化实践
人工智能·python·yolo·性能优化
max5006006 小时前
基于Meta Llama的二语习得学习者行为预测计算模型
人工智能·算法·机器学习·分类·数据挖掘·llama
mCell7 小时前
长期以来我对 LLM 的误解
深度学习·llm·ollama