Recurrent Neural Network(RNN)

对应视频:p20-p21

基本架构

Elman Network

01

  • 橙、绿、黄构成一个前馈神经网络,蓝色保存了中间层的输出内容。
  • 三个前馈神经网络是同一个神经网络,使用时间不同,输入的蓝色部分的内容也因此不同。蓝色的存储元件是循环神经网络的重点。

构成深度神经网络也可以,每一层的输出内容都会被保存下来。
02

  • 其中蓝色箭头表示每一次存储下来的内容,第一次是需要为其赋初始值。
  • Elman Network的特点是,保存的是每一个隐藏层的输出值

Jordan Network

03

  • jordan network的特点是,把每一次的真实输出值保存下来,作为下一次的输入部分

Long Short-term Memory(LSTM)

1、构成

  • Memory Cell:存储内容
  • Input Gate:某一内容能否保留在Memory Cell中,需要操纵信号
  • Output Gate: 外界可不可以得到当前保存的内容,需要操纵讯号
  • Forget Gate:将memory Cell中的内容忘掉,需要操纵讯号

其中后面三个Gate什么时候打开什么时候关闭都是由机器自主学习决定。
04
蓝色箭头是四个输入:input gate信号、input的内容,output gate信号,forget gate信号
红色箭头是一个输出:output输出。

2、工作流程

05

  • 原来的cell中保存的内容为C
  • 其中所有为f的函数,都是sigmoid函数,因为可以将输入的值变换后控制在0-1之间,0代表门关闭,1代表门打开。
  • g,h函数则是对输入的内容进行一定的变换。
  • 最终的输出为a

06

  • 第一步输入z,经过g函数得到g(z),这是想要保存的内容。经过f函数得到f(zi),这是判断能否输入的标志,如果为0则不能输入——相当于输入的值为0.

  • 第二步经过f函数得到f(zf),这是forget gate的标志。不同的是,如果值为0,代表cell中的内容被清洗了,而如果值为1,cell中的内容依旧保留着。

  • 第三步,经过输入后,重新保存在cell中的c’公式为:

    c’ = g(z)f(zi)(新输入的部分) + cf(zf)(之前保存的部分)

  • 第四步,保存在cell中的内容经过h函数变换为h(c’),这是可能将会输出的内容,经过f函数得到f(zo),如果为0,则数据不会输出——相当于输出值为0。

    最后实际输出值a = f(zo)h(c’)

  • 图上所有f的部分,代表的都是一些讯号。

3、网络构成

  1. 理论基础流程

  2. 实际

RNN学习问题

梯度爆炸

梯度消失

通过LSTM可以解决

原理解释:LSTM中memory的更新,是旧值+新值,在forget gate不工作的时候,旧值不会被刷新,旧值的影响始终是存在的。

RNN应用

  1. 输入序列,得到一个结果(many to one)
  • sentiment analysis情感分析
  1. many to many(output < input)
  • 语音辨识 speech recognition
  • CTC:Connectionist Temporal Classification,核心是加一个NULL的标识输出,解决叠字问题。
  1. sequence to sequence(no limitation)
    • 机器翻译
    • Syntactic parsing
    • 语音信号可以转换为向量
    • 聊天机器人

其他

Attention-based Model

09

评论