1 绪论
本文根据西瓜书内容整理而成,并参考了以下资料:
- Datawhale南瓜书https://www.datawhale.cn/learn/content/2/63
1.1 引言
机器学习研究内容:如何使用计算机根据一堆数据产生模型(又称学习算法)。
1.2 基本术语
-
Data set(数据集) 收集到的所有信息的大集合
-
Instance(示例)/sample(样本) 一条记录
-
Attribute(属性)/feature(特征) 对象的特征,取值称为 属性值,属性张成的空间为 属性空间/样本空间(注意是各个不同的属性组成的多维空间)
-
每一个记录会对应属性/样本空间中的一个点,所以我们也可以把每个示例认为是一个特征向量
-
学习过程中需要判断是不是“好瓜”,所以除了样本本身的属性之外我们还需要预先给每一个样本一个评判,称为label(标记)。原本的属性+标记,称为example(样例)。同理,标记也有标记空间(label space)/输出空间
-
学习任务类别:
- 监督学习:
- 分类: 好瓜/坏瓜,有一个正类还有一个反类
- 回归: 预测一个数值,例如西瓜成熟度
- 无监督学习:
- 聚类: 把西瓜按照某些神秘规律分成几个组(cluster),自主总结出一些内在规律
- 监督学习:
-
学习/训练: 从数据中学得模型的过程,我们得到的规律称为hypothesis(假设) ,学习过程就是在让我们的假设逼近真相(ground-truth)
-
泛化能力: 推广到其他新样本的能力
1.3 假设空间
归纳学习 \(\rightarrow\) 概念学习\(\rightarrow\)布尔概念学习(解答“是/不是”)
学习的目标:得到一种假设,使得该假设符合我们从数据集中观察到的结果,即在假设空间(所有的假设)中找到与训练集匹配的假设,这些假设的集合称为版本空间。
1.4 归纳偏好
由于版本空间中通常有多个假设,想要找出唯一的那个假设,就需要一定的偏好,也称归纳偏好。这可以看作是一种启发式。
对于一个学习算法\(\mathfrak{L}_a\),若它在某些问题上比学习算法\(\mathfrak{L}_b\)好,则必然存在一些问题,在那里\(\mathfrak{L}_a\)比\(\mathfrak{L}_b\)好。(数理统计有类似的表述)
NFL定理(No Free Lunch Theorem)
任意两种(所有)学习算法的期望误差都是一样的。
proof:
\(P(h \mid X, \mathfrak{L}_a)\) 代表算法 \(\mathfrak{L}_a\) 基于训练数据 \(X\) 产生假设 \(h\) 的概率,如所展示的那样,是一个条件概率,条件为算法 \(\mathfrak{L}_a\) 与训练数据 \(X\),观察假设\(h\)的概率。
再令 \(f\) 代表我们希望学习的真实目标函数。
那么\(\mathfrak{L}_a\) 的 “训练集外误差”,即 \(\mathfrak{L}_a\) 在训练集之外的所有样本上的误差为:
写慢一点,就是
接下来考虑所有情况,对所有可能的 \(f\) 按均匀分布对误差求和。
对上述公式进行化简,如果化成了一个常数,就说明了任意两个算法得到的“训练集外误差”都是一样的。
为简单起见,假设样本空间 \(\mathcal{X}\) 和假设空间 \(\mathcal{H}\) 都是离散的。考虑二分类问题,且真实目标函数可以是任何函数 \(\mathcal{X} \mapsto \{0, 1\}\),函数空间为 \(\{0, 1\}^{|\mathcal{X}|}\)。举一个简单的例子,枚举所有情况,可以发现我们会有一半的情况下命中,所以得到:
继续化简,得到:

浙公网安备 33010602011771号