1.绪论

1.1基本术语

机器学习:从经验数据,获得算法模型,推断新的样本。

另一本经典教材的作者Mitchell给出了一个形式化的定义,假设:

  • P:计算机程序在某任务类T上的性能。
  • T:计算机程序希望实现的任务类。
  • E:表示经验,即历史的数据集。

若该计算机程序通过利用经验E在任务T上获得了性能P的改善,则称该程序对E进行了学习。

数据集,训练集,测试集/验证集
实例/样本
特征,特征向量
特征数,维数,维数灾难
泛化能力:根据训练集训练出的模型在测试集的适用性。
机器学习根据预测值是是离散还是连续的,分为分类和回归。
根据是否有无标记(y),分为监督学习和无监督学习。
分类和回归属于监督学习,无监督学习包括局类和关联规则。

1.2假设空间

科学推理两大基本手段:归纳与演绎。
归纳是从一般到泛化,从具体事实到规律定理;
演绎则是归纳的逆过程,从规律定理,推理出具体情况。

归纳学习:从样例中学习,这是广义上的。狭义上,指从训练数据学得概念,因此也叫概念学习或概念形成。
目前研究和应用较少,因为很难。

概念学习,最基本的是布尔概念学习。即获得的目标概念是0/1,是或否这样的二元结果。

可以这样理解机器学习的学习过程。
在一个所有假设组成的空间,进行探索,探索目标是为了找到与训练集匹配的假设。
比如对于好瓜的判定,从瓜的色泽,根蒂,敲声3方面进行假设,每个属性有多种可能,排列组合后可确定假设空间。
注意要包括取不到值这种情况。比如色泽有3种颜色可选,则计算时要包括取不到颜色,用4来计算。
若色泽,根蒂,敲声分别有3,2,2种可能取值,则假设空间有433+1=37种。
1表示好瓜可能不存在。

1.3归纳偏好

归纳偏好,可看作是学习算法自身在一个可能很庞大的假设空间对假设进行选择的启发式或价值观。
算法正确性的偏好:
奥卡姆剃刀:多有多个假设与观察一致,则选择最简单的那个。
奥卡姆不是唯一可行的,而且对最简单的判断,也存在讨论空间。

NFL没有免费的午餐定理:所有问题出现机会相同,所有问题同等重要,不同学习算法的期望相同。
实际情况下,问题的分布并不均匀,我们所关注的,也仅是个别的1个或几个问题。
NFL告诉我们:脱离具体问题,空谈什么算法更好毫无意义;因为若考虑所有潜在问题,则所有学习算法都一样好。
公式证明:
image.png
要谈论算法的相对优劣,必须针对具体的学习问题。
在某些问题上表现好的学习算法,在另一些问题上可能不尽如意。

1.4发展历程

机器学习是人工智能研究发展到一定阶段的产物。
人工智能研究时期:

  • 推理期:20世纪50年代~70年代初。认为赋予机器逻辑推理能力,机器就具有智能。

成就:逻辑理论家程序,通用问题求解程序。

  • 知识期:20世纪70年代中期开始,机器具有智能,需要拥有知识。

成就:专家系统问世。
专家系统面临瓶颈,因为需要人总结知识,再教给机器。于是希望机器自己学习。

  • 连接主义:20世纪50年代中后期,基于神经网络的连接主义学习出现。

在对解决流动推销员问题(np)难题取得进展后,开始被关注。
产生黑箱模型。最大局限是是错行,过程涉及大量参数,参数设置缺乏理论指导,需要手动调参。(看运气)
成就:感知机,adaline,新的bp算法

  • 符号主义:20世纪6,70年代,基于逻辑表示的符号主义。

成就:结构学习系统,基于逻辑的归纳学习系统,概念学习系统,决策理论,强化学习技术,统计学系理论

  • 机器学习

出现:20世纪50年代初,出现机器学习相关研究。比如跳棋程序。
成为独立学科领域:20世纪80年代

机器学习划分:
从样例中学习,在问题求解和规划中学习,通过观察和发现学习,从指令中学习等;
机械学习(死记硬背式学习),示教学习(从指令中学习),类比学习(通过观察和发现学习),归纳学习(从样例中学习)

20世纪80年代以来,研究和应用最广的,是从样例中学习,也就是归纳学习。
监督学习和无监督学习,就属于该范畴。

归纳学习:
一大主流是符号主义学习,包括决策树和基于逻辑的学习。
典型决策树学习以信息论为基础,以信息熵的最小化为目标,直接模拟人类对概念进行判断的树形流程。
基于逻辑的学习的著名代表是归纳逻辑程序设计(ILP),可看作机器学习与逻辑程序设计的交叉。
使用一阶逻辑,即谓词逻辑来进行知识表示,通过修改和扩充逻辑表达式来完成对数据的归纳。
ILP具有很强的知识表示能力,可以较容易地表达出复杂数据关系,并且领域知识可方便地通过逻辑表达式进行描述。
ILP可利用领域知识辅助学习,还可通过学习对领域知识进行精化和增强。
但由于表示能力太强,学习过程假设空间过大,复杂度极高,因此问题规模稍大就难以有效学习。

  • 统计学习:20世纪90年代中期

成就:支持向量机(svm),核方法

  • 深度学习:21世纪初,很多层的神经网络。

成就:语音,图像的应用。参数很多,手动调参,缺乏理论基础,但应用门槛降低。有赖于计算能力的发展与提升。

1.5应用现状

多媒体,图形学,网络通信,软件工程,体系结构,芯片设计。
为交叉学科提供技术支撑,如生物信息学,利用信息技术研究生命现象和规律。
数据科学:从数据分析中获取价值。
奥巴马大选获选,麾下机器学习团队,功不可没。
利用机器学习研究,理解人类如何学习。sdm模型。

2.模型评估与选择

2.1经验误差与过拟合

误差:对样本的预测与真实值的差异,成为误差。
在训练集上的误差,称为训练误差/经验误差。
在测试集上误差,称为测试误差。
在所有新样本误差,称为泛化误差。
机器学习的目的,在于获得一个泛化误差尽可能小的模型。

误差没法避免,只能减小。

过拟合:训练误差小,测试误差大。学习过程,没有排除所有不相关特征。
欠拟合:训练误差,测试误差都大。解决方法可通过增加迭代次数。

2.2评估方法

机器学习在于获得泛化误差尽可能小的模型,但泛化误差无法直接获得,因此将对测试集的测试误差,近似为泛化误差,
通过最小化测试误差,来评估模型的优劣。
测试集应与训练集互斥,测试集是为了测试模型的举一反三能力,如果训练集包括在测试集里,则没有意义。

将数据集划分为训练集和测试集,可通过以下方法:
(1)留出法:根据数据集的分布情况,做分层抽样,取样本的2/3~4/5作为训练集,余下为测试集。
多次随机划分,重复取平均值。
比如二分机器学习,样本整体分布为7:3,则训练集和测试集的分布也要是7:3。
(2)交叉验证法
也叫k折交叉验证。
在保证数据分布一致前提下,分层抽样。
将数据集k等分,取k-1个子集为训练集,剩下的1个为测试集。于是测试集就有k种选择。最终取k次测试结果的平均值。
当k为1时,也叫留一法。虽然评估准确性可能提高,但如果数据量大,计算消耗也大。
(3)自助法
为了避免以上两种方法中,因为训练样本规模不同导致的估计偏差,引入自助法。

估计偏差: 在> 统计学> 中,> 估计误差> 是此估计量的> 期望值> 与估计参数的> 真值> 之差> 定义:image.png 自助法方法:从m个样本的数据集中,每次有放回地取1个样本出来,取m次时,取出的样本构成一个m个样本的新数据集。
新数据集可能存在同一个样本被多次取出,1个样本始终不被取出的概率极限为:
image.png
于是可认为,原始数据集中约有36.8%的样本没出现在新数据集中,因此将新数据集作为训练集(注意有重复的数据,也是36.8%),36.8%的数据作为测试集。
然而该法改变了原始数据集分布,引入估计偏差。在数据集较小,难以有效划分训练集/测试集时可采用。

调参:
对算法中变量,根据数据集,进行调节,获得具体的模型。该模型中参数为确定值。
比如y=kx+b是算法,调参就是为了获得具体的k和b的值。
算法的参数数量不固定,通常是在实数范围内,根据步长来取值。

每次调参,需要重新训练数据,测试数据。

2.3性能度量

评估机器学习泛化性能:用测试集的测试误差作为泛化误差的近似。
测试误差如何计算,就是性能度量。包括均方差,错误率等。
性能度量:衡量模型泛化能力的评价标准。

常见性能度量:

2.3.1均方误差

  • 回归任务,预测连续值问题,常用均方误差。采用MSE作为评价函数。

image.png

2.3.2错误率和精度

适用于分类任务,即预测离散值的问题,常用错误率和精度。
错误率:分类错误样本数占总样本数比例。
精度:分类正确样本数占样本总数比例。
两者和为1。
image.png
image.png

2.3.3查准率,查全率,F1

在而分类问题中,根据真实情况与预测结果,得到混淆矩阵:
image.png

查准率与查全率通常呈负相关。一个高,另一个往往低了。

将查全率作为x轴,查准率作为y轴,获得查准率-查全率曲线图,也即P-R曲线。
image.png
从该曲线可得出:A,B,C为3个学习器

  • 曲线A完全包住曲线C,因此学习器A的学习性能优于学习器C
  • 曲线A和曲线B发生了交叉,无法一般性断言两个学习器优劣,因此可以通过比较曲线覆盖的面积大小来比较。

但这个面积值不好算,因此又通过一个度量,即平衡点(BEP)来度量。
平衡点,表示的是查准率=查全率时的取值。
学习器C的BEP是0.64,由于A的平衡点大于B,所以认为学习器A的性能高于B。
BEP依然过于简化,更常用的是F1度量。
image.png
image.png
image.png
实际情况中,对查全率和查准率偏好不同,
比如商品推荐中,希望推荐的内容是用户感兴趣的,重视查准率;
逃犯信息检索系统中,希望尽可能减少罪犯,更重视查全率。

多分类问题中,查全率和查准率的计算:
方法1:先在各混淆矩阵分别计算查准率和查全率,再计算平均值,得到宏查准率等。
image.png
方法2:先将混淆矩阵对应元素进行平均,得到TP,FP,TN,FN的平均值,再基于平均值计算微查准率,微查全率,微f1
image.png

2.3.4ROC与AUC

roc:受试者工作特征。源于二战中敌机检测的雷达信号分析技术,之后也用于心理学和医学检测应用,后背引入机器学习领域。
根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要的值。分别以它们为横纵坐标作图,得到roc曲线。
纵轴表示:真正例率(TPR)
横轴表示:假正例率(FPR)
image.png
根据ROC判断学习器优劣,若曲线a能够完全包住曲线b,则学习器a优于b;
若曲线间存在交叉,则根据曲线下面积,即AUC来比较。
image.png

2.3.5代价敏感错误率与代价曲线

对数据的判断错误,造成的影响不同。
如将健康诊断为患病的影响,低于将患病诊断为健康。
用非均等代价,来衡量不同类型错误造成的不同损失。

错误的代价不同,则意味着在评判模型好坏时,不能单纯考虑错误率(默认均等代价),而要考虑错误的总体代价。
image.pngimage.png
利用代价曲线来反映学习器的期望总体代价。
image.png
image.png

2.4比较检验

多个学习器的性能度量结果比较:就是比较检验。
机器学习性能比较,比较的是学习器的泛化能力,前面用测试集的测试误差近似替代。
但实际上可能更复杂。
因为:测试集性能未必等于泛化性能;测试集性能与测试集选择有关,不同大小,不同样本,均会带来不同结果;机器学习算法的随机性,导致相同设置,测试集上多次运行结果依然会产生不同。
引入统计假设检验。基于假设检验结果,若在测试集上观察到学习器a比b好,则a的泛化能力是否在统计意义上优于b,以及该结论把握有多大。

2种基本假设检验
假设检验中的假设,是对学习器泛化错误率分布的某种判断或才想,实际中只能获得测试错误率,泛化错误率与测试错误率不一定等同;但二者近似可能性较大,因此根据测试错误率推出泛化错误率的分布。注意这里是分布。

机器学习性能比较方法

2.5偏差与方差

解释学习器泛化性能,即为什么具有这样的性能。
是对学习算法的期望泛化错误率进行拆解。