DLNg序列模型第一周
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序列模型第一周的更多相关文章
- DLNg序列模型第二周NLP与词嵌入
1.使用词嵌入 给了一个命名实体识别的例子,如果两句分别是“orange farmer”和“apple farmer”,由于两种都是比较常见的,那么可以判断主语为人名. 但是如果是榴莲种植员可能就无法 ...
- PASS模型-第一周个人总结
目录 PASS模型-第一周个人报告 1.个人任务 2.个人工作内容 2.1 登陆界面 2.2 信息采集 2.3 视觉搜索 3.个人小结 3.1 收获 3.2 优化 PASS模型-第一周个人报告 博客班 ...
- PASS模型-第一周个人报告
PASS模型-第一周个人报告 博客班级 https://edu.cnblogs.com/campus/zjcsxy/SE2020 作业要求 https://edu.cnblogs.com/campus ...
- Deep Learning.ai学习笔记_第五门课_序列模型
目录 第一周 循环序列模型 第二周 自然语言处理与词嵌入 第三周 序列模型和注意力机制 第一周 循环序列模型 在进行语音识别时,给定一个输入音频片段X,并要求输出对应的文字记录Y,这个例子中输入和输出 ...
- 吴恩达《深度学习》-第五门课 序列模型(Sequence Models)-第一周 循环序列模型(Recurrent Neural Networks) -课程笔记
第一周 循环序列模型(Recurrent Neural Networks) 1.1 为什么选择序列模型?(Why Sequence Models?) 1.2 数学符号(Notation) 这个输入数据 ...
- DLNg第三周:序列模型和注意力机制
1.基础模型 将法语翻译为英语,分为编码和解码阶段,将一个序列变为另一个序列.即序列对序列模型. 从图中识别出物体的状态,将图片转换为文字. 先使用CNN处理图片,再使用RNN将其转换为语言描述. 2 ...
- 吴恩达《深度学习》-第五门课 序列模型(Sequence Models)-第三周 序列模型和注意力机制(Sequence models & Attention mechanism)-课程笔记
第三周 序列模型和注意力机制(Sequence models & Attention mechanism) 3.1 序列结构的各种序列(Various sequence to sequence ...
- 刘志梅2017710101152.《面向对象程序设计(java)》第一周学习总结
本人学号<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com http://ww ...
- 201772020113李清华《面向对象程序设计(java)》第一周学习总结
201772020113<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com b ...
随机推荐
- linux 部分系统命令
在网上看到一些系统命令,贴一记 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # ...
- vue中的iviewUI导出1W条列表数据每次只导出2000条的逻辑
导出弹窗的html <template> <Modal v-model="exportModal" width=400 :closable="false ...
- ROS基础
在ROS中启动Gazebo物理仿真环境 roslaunch gazebo_ros empty_world.launch 打开后一片漆黑是以为gazebo需要从国外的网站上下载模型,国内网络不行,一直下 ...
- opencv学习笔记——cv::CommandLineParser函数详解
命令行解析类CommandLineParser 该类的作用主要用于命令行的解析,也就是分解命令行的作用.以前版本没这个类时,如果要运行带参数的.exe,必须在命令行中输入文件路径以及各种参数,并且输入 ...
- vmware虚拟的ubuntu18.04死机,尝试关闭时关机报“虚拟机xxx繁忙”
找到虚拟机文件所在目录 打开vmware.log,第一行,找pid到pid=xxx,这就是CPU进程的id. 打开资源监视器,选CPU选项卡,找到这个PID,右键,结束进程. 再打开vmware尝试启 ...
- POJ 2259 - Team Queue - [队列的邻接表]
题目链接:http://poj.org/problem?id=2259 Queues and Priority Queues are data structures which are known t ...
- Java并发编程的4个同步辅助类(CountDownLatch、CyclicBarrier、Semphore、Phaser)
我在<jdk1.5引入的concurrent包>中,曾经介绍过CountDownLatch.CyclicBarrier两个类,还给出了CountDownLatch的演示案例.这里再系统总结 ...
- [skill] C语言数组名到底是个啥
1. 正常情况下,数组名是个地址常量. 2. sizeof(数组名)的时候,数组名就代表数字名,其类型为 type array[], 返回数组元素个数. 3. 除了2的情况以外,可以理解为一个指针常量 ...
- LeetCode 690 Employee Importance 解题报告
题目要求 You are given a data structure of employee information, which includes the employee's unique id ...
- Java基础知识之集合
Collection集合 特点:长度可变,只能存储引用类型,可以存储不同的类型的元素 list 特点:元素有序(存储和取出的顺序一致),元素可以重复.list除了可以用迭代器循环遍历之外,因为其是有序 ...