美文网首页
RNN学习笔记

RNN学习笔记

作者: 全村希望gone | 来源:发表于2019-05-17 17:57 被阅读0次

简介

RNN主要是为了解决序列问题而产生的,可以应用于很多与序列有关的场景,如语音识别、机器翻译、视频标注、自动问答、图片描述等,可以说是非常强大了。

RNN结构类型

序列分类(N21)

  • 输入是一个序列,输出是一个单独的值而不是序列,这种结构通常用来处理序列分类问题。如输入一段文字判别它所属的类别,输入一个句子判断其情感倾向,输入一段视频并判断它的类别等等。
  • 可以对最后一个 h 进行输出变换,或对所有的 h 进行平均后再进行输出变换


    N21.jpg

文本生成(12N)

  • 从图像生成文字(image caption),此时输入的X就是图像的特征,而输出的y序列就是一段句子;从类别生成语音或音乐;从关键字生成文章等

  • 只在序列开始进行输入计算,其它 time step 输入为 0


    12N_0.png
  • 把输入信息X作为每个阶段的输入

    12N_1.png

同步的序列到序列的模式(N2N)

  • 最经典RNN结构要求输入和输出序列必须要是等长的。
  • 由于这个限制的存在,经典RNN的适用范围比较小,但也有一些问题适合用经典的RNN结构建模,如:计算视频中每一帧的分类标签。因为要对每一帧进行计算,因此输入和输出序列等长。


    N2N.png

异步的序列到序列的模式(N2M)

  • 这种 N vs M 的结构又叫 Encoder-Decoder 模型,也可称之为 Seq2Seq 模型。原始的 N vs N RNN 要求序列等长,然而我们遇到的大部分问题序列都是不等长的,如机器翻译中,源语言和目标语言的句子往往并没有相同的长度。Encoder-Decoder 模型可以有效的建模输入序列和输出序列不等长的问题,具体步骤如下:
    • 首先,用一个 Encoder(RNN) 将输入的序列编码为一个上下文向量c。得到c有多种方式,最简单的方法就是把Encoder的最后一个隐状态赋值给c,还可以对最后的隐状态做一个变换得到c,也可以对所有的隐状态做变换得到c。


      N2M_1.png
    • 然后,用一个 Decoder(另一个RNN) 对 c 进行解码,将其变成输出序列。可以将 c 当做之前的初始状态 h0 输入到Decoder,也可以将 c 当做每一步的输入。


      N2M_2.png
N2M_3.png

RNN公式

原始RNN

结构及公式

RNN_structure1.jpg

可以展开成这样

RNN_structure2.jpg

这个网络在t时刻接收到输入Xt之后,隐藏层的值是St,输出值是ot。关键一点是,st的值不仅仅取决于Xt,还取决于St−1。我们可以使用下面的公式来表示循环神经网络的计算方法:(f一般为tanh函数,g一般为softmax函数)

RNN_gongshi1.PNG

RNN常用变体————LSTM

结构及公式

LSTM_describe1.PNG
LSTM_structure.png
LSTM_describe2.PNG

LSTM的变体————GRU

GRU_describ.PNG GRU.png

注意力机制

因为要解决序列问题,产生了RNN,但RNN也有其自身的缺陷————反向传播计算梯度时可能会出现梯度消失或爆炸的情况,为了解决这个问题,产生了LSTM,LSTM通过三个门决定要忘掉多少历史信息,存储多少新信息,但LSTM也有自己的局限性————它对encoder中所有时刻隐层输出都采取同样的操作,然后输入到decoder中,这样没有侧重,所以注意力机制应运而生。

attention_describe.PNG attention.jpg

但即便如此,注意力机制还是可以进行改进,因为它没法保证C(word)中h(word)的权重最大,所以改进如下(我的手稿):


manuscript.jpg

相关文章

  • 学习笔记:RNN

    RNN学习来源:刘二大人的视频[https://www.bilibili.com/video/BV1Y7411d7...

  • RNN学习笔记

    简介 RNN主要是为了解决序列问题而产生的,可以应用于很多与序列有关的场景,如语音识别、机器翻译、视频标注、自动问...

  • LSTM学习笔记(概述+数学描述+举例说明)

    这一段在学习RNN和LSTM,做一个学习笔记,免得遗忘了。 RNN会没有限制的进行更新,因此知识的更新会变得很混乱...

  • RNN学习笔记(一)

    1.RNN  RNN是用来处理时序数据的一种网络结构,输入序列之间不再相互独立的。例如输入一句话:“今天天气不错”...

  • keras学习-RNN

    keras-RNN 参考《python深度学习》 关于RNN questions : 每次 RNN神经元个数代表什...

  • 7.多模态学习

    一、多模态学习应用场景: A. RNN与CNN之间的端到端学习 B. RNN与RNN 二、机器翻译 seq2seq...

  • RNN学习笔记(二):LSTM

    1.LSTM概述  LSTM(Long Short Term Memory,长短时记忆),是RNN的一种改进网络。...

  • BAT机器学习面试1000题系列(二)

    101.深度学习(CNN RNN Attention)解决大规模文本分类问题。 用深度学习(CNN RNN Att...

  • 1739:RNN、LSTM、word2vec、超参数

    每周学习十小时,这是2017年第39周的学习笔记,上周对RNN有了简单了解,这周更加深入学习,同时学习了word2...

  • 深度学习 RNN基础

    深度学习 RNN基础 目录 1、定义 2、有了CNN,为什么需要RNN? 3、RNN的主要应用领域有哪些呢? 4、...

网友评论

      本文标题:RNN学习笔记

      本文链接:https://www.haomeiwen.com/subject/njaoaqtx.html