第一章 绪论

啥是机器学习?
计算机利用算法,从历史经验(数据)学习到模型,从而可以根据此模型进行未知样本的判断。

一个完整的模型可以细分为以下3部分:
1.数据
每一个数据都包含dd个属性(或特征),也称为数据的“维数”,就像一个西瓜可以分为“色泽”,“根蒂”,“敲声”等,每个属性又可以有不同的取值,例如“色泽”属性有“青绿”、“乌黑”等可能情况(“属性值”),但都属于“色泽”这一类。

所有的数据放在一起就构成了数据集,数据集也可以划分为“训练集”和“测试集”,训练集用来训练算法,测试集用来检验模型效果。

2.算法
算法可以分为有监督的算法和无监督的算法,主要区别是数据集是否存在标记信息,有标记信息的为监督学习。
常见的分类和回归算法属于有监督学习,聚类属于无监督学习。

3.结果
模型学习的目标是让学习得到的模型在测试集上有更好的性能,即模型的泛化能力。

1.1 假设空间

科学推理的两大基本手段:

  1. 归纳:从特殊到一般,如机器学习从样例中学习到模型。
  2. 演绎:从一般到特殊,如从一般公理推导出与之相洽的定理。

归纳可以分为:
广义归纳:从样例中学习;
狭义归纳:从数据中学到概念,即“概念学习”,但目前研究、应用较少,但理解概念学习有助于理解机器学习中的一些基础思想。

概念学习举例——布尔概念学习
布尔概念学习是指对“是”或者“不是”这样可以表示为0/1布尔值的目标概念的学习。
就像一个西瓜是不是一个好瓜的学习,假设西瓜存在三种属性——“色泽”,“根蒂”,“敲声”,我们得从学到“好瓜”这个概念,即满足什么事条件的瓜是好瓜。

我们可以把学习的过程看做在假设空间中搜索的过程,假设的表示确定了,那假设空间及其规模大小就确定了,一个好瓜的假设空间就由“(色泽=?)^(根蒂=?)^(敲声=?)”组成,使用通配符*表示属性取什么值都可以,用$ \O$表示根本没有“好瓜”这种概念。

若西瓜的3种属性都有3种取值,那么假设空间的规模大小为:4X4X4+1=65种可能。

【西瓜书-读书笔记】第一章

1.2 归纳偏好

在现有数据集中,可能存在多个模型能够比较很好的拟合现有的数据,但到底选择哪个好呢?

此时,学习算本身的“偏好”会起到关键的作用。学习得到的算法必须有某种偏好,才能产出它认为“正确”的模型。

归纳偏好可以看做学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或“价值观”。
【西瓜书-读书笔记】第一章

在上面的图中,A和B都能拟合,那我们我们应该选择平滑的曲线A,还是比较崎岖的曲线B呢?

有没有一般性的原理来处理这个问题呢?“奥卡姆剃刀”是一种常用、自然科学研究中最基本的原则,即“若有多个假设与观察一致,则选择最简单的那个”,如果我们采用这个原则,那么我们会选择A曲线,因为它更易于描述,如使用方程式y=x2+6x+1y=-x^2+6x+1,而曲线B显然要复杂的多。

但问题又来了,在某些情况下,并无法直接判断“简单”或“复杂”。而且描述简单也不一定是正确的选择,如下图所示:
【西瓜书-读书笔记】第一章

由此可以看出对一个学习算法A,在某些问题上表现比B好,而在另一些问题上,B的表现要比A好。

假设A是很“聪明”的算法,B是“随机胡猜”,那么“随机胡猜”有时候也比很“聪明”的算法要好?

让我们从数学的角度看看它们的性能,首先假设样本空间X\mathcal{X}和假设空间HH都是离散的,令P(hX,La)P(h\vert X,\mathfrak{L}_a)表示基于训练数据X产生假设hh的概率。ff表示真实目标函数,则训练集误差可以表示为:
Eote(LaX,f)=fhxXXP(x)I(h(x)f(x))P(hX,La)E_{ote}(\mathfrak{L}_a\vert X,f) = \sum_f\sum_h\sum_{x\in\mathcal{X}-X}P(x)\mathbb{I}(h(x)\neq f(x))P(h\vert X,\mathfrak{L}_a)
其中I\mathbb{I}为指示函数。

若考虑二分类问题,且真实目标函数可以使任意函数X{0,1}\mathcal{X} \rightarrow \{0,1\},则函数空间为{0,1}X\{0,1\}^{|\mathcal{X} |},则所有函数的可能2X2^{|\mathcal{X} |},对所有函数求误差总和为:
fEote(LaX,f)=fhxXXP(x)I(h(x)f(x))P(hX,La)=xXXP(x)hP(hX,La)fI(h(x)f(x))=xXXP(x)hP(hX,La)122X=122XxXXP(x)hP(hX,La)=2X1xXXP(x)1\begin{aligned} \sum_{f}E_{ote}(\mathfrak{L}_a\vert X,f) &= \sum_f\sum_h\sum_{x\in\mathcal{X}-X}P(x)\mathbb{I}(h(x)\neq f(x))P(h\vert X,\mathfrak{L}_a) \\ &=\sum_{x\in\mathcal{X}-X}P(x) \sum_hP(h\vert X,\mathfrak{L}_a)\sum_f\mathbb{I}(h(x)\neq f(x)) \\ &=\sum_{x\in\mathcal{X}-X}P(x) \sum_hP(h\vert X,\mathfrak{L}_a)\cfrac{1}{2}2^{\vert \mathcal{X} \vert} \\ &=\cfrac{1}{2}2^{\vert \mathcal{X} \vert}\sum_{x\in\mathcal{X}-X}P(x) \sum_hP(h\vert X,\mathfrak{L}_a) \\ &=2^{\vert \mathcal{X} \vert-1}\sum_{x\in\mathcal{X}-X}P(x) \cdot 1\\ \end{aligned}

[公式解析]:

第一步到第二步是因为imjnkoaibjck=imaijnbjkock\sum_i^m\sum_j^n\sum_k^o a_ib_jc_k=\sum_i^m a_i \cdot \sum_j^n b_j \cdot \sum_k^o c_k

第二步到第三步:首先要知道此时ff的定义为任何能将样本映射到{0,1}的函数+均匀分布,也即不止一个ff且每个ff出现的概率相等,例如样本空间只有两个样本时:$ \mathcal{X}={x_1,x_2},\vert \mathcal{X} \vert=2,那么所有的真实目标函数f$为:
f1:f1(x1)=0,f1(x2)=0;f2:f2(x1)=0,f2(x2)=1;f3:f3(x1)=1,f3(x2)=0;f4:f4(x1)=1,f4(x2)=1;\begin{aligned} f_1:f_1(x_1)=0,f_1(x_2)=0;\\ f_2:f_2(x_1)=0,f_2(x_2)=1;\\ f_3:f_3(x_1)=1,f_3(x_2)=0;\\ f_4:f_4(x_1)=1,f_4(x_2)=1; \end{aligned}
一共2X=22=42^{\vert \mathcal{X} \vert}=2^2=4个真实目标函数。所以此时通过算法La\mathfrak{L}_a学习出来的模型h(x)h(x)对每个样本无论预测值为0还是1必然有一半的ff与之预测值相等,例如,现在学出来的模型h(x)h(x)x1x_1的预测值为1,也即h(x1)=1h(x_1)=1,那么有且只有f3f_3f4f_4h(x)h(x)的预测值相等,也就是有且只有一半的ff与它预测值相等,所以fI(h(x)f(x))=122X\sum_f\mathbb{I}(h(x)\neq f(x)) = \cfrac{1}{2}2^{\vert \mathcal{X} \vert}

第三步一直到最后有点概率论的基础应该都能看懂了。

我们发现总误差竟然与特定的算法无关,上述就是“没有免费的午餐”定理(NFL),也就是说,不管什么算法,它们的期望性能相同!NFL定理的前提是:所有"问题"出现概率相同且同等假设。

这说明每一个算都要有特定的问题,有了具体的问题,算法生成的方案才有意义,脱离具体问题”什么学习算法更好“毫无意义,因为若考虑所有问题,则所有算法都一样好。

所以,学习算法的归纳偏好与问题是否相配,往往起到决定性的作用。

1.3 机器学习发展历程

二十世纪八十年代机器学习开始成为一个独立的学科领域,提出“从样例中学习”(归纳学习)方法,也是迄今为止研究最多、应用最广的方式。

二十世纪八十年代,“从样例中学习”一大主流是符号主义学习,代表包括决策树和基于逻辑的学习。但由于表达能力太强,直接导致学习过程面临假设空间太大、复杂度极高,因此问题规模稍大就难以进行有效的学习,九十年代中期后就相对陷入低潮。

二十世纪九十年代中期前,“从样例中学习”的另一主流是基于神经网络的连接主义学习,但其学习过程中涉及大量参数,而参数设置缺乏理论指导,参数差别直接导致学习结果谬以千里。

二十世纪九十年代中期,"统计学习"闪亮登场,代表性技术为支持向量机(SVM)以及核方法,随着SVM流行,核方法也逐渐成为机器学习的基本内容之一。

二十一世纪,连接主义学习又卷土重来,掀起了“深度学习”的热潮,得益于数据储量和计算设备等的发展。

相关文章: