前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RNN 图解版

RNN 图解版

作者头像
double
发布2021-05-07 10:14:05
4600
发布2021-05-07 10:14:05
举报
文章被收录于专栏:算法channel算法channel

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

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

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

概述

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

对于每一时步

t

, 激活函数

a^{< t >}

,输出

y^{< t >}

被表达为:

\boxed{a^{< t >}=g_1(W_{aa}a^{< t-1 >}+W_{ax}x^{< t >}+b_a)}\quad
\quad\boxed{y^{< t >}=g_2(W_{ya}a^{< t >}+b_y)}

这里

W_{ax}, W_{aa}, W_{ya}, b_a, b_y

是时间维度网络的共享权重系数

g_1, g_2

是激活函数

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

优点

缺点

处理任意长度的输入

计算速度慢

模型形状不随输入长度增加

难以获取很久以前的信息

计算考虑了历史信息

无法考虑当前状态的任何未来输入

权重随时间共享

RNNs应用

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

RNN 类型

图解

例子

1对1

传统神经网络

1对多

音乐生成

多对1

情感分类

多对多

命名实体识别

多对多

机器翻译

损失函数

对于RNN网络,所有时间步的损失函数

\mathcal{L}

是根据每个时间步的损失定义的,如下所示:

\boxed{\mathcal{L}(\widehat{y},y)=\sum_{t=1}^{T_y}\mathcal{L}(\widehat{y}^{< t >},y^{< t >})}

时间反向传播

在每个时间点进行反向传播。在时间步

T

,损失

\mathcal{L}

相对于权重矩阵

W

的偏导数表示如下:

\boxed{\frac{\partial \mathcal{L}^{(T)}}{\partial W}=\sum_{t=1}^T\left.\frac{\partial\mathcal{L}^{(T)}}{\partial W}\right|_{(t)}}

处理长短依赖

常用激活函数

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

Sigmoid

Tanh

RELU

梯度消失/爆炸

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

梯度修剪

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

门的类型

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

\Gamma

,等于:

\boxed{\Gamma=\sigma(Wx^{< t >}+Ua^{< t-1 >}+b)}

其中,

W,U,b

是特定于门的系数,

\sigma

是sigmoid函数。主要内容总结如下表:

门的种类

作用

应用

更新门

过去对现在有多重要?

GRU, LSTM

关联门

丢弃过去信息?

GRU, LSTM

遗忘门

是不是擦除一个单元?

LSTM

输出门

暴露一个门的多少?

LSTM

\Gamma_u

过去对现在有多重要?GRU, LSTM关联门

\Gamma_r

丢弃过去信息?GRU, LSTM遗忘门

\Gamma_f

是不是擦除一个单元?LSTM输出门

\Gamma_o

暴露一个门的多少?LSTM

GRU/LSTM

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

注:符号

\star

表示两个向量之间按元素相乘。

RNN的变体

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

Bidirectional (BRNN)

Deep (DRNN)

参考文献:

https://stanford.edu/~shervine/teaching/cs-230/cheatsheet-recurrent-neural-networks

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 神经网络是深度学习的载体,而神经网络模型中,最经典非RNN模型所属,尽管它不完美,但它具有学习历史信息的能力。后面不管是encode-decode 框架,还是注意力模型,以及自注意力模型,以及更加强大的Bert模型家族,都是站在RNN的肩上,不断演化、变强的。
  • 概述
    • RNNs应用
    • 处理长短依赖
    相关产品与服务
    语音识别
    腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档