Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
mtbookv2
概览
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
mtbookv2
Commits
b354a1a2
Commit
b354a1a2
authored
Jan 08, 2021
by
孟霞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
孟霞 item黑体
parent
72ac49a1
全部展开
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
31 行增加
和
31 行删除
+31
-31
Chapter14/chapter14.tex
+3
-3
Chapter3/chapter3.tex
+14
-14
Chapter4/chapter4.tex
+0
-0
Chapter9/chapter9.tex
+14
-14
没有找到文件。
Chapter14/chapter14.tex
查看文件 @
b354a1a2
...
@@ -154,7 +154,7 @@
...
@@ -154,7 +154,7 @@
\begin{itemize}
\begin{itemize}
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
长度惩罚因子
。用译文长度来归一化翻译概率是最常用的方法:对于源语言句子
$
\seq
{
x
}$
和译文句子
$
\seq
{
y
}$
,模型得分
$
\textrm
{
score
}
(
\seq
{
x
}
,
\seq
{
y
}
)
$
的值会随着译文
$
\seq
{
y
}$
的长度增大而减小。为了避免此现象,可以引入一个长度惩罚函数
$
\textrm
{
lp
}
(
\seq
{
y
}
)
$
,并定义模型得分如公式
\eqref
{
eq:14-12
}
所示:
\item
{
\small\sffamily\bfseries
{
长度惩罚因子
}}
。用译文长度来归一化翻译概率是最常用的方法:对于源语言句子
$
\seq
{
x
}$
和译文句子
$
\seq
{
y
}$
,模型得分
$
\textrm
{
score
}
(
\seq
{
x
}
,
\seq
{
y
}
)
$
的值会随着译文
$
\seq
{
y
}$
的长度增大而减小。为了避免此现象,可以引入一个长度惩罚函数
$
\textrm
{
lp
}
(
\seq
{
y
}
)
$
,并定义模型得分如公式
\eqref
{
eq:14-12
}
所示:
\begin{eqnarray}
\begin{eqnarray}
\textrm
{
score
}
(
\seq
{
x
}
,
\seq
{
y
}
)
&
=
&
\frac
{
\log
\funp
{
P
}
(
\seq
{
y
}
\vert\seq
{
x
}
)
}{
\textrm
{
lp
}
(
\seq
{
y
}
)
}
\textrm
{
score
}
(
\seq
{
x
}
,
\seq
{
y
}
)
&
=
&
\frac
{
\log
\funp
{
P
}
(
\seq
{
y
}
\vert\seq
{
x
}
)
}{
\textrm
{
lp
}
(
\seq
{
y
}
)
}
...
@@ -179,7 +179,7 @@
...
@@ -179,7 +179,7 @@
\end{table}
\end{table}
%----------------------------------------------------------------------------------------------------
%----------------------------------------------------------------------------------------------------
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
译文长度范围约束
。为了让译文的长度落在合理的范围内,神经机器翻译的推断也会设置一个译文长度约束
\upcite
{
Vaswani2018Tensor2TensorFN,KleinOpenNMT
}
。令
$
[
a,b
]
$
表示一个长度范围,可以定义:
\item
{
\small\sffamily\bfseries
{
译文长度范围约束
}}
。为了让译文的长度落在合理的范围内,神经机器翻译的推断也会设置一个译文长度约束
\upcite
{
Vaswani2018Tensor2TensorFN,KleinOpenNMT
}
。令
$
[
a,b
]
$
表示一个长度范围,可以定义:
\begin{eqnarray}
\begin{eqnarray}
a
&
=
&
\omega
_{
\textrm
{
low
}}
\cdot
|
\seq
{
x
}
|
\label
{
eq:14-3
}
\\
a
&
=
&
\omega
_{
\textrm
{
low
}}
\cdot
|
\seq
{
x
}
|
\label
{
eq:14-3
}
\\
...
@@ -188,7 +188,7 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
...
@@ -188,7 +188,7 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\noindent
其中,
$
\omega
_{
\textrm
{
low
}}$
和
$
\omega
_{
\textrm
{
high
}}$
分别表示译文长度的下限和上限,比如,很多系统中设置为
$
\omega
_{
\textrm
{
low
}}
=
1
/
2
$
,
$
\omega
_{
\textrm
{
high
}}
=
2
$
,表示译文至少有源语言句子一半长,最多有源语言句子两倍长。
$
\omega
_{
\textrm
{
low
}}$
和
$
\omega
_{
\textrm
{
high
}}$
的设置对推断效率影响很大,
$
\omega
_{
\textrm
{
high
}}$
可以被看作是一个推断的终止条件,最理想的情况是
$
\omega
_{
\textrm
{
high
}}
\cdot
|
\seq
{
x
}
|
$
恰巧就等于最佳译文的长度,这时没有浪费任何计算资源。反过来的一种情况,
$
\omega
_{
\textrm
{
high
}}
\cdot
|
\seq
{
x
}
|
$
远大于最佳译文的长度,这时很多计算都是无用的。为了找到长度预测的准确率和召回率之间的平衡,一般需要大量的实验最终确定
$
\omega
_{
\textrm
{
low
}}$
和
$
\omega
_{
\textrm
{
high
}}$
。当然,利用统计模型预测
$
\omega
_{
\textrm
{
low
}}$
和
$
\omega
_{
\textrm
{
high
}}$
也是非常值得探索的方向,比如基于繁衍率的模型
\upcite
{
Gu2017NonAutoregressiveNM,Feng2016ImprovingAM
}
。
\noindent
其中,
$
\omega
_{
\textrm
{
low
}}$
和
$
\omega
_{
\textrm
{
high
}}$
分别表示译文长度的下限和上限,比如,很多系统中设置为
$
\omega
_{
\textrm
{
low
}}
=
1
/
2
$
,
$
\omega
_{
\textrm
{
high
}}
=
2
$
,表示译文至少有源语言句子一半长,最多有源语言句子两倍长。
$
\omega
_{
\textrm
{
low
}}$
和
$
\omega
_{
\textrm
{
high
}}$
的设置对推断效率影响很大,
$
\omega
_{
\textrm
{
high
}}$
可以被看作是一个推断的终止条件,最理想的情况是
$
\omega
_{
\textrm
{
high
}}
\cdot
|
\seq
{
x
}
|
$
恰巧就等于最佳译文的长度,这时没有浪费任何计算资源。反过来的一种情况,
$
\omega
_{
\textrm
{
high
}}
\cdot
|
\seq
{
x
}
|
$
远大于最佳译文的长度,这时很多计算都是无用的。为了找到长度预测的准确率和召回率之间的平衡,一般需要大量的实验最终确定
$
\omega
_{
\textrm
{
low
}}$
和
$
\omega
_{
\textrm
{
high
}}$
。当然,利用统计模型预测
$
\omega
_{
\textrm
{
low
}}$
和
$
\omega
_{
\textrm
{
high
}}$
也是非常值得探索的方向,比如基于繁衍率的模型
\upcite
{
Gu2017NonAutoregressiveNM,Feng2016ImprovingAM
}
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
覆盖度模型
。译文长度过长或过短的问题,本质上对应着
{
\small\sffamily\bfseries
{
过翻译
}}
\index
{
过翻译
}
(Over Translation)
\index
{
Over Translation
}
和
{
\small\sffamily\bfseries
{
欠翻译
}}
\index
{
欠翻译
}
(Under Translation)
\index
{
Under Translation
}
的问题
\upcite
{
Yang2018OtemUtemOA
}
。这两种问题出现的原因主要在于:神经机器翻译没有对过翻译和欠翻译建模,即机器翻译覆盖度问题
\upcite
{
TuModeling
}
。针对此问题,最常用的方法是在推断的过程中引入一个度量覆盖度的模型。比如,使用GNMT 覆盖度模型定义模型得分
\upcite
{
Wu2016GooglesNM
}
,如下:
\item
{
\small\sffamily\bfseries
{
覆盖度模型
}}
。译文长度过长或过短的问题,本质上对应着
{
\small\sffamily\bfseries
{
过翻译
}}
\index
{
过翻译
}
(Over Translation)
\index
{
Over Translation
}
和
{
\small\sffamily\bfseries
{
欠翻译
}}
\index
{
欠翻译
}
(Under Translation)
\index
{
Under Translation
}
的问题
\upcite
{
Yang2018OtemUtemOA
}
。这两种问题出现的原因主要在于:神经机器翻译没有对过翻译和欠翻译建模,即机器翻译覆盖度问题
\upcite
{
TuModeling
}
。针对此问题,最常用的方法是在推断的过程中引入一个度量覆盖度的模型。比如,使用GNMT 覆盖度模型定义模型得分
\upcite
{
Wu2016GooglesNM
}
,如下:
\begin{eqnarray}
\begin{eqnarray}
\textrm
{
score
}
(
\seq
{
x
}
,
\seq
{
y
}
)
&
=
&
\frac
{
\log
\funp
{
P
}
(
\seq
{
y
}
|
\seq
{
x
}
)
}{
\textrm
{
lp
}
(
\seq
{
y
}
)
}
+
\textrm
{
cp
}
(
\seq
{
x
}
,
\seq
{
y
}
)
\label
{
eq:14-5
}
\\
\textrm
{
score
}
(
\seq
{
x
}
,
\seq
{
y
}
)
&
=
&
\frac
{
\log
\funp
{
P
}
(
\seq
{
y
}
|
\seq
{
x
}
)
}{
\textrm
{
lp
}
(
\seq
{
y
}
)
}
+
\textrm
{
cp
}
(
\seq
{
x
}
,
\seq
{
y
}
)
\label
{
eq:14-5
}
\\
\textrm
{
cp
}
(
\seq
{
x
}
,
\seq
{
y
}
)
&
=
&
\beta
\cdot
\sum
_{
i=1
}^{
|
\seq
{
x
}
|
}
\log
(
\textrm
{
min
}
(
\sum
_{
j
}^{
|
\seq
{
y
}
|
}
a
_{
ij
}
, 1))
\textrm
{
cp
}
(
\seq
{
x
}
,
\seq
{
y
}
)
&
=
&
\beta
\cdot
\sum
_{
i=1
}^{
|
\seq
{
x
}
|
}
\log
(
\textrm
{
min
}
(
\sum
_{
j
}^{
|
\seq
{
y
}
|
}
a
_{
ij
}
, 1))
...
...
Chapter3/chapter3.tex
查看文件 @
b354a1a2
...
@@ -173,9 +173,9 @@ Interests $\to$ \; Interest/s & selected $\to$ \; se/lect/ed & processed $\to$ \
...
@@ -173,9 +173,9 @@ Interests $\to$ \; Interest/s & selected $\to$ \; se/lect/ed & processed $\to$ \
\begin{itemize}
\begin{itemize}
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
训练
。利用标注数据,对统计模型的参数进行学习。
\item
{
\small\sffamily\bfseries
{
训练
}}
。利用标注数据,对统计模型的参数进行学习。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
预测
。利用学习到的模型和参数,对新的句子进行切分。这个过程也可以被看作是利用学习到的模型在新的数据上进行推断。
\item
{
\small\sffamily\bfseries
{
预测
}}
。利用学习到的模型和参数,对新的句子进行切分。这个过程也可以被看作是利用学习到的模型在新的数据上进行推断。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\end{itemize}
\end{itemize}
...
@@ -244,9 +244,9 @@ $计算这种切分的概率值。
...
@@ -244,9 +244,9 @@ $计算这种切分的概率值。
\begin{itemize}
\begin{itemize}
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
BIO(Beginning-inside-outside)格式
。以命名实体识别为例,B代表一个命名实体的开始,I表示一个命名实体的其它部分,O表示一个非命名实体单元。
\item
{
\small\sffamily\bfseries
{
BIO格式
}}
(Beginning-inside-outside)
。以命名实体识别为例,B代表一个命名实体的开始,I表示一个命名实体的其它部分,O表示一个非命名实体单元。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
BIOES格式
。与BIO格式相比,多出了标签E(End)和S(Single)。仍然以命名实体识别为例,E和S分别用于标注一个命名实体的结束位置和仅含一个单词的命名实体。
\item
{
\small\sffamily\bfseries
{
BIOES格式
}}
。与BIO格式相比,多出了标签E(End)和S(Single)。仍然以命名实体识别为例,E和S分别用于标注一个命名实体的结束位置和仅含一个单词的命名实体。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\end{itemize}
\end{itemize}
...
@@ -284,9 +284,9 @@ $计算这种切分的概率值。
...
@@ -284,9 +284,9 @@ $计算这种切分的概率值。
\begin{itemize}
\begin{itemize}
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
样本在这些特征上的差异度
,即特征对于样本的区分能力。比如,可以考虑优先选择样本特征值方差较大即区分能力强的特征
\footnote
{
方差如果很小,意味着样本在这个特征上基本上没有差异,那么这个特征对于样本的区分并没有什么用。
}
;
\item
{
\small\sffamily\bfseries
{
样本在这些特征上的差异度
}}
,即特征对于样本的区分能力。比如,可以考虑优先选择样本特征值方差较大即区分能力强的特征
\footnote
{
方差如果很小,意味着样本在这个特征上基本上没有差异,那么这个特征对于样本的区分并没有什么用。
}
;
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
特征与任务目标的相关性
。优先选择相关性高的特征。
\item
{
\small\sffamily\bfseries
{
特征与任务目标的相关性
}}
。优先选择相关性高的特征。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\end{itemize}
\end{itemize}
...
@@ -378,11 +378,11 @@ $计算这种切分的概率值。
...
@@ -378,11 +378,11 @@ $计算这种切分的概率值。
\begin{itemize}
\begin{itemize}
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
隐含状态序列的概率计算:
即给定模型(转移概率和发射概率),根据可见状态序列(抛硬币的结果)计算在该模型下得到这个结果的概率,这个问题的求解需要用到前后向算法
\upcite
{
baum1970maximization
}
。
\item
{
\small\sffamily\bfseries
{
隐含状态序列的概率计算
}}
,
即给定模型(转移概率和发射概率),根据可见状态序列(抛硬币的结果)计算在该模型下得到这个结果的概率,这个问题的求解需要用到前后向算法
\upcite
{
baum1970maximization
}
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
参数学习:
即给定硬币种类(隐含状态数量),根据多个可见状态序列(抛硬币的结果)估计模型的参数(转移概率),这个问题的求解需要用到EM算法
\upcite
{
1977Maximum
}
。
\item
{
\small\sffamily\bfseries
{
参数学习
}}
,
即给定硬币种类(隐含状态数量),根据多个可见状态序列(抛硬币的结果)估计模型的参数(转移概率),这个问题的求解需要用到EM算法
\upcite
{
1977Maximum
}
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
解码:
即给定模型(转移概率和发射概率)和可见状态序列(抛硬币的结果),计算在可见状态序列的情况下,最可能出现的对应的状态序列,这个问题的求解需要用到基于动态规划的方法,通常也被称作
{
\small\sffamily\bfseries
{
维特比算法
}}
\index
{
维特比算法
}
(Viterbi Algorithm)
\index
{
Viterbi Algorithm
}
\upcite
{
1967Error
}
。
\item
{
\small\sffamily\bfseries
{
解码
}}
,
即给定模型(转移概率和发射概率)和可见状态序列(抛硬币的结果),计算在可见状态序列的情况下,最可能出现的对应的状态序列,这个问题的求解需要用到基于动态规划的方法,通常也被称作
{
\small\sffamily\bfseries
{
维特比算法
}}
\index
{
维特比算法
}
(Viterbi Algorithm)
\index
{
Viterbi Algorithm
}
\upcite
{
1967Error
}
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\end{itemize}
\end{itemize}
...
@@ -547,15 +547,15 @@ Z(\seq{x})&=&\sum_{\seq{y}}\exp(\sum_{i=1}^m\sum_{j=1}^k\lambda_{j}F_{j}(y_{i-1}
...
@@ -547,15 +547,15 @@ Z(\seq{x})&=&\sum_{\seq{y}}\exp(\sum_{i=1}^m\sum_{j=1}^k\lambda_{j}F_{j}(y_{i-1}
\begin{itemize}
\begin{itemize}
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
$
K
$
-近邻分类算法
。
$
K
$
-近邻分类算法通过计算不同特征值之间的距离进行分类,这种方法适用于可以提取到数值型特征
\footnote
{
即可以用数值大小对某方面特征进行衡量。
}
的分类问题。该方法的基本思想为:将提取到的特征分别作为坐标轴,建立一个
$
k
$
维坐标系(对应特征数量为
$
k
$
的情况),此时每个样本都将成为该
$
k
$
维空间的一个点,将未知样本与已知类别样本的空间距离作为分类依据进行分类,比如,考虑与输入样本最近的
$
K
$
个样本的类别进行分类。
\item
{
\small\sffamily\bfseries
{$
K
$
-近邻分类算法
}}
。
$
K
$
-近邻分类算法通过计算不同特征值之间的距离进行分类,这种方法适用于可以提取到数值型特征
\footnote
{
即可以用数值大小对某方面特征进行衡量。
}
的分类问题。该方法的基本思想为:将提取到的特征分别作为坐标轴,建立一个
$
k
$
维坐标系(对应特征数量为
$
k
$
的情况),此时每个样本都将成为该
$
k
$
维空间的一个点,将未知样本与已知类别样本的空间距离作为分类依据进行分类,比如,考虑与输入样本最近的
$
K
$
个样本的类别进行分类。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
支持向量机
。支持向量机是一种二分类模型,其思想是通过线性超平面将不同输入划分为正例和负例,并使线性超平面与不同输入的距离都达到最大。与
$
K
$
-近邻分类算法类似,支持向量机也适用于可以提取到数值型特征的分类问题。
\item
{
\small\sffamily\bfseries
{
支持向量机
}}
。支持向量机是一种二分类模型,其思想是通过线性超平面将不同输入划分为正例和负例,并使线性超平面与不同输入的距离都达到最大。与
$
K
$
-近邻分类算法类似,支持向量机也适用于可以提取到数值型特征的分类问题。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
最大熵模型
。最大熵模型是根据最大熵原理提出的一种分类模型,其基本思想是:以在训练数据集中学习到的经验知识作为一种“约束”,并在符合约束的前提下,在若干合理的条件概率分布中选择“使条件熵最大”的模型。
\item
{
\small\sffamily\bfseries
{
最大熵模型
}}
。最大熵模型是根据最大熵原理提出的一种分类模型,其基本思想是:以在训练数据集中学习到的经验知识作为一种“约束”,并在符合约束的前提下,在若干合理的条件概率分布中选择“使条件熵最大”的模型。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
决策树分类算法
。决策树分类算法是一种基于实例的归纳学习方法:将样本中某些决定性特征作为决策树的节点,根据特征表现进行对样本划分,最终根节点到每个叶子节点均形成一条分类的路径规则。这种分类方法适用于可以提取到离散型特征
\footnote
{
即特征值是离散的。
}
的分类问题。
\item
{
\small\sffamily\bfseries
{
决策树分类算法
}}
。决策树分类算法是一种基于实例的归纳学习方法:将样本中某些决定性特征作为决策树的节点,根据特征表现进行对样本划分,最终根节点到每个叶子节点均形成一条分类的路径规则。这种分类方法适用于可以提取到离散型特征
\footnote
{
即特征值是离散的。
}
的分类问题。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
朴素贝叶斯分类算法
。朴素贝叶斯算法是以贝叶斯定理为基础并且假设特征之间相互独立的方法,以特征之间相互独立作为前提假设,学习从输入到输出的联合概率分布,并以后验概率最大的输出作为最终类别。
\item
{
\small\sffamily\bfseries
{
朴素贝叶斯分类算法
}}
。朴素贝叶斯算法是以贝叶斯定理为基础并且假设特征之间相互独立的方法,以特征之间相互独立作为前提假设,学习从输入到输出的联合概率分布,并以后验概率最大的输出作为最终类别。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\end{itemize}
\end{itemize}
...
...
Chapter4/chapter4.tex
查看文件 @
b354a1a2
差异被折叠。
点击展开。
Chapter9/chapter9.tex
查看文件 @
b354a1a2
...
@@ -142,11 +142,11 @@
...
@@ -142,11 +142,11 @@
\begin{itemize}
\begin{itemize}
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
特征的构造需要耗费大量的时间和精力
。在传统机器学习的特征工程方法中,特征提取都是基于人力完成的,该过程往往依赖于大量的先验假设,会导致相关系统的研发周期也大大增加;
\item
{
\small\sffamily\bfseries
{
特征的构造需要耗费大量的时间和精力
}}
。在传统机器学习的特征工程方法中,特征提取都是基于人力完成的,该过程往往依赖于大量的先验假设,会导致相关系统的研发周期也大大增加;
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
最终的系统性能强弱非常依赖特征的选择
。有一句话在业界广泛流传:“数据和特征决定了机器学习的上限”,但是人的智力和认知是有限的,因此人工设计的特征的准确性和覆盖度会存在瓶颈;
\item
{
\small\sffamily\bfseries
{
最终的系统性能强弱非常依赖特征的选择
}}
。有一句话在业界广泛流传:“数据和特征决定了机器学习的上限”,但是人的智力和认知是有限的,因此人工设计的特征的准确性和覆盖度会存在瓶颈;
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
通用性差
。针对不同的任务,传统机器学习的特征工程方法需要选择出不同的特征,在某个任务上表现很好的特征在其他任务上可能没有效果。
\item
{
\small\sffamily\bfseries
{
通用性差
}}
。针对不同的任务,传统机器学习的特征工程方法需要选择出不同的特征,在某个任务上表现很好的特征在其他任务上可能没有效果。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\end{itemize}
\end{itemize}
...
@@ -645,11 +645,11 @@ x_1\cdot w_1+x_2\cdot w_2+x_3\cdot w_3 & = & 0\cdot 1+0\cdot 1+1\cdot 1 \nonumbe
...
@@ -645,11 +645,11 @@ x_1\cdot w_1+x_2\cdot w_2+x_3\cdot w_3 & = & 0\cdot 1+0\cdot 1+1\cdot 1 \nonumbe
\begin{itemize}
\begin{itemize}
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
对问题建模
,即定义输入
$
\{
x
_
i
\}
$
的形式;
\item
{
\small\sffamily\bfseries
{
对问题建模
}}
,即定义输入
$
\{
x
_
i
\}
$
的形式;
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
设计有效的决策模型
,即定义
$
y
$
;
\item
{
\small\sffamily\bfseries
{
设计有效的决策模型
}}
,即定义
$
y
$
;
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
得到模型参数
(如权重
$
\{
w
_
i
\}
$
)的最优值。
\item
{
\small\sffamily\bfseries
{
得到模型参数
}}
(如权重
$
\{
w
_
i
\}
$
)的最优值。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\end{itemize}
\end{itemize}
...
@@ -1899,11 +1899,11 @@ z_t&=&\gamma z_{t-1}+(1-\gamma) \frac{\partial J}{\partial {\theta}_t} \cdot \f
...
@@ -1899,11 +1899,11 @@ z_t&=&\gamma z_{t-1}+(1-\gamma) \frac{\partial J}{\partial {\theta}_t} \cdot \f
\begin{itemize}
\begin{itemize}
\vspace
{
0.3em
}
\vspace
{
0.3em
}
\item
输入层
(词的分布式表示层),即把输入的离散的单词变为分布式表示对应的实数向量;
\item
{
\small\sffamily\bfseries
{
输入层
}}
(词的分布式表示层),即把输入的离散的单词变为分布式表示对应的实数向量;
\vspace
{
0.3em
}
\vspace
{
0.3em
}
\item
隐藏层
,即将得到的词的分布式表示进行线性和非线性变换;
\item
{
\small\sffamily\bfseries
{
隐藏层
}}
,即将得到的词的分布式表示进行线性和非线性变换;
\vspace
{
0.3em
}
\vspace
{
0.3em
}
\item
输出层
(Softmax层),根据隐藏层的输出预测单词的概率分布。
\item
{
\small\sffamily\bfseries
{
输出层
}}
(Softmax层),根据隐藏层的输出预测单词的概率分布。
\vspace
{
0.3em
}
\vspace
{
0.3em
}
\end{itemize}
\end{itemize}
...
@@ -2076,11 +2076,11 @@ z_t&=&\gamma z_{t-1}+(1-\gamma) \frac{\partial J}{\partial {\theta}_t} \cdot \f
...
@@ -2076,11 +2076,11 @@ z_t&=&\gamma z_{t-1}+(1-\gamma) \frac{\partial J}{\partial {\theta}_t} \cdot \f
\parinterval
为了方便理解,看一个简单的例子。假如现在有个“预测下一个单词”的任务:有这样一个句子“屋里 要 摆放 一个
\rule
[-3pt]
{
1cm
}{
0.05em
}
”,其中下划线的部分表示需要预测的下一个单词。如果模型在训练数据中看到过类似于“摆放 一个 桌子”这样的片段,那么就可以很自信的预测出“桌子”。另一方面,很容易知道,实际上与“桌子”相近的单词,如“椅子”,也是可以预测的单词的。但是,“椅子”恰巧没有出现在训练数据中,这时如果用One-hot编码来表示单词,显然无法把“椅子”填到下划线处;而如果使用单词的分布式表示,很容易就知道 “桌子”与“椅子”是相似的,因此预测“ 椅子”在一定程度上也是合理的。
\parinterval
为了方便理解,看一个简单的例子。假如现在有个“预测下一个单词”的任务:有这样一个句子“屋里 要 摆放 一个
\rule
[-3pt]
{
1cm
}{
0.05em
}
”,其中下划线的部分表示需要预测的下一个单词。如果模型在训练数据中看到过类似于“摆放 一个 桌子”这样的片段,那么就可以很自信的预测出“桌子”。另一方面,很容易知道,实际上与“桌子”相近的单词,如“椅子”,也是可以预测的单词的。但是,“椅子”恰巧没有出现在训练数据中,这时如果用One-hot编码来表示单词,显然无法把“椅子”填到下划线处;而如果使用单词的分布式表示,很容易就知道 “桌子”与“椅子”是相似的,因此预测“ 椅子”在一定程度上也是合理的。
\begin{example}
\begin{example}
屋里
要 摆放
一个
\_\_\_\_\_
\hspace
{
0.5em
}
\quad
\quad
预测下个词
屋里
\
要
\
摆放
\
一个
\_\_\_\_\_
\hspace
{
0.5em
}
\quad
\quad
预测下个词
\hspace
{
2em
}
屋里
要 摆放 一个
{
\red
{
桌子
}}
\hspace
{
3.2em
}
见过
\hspace
{
2em
}
屋里
\
要
\
摆放
\
一个
\
{
\red
{
桌子
}}
\hspace
{
3.2em
}
见过
\hspace
{
2em
}
屋里
要 摆放 一个
{
\blue
{
椅子
}}
\hspace
{
3.2em
}
没见过,但是仍然是合理预测
\hspace
{
2em
}
屋里
\
要
\
摆放
\
一个
\
{
\blue
{
椅子
}}
\hspace
{
3.2em
}
没见过,但是仍然是合理预测
\end{example}
\end{example}
\parinterval
关于单词的分布式表示还有一个经典的例子:通过词嵌入可以得到如下关系:
$
\textrm
{
“国王”
}
=
\textrm
{
“女王”
}
-
\textrm
{
“女人”
}
+
\textrm
{
“男人”
}$
。从这个例子可以看出,词嵌入也具有一些代数性质,比如,词的分布式表示可以通过加、减等代数运算相互转换。图
\ref
{
fig:9-66
}
展示了词嵌入在一个二维平面上的投影,不难发现,含义相近的单词分布比较临近。
\parinterval
关于单词的分布式表示还有一个经典的例子:通过词嵌入可以得到如下关系:
$
\textrm
{
“国王”
}
=
\textrm
{
“女王”
}
-
\textrm
{
“女人”
}
+
\textrm
{
“男人”
}$
。从这个例子可以看出,词嵌入也具有一些代数性质,比如,词的分布式表示可以通过加、减等代数运算相互转换。图
\ref
{
fig:9-66
}
展示了词嵌入在一个二维平面上的投影,不难发现,含义相近的单词分布比较临近。
...
@@ -2116,9 +2116,9 @@ z_t&=&\gamma z_{t-1}+(1-\gamma) \frac{\partial J}{\partial {\theta}_t} \cdot \f
...
@@ -2116,9 +2116,9 @@ z_t&=&\gamma z_{t-1}+(1-\gamma) \frac{\partial J}{\partial {\theta}_t} \cdot \f
\parinterval
目前,词嵌入已经成为诸多自然语言处理系统的标配,也衍生出很多有趣的研究法方向。但是,冷静地看,词嵌入依旧存在一些问题:每个词都对应唯一的向量表示,那么对于一词多义现象,词义需要通过上下文进行区分,这时使用简单的词嵌入式是无法处理的。有一个著名的例子:
\parinterval
目前,词嵌入已经成为诸多自然语言处理系统的标配,也衍生出很多有趣的研究法方向。但是,冷静地看,词嵌入依旧存在一些问题:每个词都对应唯一的向量表示,那么对于一词多义现象,词义需要通过上下文进行区分,这时使用简单的词嵌入式是无法处理的。有一个著名的例子:
\begin{example}
\begin{example}
Aaron is an employee of
{
\red
{
\underline
{
apple
}}}
.
Aaron is an employee of
{
\red
{
\underline
{
apple
}}}
\
.
\hspace
{
2em
}
He finally ate the
{
\red
{
\underline
{
apple
}}}
.
\hspace
{
2em
}
He finally ate the
{
\red
{
\underline
{
apple
}}}
\
.
\end{example}
\end{example}
\parinterval
这两句中“apple”的语义显然是不同的,第一句中的上下文“Jobs”和“CEO”可以帮助我们判断“apple”是一个公司名字,而不是水果。但是词嵌入只有一个结果,因此无法区分这两种情况。这个例子给我们一个启发:在一个句子中,不能孤立的看待单词,应同时考虑其上下文的信息。也就是需要一个能包含句子中上下文信息的表示模型。
\parinterval
这两句中“apple”的语义显然是不同的,第一句中的上下文“Jobs”和“CEO”可以帮助我们判断“apple”是一个公司名字,而不是水果。但是词嵌入只有一个结果,因此无法区分这两种情况。这个例子给我们一个启发:在一个句子中,不能孤立的看待单词,应同时考虑其上下文的信息。也就是需要一个能包含句子中上下文信息的表示模型。
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论