0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

神经网络中最经典的RNN模型介绍

Dbwd_Imgtec 来源:人工智能与算法学习 作者:人工智能与算法学 2021-05-10 10:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

神经网络深度学习的载体,而神经网络模型中,最经典非RNN模型所属,尽管它不完美,但它具有学习历史信息的能力。后面不管是encode-decode 框架,还是注意力模型,以及自注意力模型,以及更加强大的Bert模型家族,都是站在RNN的肩上,不断演化、变强的。

这篇文章,阐述了RNN的方方面面,包括模型结构,优缺点,RNN模型的几种应用,RNN常使用的激活函数,RNN的缺陷,以及GRU,LSTM是如何试图解决这些问题,RNN变体等。

这篇文章最大特点是图解版本,其次语言简练,总结全面。

概述

传统RNN的体系结构。Recurrent neural networks,也称为RNNs,是一类允许先前的输出用作输入,同时具有隐藏状态的神经网络。它们通常如下所示:

7fe7268e-b0f0-11eb-bf61-12bb97331649.png

对于每一时步, 激活函数 ,输出被表达为:

7ff32b82-b0f0-11eb-bf61-12bb97331649.png

7fff71c6-b0f0-11eb-bf61-12bb97331649.png

这里8017485a-b0f0-11eb-bf61-12bb97331649.png是时间维度网络的共享权重系数  是激活函数

8020a5d0-b0f0-11eb-bf61-12bb97331649.png

下表总结了典型RNN架构的优缺点:

处理任意长度的输入 计算速度慢
模型形状不随输入长度增加 难以获取很久以前的信息
计算考虑了历史信息 无法考虑当前状态的任何未来输入
权重随时间共享
优点 缺点

RNNs应用

RNN模型主要应用于自然语言处理和语音识别领域。下表总结了不同的应用:

1对1

802ca506-b0f0-11eb-bf61-12bb97331649.png

传统神经网络
1对多

805de940-b0f0-11eb-bf61-12bb97331649.png

音乐生成
多对1

80695140-b0f0-11eb-bf61-12bb97331649.png

情感分类
多对多

807612c2-b0f0-11eb-bf61-12bb97331649.png

命名实体识别
多对多

8081fa9c-b0f0-11eb-bf61-12bb97331649.png

机器翻译
RNN 类型 图解 例子

损失函数 对于RNN网络,所有时间步的损失函数 是根据每个时间步的损失定义的,如下所示:

808d7aac-b0f0-11eb-bf61-12bb97331649.png

时间反向传播

在每个时间点进行反向传播。在时间步,损失相对于权重矩阵的偏导数表示如下:

8098d26c-b0f0-11eb-bf61-12bb97331649.png

处理长短依赖

常用激活函数

RNN模块中最常用的激活函数描述如下:

80a46d02-b0f0-11eb-bf61-12bb97331649.png

80b0309c-b0f0-11eb-bf61-12bb97331649.png

80d89fc8-b0f0-11eb-bf61-12bb97331649.png

Sigmoid Tanh RELU

梯度消失/爆炸

在RNN中经常遇到梯度消失和爆炸现象。之所以会发生这种情况,是因为很难捕捉到长期的依赖关系,因为乘法梯度可以随着层的数量呈指数递减/递增。

梯度修剪 梯度修剪是一种技术,用于执行反向传播时,有时遇到的梯度爆炸问题。通过限制梯度的最大值,这种现象在实践中得以控制。

81016e4e-b0f0-11eb-bf61-12bb97331649.png

门的类型

为了解决消失梯度问题,在某些类型的RNN中使用特定的门,并且通常有明确的目的。它们通常标注为,等于:

810dd972-b0f0-11eb-bf61-12bb97331649.png

其中,是特定于门的系数,是sigmoid函数。主要内容总结如下表:

更新门 过去对现在有多重要? GRU, LSTM
关联门 丢弃过去信息? GRU, LSTM
遗忘门 是不是擦除一个单元? LSTM
输出门 暴露一个门的多少? LSTM
门的种类 作用 应用

GRU/LSTM Gated Recurrent Unit(GRU)和长-短期记忆单元(LSTM)处理传统RNNs遇到的消失梯度问题,LSTM是GRU的推广。下表总结了每种结构的特征方程:

8117f952-b0f0-11eb-bf61-12bb97331649.png

注:符号表示两个向量之间按元素相乘。

RNN的变体

下表总结了其他常用的RNN模型:

812661c2-b0f0-11eb-bf61-12bb97331649.png

814b70ac-b0f0-11eb-bf61-12bb97331649.png

原文标题:神经网络RNN图解

文章出处:【微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4827

    浏览量

    106787
  • 深度学习
    +关注

    关注

    73

    文章

    5590

    浏览量

    123900

原文标题:神经网络RNN图解

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NMSIS神经网络库使用介绍

    NMSIS NN 软件库是一组高效的神经网络内核,旨在最大限度地提高 Nuclei N 处理器内核上的神经网络的性能并最​​大限度地减少其内存占用。 该库分为多个功能,每个功能涵盖特定类别
    发表于 10-29 06:08

    构建CNN网络模型并优化的一般化建议

    通过实践,本文总结了构建CNN网络模型并优化的一般化建议,这些建议将会在构建高准确率轻量级CNN神经网络模型方面提供帮助。 1)避免单层神经网络
    发表于 10-28 08:02

    在Ubuntu20.04系统中训练神经网络模型的一些经验

    本帖欲分享在Ubuntu20.04系统中训练神经网络模型的一些经验。我们采用jupyter notebook作为开发IDE,以TensorFlow2为训练框架,目标是训练一个手写数字识别的神经网络
    发表于 10-22 07:03

    基于神经网络的数字预失真模型解决方案

    在基于神经网络的数字预失真(DPD)模型中,使用不同的激活函数对整个系统性能和能效有何影响?
    的头像 发表于 08-29 14:01 3063次阅读

    无刷电机小波神经网络转子位置检测方法的研究

    摘要:论文通过对无刷电机数学模型的推导,得出转角:与三相相电压之间存在映射关系,因此构建了一个以三相相电压为输人,转角为输出的小波神经网络来实现转角预测,并采用改进遗传算法来训练网络结构与参数,借助
    发表于 06-25 13:06

    基于FPGA搭建神经网络的步骤解析

    本文的目的是在一个神经网络已经通过python或者MATLAB训练好的神经网络模型,将训练好的模型的权重和偏置文件以TXT文件格式导出,然后通过python程序将txt文件转化为coe
    的头像 发表于 06-03 15:51 894次阅读
    基于FPGA搭建<b class='flag-5'>神经网络</b>的步骤解析

    BP神经网络与卷积神经网络的比较

    BP神经网络与卷积神经网络在多个方面存在显著差异,以下是对两者的比较: 一、结构特点 BP神经网络 : BP神经网络是一种多层的前馈神经网络
    的头像 发表于 02-12 15:53 1305次阅读

    如何优化BP神经网络的学习率

    优化BP神经网络的学习率是提高模型训练效率和性能的关键步骤。以下是一些优化BP神经网络学习率的方法: 一、理解学习率的重要性 学习率决定了模型参数在每次迭代时更新的幅度。过大的学习率可
    的头像 发表于 02-12 15:51 1421次阅读

    BP神经网络的优缺点分析

    BP神经网络(Back Propagation Neural Network)作为一种常用的机器学习模型,具有显著的优点,同时也存在一些不容忽视的缺点。以下是对BP神经网络优缺点的分析: 优点
    的头像 发表于 02-12 15:36 1570次阅读

    什么是BP神经网络的反向传播算法

    BP神经网络的反向传播算法(Backpropagation Algorithm)是一种用于训练神经网络的有效方法。以下是关于BP神经网络的反向传播算法的介绍: 一、基本概念 反向传播算
    的头像 发表于 02-12 15:18 1273次阅读

    BP神经网络与深度学习的关系

    BP神经网络与深度学习之间存在着密切的关系,以下是对它们之间关系的介绍: 一、BP神经网络的基本概念 BP神经网络,即反向传播神经网络(Ba
    的头像 发表于 02-12 15:15 1339次阅读

    BP神经网络的基本原理

    BP神经网络(Back Propagation Neural Network)的基本原理涉及前向传播和反向传播两个核心过程。以下是关于BP神经网络基本原理的介绍: 一、网络结构 BP
    的头像 发表于 02-12 15:13 1514次阅读

    如何训练BP神经网络模型

    BP(Back Propagation)神经网络是一种经典的人工神经网络模型,其训练过程主要分为两个阶段:前向传播和反向传播。以下是训练BP神经网络
    的头像 发表于 02-12 15:10 1463次阅读

    深度学习入门:简单神经网络的构建与实现

    深度学习中,神经网络是核心模型。今天我们用 Python 和 NumPy 构建一个简单的神经网络神经网络由多个神经元组成,
    的头像 发表于 01-23 13:52 838次阅读

    人工神经网络的原理和多种神经网络架构方法

    在上一篇文章中,我们介绍了传统机器学习的基础知识和多种算法。在本文中,我们会介绍人工神经网络的原理和多种神经网络架构方法,供各位老师选择。 01 人工
    的头像 发表于 01-09 10:24 2243次阅读
    人工<b class='flag-5'>神经网络</b>的原理和多种<b class='flag-5'>神经网络</b>架构方法