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
13282b78
Commit
13282b78
authored
Aug 31, 2020
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wording (prob graphs)
parent
294fbb55
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
10 行增加
和
10 行删除
+10
-10
Chapter3/Figures/figure-crf-to-deal-with-sequence-problems.tex
+1
-1
Chapter3/chapter3.tex
+9
-9
没有找到文件。
Chapter3/Figures/figure-crf-to-deal-with-sequence-problems.tex
查看文件 @
13282b78
...
...
@@ -8,7 +8,7 @@
\node
[anchor=west,hide]
(yn-1)at([xshift=2em]dots.east)
{$
y
_{
n
-
1
}$}
;
\node
[anchor=west,hide]
(yn)at([xshift=2em]yn-1.east)
{$
y
_
n
$}
;
\node
[anchor=north,draw,line width=1pt,inner sep=2pt,fill=red!30,minimum height=2em,minimum width=12em]
(see)at ([yshift=-3em,xshift=2em]y3.south)
{$
X
=(
x
_
1
,x
_
2
,
\ldots
,x
_{
n
-
1
}
,x
_
n
)
$}
;
\node
[anchor=north,draw,line width=1pt,inner sep=2pt,fill=red!30,minimum height=2em,minimum width=12em]
(see)at ([yshift=-3em,xshift=2em]y3.south)
{$
\mathbf
{
X
}
=(
x
_
1
,x
_
2
,
\ldots
,x
_{
n
-
1
}
,x
_
n
)
$}
;
\node
[anchor=south,font=\footnotesize]
at ([yshift=1em,xshift=2em]y3.north)
{
待预测的隐藏状态序列
}
;
\node
[anchor=north,font=\footnotesize]
at ([yshift=-1em]see.south)
{
可见状态序列
}
;
...
...
Chapter3/chapter3.tex
查看文件 @
13282b78
...
...
@@ -501,7 +501,7 @@ Z(\mathbf{X})=\sum_{\mathbf{Y}}\exp(\sum_{i=1}^m\sum_{j=1}^k\lambda_{j}F_{j}(y_{
\parinterval
虽然,式
\ref
{
eq:3.3-9
}
和式
\ref
{
eq:3.3-10
}
的表述相较于隐马尔可夫模型更加复杂,但是其实现有非常高效的方式。比如,可以使用动态规划方法完成整个条件随机场模型的计算,具体方法读者可以参看参考文献
\upcite
{
lafferty2001conditional
}
。
\parinterval
条件随机场模型处理命名实体识别任务时,可见状态序列对应着文本内容,隐藏状态序列对应着待预测的标签。对于命名实体识别任务,需要单独设计若干适合命名实体识别任务的特征函数。例如在使用BIOES标准标注命名实体识别任务时,标签``B-ORG''
\footnote
{
表示机构实体名的开始标签
}
后面的标签必然是``I-ORG''或是``E-ORG'',而绝
不可能是``O'',针此规则可以设计相应特征函数。
\parinterval
条件随机场模型处理命名实体识别任务时,可见状态序列对应着文本内容,隐藏状态序列对应着待预测的标签。对于命名实体识别任务,需要单独设计若干适合命名实体识别任务的特征函数。例如在使用BIOES标准标注命名实体识别任务时,标签``B-ORG''
\footnote
{
ORG表示机构实体
}
后面的标签必然是``I-ORG''或是``E-ORG'',而
不可能是``O'',针此规则可以设计相应特征函数。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
...
...
@@ -509,7 +509,7 @@ Z(\mathbf{X})=\sum_{\mathbf{Y}}\exp(\sum_{i=1}^m\sum_{j=1}^k\lambda_{j}F_{j}(y_{
\subsection
{
基于分类器的方法
}
\parinterval
基于概率图的模型将序列表示为有向图或无向图,
用图中的节点表示文本或是标签,如图
\ref
{
fig:3.3-7
}
(a)、(b)所示。这种方法增加了建模的复杂度。既然这里要得到每个位置的类别输出,另一种更加直接的方法是使用分类器对每个位置进行独立预测。分类器是机器学习中广泛使用的方法,它可以根据输入自动地对类别进行预测。如图
\ref
{
fig:3.3-7
}
(c)所示,对于序列标注任务,如果把每一个位置所对应的所有特征看作是输入,而把这个位置对应的标注看作输出,就可以直接使用分类器预测每个位置的标注结果。从这个角度说,隐马尔可夫模型等方法实际上也是在进行一种``分类''操作,只不过这些方法考虑了不同位置输出(或隐藏
状态)之间的依赖。
\parinterval
基于概率图的模型将序列表示为有向图或无向图,
如图
\ref
{
fig:3.3-7
}
(a)、(b)所示。这种方法增加了建模的复杂度。既然要得到每个位置的类别输出,另一种更加直接的方法是使用分类器对每个位置进行独立预测。分类器是机器学习中广泛使用的方法,它可以根据输入自动地对类别进行预测。如图
\ref
{
fig:3.3-7
}
(c)所示,对于序列标注任务,分类器把每一个位置所对应的所有特征看作是输入,而把这个位置对应的标签看作输出。从这个角度说,隐马尔可夫模型等方法实际上也是在进行一种``分类''操作,只不过这些方法考虑了不同位置输出(或隐含
状态)之间的依赖。
%----------------------------------------------
\begin{figure}
[htp]
...
...
@@ -522,7 +522,7 @@ Z(\mathbf{X})=\sum_{\mathbf{Y}}\exp(\sum_{i=1}^m\sum_{j=1}^k\lambda_{j}F_{j}(y_{
\end{figure}
%-------------------------------------------
\parinterval
值得注意的是分类模型可以被应用于序列标注之外的很多任务。在后面的章节中还会看到,机器翻译中的很多模
型也借鉴了统计分类模型
的思想。其中使用到的基础数学模型和特征定义形式,与这里提到的分类器本质上是一样的。
\parinterval
值得注意的是分类模型可以被应用于序列标注之外的很多任务。在后面的章节中还会看到,机器翻译中的很多模
块也借鉴了统计分类
的思想。其中使用到的基础数学模型和特征定义形式,与这里提到的分类器本质上是一样的。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
...
...
@@ -532,11 +532,11 @@ Z(\mathbf{X})=\sum_{\mathbf{Y}}\exp(\sum_{i=1}^m\sum_{j=1}^k\lambda_{j}F_{j}(y_{
\parinterval
无论在日常生活中还是在研究工作中,都会遇到各种各样的分类问题,例如挑选西瓜时需要区分``好瓜''和``坏瓜''、编辑看到一篇新闻稿件时要对稿件进行分门别类。事实上,在机器学习中,对``分类任务''的定义会更宽泛而并不拘泥于``类别''的概念:在对样本进行预测时,只要预测标签集合是有限的且预测标签是离散的,就可认定其为分类任务。
\parinterval
具体来说,分类任务目标是训练一个可以根据输入数据预测离散标签的
分类器(也可称为分类模型)。在有监督的分类任务中
\footnote
{
与之相对应的,还有无监督、半监督分类任务,不过这些内容不是本书讨论的重点。读者可以参看
\upcite
{
周志华2016《机器学习》
}
\upcite
{
李航2019统计学习方法
}
对相关概念进行了解。
}
,训练数据集合通常由形似
$
(
\mathbf
{
x
}_
i,y
_
i
)
$
的带标注数据构成:
$
\mathbf
{
x
}_
i
=(
x
_
1
,x
_
2
,
\ldots
,x
_
m
)
$
作为分类器的输入数据(通常被称作一个训练样本),例如文本分类任务中的单词表示、图像分类任务中的像素表示;
$
y
_
i
$
作为输入数据对应的
{
\small\bfnew
{
标签
}}
\index
{
标签
}
(label)
\index
{
label
}
,反映了输入数据对应的``类别''。若标签集合大小为
$
n
$
,则分类任务的本质是通过对训练数据集合的学习,建立一个从
$
m
$
维样本空间到
$
n
$
维标签空间的映射关系。更确切地说,分类任务的最终目标是学习一个条件概率分布:
$
\funp
{
P
}
(
Y|X
)
$
,其中
$
X
=(
\mathbf
{
x
}_
1
,
\mathbf
{
x
}_
2
,
\ldots
,
\mathbf
{
x
}_
m
)
$
代表着所有可能出现的输入数据集合,
$
Y
=(
y
_
1
,y
_
2
,
\ldots
,y
_
n
)
$
代表着标签集合,通过比较
$
\funp
{
P
}
(
y
_
1
|
\mathbf
{
x
}_
i
)
$
、
$
\funp
{
P
}
(
y
_
2
|
\mathbf
{
x
}_
i
)
$
、
$
\ldots
$
、
$
\funp
{
P
}
(
y
_
n|
\mathbf
{
x
}_
i
)
$
之间的大小关系从而确定输入数据
$
\mathbf
{
x
}_
i
$
最终的类别标签
。
\parinterval
具体来说,分类任务目标是训练一个可以根据输入数据预测离散标签的
{
\small\bfnew
{
分类器
}}
\index
{
分类器
}
(Classifier
\index
{
Classifier
}
),也可称为分类模型。在有监督的分类任务中
\footnote
{
与之相对应的,还有无监督、半监督分类任务,不过这些内容不是本书讨论的重点。读者可以参看参考文献
\upcite
{
周志华2016《机器学习》,李航2019统计学习方法
}
对相关概念进行了解。
}
,训练数据集合通常由形似
$
(
\mathbf
{
x
}_
i,y
_
i
)
$
的带标注数据构成:
$
\mathbf
{
x
}_
i
=(
x
_
i
^
1
,x
_
i
^
2
,
\ldots
,x
_
i
^
k
)
$
作为分类器的输入数据(通常被称作一个训练样本),其中
$
x
_
i
^
j
$
表示样本
$
\mathbf
{
x
}_
i
$
的第
$
j
$
个特征;
$
y
_
i
$
作为输入数据对应的
{
\small\bfnew
{
标签
}}
\index
{
标签
}
(Label)
\index
{
Label
}
,反映了输入数据对应的``类别''。若标签集合大小为
$
n
$
,则分类任务的本质是通过对训练数据集合的学习,建立一个从
$
k
$
维样本空间到
$
n
$
维标签空间的映射关系。更确切地说,分类任务的最终目标是学习一个条件概率分布
$
\funp
{
P
}
(
y|
\mathbf
{
x
}
)
$
,这样对于输入
$
\mathbf
{
x
}$
可以找到概率最大的
$
y
$
作为分类结果输出
。
\parinterval
与概率图模型一样,分类模型中也依赖特征定义。其定义形式与
\ref
{
sec3:feature
}
节的描述一致,这里不再赘述。分类任务一般根据类别数量分为二分类任务和多分类任务。二分类任务是最经典的分类任务,只需要对输出进行非零即一的预测。多分类任务则可以有多种处理手段,比如,可以将其``拆解''为多个二分类任务求解,或者直接让模型输出多个类别中的一个。在命名实体识别中,往往会使用多类别分类模型。比如,在BIO标注下,有三个类别(B、I和O)。一般来说,类别数量越大分类的难度也越大。比如,BIOES标注包含5个类别,因此使用同样的分类器,它要比BIO标注下的分类问题难度大。另一方面,更多的类别有助于准确的刻画目标问题。因此在实践中需要在类别数量和分类难度之间找到一种平衡。
\parinterval
在机器翻译和语言建模中也会遇到类似的问题,比如,生成单词的过程可以被看做是一个分类问题,类别数量就是词表的大小。显然,词表越大可以覆盖更多样的
词法
变化,但是过大的词表里会包含很多低频词,其计算复杂度会显著增加。但是,过小的词表又无法包含足够多的单词。因此,在设计这类系统的时候对词表大小的选择(类别数量的选择)是十分重要的,往往要通过大量的实验得到最优的设置。
\parinterval
在机器翻译和语言建模中也会遇到类似的问题,比如,生成单词的过程可以被看做是一个分类问题,类别数量就是词表的大小。显然,词表越大可以覆盖更多样的
单词及形态学
变化,但是过大的词表里会包含很多低频词,其计算复杂度会显著增加。但是,过小的词表又无法包含足够多的单词。因此,在设计这类系统的时候对词表大小的选择(类别数量的选择)是十分重要的,往往要通过大量的实验得到最优的设置。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
...
...
@@ -544,19 +544,19 @@ Z(\mathbf{X})=\sum_{\mathbf{Y}}\exp(\sum_{i=1}^m\sum_{j=1}^k\lambda_{j}F_{j}(y_{
\subsubsection
{
2. 经典的分类模型
}
\parinterval
经过多年的发展,研究者提出了很多分类模型。由于篇幅所限,本书无法一一列举这些模型,这里仅列出了部分经典的模型。关于分类模型更全面的介绍可以参考相关文献
\upcite
{
harrington2013机器学习实战
}
\upcite
{
李航2019统计学习方法
}
。
\parinterval
经过多年的发展,研究者提出了很多分类模型。由于篇幅所限,本书无法一一列举这些模型,这里仅列出了部分经典的模型。关于分类模型更全面的介绍可以参考相关文献
\upcite
{
harrington2013机器学习实战
,
李航2019统计学习方法
}
。
\begin{itemize}
\vspace
{
0.5em
}
\item
K-近邻分类算法。K-近邻分类算法通过计算不同特征值之间的距离进行分类,这种方法适用于可以提取到数值型特征
\footnote
{
即可以用数值大小对某方面特征进行衡量。
}
的分类问题。该方法的基本思想为:将提取到的特征分别作为坐标轴,建立一个
$
n
$
维坐标系(当特征数量为
$
n
$
时),此时每个样本都将成为该
$
n
$
维空间的一个点,将未知样本与已知类别样本的空间距离作为分类依据
进行分类。
\item
$
K
$
-近邻分类算法。
$
K
$
-近邻分类算法通过计算不同特征值之间的距离进行分类,这种方法适用于可以提取到数值型特征
\footnote
{
即可以用数值大小对某方面特征进行衡量。
}
的分类问题。该方法的基本思想为:将提取到的特征分别作为坐标轴,建立一个
$
k
$
维坐标系(对应特征数量为
$
k
$
的情况),此时每个样本都将成为该
$
k
$
维空间的一个点,将未知样本与已知类别样本的空间距离作为分类依据进行分类,比如,考虑与输入样本最近的
$
K
$
个样本的类别
进行分类。
\vspace
{
0.5em
}
\item
支持向量机。支持向量机是一种二分类模型,其思想是通过线性超平面将不同输入划分为正例和负例,并使线性超平面与不同输入的距离都达到最大。与
K
-近邻分类算法类似,支持向量机也适用于可以提取到数值型特征的分类问题。
\item
支持向量机。支持向量机是一种二分类模型,其思想是通过线性超平面将不同输入划分为正例和负例,并使线性超平面与不同输入的距离都达到最大。与
$
K
$
-近邻分类算法类似,支持向量机也适用于可以提取到数值型特征的分类问题。
\vspace
{
0.5em
}
\item
最大熵模型。最大熵模型是根据最大熵原理提出的一种分类模型,其基本思想是:以在训练数据集中学习到的经验知识作为一种``约束'',并在符合约束的前提下,在若干合理的条件概率分布中选择``使条件熵最大''的模型。
\vspace
{
0.5em
}
\item
决策树分类算法。决策树分类算法是一种基于实例的归纳学习方法:将样本中某些决定性特征作为决策树的节点,根据特征表现进行对样本划分,最终根节点到每个叶子节点均形成一条分类的路径规则。这种分类方法适用于可以提取到离散型特征
\footnote
{
即特征值是离散的。
}
的分类问题。
\vspace
{
0.5em
}
\item
朴素贝叶斯分类算法。朴素贝叶斯算法是以贝叶斯定理
(其主要内容为
$
\funp
{
P
}
(
B
_
i|A
)=
\frac
{
\funp
{
P
}
(
B
_
i
)
\funp
{
P
}
(
A|B
_
i
)
}{
\sum
_{
j
=
1
}^
n
\funp
{
P
}
(
B
_
j
)
\funp
{
P
}
(
A|B
_
j
)
}$
)
为基础并且假设特征之间相互独立的方法:以特征之间相互独立作为前提假设,学习从输入到输出的联合概率分布,并以后验概率最大的输出作为最终类别。
\item
朴素贝叶斯分类算法。朴素贝叶斯算法是以贝叶斯定理为基础并且假设特征之间相互独立的方法:以特征之间相互独立作为前提假设,学习从输入到输出的联合概率分布,并以后验概率最大的输出作为最终类别。
\vspace
{
0.5em
}
\end{itemize}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论