【西瓜书+南瓜书】task01: 第1、2章(2天)
第一章 绪论
主要符号表
下述这些符号在本书中将频繁的使用,务必牢记于心各个特殊符号所具有的的含义
🌟对上述部分定义做一下解释:
向量有维度,其中的元素是有序的
变量集是集合,集合中的元素是无序的
空间可以简单的理解为集合,假设空间是一个超集(全集)
全集的一部分被称为假设集,可以认为假设集是假设空间的一个子集
逗号分割:行向量
分号分割:列向量
**
1.1 引言
**
你会判断一个西瓜是否是一颗好瓜么?
如果你不知道,那么我告诉你一个好瓜的判断条件:色泽青绿、根蒂蜷缩、敲声浊响 的瓜就是一颗好瓜,这不是我信口开河,这是我们在生活中所总结出的经验;再比如我们通过往常的学习经验可以知道:如果你刻苦学习,弄清概念,做好作业就可以取得好成绩
不难看出,我们能做出有效的判断,是因为我们积累的经验。
机器学习就是如此一门学科,它致力于通过计算的手段,利用经验来改善 系统自身的性能。
计算机有经验么?有的!对于计算机而言,经验就是 数据
根据上述两点可以知道:机器学习就是通过 数据,产生 模型(model) 的算法,所谓 模型 泛指从数据中心学得的结果;产生 模型 的算法,即 学习算法。有了 学习算法,我们只需要给它数据经验,它可以基于这些数据产生模型,在以后面对一个新的西瓜,可以判断出它是好瓜还是坏瓜。
1.2 基本术语
💥枯燥且重要的知识来了:
我们给出几组关于西瓜的记录:
(色泽 = 青绿;根蒂 = 蜷缩;敲声 = 浊响)
(色泽 = 乌黑;根蒂 = 稍蜷;敲声 = 沉闷)
(色泽 = 浅白;根蒂 = 硬挺;敲声 = 清脆)
数据集(data set):上述记录的集合称为数据集,数据集亦被称为一个“样本”
示例(instance):每条记录称为一个示例
属性(attribute)/ 特征(feature):如 色泽,根蒂,敲声
属性值(attribute value):如 青绿 蜷缩 浊响
属性空间(attribute space)/ 样本空间(sample space)/ 输入空间(input space):属性所张成的空间
特征向量(feature vector):我们把上述属性:色泽,根蒂,敲声作为坐标轴,就可以构建出一个三维空间,每个西瓜在这个空间中都可以找到自己的坐标位置,由于该空间中的每个点都对应一个坐标向量,故我们也把一个示例称为:特征向量
一般地,令 D = {x1,x2,…,xm}【行向量】 表示含有 m 个示例的数据集,比如上述例子中就是含有3个示例的数据集,其中每个示例都是由 d 个属性所描述,比如上述例子中每个西瓜都有3个属性:色泽,根蒂,敲声,故对于每个示例我们可以表达为:xi = {xi1;xi2;…;xid}【列向量】,其中 d 称为样本 xi 的 维数(dimensionality)
学习(learning)/ 训练(training):从数据中获得模型
训练数据(training data):训练过程中使用的数据
训练样本(training sample):每个样本都被称为训练样本
训练集(training set):训练样本组成的集合
假设(hypothesis):学得模型对应了关于数据的某种潜在规律,故亦被称为假设
真相 / 真实(ground-truth):指这种潜在的规律的自身
学习器(leaner):就是模型,可看作学习算法在给定数据和参数空间上的实例化
假设就是模型,映射就是模型
假设要逼近真相
我们使用我们的数据集去构造一个假设并且我们希望这个假设是逼近真相的
假设并不唯一,比如我从北京到上海:我可以开车,高铁,飞机,步行;我们的目的是在一系列假设之中,按照相关的要求去选择一个“好”的假设
🌟还记得我们的 “初心” 么?判断一个瓜是否为好瓜,显然我们光有示例数据是远远不够的,我们还需要训练样本的结果信息来建立关于 预测(prediction) 的模型,例如:((色泽 = 青绿;根蒂 = 蜷缩;敲声 = 浊响),好瓜),在这里关于示例结果的信息:好瓜,被称为 标记(label) 拥有了标记信息的示例,则被称为 样例(example)
示例 + 标记 = 样例
一般地,用(xi,yi)表示第 i 个样例,其中 yi ∈ 𝓨 是示例 xi 的标记,𝓨 是所有标记的集合,亦被称为 标记空间(label space)/ 输出空间(output space)
(xi, yi):(向量,标量)
分类(classification):预测离散值如:好瓜坏瓜的学习任务
回归(regression):预测连续值如:西瓜的成熟度 0.95、0.37 的学习任务
yi是离散:分类
yi是连续:回归
对于只涉及两个类别的 二分类(binary classification) 任务,称其中的一个类为 正类(positive class),另一个类为 反类(negative class),亦被称为 反类
所谓二分类:就是判断是和不是:是否为好瓜,是否为三好学生
在定义“正类”和“反类”(负类)时,我们既可以把好瓜定义为“正类”也可以把好瓜定义为“反类”(负类),这里的正反仅仅是用来起到区分的作用,并不涉及好坏之差
涉及多个类别时,被称为 多分类(multi-class classification)
预测任务是希望通过对训练集{(x1,y1),(x2,y2),…,(xm,ym)} 进行学习,建立一个从输入空间 𝓧 到输出空间 𝓨 的映射 f :𝓧 → 𝓨 ,对于二分类的任务,我们通常令:𝓨 = {-1, +1} 或 {0, 1};对于多分类任务 |𝓨 | > 2;对于回归任务,𝓨 = R,R为实数集
测试(clustering):学得模型之后,使用其进行预测的过程
测试样本(testing sample):被预测的样本
例如,在学得 f 后,对测试例 x,可得到测试标记 y = f(x)
❗️ 注意:并不是所有的数据都有标签:yi 的,对于没有 yi 的数据,我们就不能对其进行探索了么?非也:我们可以对数据做“聚类”
聚类(clustering):将训练集中的西瓜分组
簇(cluster):分成的组,每组被称为一个簇
这些自动形成的簇可能对应一些潜在的概念划分,例如:“浅色瓜”,“深色瓜”;甚至“本地瓜”,“外地瓜”。这样的学习过程有助于我们了解数据的内在规律。在聚类学习中,“浅色瓜”,“深色瓜” 这样的概念是我们事先不知道的,而且在学习过程中使用的训练样本通常是不拥有标记信息的
根据训练数据 是否拥有标记信息 可分为:
监督学习(supervised learning)
无监督学习(unsupervised learning)
分类和回归是监督学习的代表
聚类是无监督学习的代表
⭐️机器学习的目标是使学得的模型能很好地适用于新样本,而不仅仅是在训练样本上工作的更好
泛化(generalization)能力:学得模型适用于新样本的能力
具有强泛化能力的模型能很好地适用于整个样本空间,于是,尽管训练集通常只是样本空间的一个很小的采样,我们仍希望它能够很好地反映出样本空间的特征。
通常假设样本空间中全体样本服从一个未知 分布(distribution)𝓓
我们获得的每个样本都是独立地从这个分布上采样获得的,即 独立同分布(independent and identically distributed,简称 i.i.d.)
一般来说,训练样本越多,我们得到的关于 𝓓 的信息越多,这样就越有可能通过学习获得具有 强泛化能力 的模型.
1.3 假设空间
科学推理的两大基本手段:归纳(induction),演绎(deduction)
所谓归纳,就是由特殊到一般的 泛化(generalization) 过程
所谓演绎,就是由一般到特殊的 特化(inductive learning) 过程
归纳学习:
广义:从样例中学习
狭义:从训练数据中学得 概念(concept),因此亦被称为 概念学习 或 概念形成
现实常用的技术大多是产生 黑箱 模型
概念学习中最基本的是布尔概念学习,即 是,不是 这样的可表示 0/1 布尔值的目标概念的学习
我们可以把学习过程看作是一个在所有假设组成的空间中进行搜索的过程,搜索目标则是找到与训练集 匹配(fit) 的假设;假设的表示一旦确定,假设空间及规模大小就确定了
可以有很多的策略对假设空间进行搜索,例如:自顶向下、从一般到特殊、自底向上、从特殊到一般,搜索过程中可以不断删除与正例不一致的假设、和(或)与反例一致的假设,最终将会获得与训练集一致(即堆所有训练样本能够进行正确判断)的假设。
1.4 归纳偏好
机器学习算法在学习过程中对某种类型假设的偏好,称为 归纳偏好(inductive bias),或简称为:偏好
任何一个有效的机器学习算法必有其归纳偏好,否则它将被假设空间中看似在训练集上“等效”的假设所迷惑,而无法产生确定的学习结果
还是拿西瓜举例子,判断一个好瓜,到底是 根蒂 重视还是对 敲声 更重视,这是对属性进行选择,被称为 特征选择(feature selection),机器学习中的特征选择仍是基于对训练样本的分析进行的,这里对某种属性的信赖可视为基于某种领域知识而产生的归纳偏好
归纳偏好可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或价值观
💥重点来喽:
奥卡姆剃刀(Ocam’s razor) 是一种常用的、自然科学研究中 最基本 的原则,即:如有多个假设与观察一直,则选最简单的那个。
然而,奥卡姆剃刀并非唯一可行的原则,奥卡姆剃刀本身存在不同的诠释,使用奥卡姆剃刀原则并不平凡,或者你可以理解为:在如何判断 简单 这个问题上,并不简单。
归纳偏好对应了学习算法本身做出的关于“什么样的模型更好”的假设,这个假设是否成立,即算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法是否能取得好的性能。
对于下图而言:
1.4 归纳偏好
机器学习算法在学习过程中对某种类型假设的偏好,称为 归纳偏好(inductive bias),或简称为:偏好
任何一个有效的机器学习算法必有其归纳偏好,否则它将被假设空间中看似在训练集上“等效”的假设所迷惑,而无法产生确定的学习结果
还是拿西瓜举例子,判断一个好瓜,到底是 根蒂 重视还是对 敲声 更重视,这是对属性进行选择,被称为 特征选择(feature selection),机器学习中的特征选择仍是基于对训练样本的分析进行的,这里对某种属性的信赖可视为基于某种领域知识而产生的归纳偏好
归纳偏好可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或价值观
💥重点来喽:
奥卡姆剃刀(Ocam’s razor) 是一种常用的、自然科学研究中 最基本 的原则,即:如有多个假设与观察一直,则选最简单的那个。
然而,奥卡姆剃刀并非唯一可行的原则,奥卡姆剃刀本身存在不同的诠释,使用奥卡姆剃刀原则并不平凡,或者你可以理解为:在如何判断 简单 这个问题上,并不简单。
归纳偏好对应了学习算法本身做出的关于“什么样的模型更好”的假设,这个假设是否成立,即算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法是否能取得好的性能。
对于下图而言:
对于两股曲线,你可以想当然的认为曲线A是更平滑的,即更简单的,我们期待 𝓛a 比 𝓛b 更好,确实,图(a)显示出,与 B 相比,A 与训练集外的样本更一致;换言之,A 的泛化能力比 B 强。
But !,对于图(b)而言,我们又可以直观的感受到 𝓛b 比 𝓛a 更好
换言之,对于一个学习算法 𝓛a,若它在某些问题上比 𝓛b 好,则必然存在另一些问题,在那里 𝓛b 比 𝓛a 好,我们接下来去证明它:
我们设样本空间𝓧,假设空间𝓗都是离散的,令 P(h|X, 𝓛a) 代表算法 𝓛a 基于训练数据 X 产生假设 h 的概率,再令 f 代表我们希望学习的真实目标函数 . 𝓛a 的“训练集外误差”,即 𝓛a 在训练集之外的所有样本上的误差为:
公式说明,首先两个求和符号的解释:我们最终的结果是 产生 h 的所有情况的和,并且我们的训练集外的样本空间为:𝓧 - X,要考虑所有情况故也需要求和,P(h|X, 𝓛a) 是基于训练数据产生假设 h 的概率,即对于每一个 h 都对应一个概率 P(h|X, 𝓛a) ,从训练集外所有的样本中挑选 𝔁 的概率为: P(𝔁) ,这时我们已经挑选了一个 𝔁 ,我们需要把 𝔁 分别带入到 h(𝔁) 和 f(𝔁) 中,去比较实际值和估计值是否相等,不相等运算结果为 P(𝔁) * 1 * P(h|X, 𝓛a) ,相等运算结果为 P(𝔁) * 0 * P(h|X, 𝓛a) ,最终按照前述求和即可。
接下来我们来考虑二分类问题:且真实目标函数可以是任何函数 𝓧 → {0,1},函数空间为{0,1}|𝓧|,对所有可能的 f 按 均匀分布 对误差求和,有:
公式说明:从公式的第一行到公式的第二行,就是把第一个公式进行带入的结果,然后从第二行到第三行,则是类似量词辖域收缩扩张公式的推导,从公式第三行到第四行,我们进行举例讲解:
首先我们需要知道此时假设 f 是任何能将样本映射到 {0,1}的函数,存在不止一个 f 时, f 服从 均匀分布 ,即对于每个 f 出现的概率都是相等的,假设我们的样本空间只有两个样本时, 𝓧 = {x1,x2},| 𝓧 | = 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;
一共有 2|𝓧| = 22 = 4 个可能的真实目标函数,所以此时通过算法 𝓛a 学习出来的模型 h(x) 对于每个样本无论预测值是 0 或是 1,都必然有且只有一半的 f 与它的预测值相等,
从最终得到的式子中我们可以发现:总误差与学习算法无关,训练集外误差仅和数据集本身,数据集取得集外数据xi的概率相关,和算法La无关 → 训练集外的误差和算法所构建的模型没有关系,故我们对于任意的两个学习算法 𝓛a 和 𝓛b,我们都有:
也就是说,无论学习算法 𝓛a 多么的聪明, 𝓛b 多么的笨拙,它们的期望值是始终相同的,这就是 “没有免费的午餐”定理(No Free Lunch Theorem),简称 NFL定理
❗️ NFL 定理有一个重要的前提:所有问题出现的机会相同或所有问题同等重要,即我们假设了f 服从 均匀分布 ,但是实际生活中并不是这样,很多时候,我们只关注自己正在试图解决的问题(例如某个具体应用任务),希望为它找到一个解决方案,至于这个解决方案在别的问题,甚至在相似的问题上是否为好方案,我们并不关心。就拿推导过程中的 f1 f2 f3 f4 举例,通常我们只认为能高度拟合已有样本数据的函数才是真实目标函数,例如,现在已有的样本数据为{(x1,0),(x2,1)},那么此时只有 f2 才是我们认为的真实目标函数,由于没有收集到或者根本不存在 {(x1,0),(x2,0)},{(x1,1),(x2,0)},{(x1,1),(x2,1)} 这类样本,所以 f1 f3 f4 都不算是真实的目标函数。
🌟 所以,NFL 定理最重要的寓意,是让我们认识到:脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有学习算法都一样好,要谈论算法的相对优劣,必须针对 具体 的学习问题,在某些问题上表现好的学习算法,在另一些问题上却可能不尽如人意,学习算法自身的归纳偏好与问题是否匹配,往往会起到决定性作用。
1.5 发展历程(机器学习)
推理期
连接主义(1950s)
符号主义(1960s)
知识期(1970s)
机器学习(1980s):符号主义
| 机械学习、示教学习+类比学习、归纳学习(监督or无监督)
决策树
BP算法
统计学习(1990s)
SVM
深度学习(2000s):连接主义
神经网络
第二章 模型评估与选择
2.1 经验误差与过拟合
经验误差与过拟合
经验误差(训练误差):学习器在训练集上的误差
泛化误差:在新样本上的误差
欠拟合:模型没有很好地捕捉到数据特征,不能够很好地拟合数据
过拟合:将数据学习得太彻底,把噪声数据的特征也学习了,不能很好地识别数据
2.2评估方法
2.2.1留出法
2.2.2 交叉验证法**
特例: 留一法leave-one-out (LOO) 往往比较准确,但未必永远最准确(NFL定理)
2.2.3自助法 bootstrapping
| 用于 :小数据集,难以划分训练、测试集上
2.2.4调参
训练集划分为:训练集+验证集,基于验证集的性能调参
实数范围内取值,对每个参数选定范围和步长
2.3 性能度量
有效可行的实验估计方法,衡量模型泛化能力的评价标准
混淆矩阵
二分类
P选尽可能对的,R选尽可能全的。P与R是矛盾的。P高则R低,P低则R高。
平衡点Break-Event Point (BEP) : P=R.
学习器C的BEP是0.64, B的是0.72,A是0.80,学习器A最优
将BEP优化一下,可以得到F1
多分类:
宏查准、宏查全、宏F1
| 分成N个二分类后 分别计算P\R\F1 然后求均值
微查准、微查全、微F1
| 分成N个二分类后 分别 求均值 然后算P\R\F1
2.3.3 ROC \ AUC
ROC : 直观的反应模型性能,但是难以比较不同模型的差异。
横轴(TPR)真正例率
TPR=TP/(TP+FN)
纵轴(FPR)假正例率
FPR=FP/(TN+FP)
AUC :ROC曲线的下方的面积求和而得, 考虑样本预测的排序质量,与排序误差有紧密联系。(南瓜书公式2.20)公式2.21