西瓜书学习笔记(第一章)
开始学习时间:2020/1/14
作者: 谭楷城
第一章:绪论
1.1 引言
什么是机器学习?
我们能做出有效的判断,是因为我们已经积累了许多经验,而通过对经验的利用,就能对新的情况做出有效的决策。
机器学习便是从数据中产生经验。 从数据中产生“模型(model)的算法,即学习算法(learning algorithm)。”通过学习算法,我们提供经验数据给它,则它就能基于这些数据产生模型。
如果说,计算机科学是研究关于算法的学问,那么类似的,可以说机器学习是研究关于“学习算法”的学问。
1.2 基本术语
- 数据集(data set): 样本的集合。例如:一批关于西瓜的数据。
- 示例/样本(instance/sample):关于一个事件或对象的描述。例如:一条对一个西瓜的描述。
- 属性(attribute)/特征(feature):反映事件或对象在某方面的表现或性质的事项。例如:色泽、根蒂、敲声。
- 属性值(attribute value):属性的取值。例如:青绿、乌黑。
- 属性空间(attribute space)/样本空间(sample space)/输入空间:由属性张成的空间。例如:在这个由色泽、根蒂、敲声作为三个坐标轴,张成的三维空间,每个西瓜都可以在空间找到自己的坐标位置。
D D D={ x 1 , x 2 , ⋯ , x m x_1,x_2,\cdots,x_m x1,x2,⋯,xm }表示包含了m个示例的数据集,每个示例由d个属性描述。(上面的西瓜使用了三个属性)
每个示例 x i x_i xi={ x i 1 ; x i 2 ; ⋯ ; x i d x_{i1};x_{i2};\cdots;x_{id} xi1;xi2;⋯;xid}是d维样本空间 χ \chi χ的一个向量, x i ∈ χ x_{i}\in \chi xi∈χ。其中, x i j x_{ij} xij是 x i x_i xi在第j个属性上的取值。
- d:维数(dimensionality),即有多少个属性描述。
从数据中学习模型的过程称为学习(learning)或训练(training),这个过程通过执行某个学习算法完成。
- 训练数据(training data):训练过程中使用的数据。
- 训练集:训练样本组成的集合。
- 训练样本(training sample):训练集中的每一个样本。
- 假设(hypothesis):学得的模型对应的某种潜
- 在的规律。
- 真相/真实(ground-truth):潜在规律自身。
- 学习器(learner):即模型。可以看作学习算法在给定数据和参数空间上的实例化。
为了建立这种类似于预测的模型,光有示例数据显然不够,我们还要获得训练样本结果信息。如:((色泽=青绿;根蒂=蜷缩;敲声=浊响),好瓜)。
- 标记(标签)(label):示例结果。例如:好瓜、坏瓜。
- 样例(example):拥有标记的示例。
一般用 ( x i , y i ) (x_i,y_i) (xi,yi)来表示第i个样例。其中 y i ∈ Y y_i \in Y yi∈Y是示例 x i x_i xi的标记。
- 标记空间/输出空间(label space):所有标记的集合。
离散值预测
- 例如判断是好瓜还是坏瓜,这种学习任务称为分类(classification);
- 二分类(binary classification)任务:只涉及两个类别的分类任务。其中一个类为正类(positive class);另一个类为反类(negative class);
- 涉及多个类别时,则成为多分类(multi-class classification)任务。
连续值预测
- 例如预测西瓜的成熟度0.95、0.37,这种学习任务称为回归(regression)。
一般地,预测任务是希望通过对训练集
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
⋯
(
x
m
;
y
m
)
{(x_1,y_1),(x_2,y_2)\cdots(x_m;y_m)}
(x1,y1),(x2,y2)⋯(xm;ym)进行学习,建立一个输入空间
χ
\chi
χ到输出空间Y的映射:
f
:
χ
→
Y
f: \chi \rightarrow Y
f:χ→Y
分类类别 | 输出取值 |
---|---|
二分类 | 通常令 Y = { − 1 , + 1 } Y = \{ -1,+1 \} Y={−1,+1}或 { 0 , 1 } \{0,1\} {0,1}; |
多分类 | | Y | >2 |
回归类 | Y ∈ R Y \in R Y∈R |
- 测试(testing):使用学得的模型进行预测的过程。
- 测试样本(testing sample)/测试示例(testing instance):被预测的样本称为测试样本。也称测试例。
也就是学得模型 f f f后,对测试例 x x x,可以得到其预测标记 y = f ( x ) y=f(x) y=f(x)。
- 聚类(clustering):将训练集中的样本分成若干个组。
- 簇(cluster):聚类后分成的组称为簇。
这些自动形成的簇可能对应一些潜在的概念划分,例如浅色的瓜、深色的瓜,外地或者本地的瓜。这样的学习过程有助于我们深入的数据分析。重要的是,学习过程中使用的训练样本通常不拥有标记信息。
类型 | 训练数据是否有标记信息 | 代表 |
---|---|---|
监督学习(supervised learning) | 是 | 分类和回归 |
无监督学习(unsupervised learning) | 否 | 聚类 |
- 泛化能力(generalization):学得模型适用于新样本的能力。
训练集通常是样本空间的一个很小的采样。泛化能力强的模型会很好的适用于整个样本空间。
通常假设样本空间中全体样本服从一个未知的分布(distribution) D D D,我们获得的每个样本都是独立地从这个分布上采样获得的,也就是独立同分布 (independent and identically)。
一般来说,训练样本越多,学习得到的模型泛化能力越强。
1.3 假设空间
归纳(induction)与演绎(deduction)
- 归纳是从特殊到一般的泛化过程。(从具体事实归结出一般性规律)
- 演绎是从一般到特殊的特化过程。(从基础原理推演出具体状况)。
因此,从样例中学习显然是一个归纳的过程,因此亦称归纳学习(inductive learning)。
广义的归纳学习大体相当于从样例中学习。
但是狭义的归纳学习要求从数据中学得概念。也称为概念学习或概念生成。但是概念学习技术目前研究和应用的都比较少,现实常用的技术大多是黑箱模型。
黑箱模型(Black box)或称[经验模型],指一些其内部规律还很少为人们所知的现象。如生命科学、社会科学等方面的问题。但由于因素众多、关系复杂,也可简化为[灰箱模型]来研究。
概念学习中最基本的是布尔概念学习。也就是对“是”和“不是”这种可以以0/1布尔值表示的目标概念的学习。例如是不是好瓜。但是我们学习的基本目的是泛化,而获得对没见过的瓜进行判断的能力。
学习过程就是在所有假设组成的空间中进行搜索的过程。搜索目标是找到与训练集匹配(fit)的假设。也就是能够将训练集中的瓜判断正确的假设。例如假设空间:
好
瓜
⇔
(
色
泽
=
∗
)
∧
(
根
蒂
=
∗
)
∧
(
敲
声
=
∗
)
,
(
∗
表
示
通
配
符
)
好瓜\Leftrightarrow(色泽=*)\land(根蒂=*)\land(敲声=*),(*表示通配符)
好瓜⇔(色泽=∗)∧(根蒂=∗)∧(敲声=∗),(∗表示通配符)
当然,还有好瓜不存在的可能性,用
∅
\varnothing
∅表示这种假设。
- 假设空间(hypothesis space):可能的函数构成的空间称为假设空间。
通过许多策略对这个假设空间进行搜索。搜索策略包括如下:
- 自顶向下或者自底向上
- 从一般到特殊或者从特殊到一般
搜索的过程中可以不断删除与正例不一致的假设、和(或)与反例一致的假设。 学习的结果将会是获得与训练集一致的假设。
- 版本空间(version space):与训练集一致的假设集合。
1.4 归纳偏好
模型面临新的样本的时候,可能会产生不同的输出。
- 归纳偏好(inductive bias):算法在学习过程中对某种类型假设的偏好。
例如版本空间面临新样本时可能会产生不同的输出。
为了确定输出,偏好将会起到重要作用。算法可能有各种偏好,例如:
-
尽可能特殊:
好 瓜 ⇔ ( 色 泽 = ∗ ) ∧ ( 根 蒂 = 蜷 缩 ) ∧ ( 敲 声 = 浊 响 ) 好瓜\Leftrightarrow(色泽=*)\land(根蒂=蜷缩)\land(敲声=浊响) 好瓜⇔(色泽=∗)∧(根蒂=蜷缩)∧(敲声=浊响)
-
尽可能一般:
好 瓜 ⇔ ( 色 泽 = ∗ ) ∧ ( 根 蒂 = 蜷 缩 ) ∧ ( 敲 声 = ∗ ) 好瓜\Leftrightarrow(色泽=*)\land(根蒂=蜷缩)\land(敲声=*) 好瓜⇔(色泽=∗)∧(根蒂=蜷缩)∧(敲声=∗) 或
好 瓜 ⇔ ( 色 泽 = ∗ ) ∧ ( 根 蒂 = ∗ ) ∧ ( 敲 声 = 浊 响 ) 好瓜\Leftrightarrow(色泽=*)\land(根蒂=*)\land(敲声=浊响) 好瓜⇔(色泽=∗)∧(根蒂=∗)∧(敲声=浊响)
-
出于某种原因更相信某种属性。例如,更相信根蒂,则会确定为: 好 瓜 ⇔ ( 色 泽 = ∗ ) ∧ ( 根 蒂 = 蜷 缩 ) ∧ ( 敲 声 = ∗ ) 好瓜\Leftrightarrow(色泽=*)\land(根蒂=蜷缩)\land(敲声=*) 好瓜⇔(色泽=∗)∧(根蒂=蜷缩)∧(敲声=∗)
这种相信某种属性其实是特征选择(feature selection)。但是特征选择在机器学习中是基于训练样本的分析进行的。这里是相信更像是领域知识而产生的归纳偏好,不能理解错了噢~
归纳偏好的必要性
任何一个有效的机器学习算法必有其归纳偏好。特别是在庞大的假设空间中。
若将有限个的训练样本放在坐标系下,我们训练的模型即为穿过所有训练样本点的曲线。
当然,这种曲线(模型)有很多个,曲线可能颠簸崎岖,也有可能平滑(相似的样本有着相似的输出)。因此,我们的算法必须得有某种偏好才能准确输出。
价值观-确立偏好
归纳偏好可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或“价值观”。
例如奥卡姆剃刀,即若有多个假设与观察一致,则选择最简单的那个。像曲线A、B,平滑曲线A对于我们更易于描述,即更简单。那么我们自然会偏好于曲线A(模型A)。
但是奥卡姆剃刀并不一定能够匹配问题本身,而且不论哪种算法在一些问题中可能不太好,但是它在另一种某些问题上反而会更好。
奥卡姆剃刀(Occam’s razor):一种常用的、自然科学研究中的最基本原则。即:“若有多个假设与观察一致,则选最简单的那个。”
归纳偏好对应了学习算法本身所作出的关于**什么样的模型更好的假设**。
NFL定理
NFL定理告诉了我们最后学得的算法的总误差与学习算法无关。
∑
f
E
o
t
e
(
ϑ
a
∣
X
,
f
)
=
∑
f
E
o
t
e
(
ϑ
b
∣
X
,
f
)
\sum_{f}E_{ote}(\vartheta_a|X,f)=\sum_{f}E_{ote}(\vartheta_b|X,f)
f∑Eote(ϑa∣X,f)=f∑Eote(ϑb∣X,f)
https://blog.csdn.net/u013238941/article/details/79091252这篇文章对于我理解西瓜书的NFL定理简证理解提供了帮助,值得参考。
注释:
ϑ a \vartheta_a ϑa、 ϑ b \vartheta_b ϑb是算法a、算法b。∑ f E o t e ( ϑ a ∣ X , f ) \sum_{f}E_{ote}(\vartheta_a|X,f) ∑fEote(ϑa∣X,f)表示训练集外样本上的误差和(期望)。
1.5 发展历程
简单画了一个mermaid流程图简要总结了发展历程。
从样例中学习的技术演进: