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
6d19008f
Commit
6d19008f
authored
May 12, 2020
by
曹润柘
Browse files
Options
Browse Files
Download
Plain Diff
合并分支 'caorunzhe' 到 'master'
Caorunzhe 查看合并请求
!149
parents
6aece575
e3834607
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
8 行增加
和
8 行删除
+8
-8
Book/Chapter4/chapter4.tex
+0
-0
Book/Chapter6/Chapter6.tex
+2
-2
Book/Chapter7/Chapter7.tex
+6
-6
没有找到文件。
Book/Chapter4/chapter4.tex
查看文件 @
6d19008f
差异被折叠。
点击展开。
Book/Chapter6/Chapter6.tex
查看文件 @
6d19008f
...
...
@@ -1663,11 +1663,11 @@ L(\mathbf{Y},\widehat{\mathbf{Y}}) = \sum_{j=1}^n L_{\textrm{ce}}(\mathbf{y}_j,\
\parinterval
残差连接从广义上讲也叫
{
\small\bfnew
{
短连接
}}
\index
{
短连接
}
(Short-cut Connection)
\index
{
Short-cut Connection
}
,指的是这种短距离的连接。它的思想很简单,就是把层和层之间的距离拉近。如图
\ref
{
fig:6-49
}
所示,子层1通过残差连接跳过了子层2,直接和子层3进行信息传递。使信息传递变得更高效,有效解决了深层网络训练过程中容易出现的梯度消失/爆炸问题,使得深层网络的训练更加容易。其计算公式为:
\begin{eqnarray}
x
_{
l+1
}
= x
_
l +
\
digamma
(x
_
l)
x
_{
l+1
}
= x
_
l +
\
mathcal
{
F
}
(x
_
l)
\label
{
eq:6-50
}
\end{eqnarray}
\noindent
其中
$
\
digamma
(
x
_
l
)
$
是子层运算。如果
$
l
=
2
$
,那么公式
\ref
{
eq:6-50
}
可以解释为,第3层的输出等于第2层的输出加上第二层的输入。图
\ref
{
fig:6-50
}
中的红色方框展示了Transformer中残差连接的位置。
\noindent
其中
$
\
mathcal
{
F
}
(
x
_
l
)
$
是子层运算。如果
$
l
=
2
$
,那么公式
\ref
{
eq:6-50
}
可以解释为,第3层的输出等于第2层的输出加上第二层的输入。图
\ref
{
fig:6-50
}
中的红色方框展示了Transformer中残差连接的位置。
%----------------------------------------------
\begin{figure}
[htp]
...
...
Book/Chapter7/Chapter7.tex
查看文件 @
6d19008f
...
...
@@ -1678,23 +1678,23 @@ p_l=\frac{l}{2L}\cdot \varphi
\begin{itemize}
\vspace
{
0.5em
}
\item
{
\small\bfnew
{
基于单词的知识精炼
}}
\index
{
基于单词的知识精炼
}
(Word-level Knowledge Distillation)
\index
{
Word-level Knowledge Distillation
}
。该方法的目标是使得学生模型的预测(分布)尽可能逼近教师模型的预测(分布)。令
$
\
textbf
{
x
}
=
\{
x
_
1
,
\ldots
,x
_
m
\}
$
和
$
\text
bf
{
y
}
=
\{
y
_
1
,
\ldots
,y
_
n
\}
$
分别表示输入和输出(数据中的答案)序列,
$
V
$
表示目标语言词表,
$
n
$
表示译文序列的长度,则基于单词的知识精炼的损失函数被定义为:
\item
{
\small\bfnew
{
基于单词的知识精炼
}}
\index
{
基于单词的知识精炼
}
(Word-level Knowledge Distillation)
\index
{
Word-level Knowledge Distillation
}
。该方法的目标是使得学生模型的预测(分布)尽可能逼近教师模型的预测(分布)。令
$
\
mathbf
{
x
}
=
\{
x
_
1
,
\ldots
,x
_
m
\}
$
和
$
\math
bf
{
y
}
=
\{
y
_
1
,
\ldots
,y
_
n
\}
$
分别表示输入和输出(数据中的答案)序列,
$
V
$
表示目标语言词表,
$
n
$
表示译文序列的长度,则基于单词的知识精炼的损失函数被定义为:
\begin{eqnarray}
L
_{
\textrm
{
word
}}
= -
\sum
_{
j=1
}^
n
\sum
_{
y
_
j
\in
V
}
\textrm
{
P
}_{
\textrm
{
t
}}
(y
_{
\textrm
{
j
}}
|
\
textbf
{
x
}
)
\textrm
{
logP
}_{
\textrm
{
s
}}
(y
_
j|
\text
bf
{
x
}
)
L
_{
\textrm
{
word
}}
= -
\sum
_{
j=1
}^
n
\sum
_{
y
_
j
\in
V
}
\textrm
{
P
}_{
\textrm
{
t
}}
(y
_{
\textrm
{
j
}}
|
\
mathbf
{
x
}
)
\textrm
{
logP
}_{
\textrm
{
s
}}
(y
_
j|
\math
bf
{
x
}
)
\label
{
eq:7-28
}
\end{eqnarray}
这里,
$
\textrm
{
P
}_{
\textrm
{
s
}}
(
y
_
j|
\
textbf
{
x
}
)
$
和
$
\textrm
{
P
}_{
\textrm
{
t
}}
(
y
_
i|
\text
bf
{
x
}
)
$
分别表示学生模型和教师模型在
$
j
$
位置的输出的概率。公式
\ref
{
eq:7-28
}
实际上在最小化教师模型和学生模型输出分布之间的交叉熵。
这里,
$
\textrm
{
P
}_{
\textrm
{
s
}}
(
y
_
j|
\
mathbf
{
x
}
)
$
和
$
\textrm
{
P
}_{
\textrm
{
t
}}
(
y
_
i|
\math
bf
{
x
}
)
$
分别表示学生模型和教师模型在
$
j
$
位置的输出的概率。公式
\ref
{
eq:7-28
}
实际上在最小化教师模型和学生模型输出分布之间的交叉熵。
\vspace
{
0.5em
}
\item
{
\small\bfnew
{
基于序列的知识精炼
}}
\index
{
基于序列的知识精炼
}
(Sequence-level Knowledge Distillation)
\index
{
Sequence-level Knowledge Distillation
}
。除了单词一级的拟合,基于序列的知识精炼希望在序列整体上进行拟合。其损失函数被定义为:
\begin{eqnarray}
L
_{
\textrm
{
seq
}}
= -
\sum
_{
\textrm
{
y
}}
\textrm
{
P
}_{
\textrm
{
t
}}
(
\
textbf
{
y
}
|
\textbf
{
x
}
)
\textrm
{
logP
}_{
\textrm
{
s
}}
(
\textbf
{
y
}
|
\text
bf
{
x
}
)
L
_{
\textrm
{
seq
}}
= -
\sum
_{
\textrm
{
y
}}
\textrm
{
P
}_{
\textrm
{
t
}}
(
\
mathbf
{
y
}
|
\mathbf
{
x
}
)
\textrm
{
logP
}_{
\textrm
{
s
}}
(
\mathbf
{
y
}
|
\math
bf
{
x
}
)
\label
{
eq:7-29
}
\end{eqnarray}
公式
\ref
{
eq:7-29
}
要求遍历所有可能的译文序列,并进行求和,当词表大小为
$
V
$
,序列长度为
$
L
$
时则可能的序列的数量有
$
V
$
的
$
L
$
次幂,这么多的译文将消耗大量的计算资源。因此,会考虑用教师模型的真实输出序列
$
\hat
{
\
textbf
{
y
}}$
来代替整个空间,即假设
$
\textrm
{
P
}_{
\textrm
{
t
}}
(
\hat
{
\textbf
{
y
}}
|
\text
bf
{
x
}
)=
1
$
。于是,目标函数变为:
公式
\ref
{
eq:7-29
}
要求遍历所有可能的译文序列,并进行求和,当词表大小为
$
V
$
,序列长度为
$
L
$
时则可能的序列的数量有
$
V
$
的
$
L
$
次幂,这么多的译文将消耗大量的计算资源。因此,会考虑用教师模型的真实输出序列
$
\hat
{
\
mathbf
{
y
}}$
来代替整个空间,即假设
$
\textrm
{
P
}_{
\textrm
{
t
}}
(
\hat
{
\mathbf
{
y
}}
|
\math
bf
{
x
}
)=
1
$
。于是,目标函数变为:
\begin{eqnarray}
L
_{
\textrm
{
seq
}}
= -
\textrm
{
logP
}_{
\textrm
{
s
}}
(
\hat
{
\
textbf
{
y
}}
|
\text
bf
{
x
}
)
L
_{
\textrm
{
seq
}}
= -
\textrm
{
logP
}_{
\textrm
{
s
}}
(
\hat
{
\
mathbf
{
y
}}
|
\math
bf
{
x
}
)
\label
{
eq:7-30
}
\end{eqnarray}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论