原创不易,如果有转载需要的话,请在首行附上本文地址,谢谢。
第二章:模型评估与选择 过拟合与欠拟合
欠拟合容易克服,例如在决策树学习中扩展分支,在神经网络学习中增加训练轮数等。
过拟合很麻烦,所有算法都不可避免,只能缓解或减小其风险。
模型选择问题
理想的解决方案是对候选模型的泛化误差进行评估,然后选择泛化误差最小的那个模型。
样本划分为训练集和测试集
测试集的划分方法有以下几种:
留出法:直接将数据集划分为两个互斥的集合。划分可以随机划分,人为划分,坚持分层采样。单次使用留出法得到的估计结果往往不够稳定可靠,在使用留出法得到的估计结果往往不够稳定可靠,一般采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。常见做法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神经元,亦称”阈值逻辑单元“。
给定训练集,权重和阈值可通过学习得到,感知机的学习规则非常简单,对训练样例
文章图片
,若当前感知机的输出为
文章图片
,则感知机权重将这样调整:
文章图片
,其中
文章图片
属于0-1,称为学习率。若感知机对训练样例
文章图片
预测正确,即
文章图片
,则感知机不发生变化,否则将根据错误的程度进行权重调整。需注意的是,感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力非常有限,例如不能解决异或简单的非线性可分问题。
多层前馈神经网络——其中输入层神经元接受外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出。多层网络中,只需包含隐层即可称之。神经网络的学习过程,就是根据训练数据来调整神经元之间的”连接权“以及每个功能神经元的阈值。换言之,神经网络学到的东西,蕴含在连接权与阈值中。
误差逆传播算法——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学习器,懒惰决策树,朴素贝叶斯分类器既能以懒惰学习方式使用,也能以急切学习方式使用。
在模式识别领域中,直接对矩阵对象(例如一幅图像)进行降维操作会比将其拉伸为向量(例如把图像逐行拼接成一个向量)再进行降维操作 有更好的性能。
第十一章 特征学习与稀疏表示 给定一个属性集,我们将属性称为特征,对当前学习任务有用的属性称为“特征相关”,没什么用的属性称为“无关特征”,从给定的特征集合中选择子集的过程,称为特征选择。
特征选择是一个重要的数据预处理过程,进行此步骤原因,一,减轻位数灾难问题。第二,降低学习任务难度。
欲从特征集合中选取一个包含了所有重要信息的特征子集,有两个关键环节,第一,子集搜索问题。有前向搜索,后向搜索,双向搜索策略。第二,子集评价问题,可根据信息增益。
特征选择方法,将子集搜索机制与子集评价机制相结合。常见的特征选择方法有过滤式,包裹式和嵌入式。
过滤式方法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关。代表方法:Relief(该方法主要设计一个相关统计量来度量特征的重要性。Relief的时间开销随采样次数以及原始特征数线性增长,因此运行效率很高。Relief是为二分类问题设计的,其扩展变体Relief-F能处理多分类问题。)
包裹式方法,直接把最终将要使用的学习器的性能作为特征子集的评价准则。由于在特征选择过程中需多次训练学习器,因此包裹式特征选择的计算开销通常比过滤式特征选择大得多。代表方法:LVW。
嵌入式特征选择与L1正则化
嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在训练过程中自动地进行了特征选择。该方法中可选择引入正则化项,来缓解过拟合。L1范数和L2范数正则化,都有助于降低过拟合风险。但前者比后者更易于获得稀疏解,即它求得的W会有更少的非零向量。L1正则化问题的求解可使用方法——近端梯度下降PGD。
稀疏表示与字典学习
学习出一个字典,为普通稠密表达的样本找到合适的字典,将样本转化为合适的稀疏表示形式,从而使学习任务得以简化,模型复杂度得以降低,通常称为字典学习,亦称稀疏编码。字典学习侧重学得字典的工程,稀疏编码侧重对样本进行稀疏表达的过程。但,这两者是在同一个优化求解过程中完成的,可笼统称为字典学习。
压缩感知
现实任务中个,常遇到希望根据部分信息来恢复全部信息。与特征选择、稀疏表示不同,压缩感知关注的是用信号本身具有的稀疏性,从部分观测样本中恢复原信号。压缩感知分为感知测量和重构恢复这两个阶段。感知测量,关注如何对原信号进行处理以获得稀疏样本表示,这方面内容涉及傅里叶变换,小波变换,字典学习,稀疏编码等。重构恢复,关注如何基于稀疏性从少量观测中恢复原信号,这是压缩感知的精髓,因此谈到压缩感知,通常指该部分。压缩感知,直接催生了人脸识别的鲁棒主成分分析和基于矩阵补全的协同过滤。
第十二章 计算学习理论 计算学习理论,研究的是关于通过计算来进行学习的理论,即关于机器学习的理论基础。其目的是分析学习任务的困难本质,为学习算法提供理论保证,并根据分析结果知道算法设计。
计算学习理论中最基本的是概率近似正确PAC学习理论。有限假设空间包含可分情形和不可分情形。
VC维,现实学习任务所面临的通常是无限假设空间,例如实数域中的所有区间等。VC维中包含几个概念,增长函数,对分和打散。
VC维,若存在大小为d的示例集能被H打散,但不存在任何大小为d+1的示例集能被H打散,则H的VC维是d。基于VC维的泛化误差界是分布无关、数据独立的,也就是说,对任何数据分布都成立。VC维的可学习性分析结果具有普适性。
Rademacher复杂度是另一种刻画假设空间复杂度的途径,与VC维不同的是,它在一定程度上考虑了数据分布。
稳定性
无论是基于VC维还是Rademacher复杂度来推导泛化误差界,所得到的结果均与具体学习算法无关,多所有学习算法都适用。这使得人们能够脱离具体学习算法的设计来考虑学习问题本身的性质。但在另一方面,若想获得与算法有关的分析结果,则需另辟蹊径,稳定性是一个研究方向。
稳定性:考察的是算法在输入发生变化时,输出是否会随之发生较大的变化。
第十三章 半监督学习 主动学习:其目标是使用尽量少的“查询”方式来获得尽量好的性能,主动学习引入了额外的专家知识。
半监督学习,让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能。
半监督学习中对未标记样本的假设有聚类假设(假设数据存在簇结构,同一个簇的样本属于同一个类别)和流形假设(假设数据分布在一个流形姐结构上,邻近的样本拥有相似的输出值),它们的本质是相似的样本拥有相似的输出。
半监督学习可划分为纯半监督学习和直推学习,两者区别在于是否将假定训练中的未标记样本作为待预测数据。
生成式方法,是直接基于生成式模型的方法,因此生成式模型的假设不同,将产生不同的方法。此类方法假设所有数据无论是否标记都是由同一个潜在的模型生成,这个假设使得我们我们能通过潜在模型的参数将未标记数据与学习目标联系起来,而未标记数据的标记则可看作模型的缺失参数,通常可基于EM算法进行极大似然估计求解。
半监督支持向量机(S3VM),是支持向量机在半监督学习上的推广。试图找到能将两类有标记样本分开,且穿过数据低密度区域的划分超平面。
半监督支持向量机中最著名的是TSVM,与标准SVM一样,它也是针对二分类问题的学习方法。它试图考虑对未标记样本进行各种可能的标记指派,即尝试将每个未标记样本分别作为正例和反例,然后在所有这些结果中,寻求一个在所有样本(包括有标记样本和进行了标记指派的未标记样本)上间隔最大化的划分超平面。TSVM,采用局部搜索来迭代式地寻找近似解。
图半监督学习,一个数据集可映射为一个图,数据集中每个样本对应于图中一个结点,若两个样本之间的相似度很高(或相关性很强),则对应的 结点之间存在一条边,边的强度正比于样本之间的相似度(或相关性)。由于图可对应矩阵,因此我们能基于矩阵运算来进行半监督学习算法的推导与分析。
基于分歧的方法,与生成式方法、半监督SVM、图半监督学习等基于单学习器利用未标记数据不同,它使用多学习器,而学习器之间的分歧对未标记数据的利用至关重要。该方法的代表——协同训练,它最初是针对多视图数据设计的,因此也被看作多视图学习的代表。协同训练很好地利用了多视图的相容互补性。协同训练本身是为多视图设计的,但后来出现了一些在单视图数据上使用的变体算法,它们使用不同的学习算法,或者使用不同的数据采用,甚至是使用不同的参数设置来产生不同的学习器,也能有效地利用未标记数据来提升性能,但做到这一点,需要巧妙的设计。
半监督聚类,聚类本身是无监督学习,可加入一些额外的监督信息。聚类任务中获得的监督信息大致有两种类型,第一种类型是必连与勿连约束。第二种是少量的有标记样本。
第十四章概率图模型 概率模型提供了一种描述框架,将学习任务归结于计算变量的概率分布。概率图模型,是一类用图来表达变量相关关系的概率模型。它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的边表示变量间的概率相关关系,即“变量关系图”。根据边的性质不同,概率图模型可大致分为,有向图模型或贝叶斯网和无向图模型或马尔科夫网。
隐马尔可夫模型(HMM)是结构最简单的动态贝叶斯网,是一种著名的 有向图模型,主要用于时序数据建模,在语音识别、自然语言处理等领域有广泛的应用。确定一个HHM需要三组参数:状态转移概率,输出观测概率和初始状态概率。
马尔可夫随机场(MRF),是一种著名的无向图模型,图中每个结点表示一个或一组变量,结点之间的边表示两个变量之间的依赖关系。马尔可夫随机场有一组势函数,亦称因子,这是定义在变量子集上的非负实函数,主要用于定义概率分布函数。对马尔可夫随机场,有全局马尔可夫性即给定两个变量子集的分离集,则这两个变量子集条件独立。由全局马尔可夫性推出,局部马尔可夫性和成对马尔可夫性。
条件随机场(CRF)是一种判别式无向图模型。生成式模型(HMM和MRF)是直接对联合分布建模,而判别式模型(CRF)则是对条件分布进行建模。条件随机场和马尔可夫随机场均使用团上的势函数定义概率,两者在形式上没有显著区别;但条件随机场处理的是条件概率,而马尔可夫随机场处理的是联合概率。
边际分布:指对无关变量求和或积分后得到结果。
概率图模型的推断方法大致可分为两类:第一类是精确推断方法,希望能计算出目标变量的边际分布或条件分布的精确值,由于该算法的计算复杂度随着极大团规模的增长呈指数增长,适用范围有限。第二类是近似推断方法,希望在较低的时间复杂度下获得原问题的近似解。
精确推断 实质是一类动态规划算法,它利用图模型所描述的条件独立性来削减计算目标概率值所需的计算量。代表方法有变量消去和信念传播。变量消去法,是最直观的精确推断算法,也是构建其他精确推断算法的基础。信念传播算法,将变量消去法中的求和操作看作一个消息传递过程,较好地解决了求解多个边际分布时的重复计算问题。
近似推断方法大致可分为两类:第一类是采样,通过使用随机化方法完成近似;第二类是使用确定性近似完成近似推断,典型代表为变分推断。
概率图模型中最常采用的采样技术是马尔科夫链蒙特卡罗方法(MCMC)MCMC方法的关键在于通过构造“平稳分布为p的马尔可夫链”来产生样本:若马尔可夫链运行时间足够长,则此时产出的样本x近似服从于分布p。马尔可夫链转移概率的构造至关重要,不同的构造方法将产生不同的MCMC算法。Metropolis-Hastings(MH)算法是MCMC的重要代表,它基于“拒绝采样”来逼近平稳分布p。
变分推断,通过使用已知简单分布来逼近需推断的复杂分布,并通过限制近似分布的类型,从而得到一种局部最优、但具有确定解的近似后验分布。
话题模型,是一族生成式有向图模型,主要用于处理离散型的数据如文本集合,在信息检索、自然语言处理等领域有广泛应用。典型代表为隐狄利克雷分配模型(LDA)。
第十五章 规则学习 机器学习中的规则通常是指语义明确、能描述数据分布所隐含的客观规律或领域概率、可写成若........,则...........形式的逻辑规则。规则学习是从训练数据中学习出一组能用于对未见示例进行判别的规则。规则学习是符号主义学习的主要代表。
规则学习具有更好的可解释性,与神经网络和支持向量机这样的“黑箱模型”相比,能使用户更直观地对判别过程有所了解。另一方面,数理逻辑具有极强的表达能力。
当同一个示例被判别结果不同的多条规则覆盖时,称发生了冲突,解决冲突的办法称为冲突消解。常用的冲突消解策略有投票法、排序法、元规则法等。
从形式语言表达能力而言,规则可分为两类:命题规则和一阶规则。前者由原子命题和逻辑连接词构成的简单陈述句。后者的基本成分是能描述事物的属性或关系的原子公式,其中有逻辑变量和量词。一阶规则能表达复杂的关系,因此也被称为关系型规则。显然,从形式语言系统的角度来看,命题规则是一阶规则的特例,因此一阶规则的学习比命题规则要复杂得多。
规则学习的目标是产生一个能覆盖尽可能多的样例的规则集。最直接做法是序贯覆盖,即逐条归纳:在训练集上每学到一条规则,就将该规则覆盖的训练样例去除,然后以剩下的训练样例组成训练集重复上述过程。该策略又被称为分治策略。
采用序贯覆盖策略的关键是如何从训练集学出单条规则,现实任务中一般有两种策略,第一种是自顶向下,亦称生成 -测试,逐渐特化过程。第二种策略是自底向上,亦称为数据驱动,逐渐泛化过程。
规则生成本质上是一个贪心搜索过程,需有一定的机制来缓解过拟合的风险,最常见的做法是剪枝。与决策树相似,剪枝有预剪枝和后剪枝。
命题规则学习难以处理对象之间的关系,而关系信息在很多任务中非常重要。一阶规则学习能容易地引入领域知识,这是它相对于命题规则学习的另一大优势。
一阶规则学习算法代表为FOIL,它遵循序贯覆盖框架且采用自顶向下的规则归纳策略,采用后剪枝进行优化。它是命题规则学习与归纳逻辑程序设计之间的过渡。
归纳逻辑程序设计(ILP)在一阶规则学习中引入了函数和逻辑表达式嵌套。它采用自底向上的规则生成策略,直接将一个或多个正例所对应的具体事实作为初始规则,在对规则逐步进行泛化以增加其对样例的覆盖率。泛化操作可以是将规则中的常量替换为逻辑变量,也可以是删除规则体中的某个文字。最基础的技术有最小一般泛化(LGG)。最常用的是RLGG。
在逻辑学中,归纳和演绎是人类认识世界的两种基本方式,一般数学定理证明是演绎实践的代表,而机器学习显然是属于归纳的范畴。
基于归结原理,我们可将貌似复杂的逻辑规则与背景知识联系起来化繁为简;而基于逆归结,我们可基于背景知识来发明新的概念和关系。
在逻辑推理实践中,实现逆归结,有四种操作,吸收、辨识、内构、互构。
一阶逻辑的归结、逆归结通常需要进行合一置换操作。合一:用一种变量置换令两个或多个逻辑表达式相等。置换:用某些项来替换逻辑表达式中的变量。
第十六章强化学习 强化学习任务通常用马尔可夫决策过程来描述,由环境,状态空间,动作空间,转移函数和奖赏函数构成。
在强化学习任务中,学习的目的就是要找到能使长期累积奖赏最大化的策略。长期累积奖赏有多种计算方式,常用的有T步累积奖赏和Y折扣累积奖赏。强化学习与监督学习的区别在于它没有标记样本,换言之,没有人直接告诉机器在什么状态下应该做什么动作,只有等到最终结果揭晓,才能通过反思之前的动作是否正确来进行学习。
单步强化学习任务对应了一个理论模型,即K-摇臂赌博机。
强化学习会面临一个窘境即“探索-利用窘境”。
e-贪心法基于一个概率来对探索和利用进行折中:每次尝试时,以e的概率进行探索,即以均匀概率随机选取一个摇臂;以1-e的概率进行利用,即选择当前平均奖赏最高的摇臂(若有多个,随机选取一个)。
softmax算法基于当前已知的摇臂平均奖赏来对探索和利用进行折中。
若任务对应的马尔可夫决策过程四元组E
策略评估:状态值函数,状态-动作值函数。
策略改进:最优Bellman 等式揭示了非最优策略的改进方式:将策略选择的动作改变为当前最优的动作。
策略迭代:从一个初始策略(通常是随机策略)出发,先进行策略评估,然后改进策略,评估改进的策略,再进一步改进策略,。。。不断迭代进行策略评估和改进,知道策略收敛、不再改变为止。
在现实的强化学习任务中,环境的转移概率、奖赏函数往往很难得知,甚至很难知道环境中一共有多少状态。若学习算法不依赖于环境建模,则称为“免模型学习”,这比有模型学习困难的多。
免模型代表,蒙特卡洛强化学习:一种直接的策略评估替代方法是多次采样,然后求取平均累积奖赏来作为期望累积奖赏的近似。若评估与被改进的是同一个策略,又被称为同策略蒙特卡洛强化学习算法。
蒙特卡罗强化学习算法,通过考虑采样轨迹,克服了模型未知给策略估计造成的困难。它没有充分考虑强化学习任务的MDP结构。与之对比,时序差分学习则结合了动态规划与蒙特卡洛方法的思想,能做到更高效的免模型学习。
模仿学习:在现实任务中,我们往往能得到人类专家的决策过程范例,从这样的范例中学习,称为模仿学习。
直接模仿学习:直接模仿人类专家的状态-动作对。
逆强化学习:从人类专家提供的范例数据中反推出奖赏函数。它的基本思想是:欲使机器做出与范例一致的行为,等价于在某个奖赏函数的环境中求解最优策略,该最优策略所产生的轨迹与范例数据一致。换言之,我们要寻找某种奖赏函数使得范例数据是最优的,然后即可使用这个奖赏函数来训练强化学习策略。
总结,历时一个多月,终于看完了一遍,心里甚是开心,留此句作为纪念和鼓励。
推荐阅读
- 人工智能|机器学习中的特征——特征选择的方法以及注意点
- 机器学习——Feature|机器学习——正则化 (L1与L2范数)
- Deep|《动手学深度学习》(一)-- 线性神经网络
- 人工智能|图神经网络
- 神经网络|为什么要进行图学习(谈一谈逆势而上的图神经网络)
- DGL|基于注意力机制的图神经网络GAT的一些理解以及DGL官方代码的一些理解
- 神经网络|【经典课程】图灵奖得主LeCun亲授,深度学习课程在线发布
- 人工智能|2202年了,AI还是不如猫!图灵奖得主Yann LeCun(3大挑战依然无解)
- 图像处理|计算机视觉--Python实现人体姿态估计