「深度学习」循环神经网络RNN

本文详细介绍了序列模型的基本概念,包括数学符号定义,以及循环神经网络(RNN)、双向循环神经网络(BRNN)和深层循环神经网络(DRNNs)在识别人名、语言建模和机器翻译等任务中的应用。特别强调了如何处理输入和输出序列长度差异以及如何构建语言模型进行新序列采样。
摘要由CSDN通过智能技术生成

一、序列模型的例子

二、数学符号定义

X^{(i)<t>}:训练样本 i 的输入序列的第 t 个元素。

T_{X}^{i}:训练样本 i 的输入序列的长度。

Y^{(i)<t>}:训练样本 i 的输出序列的第 t 个元素。

T_{Y}^{i}:训练样本 i 的输出序列的长度。

三、举例:识别人名

【输入和输出序列长度相同】

1、数据表示

准备 Vocabulary/Dictionary

将所有要用到的单词放在一起,做成清单 —— 将每个单词用一位 one-hot 表示

遇见没见过的单词,常见新标记 Unknown Word,使用 <UNK> 来表示

2. 标准神经网络存在的问题

  • 对于不同的例子,输入和输出会有不同的长度

  • 不共享从文本的不同位置学到的特征

3. 循环神经网络 (RNN)

(1) 构建 RNN

循环神经网络从左向右扫描数据,每一步所用的参数是共享的

缺点:只使用当前输入之前的序列信息来做预测 —— 解决方法:双向循环神经网络(BRNN)

(2) 前向传播

损失函数:

用向量简化符号:

(3)通过时间的反向传播

四、不同类型的循环神经网络

多对多型(如机器翻译)、多对一型、一对一型(标准的小型神经网络)、一对多型、注意力结构

如音乐生成:、机器翻译:

五、RNN 构建语言模型

1. 定义语言模型

y^{<i>} 来表示输入的文本序列 x^{<i>} = y^{<i-1>}

训练集: 大量的英文文本 语料库 (large corpus)

句子结尾:增加额外的标记 EOS (可选)

未知词:增加额外的标记 UNK

2. 建立 RNN 模型

通过前面输入的单词,预测下一个输出单词的概率。

  • 定义代价函数 (softmax):

    L (\overline{y}^{<t>}, y^{<t>}) = -\sum{y_{i}^{<t>} log\overline{y}_{i}^{<t>}}​

    L = \sum{L^{<t>} (\overline{y}^{<t>}, y^{<t>})}

  • 给定新句子输出的概率:

    P(y^{<1>}, y^{<2>},...,y^{<n>}) = P(y^{<1>})P(y^{<2>}|y^{<1>})...P(y^{<n>}|y^{<1>}y^{<2>}...y^{<n-1>})​

3. 新序列采样

序列模型:模拟了任意特定单词序列的概率

新序列采样:对上述概率分布进行采样,根据训练好的模型,生成新的单词序列/随机的句子。

绝大多数使用基于词汇的语言模型,基于字母的语言模型将得到太长的序列,消耗算力。

六、双向循环神经网络 (BRNN)

两个前向传播:一个从前往后、一个从后往前 —— 既可知道以前的信息,也可以知道未来的信息

​​​​​​​

基本单元可以是标准 RNN 单元,也可以是 GRU​​​​​​​ 单元或 LSTM 单元

常见:带有 LSTM 单元的双向 RNN 模型

缺点:需要完整的数据序列

七、深层循环神经网络 (DRNNs)

a^{[l]<t>}:第 l 层 t 时刻的激活值

​​​​​​​

基本单元可以是标准 RNN 单元,也可以是 GRU​​​​​​​​​​​​​​ 单元或 LSTM 单元

  • 28
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值