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. 微信jssdk上传图片,一张一张的上传 和 一次性传好几张

    //html模板 <div class="zhaopin_3_2"> <div id="bbb"></div> <im ...

  2. <target>.ID 和 <source>.ID 的属性冲突: DataType 属性不匹配

    ORACLE数据库主键的数据类型为number ,如果不指定长度会有 Merge报 <target>.ID 和 <source>.ID 的属性冲突: DataType 属性不匹 ...

  3. Codeforces 758C-Unfair Poll

    Unfair Poll time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...

  4. How to add the ApplicationPoolIdentity to a SQL Server Login

    The ApplicationPoolIdentity is a virtual account in Windows that is dynamically generated when the a ...

  5. Maven知识点积累一

    配置maven变量,变量名可以是:MAVEN_HOME 或 M2_HOME settings.xml配置本地仓库地址: <localRepository>G:/.m2/repository ...

  6. 一篇采访窥C#的未来

    今天坐公交时用手机打开 .NET Blog 阅读这周的 The week in .NET ,在看 Virtual Panel: What's Next for .NET? 这篇采访报道时,被其中对 R ...

  7. [No0000141]Outlook,设置全局已读回执

    Outlook,设置全局已读回执 文件->选项

  8. day3:数据类型 str

    1,int 一个数字占用的bit数目 i = 2 print(i.bit_length()) i = 3 print(i.bit_length()) i = 5 print(i.bit_length( ...

  9. ArcEngine二次开发,TOCControl控件上使用contextMenuStrip

    右键菜单,在二次开发中很实用,以前没用过,最近通过一本书了解到,一直想找这么一个控件来用. 一般的控件,将contextMenuStrip控件拖到所依托的控件上,然后输入自己想要的几个功能.  在所依 ...

  10. opencv -python

    https://www.python----------tab.com/html/2017/pythonhexinbiancheng_1120/1184.html http://www.cnblogs ...