1、什么是机器学习:通过算法使得机器能从大量数据中学习规律从而对新的样本做决策。(相当于构建一个映射函数)
2、常见的机器学习问题:回归(线性拟合)、分类、聚类(多分类)
3、机器学习研究的主要内容:
在计算机上从数据中产生 “ 模型 ”的算法,即 “ 学习算法”, 我们把经验数据提供给它,它就能基于这些数据产生模型;在面对新的情况时,模型会给我们提供相应的判断
3、典型的机器学习过程:
先对训练数据进行类别标记,然后使用学习算法对其进行训练,最后得到模型(决策树、神经网络、支持向量机、Boosting、贝叶斯网等)
4、常见的机器学习类型:
(1)监督学习(学习准则为期望风险最小化、最大似然估计)
(2)无监督学习(最大似然估计、最小重构错误)
(3)强化学习(策略评估、策略改进)
5、机器学习发展阶段
第一阶段:推理期(自动定理证明系统);
第二阶段:知识期(专家系统);
第三阶段:学习期(让系统自己学)
6、学习目标: 找到与训练集“匹配”的模型——拟合(分类界线,曲面)
7、监督学习分类:有标签;非监督学习分类:无标签
8、归纳偏好:
(1)一般原则:奥卡姆剃刀:尽可能简单
(2)任何一个有效的机器学习算法必有其偏好。学习算法的归纳偏好是否与问题本身匹配
9、没有免费的午餐定理(NFL定理):一个算法a若在某些问题上比另一个算法b好,则必存在另一些问题,b比a好。总误差与学习算法无关,所有算法一样好
10、机器学习不等于优化。过拟合:经验风险最小化原则很容易导致模型在训练集上错误率很低,但是在未知数据上错误率很高。是由于训练数据少和噪声等原因造成的。
第二章 模型评估与选择
1、泛化误差:在“未来”样本上的误差,越小越好
经验误差:在训练集上的误差,亦称“训练误差”,不是越小越好,会导致过拟合
2、模型选择的三个关键问题:
如何获得测试结果?(评估方法)
如何评估性能优劣?(性能度量)
如何判断实质差别?(比较检验)
3、评估方法:
关键:怎么获得“测试集”(测试集应该与训练集“互斥”)
常见方法:
(1)留出法(拥有的数据集=训练集+测试集)
保持数据分布一致性(如分层采样,保持样本的类别比例)
多次重复划分(例如: 100次随机划分)
测试集不能太大、不能太小 (例如:1/5~1/3)
(2)k-折交叉验证法(若 k = m,则得到“留一法”LOO,即每个小子集中分出一个测试集)
数据集D划分为k个大小相似的互斥子集,在小子集中分出训练集和测试集
(留出法和交叉验证法保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,这会引入一些因训练样本规模不同而导致的估计偏差。留一法受训练样本规模变化的影响较小,似计算复杂度又太高。)
(3)自助法:训练集与原样本集同规模,可减少训练样本规模不同造成的影响,同时还能比较高效地进行实验估计
以自助采样法为基础。给定包含m个样本的数据集a,对其进行采样产生数据集b。即每次随机从a中挑选一个样本,将其拷贝放入b中,然后再将该样本放回初始数据集a中,使得该样本在下次采样时仍有可能被采到,这个过程重复执行m次后,就得到了包含m个样本的数据集b。最后有总数据量1/3的、没在训练集中出现的样本用于测试,这称为“包外估计”
4、“调参”与最终模型
(1)算法的参数(超参数):人工设定
(2)模型的参数:学习确定
(3)调参过程相似:先产生若干模型,然后基于某种评估方法进行选择
(4)参数调得好不好对性能往往对最终性能有关键影响
(5)算法参数选定后,要用“训练集+验证集”重新训练最终模型
5、超参数优化
(1)超参数:层数、每层神经元个数、激活函数、学习率(以及动态调整算法)、正则化系数、mini-batch 大小
(2)优化方法:网格搜索、随机搜索、贝叶斯优化、动态资源分配、神经架构搜索
6、性能度量
(1)是衡量模型泛化能力的评价标准,还反映任务的需求
(2)回归任务常用均方误差
(3)错误率、精度(或者可以认为时正确率,即1-错误率)
(4)查准率;查全率:以查准率为纵轴、查全率为横轴,得到查准率-查全率曲线(P-R曲线),在P-R图中,若一曲线完全包住另一条曲线,则前者更优
(5)平衡点(BEP):曲线上“查准率”=“查全率”时的点,越大则越优
(6)比 BEP 更常用的 F1 度量;若对查准率/查全率有不同偏好,当β大于1时查全率影响更大,小于1时则为查准率
(7)比较检验:得到评估结果后,不可以直接比较以评判优劣。因为测试性能不等于泛化性能;测试性能随着测试集的变化而变化;很多机器学习算法有一定的随机性(要通过多次重复留出法或交叉检验法等进行多次训练/测试,例如检验)
7、偏差-方差分解:
对回归任务,泛化误差可通过“偏差-方差分解”拆解为:
(1)期望输出与真实输出的差别
(2)同样大小的训练集的变动,所导致的性能变化
(3)训练样本的标记与真实标记的区别
泛化性能是由学习算法的能力、数据的充分性以及学习任务难度共同决定
8、模型选择
(1)拟合能力强的模型一般复杂度会比较高,容易过拟合,泛化能力变差。
(2)如果限制模型复杂度,降低拟合能力,可能会欠拟合。
集成模型:一种有效的降低方差的方法
9、偏差-方差窘境
(1)训练不足时,学习器拟合能力不强,偏差主导
(2)随着训练程度加深,学习器拟合能力逐渐增强,方差逐渐主导
(3)训练充足后,学习器的拟合能力很强,方差主导
10、PAC学习理论分析在什么条件下可以学习到一个近似正确的分类器
如果希望模型的假设空间越大,泛化错误越小,其需要的样本数量越多。
第三章 线性模型
1、线性模型:
线性模型试图学得一个通过属性的线性组合来进行预测的函数。有分类、回归(线性回归、多元线性回归)。特点:简单、基本、可理解性好
(1)多元线性回归涉及矩阵求逆,若不满秩,则需要求助于归纳偏好,或引入正则化(在现实任务中往往不满秩)
(2)线性模型的变化:令预测值逼近一般情况下的非线性y,拟合曲线为非直线,则得到对数线性回归
(3)广义线性模型:令联系函数为对数函数,得到对数线性回归
(4)二分类任务(0或1):理想的是单位阶跃函数,其替代函数为对数几率函数(对率函数)
(5)对数几率回归(对率回归,是分类学习算法):以对率函数为联系函数,反映了x作为正例的相对可能性。特点:无需事先假设数据分布;可得到“类别”的近似概率预测;可直接应用现有数据优化算法求最优解
高阶可导连续凸函数,可用经典的数值优化方法,如梯度下降法/牛顿法
2、线性模型做“分类”
分类:直接做分类,用最大似然、交叉熵
回归:广义线性模型:通过“联系函数”,例如对率回归
两个概率分布,一般可用交叉熵来衡量它们的差异。交叉熵损失函数也就是负对数似然函数
3、线性判别分析(LDA):
(1)将样例投影到一条直线(低维空间),是一种“监督降维”技术
(2)LDA的目标(最大化广义瑞利商)。同样例的投影点尽可能接近,异样例的投影点尽可能远离
(3)多分类LDA实现方法:采用全局散度矩阵St,类内散度矩阵Sw、类间散度矩阵Sb中的任意两个。(St=Sw+Sb)
4、多分类学习
4.1、拆解法:将一个多分类任务拆分为若干个二分类任务求解
(1)训练N(N-1)/2个分类器,存储开销和测试时间大训练只用两个类的样例,训练时间短(2个比较)
(2)训练N个分类器,存储开销和测试时间小训练用到全部训练样例,训练时间长(1与n个比较)
预测性能取决于具体数据分布,多数情况下两者差不多。若仅有一个分类器预测为正类,则对应的类別标记 作为最终分类结果;若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择罝信度最大的类别标记作为分类结果
4.2、纠错输出码(ECOC)
多对多:将若干类作为正类,若干类作为反类(常用方法:纠错输出码)
(1)编码:对N个类别做M次划分,每次将一部分类别划分为正类,一部分划分为反类,则有M个二类任务:每类对应一个长为M的编码
(2)解码:测试样本交给M个分类器预测,得到长为M的预测结果编码
编码和解码距离最小的类为最终结果
ECOC编码对分类器错误有一定的容忍和修正能力,编码越长、纠错能力越强(距离变化不大)
第四章 决策树
1、决策树模型:
(1)内部结点:某个属性上的“测试”
(2)分支:测试的一种可能结果
(3)叶节点:预测结果
(4)学习过程:通过对训练样本的分析来确定“划分属性”
(5)预测过程:将测试示例从根结点开始,沿着划分属性所构成的“判定测试序列”下行,直到叶结点
2、决策树简史
(1) 第一个决策树算法:CLS
(2) 使决策树受到关注、成为机器学习主流技术的算法:ID3
(3) 最常用的决策树算法:C4.5
(4) 可以用于回归任务的决策树算法:CART
(5) 基于决策树的最强大算法:RF
3、三种停止划分条件:
(1) 当前结点包含的样本全属于同一类别,无需划分;
(2) 当前属性集为空, 或是所有样本在所有属性上取值相同,无法划分;
(3) 当前结点包含的样本集合为空,不能划分.
决策树算法的核心:从属性集中选择最优划分属性
4、信息增益(ID3算法为代表)
(1)信息熵:用于度量样本集合“纯度”,其值越小,则样本集合的纯度越高,当其等于零时,达到最大
(2)信息增益:对可取值数目较多的属性有所偏好,其值最大时,则被选为划分属性。缺点时可能会把“编号”也作为一个属性
(3)增益率(C4.5算法使用):中和或平衡掉只使用信息增益对属性数目多的偏好,缺点是会对取值数目少的属性有所偏好。则可以先从候选划分属性中找出信息增益高于平均水平的属性,再从中选取增益率最高的
(4)基尼指数(衡量纯度的另一种方法):反映了从 D 中随机抽取两个样例,其类别标记不一致的概率,值越小,则数据集的纯度越高。在候选属性集合中,选取那个使划分后基尼指数最小的属性,在CART算法中使用
5、划分选择 vs. 剪枝 对泛化性能的影响
(1) 划分选择的各种准则虽然对决策树的尺寸有较大影响,但对泛化性能的影响很有限
(2) 剪枝方法和程度对决策树泛化性能的影响更为显著
(3) 剪枝是决策树对付“过拟合”的主要手段
预剪枝:提前终止某些分支的生长
后剪枝:生成一棵完全树,再“回头”剪枝
剪枝过程中需用测试集来评估剪枝前后决策树的优劣,划分后精度增大才允许划分
仅有一层划分的决策树,称为“决策树桩”
6、预剪枝 vs. 后剪枝
(1)时间开销:
预剪枝:训练时间开销降低,测试时间开销降低
后剪枝:训练时间开销增加很多,测试时间开销降低
(2)过/欠拟合风险:
预剪枝:过拟合风险降低,欠拟合风险增加
后剪枝:过拟合风险降低,欠拟合风险很小,基本不变
泛化性能:后剪枝通常优于预剪枝
7、连续值
基本思路:连续属性离散化(常用二分法,同时是C4.5决策树算法采用的机制)
按离散情况求增益,和其他属性的增益进行比较,最终确定最优划分属性
8、从“树”到“规则”
一棵决策树对应于一个“规则集”,每个从根结点到叶结点的分支路径对应于一条规则
好处:改善可理解性;进一步提升泛化能力(C4.5Rule 的泛化能力通常优于 C4.5决策树)
9、轴平行划分
(1)单变量决策树:在每个非叶结点仅考虑一个划分属性。产生“轴平行”分类面
曲线分类边界(非常多段划分):SVM或神经网络模型产生
(2)多变量决策树:每个非叶结点不仅考虑一个属性(例如“斜决策树”不是为每个非叶结点寻找最优划分属性,而是建立一个线性分类器),更复杂的“混合决策树”甚至可以在结点嵌入神经网络或其他非线性模型
10、决策树的优缺点
优点:计算复杂度不高,不需要预处理数据,输出结果易于理解,对中间值的缺失不敏感。
缺点:会产生过拟合问题,输入数据的微小波动会引起输出的大幅变化, 训练时间长。
第五章 神经网络
1、什么时神经网络(学习模型)
(1)神经网络是一个具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。
(2)神经网络的学习过程:根据训练数据来调整神经元之间的“连接权”以及每个功能神经元的阈值(神经网络就是为了学习连接权和阈值)
2、激活函数
(1)理想激活函数是阶跃函数 , 0表示抑制神经元,而1表示激活神经元
(2)阶跃函数具有不连续、不光滑等不好的性质 , 常用的是 Sigmoid 函数
3、多层前馈网络结构
(1)多层网络:包含隐层的网络
(2)前馈网络:神经元之间不存在同层连接也不存在跨层连接,即网络中无环或者回路。
隐层和输出层神经元亦称“功能单元”,无隐藏层的又称“感知机“
多层前馈网络有强大的表示能力,只需一个包含足够多神经元的隐层 , 多层前馈神经网络就能以任意精度逼近任意复杂度的连续函数,可用“试错法”设置隐层神经元数
4、神经网络发展
(1) 萌芽期:M-P模型、Hebb学习规则
(2) 繁荣期:感知机、Adaline
(3) 冰河期
(4) 繁荣期:Hopfield、BP、SVM及统计学习兴起
(5) 沉寂期
(6) 繁荣期:深度学习
单层神经网络无法解决非线性不可分问题
5、误差逆传播算法(BP)
最成功、最常用的神经网络算法,可被用于多种任务(不仅限于分类)
(1)标准BP算法:每次针对单个训练样例更新权值与阈值;参数更新频繁 , 不同样例可能抵消 , 需要多次迭代
(2)累积 BP 算法:其优化目标是最小化整个训练集上的累计误差;读取整个训练集一遍才对参数进行更新 , 参数更新频率较低
累计误差下降到一定程度后 , 进一步下降会非常缓慢, 这时标准BP算法往往会获得较好的解, 尤其当训练集非常大时效果更明显.
(3)缓解过拟合(BP算法常常导致过拟合)
主要策略:
一、早停:若训练误差连续 a 轮的变化小于 b, 则停止训练(a、b为常数);使用验证集:若训练误差降低、验证误差升高 , 则停止训练
二、正则化:在误差目标函数中增加一项描述网络复杂度
偏好比较小的连接权和阈值,使网络输出更“光滑”。权重参数大,模型更复杂,容易过拟合。
6、全局最小 vs. 局部极小
神经网络的训练过程可看作一个参数寻优过程,存在多个“局部极小”,只有一个“全局最小”
(1)“跳出”局部极小的常见策略:
1)不同的初始参数:相当于从多个不同的初始点开始搜索,这样可能会陷入不同的局部极小,从中进行选择有可能获得更接近全局最小的结果
2)模拟退火:每一步都以一定的概率接受比当前解更差的结果,从而有助于“跳出”局部极小,在每步迭代过程中,接受“次优解”的概率要随着时间的推移而逐渐降低,从而保证算法稳定
3)随机梯度下降:在计算梯度时加入随机因素,即使陷入局部极小点,它计算出的梯度仍可能不为零,这样就有机会跳出局部极小继续搜索
4)遗传算法:训练神经网络以更好地逼近全局最小
7、其他常见神经网络模型
(1)RBF(径向基函数)神经网络:分类任务中除BP之外最常用;
训练:确定神经元中心(随机采样、聚类);利用BP算法等确定参数
(2)ART:“竞争学习”的代表
由比较层、识別层、 识别阈值和重置模块构成。其中,比较层负责接收输入样本,并将其传递给识別层神经元。识别层每个神经元对应一个模式类。
计算输入向量与每个识別层神经元所对应的模式类的代表向量之间的距离,距离最小者胜。获胜神经元将向其他识别层神经元发送信号,抑制其激活
若输入向量与获胜神经元所对应的代表向量之间的相似度大于识别阈值,则当前输入样本将被归为该代表向量所属类別,同时,网络连接权将会更新,使得以后在接收到相似输入样本时该模式类会计算出更大的相似度,从而使该获胜神经元有更大可能获胜
若相似度不大于识别阈值,则重置模块将在识别层增设一个新的神经元,其代表向量就设置为当前输入向量
当识别阈值较高时,输入样本将会被分成比较多、比较精细的模式类,而如果识别阈值较低.则会产生比较少、比较祖略的模式类。
缓解可塑性-稳定性窘境,既有学习新知识的能力,在学习新知识时还能保持对旧知识的记忆。
(3)SOM:(自组织特征映射):最常用的聚类方法之一。
竞争型的无监督(无标签)神经网络
将高维数据映射到低维空间(通常为 2维), 高维空间中相似的样本点映射到网络输出层中邻近神经元
每个神经元拥有一个权向量
目标:为每个输出层神经元找到合适的权向量以保持拓扑结构
SOM的训练过程:在接受到一个训练样本呢后,每个输出层神经元会计算该样本与自身携带的权向量之间的距离,距离最近的神经元成为竞争获胜者,称为最佳匹配单元。然后,最佳匹配单元及其邻近神经元的权向量将被调整,以使得这些权向量与当前输入样本的距离缩小,这个过程不断迭代,直至收敛。
网络接收输入样本后,将会确定输出层的“获胜”神经元
获胜神经元的权向量将向当前输入样本移动
不仅获胜神经元本身要调整权向量,它周围的神经元在其影响下也要程度不同的调整权向量
优胜领域开始定的很大,但是其大小随着训练次数的增加不断收缩,最终收缩到半径为0。
(4)级联相关网络(CC):“构造性”神经网络的代表
一般的神经网络模型通常假定网络结构是事先固定的,训练的目的是利用训练样本来确定合适的连接权、阈值等参数。而结构自适应网络则将网络结构也当作学习的目标之一,并希望能在训练过程中找到最符合数据特点的网络结构,级联相关网络是结构自适应网络的重要代表。
构造性神经网络: 将网络的结构也当做学习的目标之一, 希望在训练过程中找到适合数据的网络结构
训练:
开始时只有输入层和输出层
级联:新的隐层结点逐渐加入,从而创建起层级结构
相关:最大化新结点的输出与网络误差之间的相关性
预选神经元的训练目标是最大化新神经元的输出和网络训练误差之间的相关性
(6)Elman 网络
递归神经网络(RNN)
有环形结构, 可让使一些神经元的输出反馈回来作为输入
t 时刻网络的输出状态:由t 时刻的输入状态和t-1 时刻的网络状态共同决定
Elman 网络是最常用的递归神经网络之一
结构与前馈神经网络很相似 , 但隐层神经元的输出被反馈回来
使用推广的BP算法训练
目前在自然语言处理等领域常用的 LSTM 网络,是一种复杂得多的递归神经网络
(7)最常用的深度学习模型:卷积神经网络(CNN)
每个卷积层包含多个特征映射 , 每个特征映射是一个由多个神经元构成的“平面” ,通过一种卷积滤波器提取输入的一种特征
采样层亦称“汇聚 (pooling)层” , 其作用是基于局部相关性原理进行亚采样 ,从而在减少数据量的同时保留有用信息
连接层就是传统神经网络对隐层与输出层的全连接
(8)深度学习
提升模型复杂度;提升学习能力
增加隐层神经元数目 (模型宽度 )
增加隐层数目 (模型深度 )
提升模型复杂度 增加过拟合风险,增加训练难度
解决过拟合风险:使用大量训练数据
训练困难:使用若干启发式诀窍
增加隐层数目比增加隐层神经元数目更有效
不仅增加了拥有激活函数的神经元数, 还增加了激活函数嵌套的层数
误差梯度在多隐层内传播时 ,往往会发散而不能收敛到稳定状态,因此,难以直接用经典BP算法训练
8、常用诀窍
预训练 + 微调
预训练: 监督逐层训练,每次训练一层隐结点
微调:预训练全部完成后, 对全网络进行微调训练,通常使用 BP算法,可视为将大量参数分组,对每组先找到较好的局部配置,再全局寻优
权共享
一组神经元使用相同的连接权值。减少需优化的参数
Dropout
在每轮训练时随机选择一些隐结点令其权重不被更新(下一轮可能被更新 )
可能:降低 Rademacher 复杂度
ReLU
将 Sigmoid 激活函数修改为修正线性函数
求导容易;可能:缓解梯度消失现象
9、深度学习最重要的特征: 表示学习 、联合优化
第六章 支持向量机
1、间隔与支持向量(SVM):
(1)支持向量机在文本分类任务中显示出卓越性能,成为了机器学习的主流技术(统计学习)
(2)线性模型:在样本空间中寻找一个超平面, 将不同类别的样本分开.
(3)将训练样本分开的超平面可能有很多,应选择”正中间”, 容忍性好, 鲁棒性高, 泛化能力最强的
(4)SVM想要的就是找到各类样本点到超平面的距离最远,也就是找到最大间隔超平面(支撑向量),任意超平面可以用线性方程来描述
2、对偶问题
(1)使用拉格朗日乘子法可得到其“ 对偶问题”
(2)高效求解方法 – SMO
基本思路:不断执行如下两个步骤直至收敛.
第一步:选取一对需更新的变量 和 .
第二步:固定 和 以外的参数, 求解对偶问题更新 和
仅考虑 和 时,用一个变量表示另一个变量, 回代入对偶问题可得一个单变量的二次规划, 该问题具有闭式解。偏移项b通过支持向量来确定
(3)支持向量机解的稀疏性: 训练完成后, 大部分的训练样本都不需保留, 最终模型仅与支持向量有关.
(4)线性不可分:若不存在一个能正确划分两类样本的超平面(线性),则将样本从原始空间映射到一个更高维的特征空间, 使得样本在这个特征空间内线性可分.
(5)核支持向量机
x映射(核映射),模型中有内积的形式
3、核函数
基本想法:不显式地设计核映射, 而是设计核函数.即xi与xj在特征空间的内积等于它们在原始样本空间中通过函数 计算的结果。有了这样的函数,就不必直接去计算高维甚至无穷维特征空间中的内积
(1)在不知道特征映射的形式时,我们并不知道什么样的核函数是合适的.若核函数选择不合适,则意味着将样本映射到了一个不合适的特征空间,很可能导致性能不佳
(2)常用核函数:线性核、多项式核、高斯核、拉普拉斯核、Sigmoid核
(3)核函数选择成为svm(支持向量机)的最大变数
经验:文本数据使用线性核,情况不明使用高斯核
核函数的性质:
1 核函数的线性组合仍为核函数
2 核函数的直积仍为核函数
设k(x1,x2)为核函数,则对于任意函数g, g(x1)k(x1,x2)g(x2)仍为核函数
4、软间隔和硬间隔:
硬间隔不允许任何样本出现错分的情况,哪怕导致过拟合
软间隔允许一些样本点跨越间隔边界甚至是超平面(跨越间隔边界,即中间线)
(1)0/1损失函数(L0/1,分错为1,无误为0)
基本想法:最大化间隔的同时, 让不满足约束的样本应尽可能少.
(2)正则化常数C>0,如果C趋于无穷,则等价于要求所有的样本点都分类正确,否则就允许一部分极少的样本分类错误
(3)存在问题:0/1损失函数非凸,非连续,不易优化
(4)替代损失:替代损失函数数学性质较好,<0时取值大,>0时取值小,且慢慢趋近于零。可以实现正则项的惩罚目的。
(5)对偶变量的约束不同,通用二次规划算法、SMO
硬间隔对偶问题
软间隔对偶问题
5、正则化:
结构风险, 描述模型的某些性质:参数复杂度小(L0,1,2正则化),或超平面间隔尽量大
经验风险, 描述模型与训练数据的契合程度,即训练精度
通过替换上面两个部分, 可以得到许多其他学习模型:对数几率回归、最小绝对收缩选择算子(LASSO)
(1)正则化可理解为一种“罚函数法”,即对不希望得到的结果施以惩罚,从而使得优化过程趋向于希望目标.。Lp范数是常用的正则化项
L0范数是指向量中非0的元素的个数,希望矩阵的大部分元素都为0,都稀疏
L1范数(稀疏规则算子)是指向量中各个元素绝对值之和,
L2范数是指各元素的平方和然后求平方根,其不但可以防止过拟合,还可以让优化求解更稳定和快速(参数变小,模型变简单,模型参数信息变少)
6、支持向量回归(SVR,带宽忍或公差带的模型)
特点: 允许模型输出和实际输出间存在一定的偏差,缓解特征空间中线性不可分的问题
落入间隔带的样本不计算损失
(1)传统回归模型通常直接基于模型输出于真实输出之间的差别来计算损失,当且仅当模型输出与真实输出完全相同时,损失才为零。支持向量回归则仅当模型输出与真实输出之间的差别绝对值大于一定值时才计算损失
(2)表示定理:
无论是支持向量机还是支持向量回归, 学得的模型总可以表示成核函数的线性组合.,从而推导出表示定理
正则化项一般是模型复杂程度的单调递增函数,因此可以使用模型参数向量的范数来计算。一般的带正则化项和样本损失函数,都可以满足表示定理。
(3)核线性判别分析
通过表示定理可以得到很多线性模型的”核化”版本:核SVM、核LDA、核PCA
核LDA: 先将样本映射到高维特征空间, 然后在此特征空间中做线性判别分析
(4)支持向量回归与logistics回归对比
logistic回归的优势主要在于其输出具有自然的概率意义,即在给出预测标记的同时也给出了概率,而SVM的输出不具有概率意义,欲得到概率输出需进行特殊处理.两者的目标相近,通常情形下它们的性能也相当。
支持向量机是针对二分类任务设计的,对多分类任务要进行专门的推广
第八章 集成学习
1、个体与集成
集成学习通过构建并结合多个学习器来提升性能(要求学习器好而不同)
(1)考虑二分类问题,基分类器的错误率=分错个数/总数。通过简单投票法结合T个分类器,超过半数正确则分类就正确(采用符号函数判断)
(2)假设基分类器的错误率相互独立,则随着集成分类器数目的增加,集成的错误率将指数级下降,最终趋向于0。但错误率不可能互相独立,个体学习器大的“准确性”和“多样性”本身就存在冲突。如何产生“好而不同”的个体学习器是集成学习研究的核心
(3)集成学习大致可分为两大类:
Boosting(代表是AdaBoost,每次调整训练数据的样本权重分布)个体学习器间存在强依赖关系、必须串行(根据前面学习器的学习薄弱环节针对性地加强),生成的序列化方法
个体学习器间不存在强依赖关系、可同时生成的并行化方法,代表是Bagging 和“随机森林RF”(自助采样法)
2、Boosting – AdaBoost
基学习器的线性组合
最小化指数损失函数
使用指数损失函数而不用均方误差损失函数的原因是均方误差损失函数对分类问题的效果不好。而相对于0/ 1损失函数,指数损失函数有更好的数学性质,
(1)第一个基分类器是通过直接将基学习器算法用于初始数据分布而得,此后迭代地生成和,当分类器基于分布产生后,该基分类器地权重应使得最小化指数损失函数。令指数损失函数的导数为0,则得到了分类器权重更行公式
(2)AdaBoost算法在获得上一轮输出Ht-1之后样本权重分布将进行调整,使下一轮的基学习器ht能纠正 H-1的一些错误
(3)数据分布的学习
重赋权法(在训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重)
重采样法(无法接受带权重样本的基学习器)
(以上两种做法没有显著的优劣差别)
重启动,避免训练过程过早停止
Boosting关注降低偏差,可对泛化性能相当弱的学习器构造出很强的集成学习器
3、Bagging与随机森林
3.1 Bagging发明的思路:
(1)基学习器尽可能具有较大的差异
(2)采样只用到了一小部分训练数据,不足以进行有效学习
(3)使用相互有交叠的采样子集
对分类任务使用简单投票法,对回归任务使用简单平均法。即每个基学习器使用相同权重的投票、平均。
3.2 Bagging算法特点:
(1)高效,时间复杂度低。bagging的复杂度大致为T(O(m)+O(s))(基学习器+投票/平均),由于O(s)很小且T是一个不大的常数,因此训练一个bagging集成与直接使用基学习器的复杂度同阶。
(2)可使用包外估计:剩下约36.8%的样本可用作验证集来对泛化性能进行“包外估计”。
3.3 包外样本的作用:
(1)当基学习器是决策树时,可使用包外样本来辅助剪枝,或用于估计决策树中各结点的后验概率以辅助对零训练样本结点的处理;
(2)当基学习器是神经网络时,可使用包外样本来辅助早期停止以减小过拟合风险
3.4 Bagging主要关注降低方差,在不剪枝的决策树、神经网络等易受样本扰动影响的学习器上效果更好。随机森林(RF)是bagging的一个扩展变种,具有采样的随机性和属性选择的随机性。随机森林就是Bagging+决策树的组合(一般使用CART树)。由很多独立的决策树组成的一个森林,每棵树的权重相等,通过投票的方式决定最终的分类结果。
3.5 随机森林算法主要过程:
1、样本集的选择
假设原始样本集总共有N个样例,有放回抽样抽取N个样例,得到一个大小为N的训练集。则有被重复抽取的样例,也可能有一次都没有被抽到的样例。共进行k轮的抽取,则每轮抽取的训练集分别为T1,T2,…,Tk。
2、决策树的生成
使用新的特征集来生成决策树。在训练集的选择和特征的选择上都是随机的,因为这k个决策树之间是相互独立的。
3、模型的组合
由于生成的k个决策树之间是相互独立的,无需考虑他们的权值,具有相同的权值。对于分类问题,最终的分类结果使用所有的决策树投票来确定最终分类结果;对于回归问题,使用所有决策时输出的均值来作为最终的输出结果。
4、模型的验证
从原始样本集中选择没有被使用过的样例。将这些未被使用的数据拿来验证最终的模型。
3.6有监督的学习方法:从一个有限的假设空间中搜索最适合结果,集成学习就是将多个假设空间放到一起来形成一个更好的方案。更好地降低过拟合的问题。集成学习也会给予分类性能好的分类器更高的权重。
从统计方面来看:泛化性能不佳结合多个学习器则会减小这一风险
从计算方面来看:降低了陷入糟糕局部极小点的风险
从表示方面来看:相应的假设空间有所扩大,有可能学得更好的近似
5、结合策略
5.1平均法
简单平均法是加权平均法的特例.集成学习中的各种结合方法都可以看成是加权平均法的变种或特例。根据重要性进行集成。加权平均法的权重一般是从训练数椐中学习而得,学出的权重不完全可靠。尤其是对规模比较大的集成来说,要学习的权重比较多,较容易导致过拟合. 因此,加权平均法未必一定优于简单平均法。在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法。
5.2投票法
(1)绝对多数投票法,若某标记得票过半数,则预测为该标记;否则拒绝预测。
(2)相对多数投票法。预测为得票多的标记,若同时有多个标记获最高票,则从中随机选取—个
(3)加权投票法
基于类概率进行结合往往比直接基于类标记进行结合性能更好,若基学习器的类型不同,则其类概率值不能直接进行比较,将类概率输出转化为类标记输出,然后再投票
不同的学习器类型,指的是不同的学习算法产生的,即异质。
5.2学习法
Stacking是学习法的典型代表 。Stacking先从初始数据集训练出初级学习器,然后“生成”一个新数据集用于训练次级学习器。在这个新数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍被当作样例标记。stacking的本质就是找到各个模型的权重。
k折交叉验证法可以得到k组。都作为次级学习器的样本输入,最终是要学习到多个初级学习器的预测输入与真实标签值之间的映射。
次级学习器的输入属性表示和次级学习算法对Stacking集成的泛化性能有很大影响。,将初级学习器的输出类概率作为次级学习器的输入属性,用多响应线性回归(MLR) 作为次级学习算法效果较好。
6、多样性
6.1误差-分歧分解
“分歧”项表征了个体学习器在样本x上的不一致性,反映了个体学习器的多样性。个体学习器准确性越高、多样性越大,则集成越好,则其为“误差-分歧分解”
6.2多样性度量
多样性度量用于度量集成中个体学习器的多样性。对于二分类问题,则联立表得出预测结果
常见的多样性度量
不一致度量:值域为[0,1].值越大则多样性越大。
相关系数:若个体学习器hi与hj无关,则值为0; 若hi与hj 正相关则值为正,否则为负。
K-统计量:分类器hi与hj在D上完全一致,则K=1; 若它们仅是偶然达成一致,则K=0。K越大,学习器间的多样性越小。
k-误差图:数据点云的位置越高,则个体分类器准确性越低:点云的位置越靠右,K越大,则个体学习器的多样性越小。
6.3多样性增强
常见的增强个体学习器的多样性的方法
(1)数据样本扰动
数据样本扰动基于采样法:Bagging中的自助采样法
对数据样本的扰动敏感的基学习器(不稳定基学习器):决策树,神经网络等
对数据样本的扰动不敏感的基学习器(稳定基学习器):线性学习器,支持向量机,朴素贝叶斯,k近邻等
数据样本扰动对“不稳定基学习器”很有效
(2)输入属性扰动
随机子空间算法输入线性扰动,从初始属性集中抽取出若干个属性子集,再基于每个属性子集训练一个基学习器,因属性数的减少而大幅节省时间开销,由于冗余属性多,减少一些属性后训练出的个体学习器也不至于太差,只包含少量属性,或者冗余属性很少,则不宜使用输入属性扰动法
(3)输出表示扰动
对输出表示进行操纵以增强多样性,如“翻转法”随机改变一些训练样本的标记,也可对输出表示进行转化,如“输出调制法”,分类输出转化为回归输出后构建个体学习器,还可以将原任务拆解为多个可同时求解的子任务,如“ECOC法“利用纠错输出码将多分类任务拆解为一系列二分类任务来训练基学习器
(4)算法参数扰动
基学习器有参数需进行设置,通过随机设置不同的参数,往往可产生差别较大的个体学习器
例如“负相关法”显式地通过正则化项来强制个体神经网络使用不同的参数,将决策树使用的属性选择机制替换成其他的属性选择机制,使用单一学习器时通常需使用交叉验证等方法来确定参数值
第九章 聚类
1、聚类任务
在“无监督学习”任务中研究最多、应用最广.
聚类目标:将数据集中的样本划分为若干个通常不相交的子集(“簇”)
聚类既可以作为一个单独过程(用于找寻数据内在的分布结构),也可作为分类等其他学习任务的前驱过程.
2、性能度量
聚类性能度量(聚类“有效性指标”),聚类结果的“簇内相似度”高,且“簇间相似度”低,这样的聚类效果较好
(1)外部指标:将聚类结果与某个“参考模型”进行比较。
Jaccard系数(JC)、FM指数(FMI)、Rand指数(RI)。[0,1]区间内,越大越好.
(2)内部指标:直接考察聚类结果而不用任何参考模型。
簇内样本间的平均距离
样本间的最远距离
最近样本间的距离
中心点间的距离
DB指数(DBI),越小越好
Dunn指数(DI),越大越好
3、距离计算
距离度量的性质:非负性;同一性;对称性;直递性
最常用距离:闵可夫斯基距离;p=2: 欧氏距离;p=1:曼哈顿距离
属性介绍:
连续属性:在定义域上有无穷多个可能的取值
离散属性: 在定义域上是有限个可能的取值
有序属性:例如定义域为{1,2,3}的离散属性,“1”与“2”比较接近、与“3”比较远
无序属性:例如定义域为{飞机,火车,轮船}这样的离散属性,不能直接在属性值上进行计算
距离度量:VDM(处理无序属性)
样本距离度量:MinkovDMp(处理混合属性)、加权距离(样本中不同属性的重要性不同时)
4、原型聚类(基于原型的聚类):假设聚类结构能通过一组原型刻画。
算法过程:先对原型进行初始化,再对原型进行迭代更新求解。
几种著名的原型聚类算法:
(1)k均值算法:最小化平方误差E值刻画了簇内样本围绕簇均值向量的紧密程度,值越小,则簇内样本相似度越高。
算法流程(迭代优化):
初始化每个簇的均值向量
Repeat(重复)
1. (更新)簇划分;
2. 计算每个簇的均值向量
Until(直到) 当前均值向量均未更新
(2)学习向量量化(LVQ)
LVQ假设数据样本带有类别标记,学习过程中利用样本的这些监督信息来辅助聚类。LVQ的目标是学得一组n维原型向量,每个原型向量代表一个聚类簇。
每个原型向量Pt定义了与之相关的一个区域Ri,该区域中每个样本与Pi的距离不大于它与其他原型向量的距离。由此形成了对样本空间的簇划分,该划分通常称为“Voronoi剖分“
(3)高斯混合聚类
高斯混合聚类采用概率模型来表达聚类原型:
多元高斯分布的定义:对n维样本空间中的随机向量x, 若x服从高斯分布,则得到其概率密度函数。
高斯混合分布的定义:
由k个分布分量组成,每个分布对应一个高斯分布。其中,与是第i个高斯混合成分的参数。而为相应的“混合系数”, 。
原型聚类 – 高斯混合聚类
首先,根据、、……、定义的先验分布选择高斯混合分布,其中为选择第i个混合成分的概率;然后,根据被选择的混合成分的概率密度函数进行采样,从而生成相应的样本
先以一定概率出现高斯分量,再以一定概率出现该分量生成的样本x。这就是采样过程。
模型(高斯分量参数)求解:最大化(对数)似然(所有样本同时出现的联合概率)
每个高斯成分的混合系数由样本属于该成分的平均后验概率确定
5、密度聚类(基于密度的聚类)
假设聚类结构能通过样本分布的紧密程度来确定
从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇来获得最终的聚类结果
DBSCAN算法:基于一组“邻域”参数来刻画样本分布的紧密程度。
基本概念:
邻域:虚线为邻域
核心对象:在中心
密度直达:与核心对象直接相连
密度可达:与核心对象不直接相连
密度相连:不直接相连
“簇“的定义:密度可达关系导出的最大密度相连样本集合(连接性、最大性)
若x为核心对象,由x密度可达的所有样本组成的集合记为X,则X为满足连接性与最大性的簇
DBSCAN算法先任选数据集中的一个核心对象为“种子“,再由此出发确定相应的聚类簇,算法再根据给定的领域参数,找出所有核心对象,以任一核心对象为出发点,找出由其密度可达的样本生成聚类簇,直到所有核心对象均被访问过为止
6、层次聚类
层次聚类试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集划分既可采用“自底向上”的聚合策略,也可采用“自顶向下”的分拆策略。
AGNES算法(自底向上的层次聚类算法)
首先,将样本中的每一个样本看做一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直到达到预设的聚类簇的个数。
这里两个聚类簇的距离,可以有3种度量方式:最小距离、最大距离、平均距离