5.1循环序列模型

觉得有用的话,欢迎一起讨论相互学习~Follow Me

1.5不同类型的循环神经网络

  • 上节中介绍的是 具有相同长度输入序列和输出序列的循环神经网络,但是对于很多应用\(T_{x}和T_{y}\)并不一定相等。 在此节会介绍不同的能够处理不同问题的循环神经网络。

    多对多循环神经网络

  • 对于命名实体识别的问题中,RNN的输出和输入序列长度一致--\(T_{x}=T_{y}\)。
    • 则在每读一个单词时都输出预测的值\(\hat{y}\)
    • 这是一个典型的多对多的问题。

      多对一循环神经网络

  • 对于情感识别问题而言,RNN的输入是一段文本序列,输出是一个分类的评价--输出的是一个数值。
    • 则只在输入整段文本后,在最后一个时间步进行预测,输出分类的结果,而不是每读入一个单词后输出结果。
    • 这是一个典型的多对一问题。

      一对多循环神经网络

  • 对于音乐生成问题而言,RNN的输入是一个数字或者一个单词,输出是一段音符。
    • X通常是一个数字用于表示想要生成的音乐类型,或者是生成音乐的第一个音符,或者X也可以为空为0向量。
    • 在第一个时间步输入X,再往后的时间步,不进行输入,但是输出随时间步的生成的音符,一直合成到这个音乐作品的最后一个音符。
    • 在这个例子中,需要将生成的输出也作为输入传入下一层(如图红线所示)

      输入和输出序列长度不等的循环神经网络

  • 对于机器翻译的问题而言,输入句子的单词的数量和输出句子的单词的数量可能不同
    • 通常在不同的时间步中依次读入输入序列,全部读完后,再输出RNN的结果,这样就可以使得RNN的输入序列长度和输出序列长度不同了。
    • 这种网络可以被分为两个部分,其中前段部分被称为编码器“encoder”用于获取输入序列,后段部分被称为解码器“decoder”,其会读取所有输入然后输出翻译成其他语言的结果。

      循环神经网络结构总结


1.6语言模型与序列生成Language model and sequence generation

语言模型

  • 对于语音识别系统,当你听见一个句子“the apple and pear salad was delicious”,但是语句发音会让语音识别系统识别出下面两个句子:

    • The apple and pair salad.(苹果和一对沙拉)
    • The apple and pear salad.(苹果和梨沙拉)
  • 句子的本意是输出下面的句子,但是由于1,2两句发音十分相似,并不能很好的识别1,2两句话.此时就需要语言模型--他能计算出这两句话各自的可能性。
    • 语言模型能判断句子出现的概率

      使用RNN建立语言模型

  • 训练集: 对于一个语言模型而言首先需要一个很大的文本语料库--数量众多的英文句子组成的文本
    • 对于语料库中的一个句子来说,首先按照单词将其标记成为一个个独立的单词,并且在句子末尾加上EOS符号用以表示一个完整的句子。
    • 对于标点符号,可以自己认定所建立的语言模型中是否需要标记出标点符号。
    • 如果训练集中有一些词并不在字典中,字典一般定义了最常用的词汇。例如:对于句子:"The Egyptian Mau is a bread of cat. "而言Mau是个不存在在字典中的词汇,此时将这个词标记为UNK--用于代表未知词。语言模型只针对UNK(unknown word)计算单词出现的概率而不是针对特定的Mau这个单词。

Cats average 15 hours of sleep a day.

  1. 初始化\(X^{<1>}=\vec{0},a^{<0>}=\vec{0}\) 通过前向传播使用Softmax计算字典中各个单词出现的概率 输出字典中所有词的概率\(\hat{y}^{<1>}\)
  2. 在第二时间步中,使用激活项\(a^{<1>}\),并且把正确的第一个单词cats传入作为\(y^{<1>}\)相当于告诉RNN模型第一个词的正确答案。然后计算出字典中各个词的概率\(\hat{y}^{<2>}\),相当于计算P( _ |"cats")
  3. 在第三时间步中,使用激活项\(a^{<2>}\),并且把正确的第而个单词average传入作为\(y^{<2>}\)相当于告诉RNN模型第二个词的正确答案。然后计算出字典中各个词的概率\(\hat{y}^{<3>}\),相当于计算P( _ |"cat average")

RNN损失函数

数学原理

[DeeplearningAI笔记]序列模型1.5-1.6不同类型的循环神经网络/语言模型与序列生成的更多相关文章

  1. Oracle-4 - :超级适合初学者的入门级笔记:plsql,基本语法,记录类型,循环,游标,异常处理,存储过程,存储函数,触发器

    初学者可以从查询到现在的pl/sql的内容都可以在我这里的笔记中找到,希望能帮到大家,视频资源在 资源, 我自己的全套笔记在  笔记 在pl/sql中可以继续使用的sql关键字有:update del ...

  2. DeepLearning.ai学习笔记(五)序列模型 -- week1 循环序列模型

    一.为什么选择序列模型 序列模型可以用于很多领域,如语音识别,撰写文章等等.总之很多优点... 二.数学符号 为了后面方便说明,先将会用到的数学符号进行介绍. 以下图为例,假如我们需要定位一句话中人名 ...

  3. ng-深度学习-课程笔记-15: 循环序列模型(Week1)

    1 数学符号(Notation) $ x^{<1>}, x^{<2>}, ..., x^{<t>}, ..., x^{<q>} $ 表示一段输入序列x, ...

  4. 吴恩达《深度学习》-第五门课 序列模型(Sequence Models)-第三周 序列模型和注意力机制(Sequence models & Attention mechanism)-课程笔记

    第三周 序列模型和注意力机制(Sequence models & Attention mechanism) 3.1 序列结构的各种序列(Various sequence to sequence ...

  5. 吴恩达《深度学习》第五门课(1)循环序列模型(RNN)

    1.1为什么选择序列模型 (1)序列模型广泛应用于语音识别,音乐生成,情感分析,DNA序列分析,机器翻译,视频行为识别,命名实体识别等众多领域. (2)上面那些问题可以看成使用(x,y)作为训练集的监 ...

  6. 序列模型(5)-----双向神经网络(BRNN)和深层循环神经网络(Deep RNN)

    一.双向循环神经网络BRNN 采用BRNN原因: 双向RNN,即可以从过去的时间点获取记忆,又可以从未来的时间点获取信息.为什么要获取未来的信息呢? 判断下面句子中Teddy是否是人名,如果只从前面两 ...

  7. 【学习笔记】循环神经网络(RNN)

    前言 多方寻找视频于博客.学习笔记,依然不能完全熟悉RNN,因此决定还是回到书本(<神经网络与深度学习>第六章),一点点把啃下来,因为这一章对于整个NLP学习十分重要,我想打好基础. 当然 ...

  8. [DeeplearningAI笔记]序列模型3.9-3.10语音辨识/CTC损失函数/触发字检测

    5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.9语音辨识 Speech recognition 问题描述 对于音频片段(audio clip)x ,y生成文本 ...

  9. [DeeplearningAI笔记]序列模型3.7-3.8注意力模型

    5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.7注意力模型直观理解Attention model intuition 长序列问题 The problem of ...

随机推荐

  1. python打印图形大全(详解)

    ,): shixin=chr() print(shixin) -------------------结果:2) for i in range(0,10): shixin=chr(9679) print ...

  2. 曾经我是一个只会excel的数据分析师,直到我遇到了……

    我是一个数据分析师. 准确来说我是一个当年只会excel数据透视表,就天不怕地不怕地来当数据分析师的人.当年的某一天,我的老板Q我: 小刘啊,我小姨子给了我一个全国市委书记的名单,你帮我看看,有什么规 ...

  3. 全国城市一卡通一级TSM平台业务架构及意义

    [导读]TSM平台是一种具有鲜明行业属性的平台,因此,各行业都建立了本行业的TSM平台.为促进城市一卡通行业移动支付的快速发展,住房和城乡建设部也建立了全国城市一卡通行业一级TSM平台. 作为住建部标 ...

  4. Linux下使用vim编辑C程序

    这几天在系统能力班自学linux,加上最近大数据课上开始使用linux,我在这里总结一下,linux下使用vim编辑c程序的一些问题. 大数据课上是直接使用micro来编辑的,我这里只是简单的说明一下 ...

  5. PSP Daily——团队项目Alpha发布

    视频展示:优酷视频链接.文案如下 PSP Daily软件NABCD分析: 1) N (Need 需求) PSP Daily 解决了用户(软件工程课上学生)记录例行报告.写每周PSP表格和统计的需求.潜 ...

  6. android入门 — 多线程(一)

    android中的一些耗时操作,例如网络请求,如果不能及时响应,就会导致主线程被阻塞,出现ANR,非常影响用户体验,所以一些耗时的操作,我们会想办法放在子线程中去完成. android的UI操作并不是 ...

  7. C#高级编程 (第六版) 学习 第二章:C#基础

    第二章 基础 1,helloworld示例: helloworld.cs using System; using System.Collections.Generic; using System.Li ...

  8. 让VS2013支持 C# 6.0 语法

    还未升级使用VS2015前,又想尝试使用C# 6.0的语言特性,可以用以下方法启用: VS2013中“工具”下选择“程序包管理器控制台”: 选中需要使用C# 6.0的项目,再敲入"Insta ...

  9. 九度-题目1026:又一版 A+B

    http://ac.jobdu.com/problem.php?pid=1026 题目描述: 输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m ...

  10. 【Linux笔记】CentOS&RHEL YUM基础知识

    以下内容收集自网络,以作参考. 一.YUM是什么 YUM = Yellow dog Updater, Modified. 主要功能是更方便的添加/删除/更新RPM包. 它能自动解决包的倚赖性问题. 它 ...