吴恩达深度学习(四)之序列模型

本文详细介绍了吴恩达深度学习课程中关于序列模型的内容,包括循环神经网络(RNN)、LSTM、GRU及其解决梯度消失问题的方法。此外,还涉及词嵌入、词向量表示、词嵌入学习、Word2Vec、GloVe等自然语言处理技术,并探讨了序列模型在机器翻译和注意力机制的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一周 循环序列模型

基于词典的NLP中X和Y的字典表示:

在这里插入图片描述
在这里插入图片描述

循环神经网络

如果利用神经网络,
1.TX未必等于TY(中英翻译)
2.不能共享前面的数据

单向RNN

参数表示

图中左边跟右边的表示方式是相同的
我们会发现RNN可以运用以前判断过的单词(因共享权值所以好于神经网络),但是无法利用后面的单词(这个问题后续用BRNN解决),因此只到Teddy也无法判断到底是不是个名字
在这里插入图片描述

前向传播

在这里插入图片描述
注意这是两个矩阵的乘积,后期简化为只有Wa与Wy
注意:一个序列下的所有不同输入的单词,它们的矩阵Wa与Wy相同
在这里插入图片描述

通过时间的反向传播

#关于最后交叉熵代价函数那一块的梯度没给出,恐龙的代码中有,这里给出softmax与交叉熵代价下的梯度,
传送,
直接就求到了去掉softmax那里
在这里插入图片描述
在这里插入图片描述

五种RNN结构

1.一对一:标准神经元
2.一对多:例如音乐或者序列生成
3.多对一:例如通过一句话,感知用户对电影的喜爱程度
4.多对多:
a.TX=TY,例如命名实体识别
b.TX!=TY,例如机器翻译,前面输入部分是编码(encoder),后面输出是解码(decoder)
在这里插入图片描述

模型构建(以文本判断为例)

如下图:我们现在要看哪一个句子是真正的句子,就是依次将句子带入RNNmodel看它们的概率
在这里插入图片描述
首先我们要设计一个词典,然后将每个单词用热独编码表示并输入,对于不常用单词放入单独的一个词典,在每个句子后面跟一个EOS来表示结束

然后如下所示的将句子带入模型
注意:a(1) and X <1> 是0, X<2>输入的是y(1)即第一个正确单词,yhat(1)代表是每一个单词的概率,因为输入了x(2),因此yhat(2)=p(average|cat),如此类推
注意:每个yhat都经过了softmax,底下也是softmax代价函数
最后的输出就是这个句子的概率
在这里插入图片描述

序列采样(看看模型对不对,常用于语句生成)

对训练好的RNN进行测验
我们可以使用np.random.choice进行随机采样,
就比如y1hat随机采样生成了一个the,那么将the喂给x(2),y2hat就会是p(|the)下的采用结果,直到到达eof或者到达要求的词汇数量(时间步)
在这里插入图片描述

基于词汇与基于字符的词典

在这里插入图片描述
基于词汇的不会产生非常规单词,如mua,而基于字符的可能
基于词汇的更善于捕捉前后文关系,然而基于字符的代价非常大且不善于捕捉前后关系

基本RNN在长依赖下的问题及梯度爆炸的解决方案

在这里插入图片描述
如果两个相关联的词汇相隔的很长,那么由于梯度消失与爆炸,导致很难推测。(如上图中的句子)。
如果出现了很多NAN,那证明梯度爆炸了,此时应该使用梯度修剪,梯度修剪的意思就是观察你的梯度向量,如果它大于某个阈值,缩放梯度向量,保证它不会太大,这就是通过一些最大值来修剪的方法

GRU单元(解决梯度消失的问题)

看左上角图所示的单元,算出那两个,然后通过一个门控,如果无关,则一直保留记忆单元,这很好的解决了梯度消失问题
在这里插入图片描述
这是完整的GRU,那个新式子代表了 c(t-1) 与c(t)之间的相关性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值