《机器学习(周志华)》 阅读笔记

来源:互联网 发布:ubuntu删除nvidia驱动 编辑:程序博客网 时间:2024/06/07 05:18

1 绪论

1.1 引言

(什么是机器学习:让计算机通过已有的经验进行学习,做出归纳和判断。)

1.2 基本术语

尽管训练样本集只是样本空间的一个很小的采样,我们仍然希望它能很好的反应出样本空间的特性,否则就很难期望在训练集上学得的模型能在整个样本空间上都工作很好。(因此,要想模型能够准确的预测未见过的样本,至少它需要见过和它很相似的样本!当然,迁移学习提供了另一种思路。)

通常假设样本空间中全体样本服从一个未知分布,我们获得的样本都是独立的从这个分布上采样获得的,即“独立同分布”。(一定要记住和理解这个假设!例如,在训练深度学习模型时,根据某种固定模式生成训练数据,如果不是随机取batch sample而是顺序取,会发现训练时每次迭代loss震荡很大,就是因为数据不是采样得到的,而是每个batch都代表着某种类型的数据)

1.3 假设空间

(假设空间很大就是说,与训练集一致的模型可以有很多种。)

1.4 归纳偏好

归纳偏好可看做学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或价值观。
“奥卡姆剃刀”是一种常用的、自然科学研究中最基本的原则,即“若有多个假设与观察一致,则选择最简单的那个”。然而,它并非唯一可行原则
NFL定理最重要是说,脱离具体问题,空泛的谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在问题,则所有学习算法都一样好。
学习算法自身的归纳偏好与问题是否相匹配,往往会起到决定性的作用。

1.5 发展历程

仅具有逻辑推理能力,是远远实现不了人工智能的。要使机器拥有智能,就必须设法使机器拥有知识。但是,由人来把知识总结出来,再教给计算机是相当困难的。(知识工程瓶颈)

个人小结

机器学习的Motivation是,希望计算机能辅助人类,利用经验做出决策。对计算机来说,经验是以数据的形式展现的。怎么利用数据呢?提出一个假设,要求这个假设能够对数据做出很好的归纳。然后问题来了,有多个假设符合要求怎么办呢?就需要我们有额外的偏好,最终选择最符合偏好的假设。

2 模型评估与选择

2.1 经验误差与过拟合

我们希望选择泛化误差最小的那个模型,但现实是我们无法直接获得泛化误差,因此我们需要一些方法来评估泛化误差。

2.2 评估方法

一般用验证集上的验证误差作为泛化误差的近似。验证集的划分有以下几种:
1 留出法 hold-out (除非样本数非常大,一般不可信)
2 交叉验证 (计算开销大,比较可信)
3 自助法 (数据集较小时有用)
模型参数确定后,需用所有数据重新训练一遍来得到最终模型。

2.5 偏差与方差

泛化误差可以理解为偏差、方差和噪音之和。
偏差刻画了算法本身的拟合能力,方差刻画了数据扰动所造成的影响,噪音刻画了学习问题本身的难度。

个人小结

如何选择不同的模型呢?我们需要一个评价指标。怎么得到这个指标呢?首先,因为我们需要最好的泛化误差,所以需要划分出一个测试数据集,在它上面测试得到评价指标。怎么划分这个数据集呢?有多种方法,不过它们都要注意的是,需要保持训练和测试集样本分布的一致性。然后,有多种指标可供选择,怎么选,根据问题的需求。得到了指标后,直接根据指标的大小选择对应的模型吗?更科学的方法是做比较检验。(不过我还没见人做过,应该是我见识短浅)。有了指标,选了模型就完了么?如果想进一步改进模型,就需要理解模型的泛化性差在什么地方。这时可用“偏差-方差分解”。

3 线性模型

3.1 基本形式

f(x) = Wx + b
W直观的表达了各属性在预测中的重要性,因此线性模型有很好的可解释性。(当模型不具有唯一解时,所谓很好的可解释可能并不满足吧。不同的解,可能得出矛盾的结论。并且,要想对W做比较,x必须都做归一化,否则无意义)

3.2 线性回归

线性回归试图学得:
f(xi) = Wxi + b, 使得f(xi) ~= yi
那么如何学得W和b呢?关键是在于如何衡量f(x)与y之间的差别。(注意这句话,如何衡量差别!不要根据生活中的思维习惯,认为两个数的差别,就是它们俩做减法。实际上,机器学习中如何衡量大有讲究,被称为loss function)
均方误差是回归分析中最常用的性能度量,它有非常好的几何意义,对应了欧氏距离。在线性回归任务中,最小化均方误差,就是试图找到一条直线,使所有样本到直线上的欧式距离最小。

3.3 对数几率回归 (逻辑回归)

线性模型如何做分类任务呢?(主要问题是f(x)是连续值,而分类标签是离散值)
只需要找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。

3.6 类别不均衡问题

指分类任务中,不同类别的样例数目差别很大。解决方法:“再缩放”,“代价敏感学习”。

6 支持向量机

6.1 间隔与支持向量

分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开。

6.3 核函数

若原始样本空间并不存在一个能正确划分两类样本的超平面,则可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间中线性可分。如果原始空间是有限维,那么一定存在一个高维特征空间使样本可分。
由于特征空间维数可能很高,甚至可能是无穷维,因此直接计算fi(Xi)*fi(Xj)通常是困难的。为了避开这个障碍,可以设想这样一个函数:
k(Xi, Xj) = fi(Xi)*fi(Xj)
即Xi与Xj在特征空间的内积等于它们在原始样本空间中通过函数K(,)计算的结果。这个方法称为核技巧。

11 特征选择与稀疏学习

11.1 子集搜索与评价

为什么要进行特征选择:
1 减轻维数灾难问题
2 降低学习任务的难度

13 半监督学习

13.1 未标记样本

主动学习:使用尽量少的查询,获得尽量好的性能。
半监督学习:让学习器不依赖外界交互、自动的利用未标记样本来提升学习性能。
要利用未标记样本,必然要做一些将未标记样本所揭示的数据分布信息与类别标记相联系的假设。最常见的假设有“聚类假设”和“流行假设”,这两种假设,本质上都是“相似的样本拥有相似的输出”。

1 0