deeplearning.ai 笔记 Specialization 5 week 1 序列模型

1. 序列模型能解决哪些问题

如语音识别、生成音乐、情感分类(如将对电影的评价转换为星级)、DNA序列检测(是不是某种蛋白质)、机器翻译、视频动作识别、姓名识别等。

2. 符号定义

输入:x,第一个单词x<1>等等,输出:y 第i个结果:y<i>。Tx代表输入的长度(有几个词),x/y中的t是某个时间点的意思。

要识别某个词,首先要有一个字典,然后将语句中的词语映射成one-hot形式:(一般商用词典大小都在30,000以上)

对于不在字典里的单词一般可以统一定为UNK

3. 循环神经网络(RNN)

为什么不用标准神经网络?

存在两个缺陷:

1)不同的例子中输入输出可以使不同的长度,很难控制

2)不能共享在不同位置学到的特征

左右都是RNN的结构表示,这里倾向于使用左边的,更清晰。

输入的a<0>是零向量。该网络可以使用之前的预测y,但是有缺点:不能使用之后的词。解决:使用BRNN。

如何计算a<t>、yhat<t>:

可以将Waa和Wax合起来减少参数数量:

4. 穿越时间的反向传播

5. 不同类型的RNN

第一种,输入与输出都很多Tx=Ty(多对多结构 many to many,一种特别的是机器翻译,Tx!=Ty),第二种,很多的输入,一种输出(多对一结构 many to one),第三种,一个输入多种输出(one to many 如生产一段音乐)

6. 语言模型和序列生成

什么是语言模型:同样的发音生成两句话,语言模型判断每个句子出现的概率是多少,以此来选择正确的句子。

句子末尾可以用EOS(end of sentence)代表一句话结束,也可以用句号“.”

RNN的模型会预测句子第一个词出现的概率,预测在第一个词是确定的某词后第二个词出现的概率......损失函数如下

7. 对新序列采样

能知道序列学会了什么的方法:

采样:将a0输入后得到的yhat<1>作为x<2>输入到下一个层,就能看到各种位置可能的词语。

在特定领域应用(如用莎士比亚的风格写东西):

8. RNN中的梯度消失

在RNN中遇到梯度爆炸会出现很多的NaN,很好发现,使用梯度修剪就可以增强它的鲁棒性,但是梯度消失不好发现。

在很深的网络中,最后的反向传播很难影响到最前面的参数,导致记住很前面的单复数很难(见例子)

如何解决:GRU

9. GRU单元(门控制单元)

首先看一下普通的RNN单元:

简化的GRU

使用tanh是因为大部分情况下它的值都是0或者1。

门记录下某个状态,在需要更新的时候才更新。输出也变成了c和伽玛的表达式

10.LSTM(长短期记忆)

对比:

11. 双向RNN

如何确定Teddy是人名还是玩具:

使用双向的RNN来获得之前和之后的词语,加以判断

12. deep RNNs

像一般的网络结构一样,不过横向有很多单元,不会很深,因为计算量很大,但是会见到某部分深的情况(笔画的)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值