机器学习学习笔记(一)绪论
声明在开头:本篇文章主要是针对周志华教授的《机器学习》的学习心得。
A. 机器学习初见
A
r
t
h
u
r
Arthur
Arthur
S
a
m
u
e
l
Samuel
Samuel将机器学习定义为:
F
i
e
l
d
Field
Field
o
f
of
of
s
t
u
d
y
study
study
t
h
a
t
that
that
g
i
v
e
s
gives
gives
c
o
m
p
u
t
e
r
s
computers
computers
t
h
e
the
the
a
b
i
l
i
t
y
ability
ability
t
o
to
to
l
e
a
r
n
learn
learn
w
i
t
h
o
u
t
without
without
b
e
i
n
g
being
being
e
x
p
l
i
c
i
t
l
y
explicitly
explicitly
p
r
o
g
r
a
m
m
e
d
programmed
programmed.
T
o
m
Tom
Tom
M
i
t
c
h
e
l
l
Mitchell
Mitchell将
W
e
l
l
Well
Well-
p
o
s
e
d
posed
posed
L
e
a
r
n
i
n
g
Learning
Learning
P
r
o
b
l
e
m
Problem
Problem定义为:
A
A
A
c
o
m
p
u
t
e
r
computer
computer
p
r
o
g
r
a
m
e
programe
programe
i
s
is
is
s
a
i
d
said
said
t
o
to
to.
l
e
a
r
n
learn
learn
f
r
o
m
from
from
e
x
p
e
r
i
e
n
c
e
experience
experience
E
E
E
w
i
t
h
with
with
r
e
s
p
e
c
t
respect
respect
t
o
to
to
s
o
m
e
some
some
t
a
s
k
task
task
T
T
T
a
n
d
and
and
s
o
m
e
some
some
p
e
r
f
o
r
m
a
n
c
e
performance
performance
m
e
a
s
u
r
e
measure
measure
P
P
P,
i
f
if
if
i
t
s
its
its
p
e
r
f
o
r
m
a
n
c
e
performance
performance
o
n
on
on
T
T
T
a
s
as
as
m
e
a
s
u
r
e
d
measured
measured
b
y
by
by
P
P
P
i
m
p
r
o
v
e
s
improves
improves
w
i
t
h
with
with
E
E
E.(吴恩达教授认为他提出该定义就是为了押韵,个人认为真相了)。
机器学习的主要研究对象,是“学习算法”(
l
e
a
r
n
i
n
g
learning
learning
a
l
g
o
r
i
t
h
m
algorithm
algorithm),简单的说就是在计算机中,只要用户将经验数据提供给学习算法,它就能基于给定数据生成“模型”(
m
o
d
e
l
model
model),从而帮助用户利用模型进行判断。这里我个人觉得可以简单类比函数,我们根据已有的数据(自变量,因变量)拟合出函数模型,这样一旦有新的自变量,我们就可以用函数来计算得出相应的因变量。
B. 基本术语
1. 示例(
i
n
s
t
a
n
c
e
instance
instance) / 样本(
s
a
m
p
l
e
sample
sample):关于一个事件或对象的描述
2. 属性( a t t r i b u t e attribute attribute) / 特征( f e a t u r e feature feature):反映事件或对象在某方面的表现或性质的事项
3. 属性值( a t t r i b u t e attribute attribute v a l u e value value):属性上的取值(由于属性和属性值一一对应,其实我们可以把它们视为键-值对)
4. 属性空间( a t t r i b u t e attribute attribute s p a c e space space) / 样本空间( s a m p l e sample sample s p a c e space space) / 输入空间:属性张成的空间(我们可以把它理解成集合,但是实际上是维度的概念,例如我们将不同的属性视为坐标轴,根据相应的属性值我们可以唯一确定坐标系中的一个点——示例。因此,我们也可以将一个示例称为一个特征向量( f e a t u r e feature feature v e c t o r vector vector)
5. 数据集( d a t a data data s e t set set):示例的集合,一般地,令 D = { x 1 , x 2 , . . . , x m } D=\{x_{1},x_{2},...,x_{m}\} D={x1,x2,...,xm}表示包含 m m m个示例的数据集,每个示例 x i x_{i} xi由 d d d个属性描述,则 x i = ( x i 1 ; x i 2 ; . . . ; x i d ) x_{i}=(x_{i_{1}};x_{i_{2}};...;x_{i_{d}}) xi=(xi1;xi2;...;xid)是 d d d维空间 X X X中的一个向量, x i ∈ X x_{i}\in X xi∈X,(其中 x i j x_{i_{j}} xij是 x i x_{i} xi在第 j j j个属性上的取值, d d d称为样本 x i x_{i} xi的“维数”( d i m e n s i o n a l i t y dimensionality dimensionality)。
6. 学习( l e a r n i n g learning learning) / 训练( t r a i n i n g training training):从数据中学得模型的过程(该过程通过执行某个学习算法来完成)
7. 训练数据( t r a i n i n g training training d a t a data data):训练过程中使用的数据
8. 训练样本( t r a i n i n g training training s a m p l e sample sample) / 训练示例( t r a i n i n g training training i n s t a n c e instance instance) / 训练例:训练数据中的样本
9. 训练集( t r a i n i n g training training s e t set set):训练样本组成的集合
10. 假设( h y p o t h e s i s hypothesis hypothesis):学得模型契合了关于数据的某种潜在规律
11. 真相 / 真实( g r o u n d ground ground- t r u t h truth truth):数据的潜在规律本身
12. 学习器( l e a r n e r learner learner):学习算法在给定数据和参数空间上的实例化(学习算法通常需要设置参数,使用不同的参数值和(或)训练数据,将产生不同的结果,还是可以简单类比函数的概念)
13. 标记( l a b e l label label):关于示例结果的信息
14. 样例( e x a m p l e example example):拥有了标记信息的示例(若将标记看作对象本身的一部分,则样例有时也称为样本)
15. 标记空间( l a b e l label label s p a c e space space) / 输出空间:所有标记的集合,常用 Y Y Y来表示。因此 ( x i , y i ) (x_{i},y_{i}) (xi,yi)表示第 i i i个样例,其中 y i ∈ Y y_{i}\in Y yi∈Y是示例 x i x_{i} xi的标记。
16. 分类( c l a s s i f i c a t i o n classification classification)与回归( r e g r e s s i o n regression regression):若我们预测的是离散值,此类学习任务称为分类;若我们预测的是连续值,此类学习任务则称为回归。
17. 正类(
p
o
s
i
t
i
v
e
positive
positive
c
l
a
s
s
class
class)与反类/负类(
n
e
g
a
t
i
v
e
negative
negative
c
l
a
s
s
class
class):对只涉及两个分类的二分类(
b
i
n
a
r
y
binary
binary
c
l
a
s
s
i
f
i
c
a
t
i
o
n
classification
classification)任务,通常称一个类为正类,另一个类为反类或负类。至于涉及多个类别时,则称为多分类(
m
u
l
t
i
multi
multi-
c
l
a
s
s
class
class
c
l
a
s
s
i
f
i
c
a
t
i
o
n
classification
classification)任务。
一般地,预测任务是希望通过对训练集
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
m
,
y
m
)
}
\{(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{m},y_{m})\}
{(x1,y1),(x2,y2),...,(xm,ym)}进行学习,建立一个从输入空间
X
X
X到输出空间
Y
Y
Y的映射
f
:
X
↦
Y
f:X\mapsto Y
f:X↦Y。
对于二分类任务,通常令
Y
=
{
−
1
,
1
}
Y=\{-1,1\}
Y={−1,1}或
{
0
,
1
}
\{0,1\}
{0,1};
对于多分类任务,
∣
Y
∣
>
2
|Y|>2
∣Y∣>2;
对于回归任务,
Y
=
R
,
R
Y=R,R
Y=R,R为实数集。
18. 测试( t e s t i n g testing testing):学得模型后,使用模型进行预测的过程
19. 测试样本( t e s t i n g testing testing s a m p l e sample sample) / 测试示例( t e s t i n g testing testing i n s t a n c e instance instance) / 测试例:被预测的样本。例如,在学得模型 f f f之后,对于测试样本 x x x,可得到其预测标记为 y = f ( x ) y=f(x) y=f(x)。
20. 聚类( c l u s t e r i n g clustering clustering):将训练集中的对象分成若干组,每一组都是一个簇( c l u s t e r cluster cluster)。这些自动形成的簇可能对应一些潜在的概念划分,这样的学习过程有助于了解数据内在的规律,为更深入地进行数据分析建立基础。注意,聚类学习的学习过程中使用的训练样本通常没有标记信息。
21. 监督学习( s u p e r v i s e d supervised supervised l e a r n i n g learning learning) :训练数据有标记信息,如分类和回归; 无监督学习( u n s u p e r v i s e d unsupervised unsupervised l e a r n i n g learning learning):训练数据无标记信息,如聚类。监督学习可以理解为我们指导计算机如何去完成任务(意思是给出一个算法,需要部分数据集已经有正确答案),而无监督学习则是让计算机自己进行学习。
22. 泛化( g e n e r a l i z a t i o n generalization generalization)能力:学得模型适用于新样本的能力。具有强泛化能力的模型能够很好的适用于整个样本空间。所以训练集应该具有一般性,能够良好地反映出样本空间的特性。因此,通常假设样本空间中的全体样本服从一个未知分布( d i s t r i b u t i o n distribution distribution) D D D,我们获得的每个样本都是独立地从这个分布上采样获得的,即独立同分布( i n d e p e n d e n t independent independent a n d and and i d e n t i c a l l y identically identically d i s t r i b u t e d distributed distributed,简称 i . i . d . i.i.d. i.i.d.)。
23. 归纳( i n d u c t i o n induction induction)与演绎( d e d u c t i o n deduction deduction):归纳是从特殊到一般的泛化过程,即从具体的事实归结出一般性规律;演绎则是从一般到特殊的泛化过程,即从基础原理推演出具体情况。因此,归纳学习( i n d u c t i v e inductive inductive l e a r n i n g learning learning)就是从样例中学习模型,这显然是一个从特殊到一般的泛化过程。
24. 概念学习:广义的归纳学习大致上可以理解成从样例中学习,而狭义的归纳学习则要求从训练数据中学得概念( c o n c e p t concept concept),这就是概念学习,也称为概念形成。概念学习中最基础的就是布尔概念学习,即目标结果表现为二值性(0/1,是/不是,好/坏···)。
25. 机械学习:仅仅记住训练样本,而不是从训练集中学得模型。
26. 假设空间:由所有可能的假设组成。而学习过程就可以理解为一个在假设空间中进行搜索的过程,至于搜索目标,就是在假设空间中找到与训练集“匹配”( f i t fit fit)的假设。假设的表示一旦确定,假设空间及其规模大小就确定了。假设空间通常可以用一个类似于树的图表示,根结点是所有属性都取值为通配符“*”(即该属性无论取什么值都可以),然后在逐渐向下细分。我们有许多策略对这个假设空间进行搜索(如自顶向下、从一般到特殊,或者自底而上,从特殊到一般),搜索过程中可以不断删除与正例不一致(或与反例一致)的假设(类似于剪枝)。最终将会获得与训练集一致(即对所有训练样本都能够进行准确的判断)的假设,这就是学得的结果。
27. 版本空间( v e r s i o n version version s p a c e space space):通常情况下,训练空间的规模都是非常大的,但是学习过程是基于有限样本训练集进行的。因此,可能有多个假设与训练集一致,这些假设的集合就是版本空间。
28. 归纳偏好( i n d u c t i v e inductive inductive b i a s bias bias):机器学习算法在学习过程中对某种类型假设的偏好,称为归纳偏好,或者简称为偏好。例如有的算法偏好“尽可能特殊”的模型(即模型适用的情况尽可能的少),有的算法偏好“尽可能一般”的模型(即模型适用的情况尽可能的多),有的算法可能更偏好某一个属性。这里注意,任何一个有效的机器学习算法必有其归纳偏好,否则它很可能无法产生确定的学习结果,算法在进行预测时会随机抽取训练集上的等效假设,面对同一个待预测对象,学得模型会给出不同的预测,这样的模型显然没有意义。因此,归纳偏好可以理解为学习算法自身在一个假设空间中对假设进行选择的启发式或“价值观”。“奥卡姆剃刀”( O c c a m ′ s Occam's Occam′s r a z o r razor razor)就是一种常用的、自然科学研究中最基本的原则,即若有多个假设与观察一致,则选最简单的。但是,我们注意到“最简单”这个概念在一定程度上也很抽象,所以有时候我们仍然需要其他机制完善算法。
29. “没有免费的午餐”定理(
N
o
No
No
F
r
e
e
Free
Free
L
u
n
c
h
Lunch
Lunch
T
h
e
o
r
e
m
Theorem
Theorem):无论学习算法
L
a
\mathfrak{L}_a
La多聪明,
L
b
\mathfrak{L}_b
Lb多笨拙,他们的期望性能是相同的。即对于一个学习算法
L
a
\mathfrak{L}_a
La,若它在某些问题上比学习算法
L
b
\mathfrak{L}_b
Lb好,则必然存在另一些问题,在那里
L
b
\mathfrak{L}_b
Lb比
L
a
\mathfrak{L}_a
La好(这一结论对任何算法都成立)。下面我们来看一下
N
F
L
NFL
NFL定理的简化论述:
假设样本空间
X
\mathcal{X}
X和假设空间
H
\mathcal{H}
H都是离散的,令
P
(
h
∣
X
,
L
a
)
P(h|X,\mathfrak{L}_a)
P(h∣X,La)代表算法
L
a
\mathfrak{L}_a
La基于训练集
X
X
X产生假设
h
h
h的概率,再令
f
f
f代表我们希望学习的真实目标函数(我们可以把它理解成标准答案)。
L
a
\mathfrak{L}_a
La的“训练集外误差”,即
L
a
\mathfrak{L}_a
La在训练集之外的所有样本上的误差(我们可以把它理解预测训练集之外的情况,但是和标准答案不符)为:
E
o
t
e
(
L
a
∣
X
,
f
)
=
∑
h
∑
x
∈
X
−
X
P
(
x
)
I
(
h
(
x
)
≠
f
(
x
)
)
P
(
h
∣
X
,
L
a
)
E_{ote}(\mathfrak{L}_a|X,f)=\sum_h\sum_{x\in\mathcal{X}-X}P(x)\mathbb{I}(h(x)\neq f(x))P(h|X,\mathfrak{L}_a)
Eote(La∣X,f)=∑h∑x∈X−XP(x)I(h(x)=f(x))P(h∣X,La),其中
I
(
⋅
)
\mathbb{I}(\cdot)
I(⋅)是指示函数,若
⋅
\cdot
⋅为真则取1,反之取0。
考虑二分类问题,且真实目标函数(标准答案)可以是任何函数
X
↦
{
0
,
1
}
\mathcal{X}\mapsto\{0,1\}
X↦{0,1},函数空间为
{
0
,
1
}
∣
X
∣
\{0,1\}^{|\mathcal{X}|}
{0,1}∣X∣,对所有可能的
f
f
f按均匀分布对误差求和,有
∑
f
E
o
t
e
(
L
a
∣
X
,
f
)
=
∑
f
∑
h
∑
x
∈
X
−
X
P
(
x
)
I
(
h
(
x
)
≠
f
(
x
)
)
P
(
h
∣
X
,
L
a
)
\sum_fE_{ote}(\mathfrak{L}_a|X,f)=\sum_f\sum_h\sum_{x\in\mathcal{X}-X}P(x)\mathbb{I}(h(x)\neq f(x))P(h|X,\mathfrak{L}_a)
∑fEote(La∣X,f)=∑f∑h∑x∈X−XP(x)I(h(x)=f(x))P(h∣X,La)
=
∑
x
∈
X
−
X
P
(
x
)
∑
h
P
(
h
∣
X
,
L
a
)
∑
f
I
(
h
(
x
)
≠
f
(
x
)
)
=\sum_{x\in\mathcal{X}-X}P(x)\sum_hP(h|X,\mathfrak{L}_a)\sum_f\mathbb{I}(h(x)\neq f(x))
=∑x∈X−XP(x)∑hP(h∣X,La)∑fI(h(x)=f(x))
=
∑
x
∈
X
−
X
P
(
x
)
∑
h
P
(
h
∣
X
,
L
a
)
1
2
2
∣
X
∣
=\sum_{x\in\mathcal{X}-X}P(x)\sum_hP(h|X,\mathfrak{L}_a)\frac{1}{2}2^{|\mathcal{X}|}
=∑x∈X−XP(x)∑hP(h∣X,La)212∣X∣
=
1
2
2
∣
X
∣
∑
x
∈
X
−
X
P
(
x
)
∑
h
P
(
h
∣
X
,
L
a
)
=\frac{1}{2}2^{|\mathcal{X}|}\sum_{x\in\mathcal{X}-X}P(x)\sum_hP(h|X,\mathfrak{L}_a)
=212∣X∣∑x∈X−XP(x)∑hP(h∣X,La)
=
2
∣
X
∣
−
1
∑
x
∈
X
−
X
P
(
x
)
⋅
1
=2^{|\mathcal{X}|-1}\sum_{x\in\mathcal{X}-X}P(x)\cdot1
=2∣X∣−1∑x∈X−XP(x)⋅1
上式表明总误差与学习算法无关,即对于任意两个学习算法
L
a
,
L
b
\mathfrak{L}_a,\mathfrak{L}_b
La,Lb,都有
∑
f
E
o
t
e
(
L
a
∣
X
,
f
)
=
∑
f
E
o
t
e
(
L
b
∣
X
,
f
)
\sum_fE_{ote}(\mathfrak{L}_a|X,f)=\sum_fE_{ote}(\mathfrak{L}_b|X,f)
∑fEote(La∣X,f)=∑fEote(Lb∣X,f),这两个算法的期望性能是相同的。这似乎是说机器学习是没有意义的。
实际情况并不是这样,因为
N
F
L
NFL
NFL定理有一个重要的前提——所有问题出现的机会相同、或所有问题同等重要。因此,该定理的主要意义在于,我们必须针对具体的学习问题谈论算法的相对优劣。