机器学习:RNN

1、RNN基本机构

  • RNN 本质上是一个递推函数

    机器学习:RNN

  • 考虑当前输入 x(t)

    机器学习:RNN

  • 以上计算公式可展开为如下计算图(无输出单元)

    机器学习:RNN

RNN 的前向传播公式

机器学习:RNN

一般 h(0) 会初始化为 0 向量;并使用 tanh 作为**函数 f

​​​​​​​2、RNN常见的几种设计模式

RNN 一般包括以下几种设计模式

  • 每个时间步都有输出,且隐藏单元之间有循环连接

    • 即通常所说 RNN
    • 这种结构会在每个时间步产生一个输出,所以通常用于“Seq2Seq”任务中,比如序列标注、机器翻译等。这些任务通常都比较复杂。

    机器学习:RNN

  • 每个时间步都有输出,但是隐藏单元之间没有循环连接,只有当前时刻的输出到下个时刻的隐藏单元之间有循环连接

    • 这种模型的表示能力弱于第一种,但是它更容易训练
    • 因为每个时间步可以与其他时间步单独训练,从而实现并行化
    • 具体来说,就是使用 y(t) 代替 o(t) 输入下一个时间步。

    机器学习:RNN

  • 隐藏单元之间有循环连接,但只有最后一个时间步有输出

    • 忽略模式 1 中的中间输出,即可得到这种网络;
    • 这种网络一般用于概括序列。具体来说,就是产生固定大小的表示,用于下一步处理;
    • 在一些“Seq2One”中简单任务中,这种网络用的比较多;因为这些任务只需要关注序列的全局特征。

    机器学习:RNN

其中前两种 RNN 分别被称为 Elman network 和 Jordan network;通常所说的 RNN 指的是前者

机器学习:RNN

Recurrent neural network - Wikipedia