东阳的学习记录,坚持就是胜利!

RNN的应用场景

  1. Slot Filling(填空):eg: I would like to arrive \underline{地点} on \underline{时间}
  2. 在1的基础上,需要判断出发地(leave)和目的地(arrive)

考虑以上两个需求,我们可以看到,如果使用传统的神经网络,是无法解决这个问题的。如下图: 我们无法只能将Taipei的前一个单词记为other(不解释)。这就导致了,途中上句和下句是一样的输入,在传统的神经网络中,一样的输入肯定会是一样的输出,故传统方法不可行。
机器学习08-RNN之理论篇

RNN原理剖析

首先看下面这张图,这是最简单的RNN。该图表明了RNN的基本原理,将上次的神经元中的数据保存起来,用到下一次中。

  • 初始化memory=0
  • input是有序的
    机器学习08-RNN之理论篇
    通过储存上一次神经元中的数据,这样就保证了,对于同一个输入Taipei,在不同的句子中,得到的output是不一样的。
    机器学习08-RNN之理论篇

Jordan Network

Jordan Network存的是output值,据说可以得到比较好的效果。(output时有target的,我们比较清楚memory中的是什么东西。)
机器学习08-RNN之理论篇

Bidirectional RNN

结构如下图,我们可以看到每一个output的得出都是考虑了正向和反向的。
机器学习08-RNN之理论篇

Long Short-term Memory (LSTM)

LSTM的结构如下图:有三个门,门什么时候关闭,什么时候开启时可以学习的。
机器学习08-RNN之理论篇

逻辑图

可以看到当门的输出为0时,代表关闭。
机器学习08-RNN之理论篇

一个例子如下图:

  • 当x2 = 1时,将x1加入memory中;
  • 当x2 = -1, 清空memory;
  • 当x3 = 1, 输出memory中的值。
    机器学习08-RNN之理论篇
    机器学习08-RNN之理论篇

4组参数的例子(4个门)

  • 对于同一个参数xt,使用不同的向量z1, z2, z3, z4…zn将其变为不同输入,输入到神经元中。
    机器学习08-RNN之理论篇

总体结构

机器学习08-RNN之理论篇

单个神经元的结构

机器学习08-RNN之理论篇

多层LSTM结构

  • Ct1C_ t-1: 上一次的memory保存的值(上一次的输出);
  • CtC_t: 这一次memory保存的值
  • ht-1: 上一次的output
  • ht: 本次的output
  • xtx_t: 本次的输入;
    机器学习08-RNN之理论篇

RNN的常见版本

  • LSTM
  • GRU
  • SimpleRNN

相关文章: