本文参考了周志华老师的《机器学习》(俗称“西瓜书”)。这里是**第一章“绪论”**的阅读笔记。本文整理了相关知识点,并且记录了我在阅读时的一些疑惑和思考,当然也有我自己的尝试性解答。
希望这份笔记对你有帮助🌟
1.什么是机器学习
机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能。
1.1 机器学习的定义与本质
- 机器学习是让计算机通过数据学习并改善自身性能,而不是通过明确的指令编程。
- 数据 → 学习算法 → 模型 → 推断与应用:这是机器学习的核心流程。
1.2 数据、模型、算法的关系
-
数据(Experience)
- 数据是机器学习的“燃料”。它可以是图片、文字、音频、数值等。
- 数据通常需要清洗与预处理,例如去除异常值或填补缺失值。
-
模型(Model)
- 模型是数据与学习算法的产物,它是机器学习的核心结果。
- 模型的本质:它是一个函数 (f(x)),能从输入 (x)(数据特征)预测输出 (y)(目标值)。
- 不同模型适用于不同问题:
- 回归问题:线性回归模型。
- 分类问题:逻辑回归、支持向量机等。
- 生成问题:生成对抗网络(GAN)。
-
算法(Learning Algorithm)
- 算法是从数据中学习模型的工具。例如,梯度下降算法通过不断调整模型参数,使其预测误差最小化。
1.3 机器学习的类别
机器学习根据数据特征和学习目标分为以下三类:
-
监督学习(Supervised Learning)
- 数据包含输入和对应的正确输出(标注数据)。模型从这些数据中学习规则。
- 例子:
- 输入:图片;输出:是否含有猫(分类)。
- 输入:房屋面积;输出:房价(回归)。
-
无监督学习(Unsupervised Learning)
- 数据没有明确的输出,目标是发现数据的结构或规律。
- 例子:
- 聚类:把相似的图片分为一组。
- 降维:将高维数据映射到低维空间。
-
强化学习(Reinforcement Learning)
- 模型通过与环境的交互学习策略,目标是最大化长期回报。
- 例子:
- AlphaGo 学习下棋。
- 机器人学习控制。
1.4 思考:学习算法如何定义“学习”
-
机器是否真正“理解”了数据?
机器学习模型的表现取决于数据的质量和学习算法的能力。但模型本质上只是寻找输入与输出的数学关系,它并不能“理解”数据的语义。 -
学习的衡量标准:
学习是否成功的标准是模型在新数据上的表现(即泛化能力)。
2.基础术语
在机器学习中,数据和模型是核心。以下是书上涉及到的主要术语解析和补充案例:
1. 数据相关术语
-
数据集 (Dataset)
- 定义:由多条数据记录组成,每条记录描述一个对象或事件。
- 例子:
一个水果的“数据集”可能包括以下记录:
{“颜色”: “红色”, “大小”: “大”, “重量”: “重”}
{“颜色”: “黄色”, “大小”: “中”, “重量”: “轻”}
-
样本 (Sample) 或示例 (Instance)
- 定义:数据集中每一条数据记录称为“样本”。
- 例子:
一条示例可能是:{“颜色”: “绿色”, “大小”: “小”, “重量”: “中”}。
-
属性 (Attribute) 或特征 (Feature)
- 定义:描述样本的某一方面的性质或属性。
- 例子:
在水果的数据中,“颜色”、“大小”和“重量”就是属性。
-
属性空间 (Attribute Space)
- 定义:所有属性的组合构成了属性空间,每个样本可视为属性空间中的一个点。
- 例子:
如果有 3 个属性:颜色、大小、重量,属性空间是一个三维空间。
-
特征向量 (Feature Vector)
- 定义:一个样本在属性空间中的坐标。
- 例子:
对于示例 {“颜色”: “红色”, “大小”: “中”, “重量”: “重”},假设我们用数值化的方法编码,特征向量可能是 [1, 2, 3]。
2. 训练与学习相关术语
-
训练集 (Training Set)
- 定义:用于训练模型的数据集。
- 例子:
包括水果的颜色、大小和重量等信息以及其类别(label)(例如“苹果”或“橙子”)。
-
假设 (Hypothesis)
- 定义:模型学习到的潜在规则。
- 例子:
假设“如果颜色是红色,大小是中等,重量是重的,那么是苹果”。
-
模型 (Model)
- 定义:训练过程生成的用于预测新数据的工具。
- 例子:
决策树、支持向量机等机器学习算法生成的结构。
-
标签/类别 (Label)
- 定义:样本对应的目标值。
- 例子:
对于样本 {“颜色”: “黄色”, “大小”: “大”},标签可以是“香蕉”。
-
测试集 (Testing Set)
- 定义:用于评估模型性能的独立数据集。
- 例子:
包含水果特征的数据,但没有用于训练模型。
-
泛化能力 (Generalization)
- 定义:模型对未见数据的预测能力。
- 例子:
如果模型在测试集上准确率高,说明其泛化能力强。
3. 不同的机器学习任务
-
分类 (Classification)
- 定义:预测数据所属的类别。
- 例子:
输入图片,输出是“猫”或“狗”。
-
回归 (Regression)
- 定义:预测一个连续值。
- 例子:
输入房屋面积,输出房价。
-
聚类 (Clustering)
- 定义:将数据分成若干组,每组包含相似的样本。
- 例子:
根据购物习惯将顾客分为不同群体。
-
监督学习 (Supervised Learning)
- 定义:数据有明确的输入和输出。
- 例子:
用带有标签的水果数据训练分类器。
-
无监督学习 (Unsupervised Learning)
- 定义:数据没有明确的输出。
- 例子:
用聚类算法自动分组水果。
4. 常见分布假设
- 独立同分布 (IID)
- 定义:训练样本和测试样本服从同一分布,并且样本之间相互独立。
- 例子:
水果数据中的每个样本都是独立的,不互相影响。
总结表格
术语 | 定义 | 例子 |
---|---|---|
数据集 | 一组记录的集合 | 包括水果颜色、大小和重量的数据集 |
样本/示例 | 数据集中的一条记录 | {“颜色”: “黄色”, “大小”: “大”} |
属性/特征 | 样本的某一方面的性质 | “颜色”、 “大小”、 “重量” |
特征向量 | 样本在属性空间中的坐标 | [1, 2, 3](编码后的属性值) |
训练集 | 用于训练模型的数据集 | 包括水果特征和其类别 |
假设 | 模型学到的潜在规则 | “红色且重的水果是苹果” |
测试集 | 用于评估模型的数据集 | 独立于训练集的水果数据 |
分类 | 预测类别 | 输出“苹果”或“橙子” |
回归 | 预测连续值 | 输出房价 |
聚类 | 自动分组数据 | 将顾客分为“高消费”和“低消费”群体 |
独立同分布 | 数据样本独立,且来源于同一分布 | 数据集中的每条记录独立,来源一致 |
3.假设空间
归纳和演绎是科学推理的两大手段,前者是从特殊到一般的泛化,后者是从一般到特殊的特化。
1. 什么是假设空间?
假设空间是机器学习中核心的理论概念之一,它指的是模型在学习过程中所有可能的假设集合,用于解释训练数据中的规律。简单来说,假设空间定义了模型可以选择的潜在规则的范围。
在西瓜问题中(详细见西瓜书),假设空间是所有可能的属性组合,例如:
$$ \text{色泽=青绿}, \text{根蒂=蜷缩}, \text{敲声=浊响} $$
$$ \text{色泽=青绿}, \text{根蒂=蜷缩}, \text{敲声=浊响或沉闷} $$
假设空间的重要性在于,它限制了模型的搜索范围,同时也决定了模型的能力与表现。
假设空间太大,可能会导致学习效率低下;假设空间太小,可能会限制模型的表达能力。
2. 广义假设与狭义假设
假设空间可以分为广义假设和狭义假设:
-
广义假设
- 它的特点是包容性较强,对数据的要求较少。例如,在西瓜问题中,广义假设可以是“色泽为青绿的西瓜都是好瓜”,无论根蒂和敲声是什么。
- 优点:更容易匹配新的样本,泛化能力较强。
- 缺点:可能包含错误假设,导致准确率下降。
-
狭义假设
- 它的特点是限制性较强,对数据的约束条件更多。例如,假设“色泽为青绿且根蒂为蜷缩且敲声为浊响的西瓜是好瓜”。
- 优点:更加精确地匹配已知数据。
- 缺点:对未见数据的泛化能力较差。
思考:
广义假设和狭义假设之间的选择类似于机器学习中**“偏差-方差权衡”**的概念。狭义假设偏向于减少训练误差,但容易过拟合;广义假设偏向于提高泛化能力,但可能欠拟合。
3. 假设空间的搜索
机器学习的学习过程可以看作是在假设空间中搜索一个与训练数据一致的假设。这种搜索过程分为以下几步:
- 假设空间的构建
- 假设空间是由属性的所有可能取值的组合形成的。例如,在西瓜问题中:
- 色泽:青绿、乌黑、浅白;
- 根蒂:蜷缩、稍蜷、硬挺;
- 敲声:浊响、沉闷、清脆。
假设空间的大小为:
- 假设空间是由属性的所有可能取值的组合形成的。例如,在西瓜问题中:
$$ 3 \times 3 \times 3 = 27 $$
- 版本空间 (Version Space)
- 在训练数据的约束下,假设空间会被逐步缩小,最终形成版本空间。
- 版本空间就是所有与训练数据一致的假设集合。例如,在西瓜例子中,训练数据可能缩小假设空间,使得只有以下假设满足条件:
- 1:
$$ \text{色泽=青绿}, \text{根蒂=蜷缩}, \text{敲声=浊响} $$
- 2:
$$ \text{色泽=青绿}, \text{根蒂=蜷缩}, \text{敲声=*} $$
- 假设的选择策略
- 自顶向下搜索:从广义假设开始,不断增加约束。
- 自底向上搜索:从狭义假设开始,不断放宽约束。
思考:
版本空间的概念与模型的复杂性控制密切相关。如果训练数据不足,可能会出现多个假设同时满足条件,这就需要选择“最优假设”。在实际应用中,我们通常使用正则化或交叉验证等技术选择模型。
4. 假设空间的实际意义
-
泛化能力的体现
假设空间中,假设越复杂,模型的泛化能力可能越差。一个好的假设空间设计需要在复杂度与泛化能力之间找到平衡。例如,在西瓜问题中:- 假设“色泽=青绿”的泛化能力较好;
- 假设“色泽=青绿、根蒂=蜷缩、敲声=浊响”的泛化能力较差。
-
搜索效率的优化
- 假设空间过大时,搜索效率会显著降低。这时,可以使用启发式方法(如决策树剪枝或随机森林中的特征选择)来缩小搜索范围。
-
对偏差的控制
- 如果假设空间过于狭窄,模型可能无法学到训练数据的规律(高偏差问题)。
- 如果假设空间过于广泛,模型可能会过拟合(高方差问题)。
总结表格
术语 | 定义 | 例子 |
---|---|---|
假设空间 (Hypothesis Space) | 所有可能假设的集合 | 西瓜问题中的所有属性组合形成的假设空间。 |
广义假设 | 假设条件较宽松,适用于更多样本 | “色泽=青绿的西瓜都是好瓜”。 |
狭义假设 | 假设条件严格,精确匹配训练数据 | “色泽=青绿且根蒂=蜷缩且敲声=浊响的西瓜是好瓜”。 |
版本空间 (Version Space) | 所有与训练数据一致的假设集合 | 经过训练数据筛选后的假设。 |
自顶向下搜索 | 从广义假设开始,不断增加约束 | 逐步从“色泽=*”收敛到“色泽=青绿”。 |
自底向上搜索 | 从狭义假设开始,不断放宽约束 | 从“色泽=青绿,根蒂=蜷缩,敲声=浊响”放宽到“色泽=青绿”。 |
泛化能力 | 模型对未见数据的预测能力 | 选择较广的假设有助于泛化能力,但可能牺牲准确率。 |
4.归纳偏好
归纳偏好是机器学习算法用来选择假设的一种“偏向”,它帮助算法从多个符合训练数据的假设中挑选一个更优的假设。
这个选择往往基于一些事先定义的规则或经验,比如“更简单的假设通常更好”。这种偏好是机器学习算法在有限数据下做出推断的关键因素。
1. 为什么需要归纳偏好?
-
训练数据不足
在实际问题中,训练数据往往是有限的,可能无法完全覆盖所有情况。这时,就会出现多个假设都与训练数据一致的情况。例如:- 假设 A:所有青绿色的西瓜是好瓜。
- 假设 B:所有青绿色且根蒂蜷缩且敲声浊响的西瓜是好瓜。
训练数据不足以告诉我们 A 和 B 哪个更好,而归纳偏好能为我们提供一种“选择策略”。
-
假设空间过大
假设空间可能包含非常多的假设,遍历所有假设是不现实的。归纳偏好通过对假设的倾向,缩小了搜索范围。 -
泛化能力的提升
归纳偏好使得算法不仅在训练数据上表现良好,还能在未见数据上表现更好(即提高泛化能力)。
2. 归纳偏好的实际表现
归纳偏好常常表现为一种偏向性选择,以下是一些典型的归纳偏好:
-
奥卡姆剃刀原则
- 偏好简单的假设。
- 例如:如果假设 A 和假设 B 都能解释训练数据,选择逻辑更简单的 A。
- 直观理解:更简单的假设不容易过拟合,更可能适用于未见数据。
-
平滑优先原则
- 偏好平滑的函数或模型。
- 例如:在回归任务中,偏向于选择一条平滑的直线,而不是一条波动剧烈的曲线。
- 直观理解:平滑模型通常意味着泛化能力更强,而剧烈波动的模型可能仅仅是对训练数据的过拟合。
-
概率优先原则
- 偏好具有较高先验概率的假设。
- 例如:在贝叶斯学习中,归纳偏好可以通过先验分布(Prior Distribution)来体现,先验概率较高的假设更容易被选择。
3. 归纳偏好的作用
-
选择最优假设
- 在训练数据不足时,多个假设都可能与数据一致,而归纳偏好帮助算法选择一个“更合理”的假设。
- 例子:在水果分类问题中,归纳偏好可能倾向于选择“青绿色的水果是苹果”,而不是“青绿色且重量大于200克的水果是苹果”,因为前者更简单。
-
提升泛化能力
- 归纳偏好让模型在训练数据有限的情况下,仍然可以对未见数据进行合理预测。
- 例子:如果模型偏向选择简单的线性关系,而不是复杂的高次多项式关系,那么它可能在测试数据上表现更好。
-
限制搜索范围
- 假设空间可能非常庞大,归纳偏好通过选择性地关注部分假设,显著减少了搜索复杂度。
- 例子:在逻辑推理中,归纳偏好可以通过减少条件数,快速找到符合训练数据的假设。
4. 奥卡姆剃刀的直观解释
奥卡姆剃刀原则是归纳偏好中最常见的一种规则。它的核心思想是:
- 如果多个假设都能解释数据,应优先选择最简单的假设。
为什么选择简单的假设?
-
简单假设泛化能力强:
简单假设通常不容易过拟合训练数据,因此在未见数据上表现更好。- 例子:在直线拟合问题中,选择一条平滑的直线往往比选择复杂的高次多项式更可靠。
-
简单假设更容易理解:
简单的规则往往更直观、更容易被人类理解和验证。- 例子:在逻辑回归中,选择“青绿色的水果是苹果”比选择“青绿色且重量大于200克且表面光滑的水果是苹果”更符合直觉。
-
复杂假设可能过拟合:
复杂假设虽然在训练数据上表现优秀,但可能只是“记住”了训练数据的细节,而不能有效泛化。
5. 没有免费的午餐定理(NFL 定理)
NFL 定理指出:
- 在所有可能的问题上,任何学习算法的平均表现是相同的。
这意味着,没有一种归纳偏好可以在所有问题上都表现优异。因此:
-
归纳偏好必须针对特定问题:
归纳偏好需要根据问题的特点进行设计。例如:- 对于简单问题,偏向于简单模型。
- 对于复杂问题,可能需要更复杂的模型。
-
避免过度依赖归纳偏好:
NFL 定理提醒我们,归纳偏好并非万能。它能帮助算法选择假设,但不能保证在每个问题上都表现最好。
6. 一个直观的例子:西瓜分类问题
假设我们有以下训练数据:
色泽 | 根蒂 | 敲声 | 好瓜? |
---|---|---|---|
青绿 | 蜷缩 | 浊响 | 是 |
浅白 | 硬挺 | 清脆 | 否 |
训练数据不足以完全约束假设空间,我们可能得到两个假设:
- 假设 A:
$$ \text{色泽} = \text{青绿} \land \text{根蒂} = \text{蜷缩} $$
- 假设 B:
$$ \text{色泽=青绿} \land \text{根蒂=蜷缩} \land \text{敲声=浊响} $$
归纳偏好如何影响选择?
- 如果算法偏向简单假设,它会选择 A。
- 如果算法偏向复杂假设,它会选择 B。
结果:
- 如果测试数据包含“色泽=青绿但敲声=沉闷”的西瓜,选择 A 的模型可能预测正确,而选择 B 的模型可能会过拟合训练数据,预测错误。
5.头脑风暴
1. 版本空间是否总能收敛到唯一假设?
问题:在训练数据有限的情况下,版本空间是否一定能收敛到唯一假设?如果版本空间中始终有多个假设,我们应该如何选择?
解答:
- 版本空间的收敛性取决于训练数据的丰富程度:
- 如果训练数据足够覆盖问题的全部可能性,那么版本空间会收敛到唯一假设。
- 但如果训练数据不足,版本空间可能包含多个假设,这就是“归纳偏好”发挥作用的场景。
- 解决方法:
- 引入先验知识:通过归纳偏好选择版本空间中更简单或更符合常识的假设。
- 获取更多数据:通过扩大训练集,进一步缩小版本空间。
- 引入正则化:通过惩罚复杂假设(例如 L1、L2 正则化)来引导模型选择更简单的假设。
2. 1. 广义假设和狭义假设之间的选择类似于“偏差-方差权衡”的关系
问题解释
广义假设和狭义假设的选择确实可以类比为“偏差-方差权衡”的问题:
- 广义假设:偏向简单的规则,包含较少的条件限制,更容易泛化,但可能欠拟合(偏差大)。
- 狭义假设:偏向复杂的规则,包含更多的条件限制,可以更好地拟合训练数据,但容易过拟合(方差大)。
解答
“偏差-方差权衡”是机器学习中选择模型复杂度的核心问题,这里进行类比分析:
-
广义假设(类似于高偏差)
- 特点:广义假设对训练数据的拟合能力较低(可能会遗漏某些规律),但在测试数据上表现更稳定。
- 风险:可能会忽略训练数据中的细节(欠拟合),导致模型无法充分学习数据的潜在规律。
- 适用场景:适合简单问题或训练数据不足的情况。例如,在训练样本数量很少时,广义假设可以减少过拟合的风险。
-
狭义假设(类似于高方差)
- 特点:狭义假设对训练数据的拟合能力很强(可以记住所有细节),但可能在测试数据上表现不佳。
- 风险:容易受到训练数据中的噪声影响(过拟合),导致泛化能力下降。
- 适用场景:适合数据量充足且问题复杂的情况,例如深度学习中的大规模训练数据场景。
-
权衡的实现
- 通过引入正则化(如 L1/L2)、交叉验证或其他泛化技术,可以在广义假设和狭义假设之间找到一个平衡点。
- 选择广义还是狭义假设取决于具体问题:
- 如果我们希望泛化能力强,可以优先选择广义假设(偏向简单模型)。
- 如果我们希望拟合能力强,可以优先选择狭义假设(偏向复杂模型)。
3.没有最好的模型,只有最好的选择
1. NFL 定理的本质
NFL 定理告诉我们:
-
模型性能取决于问题和数据的特性。
不同的问题需要不同的模型,没有“放之四海而皆准”的最佳模型。
比如线性模型在线性数据上表现优异,但在非线性问题上会失败。而深度学习在大规模非结构化数据(如图像、文本)上表现突出,但在小数据集场景下可能表现不佳。 -
模型选择只是问题的一部分。
在大多数实际场景中,模型的选择远远没有数据处理和任务理解重要。
2. 数据处理是机器学习的核心
数据是机器学习的“燃料”。再好的模型也需要高质量的数据作为基础。
垃圾进,垃圾出(Garbage In, Garbage Out)
- 如果数据本身有噪声或不完整,模型很难学到有用的规律。
- 案例:在信用卡欺诈检测中,如果训练数据中欺诈样本的标签有错误(例如标记为非欺诈),再好的模型都会学到错误的规则。
特征工程是提升性能的关键
- 机器学习的本质是学习输入特征与目标之间的映射关系。
- 数据预处理和特征工程直接影响模型的性能:
- 数据清洗(去除异常值和缺失值)。
- 数据转换(标准化、归一化)。
- 特征提取(如将文本转换为词向量)。
- 案例:在图像分类中,数据增强(如旋转、裁剪、翻转)可以显著提升深度学习模型的泛化能力。
数据的重要性甚至优于模型
- 深度学习的崛起本质上是数据量爆炸的结果。如果没有足够的数据,深度学习模型将无法超越简单模型。
- 案例:在一个小数据集上,逻辑回归可能表现比深度神经网络更好,因为它对数据需求更少。
** 为什么“最好的模型”并不重要?**
-
模型性能依赖于数据
再强大的模型,如果没有合适的数据,其性能都会受到限制。模型选择本质上是对假设空间的探索,而假设空间的好坏更多取决于数据的质量。 -
简单模型往往足够好
- 在许多场景下,简单模型(如线性回归、决策树)可以提供接近于复杂模型的性能,尤其是在数据有限或任务简单的情况下。
- 复杂模型可能带来边际收益,但同时需要更高的计算资源和调参成本。
-
模型不是学习的终点
- 学习算法只是整个机器学习管道的一部分:数据收集 → 数据清洗 → 特征工程 → 模型训练 → 模型部署。
- 实际中,数据处理和模型调优对最终效果的贡献可能远远超过模型选择本身。
思考
-
优先关注数据质量
- 清洗和增强数据比盲目选择复杂模型更有用。例如,在分类问题中,解决类别不平衡(如过采样或欠采样)可能比尝试各种模型更有效。
-
匹配问题需求而非盲目追求复杂模型
- 模型选择应服务于问题背景。例如:
对实时性要求高的任务,选择简单、快速的模型。对准确性要求极高的任务,可以选择复杂模型,但同时需要丰富的数据和资源支持。
- 模型选择应服务于问题背景。例如:
-
利用归纳偏好指导模型设计
在选择模型时,思考任务的特性(如局部性、时间依赖性)和先验知识如何帮助学习更高效。
6.文章参考
- 《机器学习(西瓜书)》
- 部分LaTeX 公式借助了AI的帮助