Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
Toy-MT-Introduction
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
NiuTrans
Toy-MT-Introduction
Commits
66d0974c
Commit
66d0974c
authored
Mar 28, 2020
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updates
parent
5c98e5ed
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
7 行增加
和
7 行删除
+7
-7
Book/Chapter5/chapter5.tex
+0
-0
Book/Chapter6/Chapter6.tex
+7
-7
没有找到文件。
Book/Chapter5/chapter5.tex
查看文件 @
66d0974c
差异被折叠。
点击展开。
Book/Chapter6/Chapter6.tex
查看文件 @
66d0974c
...
...
@@ -571,7 +571,7 @@ $\textrm{P}({y_j | \mathbf{s}_{j-1} ,y_{j-1},\mathbf{C}})$由Softmax实现,Sof
\parinterval
RNN结构使得当前时刻循环单元的状态包含了之前时间步的状态信息。但是这种对历史信息的记忆并不是无损的,随着序列变长,RNN的记忆信息的损失越来越严重。在很多长序列处理任务中(如长文本生成)都观测到了类似现象。对于这个问题,Hochreiter S和Schmidhuber J提出了长短时记忆模型(long short-term memory),也就是常说的LSTM模型
\cite
{
HochreiterLong
}
。
%Jürgen Schmidhuber
\parinterval
LSTM模型是RNN模型的一种改进。相比RNN仅传递前一时刻的状态
$
\mathbf
{
h
}_{
t
-
1
}$
,LST
\\
M会同时传递两部分信息:状态信息
$
\mathbf
{
h
}_{
t
-
1
}$
和记忆信息
$
\mathbf
{
c
}_{
t
-
1
}$
。这里,
$
\mathbf
{
c
}_{
t
-
1
}$
是新引入的变量,它也是循环单元的一部分,用于显性的记录需要记录的历史内容,
$
\mathbf
{
h
}_{
t
-
1
}$
和
$
\mathbf
{
c
}_{
t
-
1
}$
在循环单元中会相互作用。LSTM通过``门''单元来动态地选择遗忘多少以前的信息和记忆多少当前的信息。LSTM中所使用的门结构如图
\ref
{
fig:6-14
}
所示,包括遗忘门,输入门和输出门。图中
$
\sigma
$
代表
s
igmoid函数,它将函数输入映射为0-1范围内的实数,用来充当门控信号。
\parinterval
LSTM模型是RNN模型的一种改进。相比RNN仅传递前一时刻的状态
$
\mathbf
{
h
}_{
t
-
1
}$
,LST
\\
M会同时传递两部分信息:状态信息
$
\mathbf
{
h
}_{
t
-
1
}$
和记忆信息
$
\mathbf
{
c
}_{
t
-
1
}$
。这里,
$
\mathbf
{
c
}_{
t
-
1
}$
是新引入的变量,它也是循环单元的一部分,用于显性的记录需要记录的历史内容,
$
\mathbf
{
h
}_{
t
-
1
}$
和
$
\mathbf
{
c
}_{
t
-
1
}$
在循环单元中会相互作用。LSTM通过``门''单元来动态地选择遗忘多少以前的信息和记忆多少当前的信息。LSTM中所使用的门结构如图
\ref
{
fig:6-14
}
所示,包括遗忘门,输入门和输出门。图中
$
\sigma
$
代表
S
igmoid函数,它将函数输入映射为0-1范围内的实数,用来充当门控信号。
%----------------------------------------------
% 图3.10
...
...
@@ -597,14 +597,14 @@ $\textrm{P}({y_j | \mathbf{s}_{j-1} ,y_{j-1},\mathbf{C}})$由Softmax实现,Sof
这里,
$
\mathbf
{
W
}_
f
$
是权值,
$
\mathbf
{
b
}_
f
$
是偏置,
$
[
\mathbf
{
h
}_{
t
-
1
}
,
\mathbf
{
x
}_{
t
}
]
$
表示两个向量的拼接。该公式可以解释为,对
$
[
\mathbf
{
h
}_{
t
-
1
}
,
\mathbf
{
x
}_{
t
}
]
$
进行变换,并得到一个 的实数向量
$
\mathbf
{
f
}_
t
$
。
$
\mathbf
{
f
}_
t
$
的每一维都可以被理解为一个``门'',它决定可以有多少信息被留下(或遗忘)。
\item
\textbf
{
记忆更新
}
。首先,要生成当前时刻需要新增加的信息,该部分由输入门完成,其结构如图
\ref
{
fig:6-14
}
(b)红色线部分,图中``
$
\bigotimes
$
''表示进行点乘操作。输入门的计算分为两部分,首先利用
$
\sigma
$
决定门控参数
$
\mathbf
{
i
}_
t
$
,然后通过
t
anh函数得到新的信息
$
\hat
{
\mathbf
{
c
}}_
t
$
,具体公式如下:
\item
\textbf
{
记忆更新
}
。首先,要生成当前时刻需要新增加的信息,该部分由输入门完成,其结构如图
\ref
{
fig:6-14
}
(b)红色线部分,图中``
$
\bigotimes
$
''表示进行点乘操作。输入门的计算分为两部分,首先利用
$
\sigma
$
决定门控参数
$
\mathbf
{
i
}_
t
$
,然后通过
T
anh函数得到新的信息
$
\hat
{
\mathbf
{
c
}}_
t
$
,具体公式如下:
\begin{eqnarray}
\mathbf
{
i
}_
t =
\sigma
(
\mathbf
{
W
}_
i [
\mathbf
{
h
}_{
t-1
}
,
\mathbf
{
x
}_{
t
}
] +
\mathbf
{
b
}_
i )
\label
{
eqC6.13
}
\end{eqnarray}
%------------------------------------------
\begin{eqnarray}
\hat
{
\mathbf
{
c
}}_
t =
\textrm
{
t
anh
}
(
\mathbf
{
W
}_
c [
\mathbf
{
h
}_{
t-1
}
,
\mathbf
{
x
}_{
t
}
] +
\mathbf
{
b
}_
c )
\hat
{
\mathbf
{
c
}}_
t =
\textrm
{
T
anh
}
(
\mathbf
{
W
}_
c [
\mathbf
{
h
}_{
t-1
}
,
\mathbf
{
x
}_{
t
}
] +
\mathbf
{
b
}_
c )
\label
{
eqC6.14
}
\end{eqnarray}
...
...
@@ -614,14 +614,14 @@ $\textrm{P}({y_j | \mathbf{s}_{j-1} ,y_{j-1},\mathbf{C}})$由Softmax实现,Sof
\label
{
eqC6.15
}
\end{eqnarray}
\item
\textbf
{
输出
}
。该部分使用输出门计算最终的输出信息
$
\mathbf
{
h
}_
t
$
,其结构如图
\ref
{
fig:6-14
}
(d)红色线部分所示。在输出门中,首先将
$
\mathbf
{
x
}_
t
$
和
$
\mathbf
{
h
}_{
t
-
1
}$
通过
$
\sigma
$
函数变换得到
$
\mathbf
{
o
}_
t
$
。其次,将上一步得到的新记忆信息
$
\mathbf
{
c
}_
t
$
通过
t
anh函数进行变换,得到值范围在[-1,1]的向量。最后将这两部分进行点乘,具体公式如下:
\item
\textbf
{
输出
}
。该部分使用输出门计算最终的输出信息
$
\mathbf
{
h
}_
t
$
,其结构如图
\ref
{
fig:6-14
}
(d)红色线部分所示。在输出门中,首先将
$
\mathbf
{
x
}_
t
$
和
$
\mathbf
{
h
}_{
t
-
1
}$
通过
$
\sigma
$
函数变换得到
$
\mathbf
{
o
}_
t
$
。其次,将上一步得到的新记忆信息
$
\mathbf
{
c
}_
t
$
通过
T
anh函数进行变换,得到值范围在[-1,1]的向量。最后将这两部分进行点乘,具体公式如下:
\begin{eqnarray}
\mathbf
{
o
}_
t =
\sigma
(
\mathbf
{
W
}_
o [
\mathbf
{
h
}_{
t-1
}
,
\mathbf
{
x
}_{
t
}
] +
\mathbf
{
b
}_
o )
\label
{
eqC6.16
}
\end{eqnarray}
%----------------------------------------------------
\begin{eqnarray}
\mathbf
{
h
}_
t =
\mathbf
{
o
}_
t
\cdot
\textrm
{
t
anh
}
(
\mathbf
{
c
}_
t)
\mathbf
{
h
}_
t =
\mathbf
{
o
}_
t
\cdot
\textrm
{
T
anh
}
(
\mathbf
{
c
}_
t)
\label
{
eqC6.17
}
\end{eqnarray}
...
...
@@ -652,9 +652,9 @@ $\textrm{P}({y_j | \mathbf{s}_{j-1} ,y_{j-1},\mathbf{C}})$由Softmax实现,Sof
\label
{
eqC6.19
}
\end{eqnarray}
\parinterval
当完成了重置门和更新门计算后,就需要更新当前隐藏状态,如图
\ref
{
fig:6-16
}
(c)所示。在计算得到了重置门的权重
$
\mathbf
{
r
}_
t
$
后,使用其对前一时刻的状态
$
\mathbf
{
h
}_{
t
-
1
}$
进行重置(
$
\mathbf
{
r
}_
t
\cdot
\mathbf
{
h
}_{
t
-
1
}$
),将重置后的结果与
$
\mathbf
{
x
}_
t
$
拼接,通过
t
anh激活函数将数据变换到[-1,1]范围内:
\parinterval
当完成了重置门和更新门计算后,就需要更新当前隐藏状态,如图
\ref
{
fig:6-16
}
(c)所示。在计算得到了重置门的权重
$
\mathbf
{
r
}_
t
$
后,使用其对前一时刻的状态
$
\mathbf
{
h
}_{
t
-
1
}$
进行重置(
$
\mathbf
{
r
}_
t
\cdot
\mathbf
{
h
}_{
t
-
1
}$
),将重置后的结果与
$
\mathbf
{
x
}_
t
$
拼接,通过
T
anh激活函数将数据变换到[-1,1]范围内:
\begin{eqnarray}
\hat
{
\mathbf
{
h
}}_
t =
\textrm
{
t
anh
}
(
\mathbf
{
W
}_
h [
\mathbf
{
r
}_
t
\cdot
\mathbf
{
h
}_{
t-1
}
,
\mathbf
{
x
}_{
t
}
])
\hat
{
\mathbf
{
h
}}_
t =
\textrm
{
T
anh
}
(
\mathbf
{
W
}_
h [
\mathbf
{
r
}_
t
\cdot
\mathbf
{
h
}_{
t-1
}
,
\mathbf
{
x
}_{
t
}
])
\label
{
eqC6.20
}
\end{eqnarray}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论