Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
book
提交
9fbab683
B
book
项目概览
PaddlePaddle
/
book
通知
16
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
40
列表
看板
标记
里程碑
合并请求
37
Wiki
5
Wiki
分析
仓库
DevOps
项目成员
Pages
B
book
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
40
Issue
40
列表
看板
标记
里程碑
合并请求
37
合并请求
37
Pages
分析
分析
仓库分析
DevOps
Wiki
5
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
9fbab683
编写于
1月 20, 2017
作者:
T
Tao Luo
提交者:
GitHub
1月 20, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refine machine_translation img size
上级
5e006ad7
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
7 addition
and
7 deletion
+7
-7
machine_translation/README.md
machine_translation/README.md
+7
-7
未找到文件。
machine_translation/README.md
浏览文件 @
9fbab683
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
近年来,深度学习技术的发展为解决上述挑战提供了新的思路。将深度学习应用于机器翻译任务的方法大致分为两类:1)仍以统计机器翻译系统为框架,只是利用神经网络来改进其中的关键模块,如语言模型、调序模型等(见图1的左半部分);2)不再以统计机器翻译系统为框架,而是直接用神经网络将源语言映射到目标语言,即端到端的神经网络机器翻译(End-to-End Neural Machine Translation, End-to-End NMT)(见图1的右半部分),简称为NMT模型。
近年来,深度学习技术的发展为解决上述挑战提供了新的思路。将深度学习应用于机器翻译任务的方法大致分为两类:1)仍以统计机器翻译系统为框架,只是利用神经网络来改进其中的关键模块,如语言模型、调序模型等(见图1的左半部分);2)不再以统计机器翻译系统为框架,而是直接用神经网络将源语言映射到目标语言,即端到端的神经网络机器翻译(End-to-End Neural Machine Translation, End-to-End NMT)(见图1的右半部分),简称为NMT模型。
<p
align=
"center"
>
<p
align=
"center"
>
<img
src=
"image/nmt.png"
><br/>
<img
src=
"image/nmt.png"
width=
400
><br/>
图1. 基于神经网络的机器翻译系统
图1. 基于神经网络的机器翻译系统
</p>
</p>
...
@@ -43,7 +43,7 @@ GRU\[[2](#参考文献)\]是Cho等人在LSTM上提出的简化版本,也是RNN
...
@@ -43,7 +43,7 @@ GRU\[[2](#参考文献)\]是Cho等人在LSTM上提出的简化版本,也是RNN
-
重置门(reset gate):如果重置门关闭,会忽略掉历史信息,即历史不相干的信息不会影响未来的输出。
-
重置门(reset gate):如果重置门关闭,会忽略掉历史信息,即历史不相干的信息不会影响未来的输出。
-
更新门(update gate):将LSTM的输入门和遗忘门合并,用于控制历史信息对当前时刻隐层输出的影响。如果更新门接近1,会把历史信息传递下去。
-
更新门(update gate):将LSTM的输入门和遗忘门合并,用于控制历史信息对当前时刻隐层输出的影响。如果更新门接近1,会把历史信息传递下去。
<p
align=
"center"
>
<p
align=
"center"
>
<img
src=
"image/gru.png"
><br/>
<img
src=
"image/gru.png"
width=
700
><br/>
图2. GRU(门控循环单元)
图2. GRU(门控循环单元)
</p>
</p>
...
@@ -56,7 +56,7 @@ GRU\[[2](#参考文献)\]是Cho等人在LSTM上提出的简化版本,也是RNN
...
@@ -56,7 +56,7 @@ GRU\[[2](#参考文献)\]是Cho等人在LSTM上提出的简化版本,也是RNN
具体来说,该双向循环神经网络分别在时间维以顺序和逆序——即前向(forward)和后向(backward)——依次处理输入序列,并将每个时间步RNN的输出拼接成为最终的输出层。这样每个时间步的输出节点,都包含了输入序列中当前时刻完整的过去和未来的上下文信息。下图展示的是一个按时间步展开的双向循环神经网络。该网络包含一个前向和一个后向RNN,其中有六个权重矩阵:输入到前向隐层和后向隐层的权重矩阵($W_1, W_3$),隐层到隐层自己的权重矩阵($W_2,W_5$),前向隐层和后向隐层到输出层的权重矩阵($W_4, W_6$)。注意,该网络的前向隐层和后向隐层之间没有连接。
具体来说,该双向循环神经网络分别在时间维以顺序和逆序——即前向(forward)和后向(backward)——依次处理输入序列,并将每个时间步RNN的输出拼接成为最终的输出层。这样每个时间步的输出节点,都包含了输入序列中当前时刻完整的过去和未来的上下文信息。下图展示的是一个按时间步展开的双向循环神经网络。该网络包含一个前向和一个后向RNN,其中有六个权重矩阵:输入到前向隐层和后向隐层的权重矩阵($W_1, W_3$),隐层到隐层自己的权重矩阵($W_2,W_5$),前向隐层和后向隐层到输出层的权重矩阵($W_4, W_6$)。注意,该网络的前向隐层和后向隐层之间没有连接。
<p
align=
"center"
>
<p
align=
"center"
>
<img
src=
"image/bi_rnn.png"
><br/>
<img
src=
"image/bi_rnn.png"
width=
450
><br/>
图3. 按时间步展开的双向循环神经网络
图3. 按时间步展开的双向循环神经网络
</p>
</p>
...
@@ -64,7 +64,7 @@ GRU\[[2](#参考文献)\]是Cho等人在LSTM上提出的简化版本,也是RNN
...
@@ -64,7 +64,7 @@ GRU\[[2](#参考文献)\]是Cho等人在LSTM上提出的简化版本,也是RNN
编码器-解码器(Encoder-Decoder)
\[
[
2
](
#参考文献
)
\]
框架用于解决由一个任意长度的源序列到另一个任意长度的目标序列的变换问题。即编码阶段将整个源序列编码成一个向量,解码阶段通过最大化预测序列概率,从中解码出整个目标序列。编码和解码的过程通常都使用RNN实现。
编码器-解码器(Encoder-Decoder)
\[
[
2
](
#参考文献
)
\]
框架用于解决由一个任意长度的源序列到另一个任意长度的目标序列的变换问题。即编码阶段将整个源序列编码成一个向量,解码阶段通过最大化预测序列概率,从中解码出整个目标序列。编码和解码的过程通常都使用RNN实现。
<p
align=
"center"
>
<p
align=
"center"
>
<img
src=
"image/encoder_decoder.png"
><br/>
<img
src=
"image/encoder_decoder.png"
width=
700
><br/>
图4. 编码器-解码器框架
图4. 编码器-解码器框架
</p>
</p>
...
@@ -81,7 +81,7 @@ GRU\[[2](#参考文献)\]是Cho等人在LSTM上提出的简化版本,也是RNN
...
@@ -81,7 +81,7 @@ GRU\[[2](#参考文献)\]是Cho等人在LSTM上提出的简化版本,也是RNN
第3步也可以使用双向循环神经网络实现更复杂的句编码表示,具体可以用双向GRU实现。前向GRU按照词序列$(x_1,x_2,...,x_T)$的顺序依次编码源语言端词,并得到一系列隐层状态$(
\o
verrightarrow{h_1},
\o
verrightarrow{h_2},...,
\o
verrightarrow{h_T})$。类似的,后向GRU按照$(x_T,x_{T-1},...,x_1)$的顺序依次编码源语言端词,得到$(
\o
verleftarrow{h_1},
\o
verleftarrow{h_2},...,
\o
verleftarrow{h_T})$。最后对于词$x_i$,通过拼接两个GRU的结果得到它的隐层状态,即$h_i=
\l
eft [
\o
verrightarrow{h_i^T},
\o
verleftarrow{h_i^T}
\r
ight ]^{T}$。
第3步也可以使用双向循环神经网络实现更复杂的句编码表示,具体可以用双向GRU实现。前向GRU按照词序列$(x_1,x_2,...,x_T)$的顺序依次编码源语言端词,并得到一系列隐层状态$(
\o
verrightarrow{h_1},
\o
verrightarrow{h_2},...,
\o
verrightarrow{h_T})$。类似的,后向GRU按照$(x_T,x_{T-1},...,x_1)$的顺序依次编码源语言端词,得到$(
\o
verleftarrow{h_1},
\o
verleftarrow{h_2},...,
\o
verleftarrow{h_T})$。最后对于词$x_i$,通过拼接两个GRU的结果得到它的隐层状态,即$h_i=
\l
eft [
\o
verrightarrow{h_i^T},
\o
verleftarrow{h_i^T}
\r
ight ]^{T}$。
<p
align=
"center"
>
<p
align=
"center"
>
<img
src=
"image/encoder_attention.png"
><br/>
<img
src=
"image/encoder_attention.png"
width=
500
><br/>
图5. 使用双向GRU的编码器
图5. 使用双向GRU的编码器
</p>
</p>
...
@@ -128,7 +128,7 @@ e_{ij}&=align(z_i,h_j)\\\\
...
@@ -128,7 +128,7 @@ e_{ij}&=align(z_i,h_j)\\\\
其中,$align$可以看作是一个对齐模型,用来衡量目标语言中第$i$个词和源语言中第$j$个词的匹配程度。具体而言,这个程度是通过解码RNN的第$i$个隐层状态$z_i$和源语言句子的第$j$个上下文片段$h_j$计算得到的。传统的对齐模型中,目标语言的每个词明确对应源语言的一个或多个词(hard alignment);而在注意力模型中采用的是soft alignment,即任何两个目标语言和源语言词间均存在一定的关联,且这个关联强度是由模型计算得到的实数,因此可以融入整个NMT框架,并通过反向传播算法进行训练。
其中,$align$可以看作是一个对齐模型,用来衡量目标语言中第$i$个词和源语言中第$j$个词的匹配程度。具体而言,这个程度是通过解码RNN的第$i$个隐层状态$z_i$和源语言句子的第$j$个上下文片段$h_j$计算得到的。传统的对齐模型中,目标语言的每个词明确对应源语言的一个或多个词(hard alignment);而在注意力模型中采用的是soft alignment,即任何两个目标语言和源语言词间均存在一定的关联,且这个关联强度是由模型计算得到的实数,因此可以融入整个NMT框架,并通过反向传播算法进行训练。
<p
align=
"center"
>
<p
align=
"center"
>
<img
src=
"image/decoder_attention.png"
><br/>
<img
src=
"image/decoder_attention.png"
width=
500
><br/>
图6. 基于注意力机制的解码器
图6. 基于注意力机制的解码器
</p>
</p>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录