浅谈encoder-decoder模式的下的seq2seq模型(35)---《深度学习》

严正申明:本文中所有用到的图都是来自这篇博客深度学习方法(八):自然语言处理中的Encoder-Decoder模型,基本Sequence to Sequence模型
前面我们已经了解了CNN,RNN及对应的BP和BPTT,有了这两个强大的工具,我们可以将其进行组合进而解决很多的问题,这篇博客我们就来讲一下利用RNN结合RNN来实现一个seq2seq模型,注意为什么需要采用encoder-decoder模式,而不是直接用一个RNN进行一个输出呢?这个问题就比较彪悍了,其实我也想过这个问题,好尴尬啊,哈哈哈,一不小心跑偏了,那么到底是为什么呢?举个栗子哈,我们实现一个翻译任务,每个单词每个单词翻译的话,岂不是可以用CNN实现,如果想要利用以前的信息的话,那么使用RNN端对端直接输出呢,这样感觉也可以哈,不过由于难度比较大,训练起来不容易收敛,所以聪明的大佬们设计出来了一种敲有用的东东,叫做encoder-decoder,这种设计模式的思路主要是延迟输出,由3部分组成:encoder,decoder和语义编码c(连接encoder和decoder),接下来介绍一下这三部分:
1)encoder:可以是CNN或者RNN,这里我们选用RNN实现,讲信息不断的保存在hidden节点中,进行信息的不断传递;
2)语义编码c:提取汇总信息,一般选用encoder中的最后一个隐藏节点的信息作为语义编码;
3)decoder:一般选用RNN实现,利用以往的信息c和前一个节点的输出预测当前节点的输出,进而实现seq2seq模型的实现:
如图所示:
这里写图片描述
d后来可以发现这种编码机制有其自身的弊端,因为在encoder阶段,信息不断经过隐层节点向后传递,可是这样会有损耗的唉,前面节点的信息越往后传递越被稀释,别担心哈,这种问题怎么能难住大佬们呢,大佬们坐一起吃着火锅唱着歌,就解决了,既然前面节点的信息越往后传递损耗越大,为什么我们不专注与当前节点呢,这样不就可以避免损耗了吗?于是就这样的提出了Attention机制,好厉害的大佬们,果真厉害!如下图所示:
这里写图片描述
以今天就写到这里,大家感兴趣的话可以参看这篇博客:
深度学习方法(八):自然语言处理中的Encoder-Decoder模型,基本Sequence to Sequence模型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值