1.为何选择序列模型?

给出上面一些序列数据的例子,真的很神奇,语音识别、音乐生成、情感分类、DNS序列分析、机器翻译、视频活动检测、命名实体识别。

2.数字符号

对于输入序列x,进行人名识别,输出中进行标识。其中T_x(i)表示第i个序列的长度,此处的例子=9.

如何表示单词,首先是有一个词典,假设为10000长度,那么每一个出现在字典中的单词都可以被表示为10000维的one-hot向量。

//但是这也太高维了,肯定有改进办法的。

3.RNN

为什么标准的神经网络不可以?

1.对于序列来说,不同的序列长度不同,那么输入输出在不同的例子中由不同的长度

2.他们在文本中不同位置的特征并不相同。

在RNN中,如yhat3是由前两个决定,而与后面的单词没有关系,这就对于下面的例子,不能判断teddy是否是人名,需要知道后面的内容,这就出现了双向RNN。

RNN的前向传播,a<0>被初始化为0向量,依次进行前向传播。下面是进行化简的形式。系数函数经常使用tanh/relu,激活(输出)函数使用sigmoid。

下面是化简形式的表示:

4.前向传播和反向传播

RNN中,输入x进行计算前向传播,得到结果后进行反向传播。反向传播是从每个计算结果yhat<i>开始。

首先使用原始序列中的x<1>和a<0>计算出时间激活项a<1>,然后用x<2>和a<1>计算a<2>等,一直计算到a<Tx>。Tx为序列长度。

其中绿色是计算需要的参数。

为进行反向传播,定义了损失函数,类似逻辑回归,;

例如在人名识别中,y<t>是人名,那么值=1,得到的yhat<t>则是P(人名)概率值,对序列中所有单词求损失和就得到了真正的损失函数。

损失就是把每个单独时间步的损失都加起来。

5.不同类型的RNN

T_x与T_y的长度可能不同,在命名实体识别中,输入输出序列是等长的,但是在第一页PPT中提到的序列数据中,比如音乐生成,输入可能是空集;在电影评价时,输入可能是评价,输出是数字;在机器翻译时,输入是法文,输出是英文等例子。

多对多tx=ty举例,每个xi对应输出一个yi;在情感分类中,是多对一,输入是电影评价,输出y等;

一对多,音乐生成,其中每部输出的y都作为下一个时间的输入;

多对多,机器翻译中,有两个部分,一个是编码部分,另一个是解码部分。

上面是一个总结,共有6种类型的RNN。

6.语言模型和序列生成

在语音识别中,给出两个很相似的句子,能够计算出对应的概率,即共同出现的概率,从而判断出正确的结果。

对于给的例句,首先在时间0,x1是设置为0的向量,用softmat层来计算出第一个单词的概率,得到yhat1,比如第一个单词是a的P,是average的P,等等..,那么可能就有10000个结果,依照你的语料库,接下来依旧使用激活项a1,输入是y1=cats,输出的y^2,是在第一个词是cats的情况下,下一个是字典中所有其他词的结果。

为了训练这个网络,提出了损失函数,其中i是指在一句话中每个word的预测结果,对t求和是对所有句子的损失求和。

7.对新序列采样

从一个训练好的RNN中采样一个序列。

在采样中,得到的yhat1,是所有可能的输出,比如对a、cat、EOS等,得到的是一个向量,然后使用np.random.choice进行采样,这样就能对第一个单词进行采样了,然后进入下一个时间步,并且将上一步得到的yhat1作为输入,将会预测yhat2是什么。直到最后一个时间步,

对于可能会出现unk单词,可以规定如果出现那么再重新选择,

基于字母的字典,那么此时字典中会有26个字母、空格键、标点、数字。

例如在句子:cats average。。中y1就是c,a是y2。

对于基于字符的,对硬件要求更高。

8.RNN梯度消失

在很深的NN中,在反向传播时可能对前面的参数影响很小,梯度影响不了,也就是导数太小了;

在RNN中,同样有这样的问题,例如yhat3是受之前的附近输入的影响,那么对于最终的反向传播对前面参数的影响也较小。

梯度爆炸比较容易发现,参数会变成NaN等非常大的值,可以通过梯度削减,设置一个阈值。

9.GRU单元

如图是一个RNN的单元,首先是一个tanh函数,之后预测是通过softmax函数。tanh输出结果是a<t>。softmax输出结果是yhat<t>。

这里是门循环单元,能使网络记忆更远距离的信息。

如例句中,was是通过记忆主语cat来的,通过门,能够将信息保持一致。

通过增加记忆单元c<t>,由前一单元的记忆单元值和当前输入,通过sigmoid函数得到,因为sigmoid的属性在0-1之间。

这是门控循环单元的表示方法。//最后一个式子的加号应该是乘号吧。

10.LSTM

可以通过图来帮助理解公式。从下图中可以看出,c<0>可以一直传递到c<3>,是记忆时间很长的。

11.BiNN

DLNg序列模型第一周的更多相关文章

  1. DLNg序列模型第二周NLP与词嵌入

    1.使用词嵌入 给了一个命名实体识别的例子,如果两句分别是“orange farmer”和“apple farmer”,由于两种都是比较常见的,那么可以判断主语为人名. 但是如果是榴莲种植员可能就无法 ...

  2. PASS模型-第一周个人总结

    目录 PASS模型-第一周个人报告 1.个人任务 2.个人工作内容 2.1 登陆界面 2.2 信息采集 2.3 视觉搜索 3.个人小结 3.1 收获 3.2 优化 PASS模型-第一周个人报告 博客班 ...

  3. PASS模型-第一周个人报告

    PASS模型-第一周个人报告 博客班级 https://edu.cnblogs.com/campus/zjcsxy/SE2020 作业要求 https://edu.cnblogs.com/campus ...

  4. Deep Learning.ai学习笔记_第五门课_序列模型

    目录 第一周 循环序列模型 第二周 自然语言处理与词嵌入 第三周 序列模型和注意力机制 第一周 循环序列模型 在进行语音识别时,给定一个输入音频片段X,并要求输出对应的文字记录Y,这个例子中输入和输出 ...

  5. 吴恩达《深度学习》-第五门课 序列模型(Sequence Models)-第一周 循环序列模型(Recurrent Neural Networks) -课程笔记

    第一周 循环序列模型(Recurrent Neural Networks) 1.1 为什么选择序列模型?(Why Sequence Models?) 1.2 数学符号(Notation) 这个输入数据 ...

  6. DLNg第三周:序列模型和注意力机制

    1.基础模型 将法语翻译为英语,分为编码和解码阶段,将一个序列变为另一个序列.即序列对序列模型. 从图中识别出物体的状态,将图片转换为文字. 先使用CNN处理图片,再使用RNN将其转换为语言描述. 2 ...

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

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

  8. 刘志梅2017710101152.《面向对象程序设计(java)》第一周学习总结

    本人学号<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com http://ww ...

  9. 201772020113李清华《面向对象程序设计(java)》第一周学习总结

    201772020113<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com b ...

随机推荐

  1. linux 部分系统命令

    在网上看到一些系统命令,贴一记 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # ...

  2. vue中的iviewUI导出1W条列表数据每次只导出2000条的逻辑

    导出弹窗的html <template> <Modal v-model="exportModal" width=400 :closable="false ...

  3. ROS基础

    在ROS中启动Gazebo物理仿真环境 roslaunch gazebo_ros empty_world.launch 打开后一片漆黑是以为gazebo需要从国外的网站上下载模型,国内网络不行,一直下 ...

  4. opencv学习笔记——cv::CommandLineParser函数详解

    命令行解析类CommandLineParser 该类的作用主要用于命令行的解析,也就是分解命令行的作用.以前版本没这个类时,如果要运行带参数的.exe,必须在命令行中输入文件路径以及各种参数,并且输入 ...

  5. vmware虚拟的ubuntu18.04死机,尝试关闭时关机报“虚拟机xxx繁忙”

    找到虚拟机文件所在目录 打开vmware.log,第一行,找pid到pid=xxx,这就是CPU进程的id. 打开资源监视器,选CPU选项卡,找到这个PID,右键,结束进程. 再打开vmware尝试启 ...

  6. POJ 2259 - Team Queue - [队列的邻接表]

    题目链接:http://poj.org/problem?id=2259 Queues and Priority Queues are data structures which are known t ...

  7. Java并发编程的4个同步辅助类(CountDownLatch、CyclicBarrier、Semphore、Phaser)

    我在<jdk1.5引入的concurrent包>中,曾经介绍过CountDownLatch.CyclicBarrier两个类,还给出了CountDownLatch的演示案例.这里再系统总结 ...

  8. [skill] C语言数组名到底是个啥

    1. 正常情况下,数组名是个地址常量. 2. sizeof(数组名)的时候,数组名就代表数字名,其类型为 type array[], 返回数组元素个数. 3. 除了2的情况以外,可以理解为一个指针常量 ...

  9. LeetCode 690 Employee Importance 解题报告

    题目要求 You are given a data structure of employee information, which includes the employee's unique id ...

  10. Java基础知识之集合

    Collection集合 特点:长度可变,只能存储引用类型,可以存储不同的类型的元素 list 特点:元素有序(存储和取出的顺序一致),元素可以重复.list除了可以用迭代器循环遍历之外,因为其是有序 ...