李宏毅seq2seq(RNN LSTM GRU seq2seq)

1.回顾RNN

图1
对于RNN,要求隐藏状态的维度要相同。
RNN模块是同一个网络,只是在不同时间的使用。
图2
对于RNN可以将中间层的输出作为下一层的输入,f1≠f2。
图3 双向循环神经网络
在这里插入图片描述
其它的计算以此类推。隐藏层的激活函数选用tanh函数(李沫大神的《动手学深度学习》是使用这个激活函数),对于分类问题输出层选用softmax为激活函数。
笔者还看过另一种说法,是直接将隐藏状态连结,计算最终输出。个人更倾向这个说法。(出自李沫大神的《动手学深度学习》)
在这里插入图片描述
在这里插入图片描述

2.LSTM

LSTM
c为记忆细胞,变化速度较慢,h为隐藏变量,变化较快。
在这里插入图片描述
长短期记忆的门的输入均为当前时间步输入Xt​ 与上一时间步隐藏状态Ht−1​
,输出由激活函数为sigmoid函数的全连接层计算得到。如此一来,这3个门元素的值域均为[0,1]。
特殊的是候选记忆细胞z的计算,特别点为使用了tanh作为激活函数。
在这里插入图片描述
另外候选记忆细胞z的计算,可以将上一时间步的c作为改时间步的输入,但是为了减小参数以减小计算,将其对应的权重矩阵的最后一部分设置为diagonal。
在这里插入图片描述
我们可以通过元素值域在[0,1]的输入门、遗忘门和输出门来控制隐藏状态中信息的流动,这一般也是通过使用按元素乘法(符号为⊙)来实现的。当前时间步记忆细胞Ct的计算组合了上一时间步记忆细胞Ct-1和当前时间步候选记忆细胞z的信息,并通过遗忘门和输入门来控制信息的流动。Zf是作用于过去的信息Ct-1,因此称呼为遗忘门,Zi是作用于由当前输入获得的候选记忆细胞z,故而称呼为输入门。
在本张图中,粗的箭头表示输入经过一个映射
在这里插入图片描述
包含两个block的LSTM如图所示。将隐藏状态h和记忆细胞c传送到下一时间步,作为下一时间步的输入。

3.GRU

在这里插入图片描述
在这里插入图片描述
感觉有点ResNet的味道。

4.Sequence Generation

1.Generation在这里插入图片描述
值得注意的是,对于分类结果,可以使用两种方式,一种是sample,一种是argmax。
2.利用RNN作图
在这里插入图片描述
3、conditional generation

在这里插入图片描述
编码器-解码器结构,seq2seq。将编码器最后的隐藏状态作为解码器的一个输入(李说可以是隐藏状态h,记忆细胞c,输出结果y,结果的好坏尝试过才知道)。编码器和解码器的训练过程是jointly。
4、Dynamic Conditional Generation
attention-based model
在这里插入图片描述
将z和h作为输入,通过match,对每个隐藏状态计算出一个scalar,该scalar用来评估某个隐藏状态的重要性。
match的定义方法有三种:
(1)通过计算z和h的余弦相似度
(2)定义一个小的神经网络,将z和h向量作为输入,训练输出为scalar的nn
(3)直接transform,得到标量。
z又被称呼为key
在这里插入图片描述
每个隐藏状态会得到一个scalar,将这些scalar通过softmax得到一个score(李说这步看情况做),根据score得到一个c0,z0是随机初始话的,将c0作为decoder的输入,得到翻译结果y和z1,z1可以是隐藏状态(李说隐藏状态可以做z,但他上课说的z好像不是隐藏状态)。将产生的z1作为下次运算的key。
在这里插入图片描述
一直重复,直到产生EOS结束符。

5.几个tips

1.正则化
在这里插入图片描述
如上图所示,i表示某一帧画面,t表示时序。attention-socre越高表示越关注某一帧,如上图所示,在时序2和4,得到的attention-socre是很高的,那RNN识别出来的结果很可能就是woman,翻译的结果就很可能出错了。可以尝试的解决方法就是,对每一帧都设置一个正则化项。
在这里插入图片描述
2、scheduled sample
训练和测试不一致,test是以上一个时间步的输出作为该时间步的输入,而train每个时间步的输入都是上一个时间步的正确结果。因此在test的时候,如果出现了一些train没有看见过的情况,就会预测错误。为此可以利用sample的方法。
在这里插入图片描述
在每个时间步都会做一个sample,来决定该时间步的输入是来自上一时间步的输出(from model)还是来自上一时间步的正确结果(from reference)。sample的概率会随着step变化,开始可以更多使用reference来进行训练,当RNN的准确率还可以的时候,可以换成上一时间步的model output来训练。
3、束搜索(Beam Search)
在这里插入图片描述
如果在训练过程使用贪心算法,每次都选择最好的情况,得到的结果不一定是最好的。如图BBB的概率是大于ABB的概率。
在这里插入图片描述
beam search的核心思想就是计算,都保留当前最好的n种情况。在最终结果选择更好的那个。

参考:
[1]https://speech.ee.ntu.edu.tw/~tlkagk/courses/MLDS_2018/Lecture/Seq%20(v2).pdf
[2]李沫 《动手学深度学习》

笔者水平有限,如果有错误欢迎各位的指正。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值