NLP 3.3: Seq2Seq

1411-李同学

发表文章数:148

首页 » 算法 » 正文

1、Drop out

NLP 3.3: Seq2Seq


m^(k)决定了哪些节点的weight被drop out
keep_prob 需要调参

NLP 3.3: Seq2Seq

2、为什么drop out 防止过拟合

答:减少了模型的复杂度

对于每一个mini-batch,使用drop out 训练了不一样的模型,在预测时可以使用这些模型的average
NLP 3.3: Seq2Seq

3、机器翻译

基于深度学习的机器翻译系统,端到端的翻译,不需要语法。例如使用:RNN/LSTM模型

NLP 3.3: Seq2Seq

4、Multimodal learning

NLP 3.3: Seq2Seq
通过拼接两个模型,达到任务目的

5、Seq2Seq Model

NLP 3.3: Seq2Seq

5.1 应用在机器翻译上:

讲一句话输入进rnn,最后时刻的输出保存了这句话的meaning,

NLP 3.3: Seq2Seq

5.2 训练数据

NLP 3.3: Seq2Seq

5.3 Inference/Decoding

输出的结果是一个概率分布图

Inference/decoding:在已知模型参数的情况下,给定数据输入模型,得到输出

NLP 3.3: Seq2Seq
如何去判断通过seq2seq model的性能

  • 1、判断预测值和实际值之间的相似性/重叠性
    NLP 3.3: Seq2Seq

上述的两个输出预测值和第一个句子的实际值的重叠性都很好,但显示红色的预测值并不符合语义,如果只考虑单词之间的重叠性,即uni-gram的方法,会忽略单词组合顺序这一重要特性。

解决:bigram,trigram,…N-gram

decoding的过程:每一步都输出最好的结果(当前出现概率最大的单词),贪心算法,只能得到局部最优解。

如何解决:Beam search:每一次保留topk的结果

5.4 Exhaustic Search 穷举法

对于单词很多的概率分布,对于每时刻都考虑所有的可能会使时间复杂度变大很多

NLP 3.3: Seq2Seq

5.5 Beam Search

对于每个时刻,考虑前topk个出现概率最大的单词
时间复杂度:

O

(

k

2

t

)

O(k^2*t)

O(k2t)

  • k:前k个
  • t:要输出多少个时刻的单词,sequence length

总会倾向于选择长度最小的路径

使用平均的方法,对于logp的和除以它走过节点的长度
NLP 3.3: Seq2Seq
NLP 3.3: Seq2Seq
或者使用viterbi算法

NLP 3.3: Seq2Seq

6、Attention 注意力机制

  • Attention for Image Captioning
  • Attention for Machine Translation
  • Self-Attention

7、案例01 看图说话

对于使用CNN部分,输入图片,去掉CNN最后的softmax层,保留倒数第二层(FC4096)为vector层。
为什么不用倒数第一层?:并不是分类问题,是需要描述图片的特征。最后一层的dense层缺乏泛化能力
再输入进LSTM模型

NLP 3.3: Seq2Seq
NLP 3.3: Seq2Seq
出现 < end > 停止

NLP 3.3: Seq2Seq

问题:

  • 1、给定图片与输出文本的不相关
  • 2、如何判断哪个地方输出的不对,debug
  • 3、Bottle neck problem,对于某个时刻的输入产生的文本,不需要了解到vector所有的信息

看图说话的attention 机制

NLP 3.3: Seq2Seq
可以把重要的信息看的更清楚

通过找到最大的weight,来定义每个时刻的attention应该放在哪里

NLP 3.3: Seq2Seq
z:带表生成第一个单词时需要关注的信息

生成第一个单词

NLP 3.3: Seq2Seq

  • d

    i

    :

    d_i:

    di:每个时刻输入后,输出单词的分布

  • a

    i

    +

    1

    a_{i+1}

    ai+1每个时刻输入后,对于该时刻输入来说,图像每个位置点对于生成当前概率分布有贡献的概率。将z乘以本身的图像features map,得到weighted features,z越大的图像点,对于当前时刻的输入来说,贡献的比例越大。

8、seqGAN

8.1 GAN

NLP 3.3: Seq2Seq
NLP 3.3: Seq2Seq

8.2 强化学习

NLP 3.3: Seq2Seq
agent根据观察到的环境,作出一定的action,action作用于环境,得到新的观察,且对于agent的action给定一个reward。reward大的代表action正确,reward=0代表action是不对的。通过多次交互,agent学习去做出那些可以让reward最大化的actions

NLP 3.3: Seq2Seq

与深度学习的区别:
unsupervised learning,根据reward给与反馈。基于agent和环境的交互,不断学习。

NLP 3.3: Seq2Seq

8.3 SeqGAN

NLP 3.3: Seq2Seq

未经允许不得转载:作者:1411-李同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《NLP 3.3: Seq2Seq》 发布于2021-02-21

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录