机器学习——首阅笔记(持续更新)

第二章:模型评估与选择

过拟合与欠拟合

欠拟合容易克服,例如在决策树学习中扩展分支,在神经网络学习中增加训练轮数等。

过拟合很麻烦,所有算法都不可避免,只能缓解或减小其风险。

模型选择问题

理想的解决方案是对候选模型的泛化误差进行评估,然后选择泛化误差最小的那个模型。

样本划分为训练集和测试集

测试集的划分方法有以下几种:

留出法:直接将数据集划分为两个互斥的集合。划分可以随机划分,人为划分,坚持分层采样。单次使用留出法得到的估计结果往往不够稳定可靠,在使用留出法得到的估计结果往往不够稳定可靠,一般采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。常见做法2/3~4/5。

交叉验证法:将数据集划分为K个大小相似的互斥子集,分层采样方法。每次K-1个子集的并集作为训练集,余下的那个子集作为测试集,从而进行K次训练和测试,最终返回K个测试结果的均值,又叫K折交叉验证。特殊:留一法。留一发评估结果往往比较准确,但若数据集比较大时,计算开销巨大。

自助法:每次从D中挑选一个放入D'中,执行M次,得到一个m个样本的D'数据集,作为训练集。自助法在数据集较小、难以有效划分训练/测试集时很有用。但自助法产生的数据集改变了初始数据集的分布,引入了估计偏差,若数据量足够时,使用留出法和交叉验证法。

调参与最终模型:通常的做法,对每个参数的选定一个范围和变化步长。学习算法和参数配置选定后,应该用整个数据集D重新训练模型。

性能度量

回归任务最长用的性能度量:均方误差

分类任务:错误率与精度,查准率、查全率与F1,Fβ(混淆矩阵),P-R曲线(查准率为纵轴、查全率为横轴)。若我们有多个二分类混淆矩阵,即进行多次训练/测试,根据计算平均值不同方法,我们可以得到宏查准率、宏查全率以及宏F1或者微查准率、微查全率、微F1。ROC(受试者工作特征)与AUC(ROC曲线下的面积),ROC曲线以假正例率为横轴,以真正例率为纵轴。AUC=1-排序损失 。代价敏感错误率与代价曲线(在非均等代价下,ROC曲线不能直接反应出学习器的期望总体代价,而代价曲线可以)。

比较检验:机器学习性能比较:主要有几个因素:泛化性能、测试集上的性能、随机性。假设检验、交叉验证t检验、McNemar检验、Friedman检验与Nemenyi后续检验。

泛化误差可分解为偏差、方差与噪声之和。

第三章 线性模型

经典的线性模型——回归任务,二分类和多分类任务

线性回归,  ,试图学的一个线性模型以尽可能准确地预测实值输出标记。均方误差是回归任务中最常用的性能度量。线性模型虽简单,但它有丰富的变化,如对数线性回归。

对数几率回归, ,只需找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。 虽然它的名字是回归,但实际却是一种分类学习方法。

二分类,线性判别分析——LDA,给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远。

多分类学习,基于一些基本的策略,利用二分类学习器来解决多分类问题。基本思路,”拆解法“,即将多分类任务拆分为若干个二分类任务求解。主要拆分策略有一对一,一对其余,多对多。OVO将这个N个类别两两配对,从而产生,N(N-1)/2个二分类任务。OVR则是每次将一个类的样例作为正例、所有其他类的样例作为反例来训练N个分类器,只需训练N个分类器。MVM是每次将若干个类作为正类,若干个其他类作为反类。一种常用的MVM技术:纠错输出码(ECOC)

类别不平衡问题,前面介绍的分类学习方法都有一个共同的基本假设,即不同类别的训练样例数目相当,如果不同类别的训练样例数目稍有差别,通常影响不大,但若差别很大,则会对学习过程造成困扰。类别不平衡就是指分类任务中不同类别的训练样例数目差别很大的情况。

类别不平衡的一个基本策略——”再缩放。现有技术大体上有三类做法:第一类欠采样,第二类过采样,第三类,阈值移动,即

第四章 决策树

决策树学习的目的是为了产生一颗泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的”分而治之“策略。决策树是一个递归的过程。

决策树最关键的是选择最优划分属性,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的”纯度“越来越高。可采取以下指标:信息熵:、信息增益:,增益率:,基尼指数。上述信息增益准则对可取值数目较多的属性有所偏好,增益率准则对可取值数目较少的属性有所偏好。

剪枝是决策树学习算法对付过拟合的主要手段。决策树剪枝的基本策略有”预剪枝“和”后剪枝“。预剪枝指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;后剪枝则是先从训练集生成一颗完整的决策树,然后自底向上地对非叶结点进行考察,若将该节点对应的字数替换为叶结点能带来决策树泛化性能提升,则将该子树替代为叶结点。

连续值处理(现实学习任务中常会遇到连续属性,有必要讨论如何在决策树学习中使用连续属性):

由于连续属性的可取值数目不再有限,因此,不能直接根据连续属性的可能取值来对结点进行划分,此时,连续属性离散化技术可派上用场,最简单的策略是采用二分法。将属性上的连续值排序,取二分点,然后计算每个点的信息增益,取最大的为划分点。

缺失值处理(现实任务中常会遇到不完整样本,即样本的某些属性值缺失,或者该属性下面的值缺失)因此我们需要解决两个问题:(1)如何在属性值缺失的情况下进行划分属性选择(2)给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分。

问题一解决方案:利用信息增益的推广计算式

   ,  

代表无缺失值样本所占的比例,代表无缺失值样本中第K类所占的比例,代表 无缺失值样本中在属性上取值的样本所占的比例。

问题而的解决方案,让同一个样本以不同的概率划入到不同的子结点去。

多变量决策树:与传统的”单变量决策树“不同,在多变量决策树的学习过程中不是为每个非叶结点寻找一个最优划分属性,而是试图建立一个合适的线性分类器。

第五章  神经网络

神经网络——神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应。

最简单的神经元模型——”M-P神经元模型“,在模型中,神经元接收到来自n个其它神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过”激活函数“处理以产生神经元的输出。

理想中的激活函数是阶跃函数,但由于具有不连续、不光滑等不太好的性质,通常用sigmoid函数代替。

感知机:由两层神经元组成,两个输入神经元接受外界输入信号后传递给输出层输出层 是M-P神经元,亦称”阈值逻辑单元“。

给定训练集,权重和阈值可通过学习得到,感知机的学习规则非常简单,对训练样例(x,y),若当前感知机的输出为,则感知机权重将这样调整:,其中属于0-1,称为学习率。若感知机对训练样例(x,y)预测正确,即,则感知机不发生变化,否则将根据错误的程度进行权重调整。需注意的是,感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力非常有限,例如不能解决异或简单的非线性可分问题。

多层前馈神经网络——其中输入层神经元接受外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出。多层网络中,只需包含隐层即可称之。神经网络的学习过程,就是根据训练数据来调整神经元之间的”连接权“以及每个功能神经元的阈值。换言之,神经网络学到的东西,蕴含在连接权与阈值中。

误差逆传播算法——BP算法

BP算法是多层网络学习算法的代表之一,它是迄今为止最成功的神经网络学习算法,现实任务中使用神经网络时,大多是在使用BP算法进行训练。BP算法不仅可适用于多层前馈神经网络,还可用于其他类型的神经网络,例如训练递归神经网络但通常说的”BP网络“时,一般指BP算法训练的多层前馈神经网络。

BP网络包含三层,输入层,隐层,输出层,BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整。BP算法中的学习率参数,控制着算法每一轮迭代中的更新步长,若太大则容易振荡,太小则收敛速度又会过慢。有时为了做精细调节,可令不同的连接权使用不同的学习率。

BP算法的目标是要最小化训练集D上的累积误差。因此可分为累积BP算法(读取整个训练集)与标准BP算法(针对单个)。

BP神经网络过拟合解决策略:早停和正则化。

神经网络的训练过程可看作一个参数寻优过程,即在参数空间中,寻找一组最优参数使得E最小。两种最优:局部极小和全局极小,我们在参数寻优过程中是希望找到全局最小。基于梯度的搜索是使用最为广泛的参数寻优方法,在方法中,若参数寻优陷入局部极小,可以使用以下策略跳出局部极小:使用”模拟退火“技术;使用随机梯度下降;以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数。但上述方式理论尚缺乏保障,属于启发式。

其它的神经网络:

RBF(径向基函数)网络,是一种单隐层前馈神经网络,他使用径向基函数作为隐层神经元激活函数,而输出层则是对隐层神经元输出的线性组合。ART网络,是竞争型学习的重要代表,该网络由比较层、识别层、识别阈值和重置模块构成。识别阈值对ART网络的性能至关重要。ART(自适应协振理论)缓解了竞争型学习中的”可塑性-稳定性窘境“。SOM网络(自组织映射),一种竞争学习型的无监督神经网络,能将高维输入数据映射到低维空间(通常为二维),同时保持输入数据在高维空间的拓扑,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。SOM的训练目标就是为每个输出层神经元找到合适的权向量,以达到保持拓扑结构的目的。级联相关网络,是结构自适应网络的重要代表,它不仅确定合适的连接权、阈值等参数,还把网络结构也当作学习的目标之一。它无需设置网络层数、隐层神经元数目,且训练速度较快,但其在数据较小时易陷入过拟合。Elman(递归神经网络)它的结构与多层前馈网络很相似,但隐层神经元的输出被反馈回来,与下一时刻输入层神经元提供的信号一起,作为隐层神经元在下一时刻的输入。Boltzmann机,是一种基于能量的模型,其神经元分为两层,显层和隐层,显层用于表示数据的输入和输出,隐层则被理解为数据的内在表达。标准的Boltzmann机是一个全连接图,训练网络的复杂度很高,难以用于解决现实任务,现实中常采用受限Boltzmann机,即仅保留显层与隐层之间的链接,由完全图转化为二部图。

深度学习——是一种复杂模型,得益于云计算、大数据时代的到来使得计算能力的大幅度提高,可缓解训练低效性,训练数据的大幅增加则可降低过拟合风险。典型的深度学习模型就是很深层的神经网络,显然对神经网络模型,提高容量的一个简单办法是增加隐层的数目。多隐层神经网络难以直接用经典算法(例如标准BP算法)进行训练,因为误差在多隐层内逆传播时,往往会”发散“而不能收敛到稳定状态。因此需要采用无监督逐层训练。基本思想:每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,而本层隐结点作为下一层隐结点的输入,这称为”预训练“;在预训练全部完成后,再对整个网络进行”微调“训练。另一种节省训练开销的策略是”权共享“,即让一组神经元使用相同的连接权。CNN中就是使用了此策略。

CNN中复合多个卷积层和采样层对输入信号进行加工,然后在连接层实现与输出目标之间的映射。每个卷积层都包含多个特征映射,每个特征映射是一个由多个神经元构成的”平面“通过一种卷积滤波器提取输入的一种特征。采样层又叫汇合层,其作用是基于局部相关性原理进行采样,从而在减少数据量的同时保留有用信息。CNN可用BP算法进行训练,但在训练中,无论是卷积层还是采样层,其每一组神经元都是用相同的连接权,从而大幅减少了需要训练的参数数目。

从另一个角度理解深度学习,通过多层处理,逐渐将初始的”低层“特征表示转化为”高层“特征表示后,用”简单模型“即可完成复杂的分类等学习任务。有次可将深度学习理解为进行”特征学习“或”表示学习“。

第六章  支持向量机

在样本空间中,划分超平面可通过如下线性方程来描述:

样本空间中任意点到超平面的距离可写成:

距离超平面最近的这几个训练样本点被称为”支持向量“,两个异类支持向量到超平面的距离之和为

它被称为间隔,在SVM中要找到最大化的间隔。

对偶问题:使用拉格朗日乘子法,对每条约束添加拉格朗日乘子(大于等于0)。

SVM的一个重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。

在求解SVM中的二次规划问题时,可采用SMO算法,SMO算法之所以高效,恰由于在固定其它参后,仅优化两个参数的过程能做到非常高效。

原始样本空间若不存在一个能正确划分两类样本的超平面,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。

核函数:只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用。

核函数选择是支持向量机的最大变数,若核函数选择不合适,则意味着将样本映射到了一个不合适的特征空间,很可能导致性能不佳。常用的核函数有线性核、多项式核、高斯核、拉普拉斯核、Sigmod核。它们的线性组合、直积等也是核函数。

软间隔:现实任务中很难确定合适的核函数使得训练样本在特征空间中线性可分,缓解该问题方法,引入软间隔概念。即允许某些样本不满足约束条件。

三种常用的损失替代函数:hinge损失、指数损失、对率损失。

使用对率损失函数替代,则会得到对率回归模型。对率回归的优势主要在于其输出不具有概率意义,遇得到概率输出需要进行特殊处理;此外对率回归能直接用于多分类任务,支持向量机为此则需要进行推广。对率回归依赖于更多的训练样本,其预测开销更大。

支持向量回归(SVR)假设我们能容忍f(x)与y之间最多有N个误差,即仅当f(x)与y之间的差别绝对值大于N时才计算损失。

核方法

无论是SVM还是SVR,学得的模型总能表示成核函数的线性组合。人们发展出一系列基于核函数的学习方法,统称为”核方法“最常见的是通过"核化"(即引入核函数)来将线性学习器拓展为非线性学习器。

第七章  贝叶斯分类器

贝叶斯据策论是概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。

贝叶斯判定准则:为最小化总体风险,只需在每个样本上选择哪个能使条件风险最小的类别标记。

估计后验概率有两种策略,一,判别式模型,二,生成式模型。

估计类条件概率的一种常用的策略是先假定其具有某种确定的概率分布形式,再基于训练样本对概率分布的参数进行估计。

概率模型的训练过程就是参数估计过程,对于参数估计,统计学界有两个学派,频率主义学派(极大似然估计)和贝叶斯学派。

朴素贝叶斯分类器

朴素贝叶斯分类器采用属性条件独立性假设。朴素贝叶斯分类器表达式:

朴素贝叶斯分类器的训练过程就是基于训练集D来估计类先验概率P(c),并为每个属性估计条件概率

在现实任务中,朴素贝叶斯分类器有多种使用方式。若任务对预测速度要求较高,则对给定训练集,可将朴素贝叶斯分类器涉及的所有概率估值事先计算好存储起来,这样在进行预测时只需”查表“即可进行判别;若任务数据更替频繁,则可采用”懒惰学习方式”,先不进行任何训练,待收到预测请求时再根据当前数据集进行概率估值;若数据不断增加,则可在现有估值基础上,仅对新增样本的属性值所设计的概率估值进行计数修正即可实现增量学习。

半朴素贝叶斯分类器

属性条件独立性这个假设在现实任务中很难成立,尝试对该假设进行一定程度的放松。基本想法:适当考虑一部分属性间的相互依赖信息,从而既不需进行联合概率计算,又不至于彻底忽略了比较强的属性依赖关系。“独依赖估计(ODE)”是半朴素贝叶斯分类器最常用的一种策略。独依赖指假设每个属性在类别之外最多仅依赖于一个其他属性。SPODE,AODE。

贝叶斯网

贝叶斯网亦称信念网,它借助有向五环图来刻画属性之间的依赖关系,并使用条件概率表来描述属性的联合概率分布。一个贝叶斯网由结构和参数两部分构成。

贝叶斯网学习的首要任务就是根据训练数据集来找出结构最恰当的贝叶斯网,“评分搜索”是求解这一问题的常用办法。定义一个评分函数,以此来评估贝叶斯网与训练数据的契合程度。

在现实实用中,贝叶斯网的近似推断常使用吉布斯采样来完成,这是一种随机采样方法。

EM算法:现实应用中往往会遇到“不完整”的训练样本,即含有隐变量。EM算法,是常用的估计参数隐变量的力气,他是一种迭代式的方法。简要来说,EM算法使用两个步骤交替计算:第一步是期望(E)步,利用当前估计的参数值来计算对数似然的期望值;第二步是最大化(M)步,寻找能使E步产生的似然期望最大化的参数值。然后,新得到的参数值重新被应用于E步,直至收敛到局部最优解。

隐变量估计问题也可以通过梯度下降等优化算法求解,但过于麻烦。

第八章  集成学习

集成学习通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统、基于委员会的学习等。

集成分为同质(只包含同种类型的个体学习器)、异质(可包含不同类型的个体学习器)两类。

集成学习的研究的核心为:如何产生并结合“好而不同”的个体学习器。

根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类,即个体学习器间存在强依赖关系、必须串行生成的序列化方法,以及个体学习器间不存在强依赖关系、可同时生成的并行化方法;前者的代表是Boosting,后者的代表是Bagging和随机森林。

Bossting是一族可将弱学习器提升为强学习器的算法。这族算法的工作机制类似:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。Boosting族算法的代表AdaBoost。

Boosting 算法要求基学习器能对特定的数据分布进行学习这可通过“重赋权法”和“重采样法”实施。

Bagging是并行式集成学习方法最著名的代表,它基于自助采样法,采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法。若分类预测时出现同样的票数,可随机选择一个,或考察学习器的投票的置信度来确定。

标准Adaboost只适用于二分类任务,适用于多分类和回归任务需要修改,而Bagging能不经修改地用于多分类、回归任务。

Bagging由于采用自助采样,因此可进行包外估计。

随机森林是Bagging的一个扩展变体。RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。

随机森林简单、容易实现、计算开销小,令人惊奇的是,它在很多现实任务中展现出强大的性能,被誉为“代表集成学习技术水平的方法”。它的多样性不仅通过样本扰动,而且又有属性扰动。

学习器结合可能会从三个方面带来好处:首先从统计方面看,可以减小单学习器可能因为误选二导致泛化性能不佳的风险。其次,从计算的方面来看,可降低陷入局部极小点的风险。最后,从表示的方面来看,扩大了算法的假设空间,有可能学得更好的近似。

T个基学习器输出结果结合的常见策略有:平均法(简单平均法、加权平均法,一般而言,在个体学习器性能相差较大时宜使用加权平均法,在个体学习器性能相近时宜使用简单平均法),投票法(绝对多数投票法、相对多数投票法、加权投票法。类概率校准方法,Platt缩放,等分回归等),学习法(代表算法,Stacking。训练数据很多时,可使用此方法。个体学习器称之为初级学习器,用于结合的学习器称之为次级学习器或元学习器)。

欲构建泛化能力强的集成,个体学习器应“好而不同”。个体学习器准确性越高、多样性越大,则集成越好。

多样性的度量,典型的做法是考虑个体分类器的两两相似/不相似性。有:不合度量,相关系数、Q-统计量,k-统计量。

多样性增强方法:数据样本扰动(对不稳定基学习器有效,对稳定基学习器作用不大)、输入属性扰动(代表:随机子空间,若数据只包含少量属性,或者冗余属性,不宜使用)、输出表示扰动(翻转法)、算法参数扰动(负相关法)。

第十章  降维与度量学习

K近邻学习:简称KNN,常用的监督学习方法,给定测试样本,基于某种距离度量找出训练集中与其最靠近的K个训练样本,然后基于这K个邻居的信息来进行预测。分类任务中用投票法,回归任务中用平均法。KNN是懒惰学习的著名代表,那些在训练阶段就对样本进行学习处理的方法,称为急切学习。

维数灾难:在高维情形下出现的数据样本稀疏、距离计算困难等问题。

降维,亦称维数约简,即通过某种数学变换将原始高维属性空间转变为一个低维“子空间”,在这个子空间中样本密度大幅提高,距离计算也变得更为容易。

多维缩放(MDS):要求原始空间中样本之间的距离在低维空间中得以保持。(根据公式计算不同距离,然后得出矩阵,对该矩阵特征值分解,取N维个特征值,从大到小组成对角矩阵,再求相应的特征向量,最后根据公式求出低维坐标矩阵)

主成分分析(PCA):可从最近重构性和最大可分性推导。(首先对样本去中心化,计算样本的协方差矩阵,对该矩阵做特征值分解,取N维特征值对应的特征向量作为投影矩阵)

降维后低维空间的维数D通常是由用户事先指定,或通过在D值不同的低维空间中对K近邻分类器(或其它开销较小的学习器)进行交叉验证来选取较好的D值。

降维必然要舍弃部分信息,一方面,舍弃这部分信息之后能使样本的采样密度增大,这正是降维的重要动机;另一方面,当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,将它们舍弃能在一定程度上起到去噪的效果。

核化线性降维(非线性降维)基于核技巧对线性降维方法进行“核化”。

流行学习,是一类借鉴了拓扑流行概念的降维方法,“流行”是在局部与欧氏空间同胚的空间,换言之,它在局部具有欧氏空间的性质,能用欧氏距离来进行距离计算。

等度量映射(Isomap)认为低维流形嵌入到高维空间之后,直接在高维空间中计算直线距离具有误导性,因为高维空间中的直线距离在低维嵌入流行上是不可达的,该方法试图保持近邻样本之间的距离。在近邻连接图(构建方法,有指定近邻点个数和指定距离阈值)上计算两点之间的最短路径,可采用Dijkstra算法或Floyd算法,在得到距离之后,用MDS方法来获得样本点在低维空间中的坐标。

局部线性嵌入(LLE)该方法,试图保持邻域之间的线性关系,即假定样本点的坐标能通过它的邻域样本的坐标进行线性组合重构出来。

度量学习,在机器学习中,我们对高维数据进行降维的主要目的是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好,每个空间对应了在样本属性上定义的一个距离度量,寻找合适的空间,就是寻找合适的距离度量。因此,可直接尝试学习出一个合适的距离度量。

懒惰学习方法主要有KNN学习器,懒惰决策树,朴素贝叶斯分类器既能以懒惰学习方式使用,也能以急切学习方式使用。

在模式识别领域中,直接对矩阵对象(例如一幅图像)进行降维操作会比将其拉伸为向量(例如把图像逐行拼接成一个向量)再进行降维操作 有更好的性能。

第十一章 特征学习与稀疏表示

第十二章 计算学习理论

猜你喜欢

转载自blog.csdn.net/wangyuxi__/article/details/81037836