深度学习-->NLP-->Seq2Seq Learning(Encoder-Decoder,Beam Search,Attention)
来源:互联网 发布:mysql中的level 编辑:程序博客网 时间:2024/06/05 07:06
之前总结过
这里面是一个一个的输出。我们如果以这种方式做机器翻译,每一个时刻输入一个词,相应的翻译一个词,显然这种一个一个单词的翻译方式不是很好,因为没有联系上下文进行翻译。我们希望先把一整句话喂给模型,然后模型在这一个整句的角度上来进翻译。这样翻译的效果更好。
所以本篇博文要总结的是Seq2Seq Model,给出一个完整的句子,能得出另外一个完整的句子。
下面我们以机器翻译来讲解下面几个要点。
Encoder-Decoder模型
网络结构
其中
注意在
Encoder−Decoder 的参数集合
首先注意
以及它的计算公式:
num_layers=n,hidden size=d(embedding的维度) vocab for F=VF(输入单词的个数),vocab for E=VE(输出单词的个数)
Input:input embedding for f:VF∗d LSTM : 第一层,第二层:2∗(8d2+4d) (我们可以看上面LSTM 的计算公式,对于i,f,o,g 四个公式,每个公式都有两个参数矩阵,每个矩阵大小都是d∗d ,再加上四个bias 参数矩阵,故每层共有(8d2+4d) 个参数)
Input:input embedding for e:VE∗d LSTM : 第一层,第二层:2∗(8d2+4d) Output output embedding for e:VE∗d output bias for e:VE
Beam Search
Mismatch between Train and Test
首先需要注意到模型训练和模型预测是两个不同的过程,在训练时,我们知道每一步真正的
在上图的网络结构中,都是以上一时刻真正的
那么
很显然,这样做的后果很严重:
一步错,步步错!
那么应如何解决上面这个问题呢?我们尝试这样做,现在假设语料库只有
我们看上图的
这里需要注意,在
这样我们可以计算出输出序列
在语料库中的
可以尝试这样做,例如语料库有3个
这里需要注意,当对应输入是
当语料库中只有两个
可以以下面这张图更好的理解
注意在每个时间步时,可能有相同的
Attention
上面讲的传统的
简单来说,例如将“我 爱 你”翻译成
例如下图:
那么问题来了,如何让模型学习对其(
在
这里我久不从数学公式角度来说明,只说下它的大致思路。
上图中上半部分为
假设在
将得出的
这样讲的估计有许多人没明白咋回事,为什么这样做就能
我觉得这篇原始论文讲的虽然详细但是不够直观。我引用下台大李宏毅教授所讲
假设我们再
我们可以看出
得出的
其实对于
- 深度学习-->NLP-->Seq2Seq Learning(Encoder-Decoder,Beam Search,Attention)
- 深度学习笔记(六):Encoder-Decoder模型和Attention模型
- 深度学习笔记:encoder-decoder
- Attention and Memory in Deep Learning and NLP(深度学习和NLP中的注意和记忆机制)
- Attention and Memory in Deep Learning and NLP(深度学习和NLP中的注意和记忆机制) 阅读笔记
- Encoder-Decoder模型和Attention模型
- Encoder-Decoder模型和Attention模型
- Encoder-Decoder模型和Attention模型
- Encoder-Decoder模型和Attention模型
- 轰炸理解深度学习里面的encoder-decoder模型
- 深度学习和自然语言处理中的注意和记忆Attention and Memory in Deep Learning and NLP
- 机器翻译中的深度学习技术:CNN,Seq2Seq,SGAN,Dual Learning
- 深度学习(五)——DRN, Bi-directional RNN, Attention, seq2seq, DMN
- 深度学习(BOT方向) 学习笔记(2) RNN Encoder-Decoder 及 LSTM 学习
- RNN聊天机器人与Beam Search [Tensorflow Seq2Seq]
- 深度学习:Seq2seq模型
- encoder-decoder
- encoder-decoder
- adb 启动命令
- mysql linux 区分大小写问题
- BAT 一键安装JDK
- 牛客网PAT题目1001——A+B和C(Java)
- 2018年及以后的物联网商业趋势
- 深度学习-->NLP-->Seq2Seq Learning(Encoder-Decoder,Beam Search,Attention)
- python+selenium 使用switch_to_alert 出现的怪异常
- CentOS查看进程、杀死进程、启动进程等常用命令
- Jdk1.7新特性
- 发版项目记录
- 无标题一
- Python自动化第五周-模块
- Windows下git命令下载caffe-segnet源代码
- 数据结构<四>: 递归