西瓜书笔记

一、绪论

1.1 引言

1.2 基本术语

若我们欲预测的是离散值,例如“好瓜”“坏瓜”,此类学习任务称为“分类”;若欲预测的是连续值,例如西瓜成熟度 0.95、0.37 此类学习任务称为“回归”

1.3 假设空间

1.4 归纳偏好

1.5 发展历程

二、模型评估与选择

2.1 经验误差与过拟合

经验误差(训练误差):在训练集上的误差

泛化误差:在新样本上的误差

过拟合:把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,导致泛化性能下降

欠拟合:对训练样本的一般性质尚未学好

2.2 评估方法

2.2.1 留出法

将数据集 D 划分为两个对立的集合,其中一个 集合作为训练集S,另一个作为测试集T,即D=S\cup T, S\cap T=\varnothing,在 S 上训练出模型后,用 T 来评估其测试误差,作为对泛化误差的估计

训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响,例如在分类任务中至少要保持样本的类别比例相似。

2.2.2 交叉验证法

先将数据集 D 划分为 k 个大小相似的互斥子集,即D=D_1\cup D_2\cup \cdots\cup D_k,D_i\cap D_j=\varnothing (i\neq j),每个子集 D_i 都尽可能保持数据分布的一致性,即从 D 中通过分层采样得到,然后每次用 k-1 个子集的并集作为训练集,余下的那个子集作为测试集,这样就可获得 k 组训练/测试集,从而可进行 k 次训练和测试,最终返回的是这 k 个测试结果的均值,k 通常取10。

2.2.3 自助法

给定包含 m 个样本的数据集 D,我们对它进行采样产生数据集 D,每次随机从D中挑选一个样本拷贝放入D,该样本在下次采样时仍有可能被采到,重复 m 次后,我们就得到了包含m个样本的数据集 D',将D'用作训练集,D\D′用作测试集。

2.2.4 调参与最终模型

2.3 性能度量

2.3.1 错误率与精度

错误率是分类错误的样本数占样本总数的比例

精度是分类正确的样本数占样本总数的比例

更一般的,对于数据分布 D 和概率密度函数 p(),错误率与精度可分别描述为

2.3.2 查准率、查全率与F1

查准率P,分母是预测为真的

查全率R为,分母是实际为真的

在很多情形下,我们可根据学习器的预测结果对样例进行排序,排在前面的是学习器认为“最可能”是正例的样本,排在最后的则是学习器认为“最不可能”是正例的样本,按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的查全率、查准率。

以查准率为纵轴、查全率为横轴作图,就得到了查准率-查全率曲线,简称“P-R曲线”,显示该曲线的图称为“P-R图”

P-R 图直观地显示出学习器在样本总体上的查全率、查准率。

在进行比较 时,若一个学习器的 P-R 曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者,例如上图中学习器  A 的性能优于学习器 C;

如果两个学习器的 P-R 曲线发生了交叉,例如A与B,则难以一般性地断言 两者孰优孰劣,只能在具体的查准率或查全率条件下进行比较。

然而,在很多情形下,人们往往仍希望把学习器 A 与 B 比出个高低。这时一个比较合理的判据是比较 P-R 曲线下面积的大小,它在一定程度上表征了学习器在查准率和查全率上取得相对“双高”的比例,但这个值不太容易估算,因此,人们设计了一些综合考虑查准率、查全率的性能度量

“平衡点”(简称 BEP)就是这样一个度量,它是“查准率=查全率”时的取值,例如学习器 C 的 BEP 是0.64,而基于 BEP 的比较,可认为学习器 A 优于 B

F1度量为

在一些应用中,对查准率和查全率的重视程度有所不同,例如在商品推荐系统中,为了尽可能少打扰用户,更希望推荐内容确是用户感兴趣的,此时查准率更重要;而在逃犯信息检索系统中,更希望尽可能少漏掉述犯,此时查全率更重要,F1度量的一般形式— F_\beta,能让我们表达出对查准率/查全率的不同偏好,它定义为 

其中 β>0 度量了查全率对查准率的相对重要性,β=1 时退化为标准的F1;β>1 时查全率有更大影响;β<1时查准率有更大影响。

2.3.3 ROC与AUC

根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图,就得到了“ROC曲线”.

与 P-R 曲线使用查准率、查全率为纵、横轴不同,ROC曲线的纵轴是“真正例率”(简称 TPR),横轴是“假正例率”(简称 FPR),两者分别定义为 

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

在现实任务中常会遇到这样的情况:不同类型的错误所造成的后果不同。

例如在医疗诊断中,错误地把患者诊断为健康人与错误地把健康人诊断为患者、 看起来都是犯了“一次错误”,但后者的影响是增加了进一步检查的麻烦,前者的后果却可能是丧失了拯救生命的最佳时机;再如,门禁系统错误地把可通行人员拦在门外,将使得用户体验不佳,但错误地把陌生人放进门内,则会造成严重的安全事故。

为权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”

以二分类任务为例,我们可根据任务的领域知识设定一个“代价矩阵”,如下表所示,其中 cost_{ij} 表示将第 i 类样本预测为第 j 类样本的代价。

一般来说, cost_{ii}=0;若将第 0 类判别为第 1 类所造成的损失更大,则 cost_{01}>cost_{10};损失程度相差越大,cost_{01} 与 cost_{10} 值的差别越大。

若将上表中的第 0 类作为正类、第 1 类作为反类,令 D+ 与 D- 分别代表样例集 D 的正例子集和反例子集,则“代价敏感”错误率为

在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”则可达到该目的

代价曲线图的横轴是取值为[0,1] 的正例概率代价

其中 p 是样例为正例的概率;

纵轴是取值为 [0,1] 的归一化代价

 其中 FPR 是假正例率,FNR=1-TPR是假反例率

代价曲线的绘制很简单:ROC曲线上每一点对应了代价平面上的一条线段,设ROC曲 线上点的坐标为(TPR,FPR),则可相应计算出FNR,然后在代价平面上绘制一条从(0, FPR)到(1, FNR)的线段,线段下的面积即表示了该条件下的期望总体代价;如此将ROC曲线上的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价

2.4 比较检验

2.4.1 假设检验

“假设”是对学习器泛化错误率分布的某种判断或猜想,例如 \epsilon =\epsilon _0

2.4.2 交叉验证t检验

对两个学习器 A 和 B,若我们使用k折交叉验证法得到的测试错误率分别为 \epsilon _1^A, \epsilon _2^A, \cdots, \epsilon _k^A 和 \epsilon _1^B, \epsilon _2^B, \cdots, \epsilon _k^B,其中 \epsilon _i^A 和 \epsilon _i^B 是在相同的第 i 折训练/测试集上得到的结果,则可用 k 折交叉验证“成对 t 检验”来进行比较检验

2.4.3 McNemar检验

2.4.4 Friedman检验与Nemenyi检验后续

2.5 偏差与方差

使用样本数相同的不同训练集产生的方差为

噪声为

 偏差为期望输出与真实标记的差别

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

三、线性模型

3.1 基本形式

通过属性的线性组合来进行预测的函数

用向量形式写成

3.2 线性回归

若离散属性值间存在“序”关系,可通过连续化将其转化为连续值,例如二值属性“身高”的取值“高”“矮”可转化为{1.0, 0.0},三值属性“高度” 的取值“高”“中”“低”可转化为{1.0, 0.5, 0.0};

若属性值间不存在序关系,假定有k个属性值,则通常转化为k维向量,例如属性“瓜类”的取值“西 瓜”“南瓜”“黄瓜”可转化为(0,0,1),(0,1,0),(1,0,0).

让均方误差最小化

可以得到

多元线性回归

把 \omega 和 b 吸收入向量形式 \hat{\omega}=(\omega; b) 数据集表示为

X^TX为满秩矩阵或正定矩阵时

 当X^TX不是满秩矩阵时,例如变量数大于样例数,导致X的列数多于行数而不满秩,此时可以解出多个 \hat{\omega},选择哪一个作为输出由学习算法决定,常见的做法是引入正则化项

广义线性模型

其中 g(·) 为联系函数 

3.3 对数几率回归

对数几率函数

 把对数几率函数作为联系函数的逆

几率:若将 y 视为样本x作为正例的可能性,则 1-y 是其为反例可能性,两者的比值 \frac{y}{1-y} 称为几率,,反映了x 作为正例的相对可能性

对数几率:对几率取对数 In\frac{y}{1-y}

对率回归求解 

最大似然法核心思想:max{ p(真是+)p(预判为+) + p(真是-)p(预判为-) } 

防止下溢需要取对数

3.4 线性判别分析

给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别

3.5 多分类学习

考虑N个类别 C_1,C_2,\cdots,C_N,多分类学习的基本思路是 “拆解法”,即将多分类任务拆为若干个二分类任务求解,具体来说,先对问题进行拆分,然后为拆出的每个二分类任务训练一个分类器;在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果

最经典的拆分策略有三种:一对一(OvO)、一对其余(OvR)和多对多(MvM)

一对一OvO将这N个类别两两配对,从而产生N(N-1)/2个二分类任务,例如OvO将为区分类别 C_i 和 C_j 训练一个分类器,该分类器把D中的 C_i 类样例作为正例,C_j 类样例作为反例、在测试阶段,新样本将同时提交给所有分类器,于是我们将得到N(N-1)/2个分类结果,最终结果可通过投票产生:即把被预测得最多的类别作为最终分类结果

一对其余OvR则是每次将一个类的样例作为正例、所有其他类的样例作为反例来训练N个分类器,在测试时若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果,若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果

多对多MvM是每次将若干个类作为正类,若干个其他类作为反类.

显然,OvO和OvR是MvM的特例,MvM的正、反类构造必须有特殊的设计,不能随意选取. 

3.6 类别不平衡问题

指分类任务中不同类别的训练样例数目差别很大的情况,例如有 998个反例,但正例只有2个,那么学 习方法只需返回一个永远将新样本预测为反例的学习器,就能达到99.8%精 度;然而这样的学习器往往没有价值,因为它不能预测出任何正例

我们用 y=w^T+b 对新样本 x 进行分类时,事实上是在用预测出的y值与一个阀值进行比较,例如通常在 y>0.5 时判别为正例,否则为反例,y实际上表达了正例的可能性,几率 \frac{y}{1-y} 则反映了正例可能性与反例可能性之比值,阈值设置为0.5恰表明分类器认为真实正、反例可能性相同,即分类器决策规则为

若 \frac{y}{1-y} > 1 则预测为正例

基本处理方法:当训练集中正、反例的数目不同时,令m^+表示正例数目,m^-表示 反例数目,则观测几率是\frac{m^+}{m^-},由于我们通常假设训练集是真实样本总体的无偏 样,因此观测几率就代表了真实几率,所以只要分类器的预测几率高于观测几率就应判定为正例,即

若 \frac{y}{1-y} > \frac{m^+}{m^-} 则预测为正例

 但是我们的分类器是基于 \frac{y}{1-y} > 1 进行决策,因此需要对对其预测值进行调整

\frac{y'}{1-y'} = \frac{y}{1-y} \times \frac{m^-}{m^+}

这就是类别不平衡学习的一个基本策略“再缩放”

再缩放的思想虽简单,但实际操作却并不平凡,主要因为“训练集是真实样本总体的无偏采样”这个假设往往并不成立,也就是说,我们未必能有效地基于训练集观测几率来推断出真实几率,现有技术大体上有三类做法:

第一类是直接对训练集里的反类样例进行“欠采样”,即去除一些反例使得正、反例数目接近;

第二类是对训练集里的 正类样例进行“过采样”,即增加一些正例使得正反例数目接近;

第三类则是直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将\frac{y'}{1-y'} = \frac{y}{1-y} \times \frac{m^-}{m^+} 联入到其决策过程中,称为“阈值移动”

四、决策树

4.1 基本流程

在决策树基本算法中,有三种情形会导致递归返回:

(1)当前结点包含的样本全属于同一类别,无需划分;

(2)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;

(3)当前结点包含的样本集合为空,不能划分. 

4.2 划分选择

4.2.1 信息增益

“信息熵”是度量样本集合纯度最常用的一种指标,假定当前样本集合D中第k类样本所占的比例为p_k (k=1,2,\cdots,|\gamma |) ,则D 的信息熵定义为

 Ent(D)的值越小,则D的纯度越高

信息增益:假定离散属性a有V个可能的取值\{a^1,a^2,\cdots,a^V\},若使用a来对样本集D进行划分,则会产生V个分支结点,其中第 v 个分支结点包含了D中所有在属性a上取值为 a^v 的样本,记为 D^v,我们可计算出 D^v 的信息熵,再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重 \frac{|D^v|}{|D|} , 即样本数越多的分支结点的影响越大,于是可计算出用属性a对样本集D进行划分所获得的“信息增益”

一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大,因此,我们可用信息增益来进行决策树的划分属性选择

4.2.2 增益率

信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,不直接使 用信息增益,而是使用“增益率”(gain ratio)来选择最优划分属性,采用与 式(4.2)相同的符号表示,增益率定义为

其中 

 称为属性 a 的“固有值”, 属性 a 的可能取值数目越多(即V越大),则IV(a)的值通常会越大

4.2.3 基尼指数

数据集D的纯度可用基尼值来度量: 

Gini(D)反映了从数据集 D 中随机抽取两个样本,其类别标记不一致的概率,因此,Gini(D)越小,则数据集 D 的纯度越高

属性 a 的基尼指数定义为

4.3 剪枝处理

4.3.1 预剪枝

预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;

4.3.2 后剪枝

后剪枝则是先从训练集生成一棵完整的决策树, 然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。

4.4 连续与缺失值

4.4.1 连续值处理

最简单的策略是采用二分法对连续属性进行处理,给定样本集D和连续属性 a,假定 a 在D上出现了 n 个不同的取值,将这些值从小到大进行排序,记为\{a^1,a^2,\cdots,a^n\},基于划分点 t 可将 D 分为子集 D_t^- 和 D_t^+,其中 D_t^- 包含那些在属性a上取值不大于 t 的样本,而 D_t^+ 则包含那些在属性 a 上取值大于 t 的样本

4.4.2缺失值处理

\tilde{D} 表示D中在属性a上没有缺失值的样本子集

(1)如何在属性值缺失的情况下进行划分属性选择?

仅可根据 \tilde{D} 来判断属性 a 的优劣

(2)给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?

则将 x 同时划入所有子结点,且样本权值在与属性值 a^v 对应的子结点中调整为\tilde{r}_v \cdot w_x,直观地看,这就是让同一个样本以不同的概率划入到不同的 子结点中去.

4.5 多变量决策树

若能使用斜的划分边界,如图 4.12中红色线段所示,则决策树模型将大为简化,“多变量决策树”就是能实现这样的“斜划分”甚至更复杂划分的决策树,以实现斜划分的多变量决策树为例,在此类决 策树中,非叶结点不再是仅对某个属性,而是对属性的线性组合进行测试;换言之,每个非叶结点是一个形如 \sum_{d}^{i=1}w_i a_i=t 的线性分类器,其中 w_i 是属性 a_i 的权重,w_i 和 t 可在该结点所含的样本集和属性集上学得,于是,与传统的“单变量决策树”不同不是为每个非叶结点寻找一个最优划分属性,而是试图建立一个合适的线性分类器

五、神经网络

5.1 神经元模型

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

神经元模型:神经网络中最基本的成分,即上述定义中的“简单单元”

在生物神经网络中,每个神经元与其他神经元相连,当它“兴奋”时,就会向相连的神经元发送化学物质,从面改变这些神经元内的电位;如果某神经元的电位超过了一个“阀值”,那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质

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

5.2 感知机与多层网络

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

感知机权重将这样调整

其中 \eta\in (0,1) 称为学习率,若感知机对训练样例 (x,y) 预测正确,即 \hat{y}=y,则感知机不发生变化,否则将根据错误的程度进行权重调整.

常见的神经网络是层级结构,每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接,这样的神经网络结构通常称为“多层前馈神经网络”

其中输入层神经元接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出;神经网络“学”到的东西,蕴涵在连接权与阙值中

5.3 误差逆传播算法

BP算法即误差逆传播算法

对训练例(x_k, y_k),假定神经网络的输出为 \hat{y}_k=\{\hat{y}^k_1,\hat{y}^k_2,\cdots,\hat{y}^k_l\},即

则网络在 (x_k, y_k) 上的均方误差为 

BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整.对误差 E_k,给定学习率 \eta,有

  BP算法中关于 w_{hj} 的更新公式

累积 BP 算法直接针对累积误差最小化,它在读取整个训练集D一遍后才对参数进行更新,其参数更新的频率低得多

5.4 全局最小与局部极小

常采用以下策略来试图“跳出”局部极小,从而进一步接近全局最小:

(1)以多组不同参数值初始化多个神经网络,取其中误差最小的解作为最终参数.

(2)模拟退火,在每一步都以一定的概率接受比当前解更差的结果,从而有助于“跳出”局部极小,在每步迭代过程中,接受“次优解”的概率要随着时间的推移而遂渐降低,从而保证算法稳定

(3)随机梯度下降,随机梯度下降法在计算梯度时加入了随机因素,于是、即便陷入局部极小点,它计算出的梯度仍可能不为零,这样就有机会跳出局部极小继续搜索

5.5 其他常见神经网络

5.5.1 RBF网络

RBF是径向基函数

RBF网络是一种单隐层前馈神经网络,它使用径向基函数作为隐层神经元激活函数,而输出层则是对隐层神经元输出的线性组合,假定输入为d维向量x,输出为实值,则RBF 网络可表示为

 其中q为隐层神经元个数,c_i 和 w_i 分别是第 i 个隐层神经元所对应的中心和权重,\rho(x,c_i)是径向基函数,常用的高斯径向基函数形如

通常采用两步过程来训练RBF 网络:

第一步,确定神经元中心 c_i,常用的方式包括随机采样、聚类等;

第二步,利用BP算法等来确定参数 w_i 和 \beta _i

5.5.2 ART网络

ART是自适应谐振理论

ART网络是竞争型学习的重要代表,该网络由比较层、识别层、识别阀值和重置模块构成,其中,比较层负责接收输入样本,并将其传递给识别层神经元,识别层每个神经元对应一个模式类,神经元数目可在训练过程中动态增长以增加新的模式类;在接收到比较层的输入信号后、识别层神经元之间相互竞争以产生获胜神经元,获胜神经元将向其他识别层神经元发送信号,抑制其激活。

若输入向量与获胜神经元所对应的代表向量之间的相似度大于识别阀值,则当前输入样本将被归为该代表向量所属类别,同时,网络连接权将会更新,使得以后在接收到相似输入样本时该模式类会计算出更大的相似度,从而使该获胜神经元有更大可能获胜;

若相似度不大于识别阈值,则重置模块将在识别层增设一个新的神经元,其代表向量就设置为当前输入向量,所以会增加新神经元。

识别阙值对AET网络的性能有重要影响、当识别阈值较高时,输入样本将会被分成比较多、比较精细的模式类,而如果识别阈值较低,则会产生比较少、比较粗略的模式类.

5.5.3 SOM网络

SOM是自组织映射

SOM网络是一种竞争学习型的无监督神经网络,它能将高维输入数据映射到低维空间(通常为二维),同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。

5.5.4 级联相关网络

一般的神经网络模型通常假定网络结构是事先固定的,训练的目的是利用训练样本来确定合适的连接权、阈值等参数;结构自适应网络则将网络结构也当作学习的目标之一,并希望能在训练过程中找到最符合数据特点的网络结构,级联相关网络是结构自适应网络的重要代表. 

级联是指建立层次连接的层级结构,在开始训练时,网络只有输入层和输出层,处于最小拓扑结构;随着训练的进行,如图5.12所示,新的隐层神经元逐渐加入,从而创建起层级结构、当新的隐层神经元加入时,其输入端连接权值是冻结固定的;

相关是指通过最大化新神经元的输出与网络误差之间的相关性来训练相关的参数.

与一般的前馈神经网络相比,级联相关网络无需设置网络层数、隐层神经元数目,且训练速度较快,但其在数据较小时易陷入过拟合。

5.5.5 Elman网络

与前馈神经网络不同,递归神经网络允许网络中出现环形结构,从而可让一些神经元的输出反馈回来作为输入信号,这样的结构与信息反馈过程,使得网络在 t 时刻的输出状态不仅与 t 时刻的输入 有关,还与 t-1 时刻的网络状态有关,从而能处理与时间有关的动态变化。

Elman网络是最常用的递归神经网络之一,隐层神经元的输出被反馈回来,与下一时刻输入层神经元提供的信号一起,作为隐层神经元在下一时刻的输入

5.5.6 Boltzmann机

神经网络中有一类模型是为网络状态定义一个“能量”,能量最小化时网络达到理想状态,而网络的训练就是在最小化这个能量函数。

Boltzmann机就是一种基于能量的模型

Boltzmann机中的神经元都是布尔型的,即只能取 0、1两种状态,状态1表示激活,状态0表示抑制,令向量 s\in\{0,1\} 表示 n个神经元的状态,则状态向量 s 所对应的 Boltzmann 机能量定义为

w_{ij} 表示神经元 i 与 j 之间的连接权,\theta_i 表示神经元 i 的阈值

标准的 Boltzmann 机是一个全连接图,训练网络的复杂度很高,这使其难以用于解决现实任务,现实中常采用受限 Boltzmann 机(简称RBM),受限 Boltzmann 机仅保留显层与隐层之间的连接,从而将 Boltzmann 机结构由完全图简化为二部图.

5.6深度学习 

典型的深度学习模型就是很深层的神经网络

无监督逐层训练是多隐层网络训练的有效手段,其基本思想是每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,而本层隐结点的输出作为下一层隐结点的输入,这称为“预训练”;在预训练全部完成后,再对整个网络进行“微调”训练。

六、支持向量机

6.1 间隔与支持向量

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

其中 w=(w_1; w_2; \cdots; w_d) 为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离. 

样本空间中任意点 x 到超平面(w,b)的距离可写为

假设超平面(w,b)能将训练样本正确分类,即对于(x_i,y_i)\in D,若 y_i=+1,则有w^Tx_i+b>0;若y_i=-1,则有w^Tx_i+b<0,令 

距离超平面最近的这几个训练样本点使上式的等号成立, 它们被称为“支持向量”,两个异类支持向量到超平面的距离之和为 

称为间隔

 找最大间隔

得到支持向量机的基本型

6.2 对偶问题

使用拉格朗日乘子法可得到上述支持向量机基本型的“对偶问题”,对其每条约束添加拉格朗日乘子\alpha_i\ge 0,则该问题的拉格朗日 函数可写为

令 L(w,b,\alpha) 对w和b的偏导为零可得 

 可将L(w,b,a)中的w和b消去,再考虑约束,就得到对偶问题

 解出 α 后,求出 w 与 b 即可得到模型

注意到SVM的基本型中有不等式约束,因此上述过程需满足 KKT 条件,即要求 

于是,对任意训练样本 (x_i,y_i),总有 \alpha_i=0 或 y_i f(x_i)=1,若 \alpha_i=0,则该样本将不会在模型的求和中出现,也就不会对 f(x) 有任何影响;若\alpha_i >0, 则必有 y_i f(x_i),所对应的样本点位于最大间隔边界上,是一个支持向量,这显示出支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需保留,最终模型仅与支持向量有关 

6.3 核函数

涉及到计算 \phi (x_i)^T \phi (x_j),这是样本 x_i 与 x_j 映射到特征空间 之后的内积,由于特征空间维数可能很高,甚至可能是无穷维,因此直接计算 \phi (x_i)^T \phi (x_j) 通常是困难的.为了避开这个障碍,可以设想这样一个函数: 

即 x_i 与 x_j 在特征空间的内积等于它们在原始样本空间中通过函数 \kappa (\cdot ,\cdot) 计算的结果,这个函数就称为核函数

6.4 软间隔与正则化

硬间隔:所有样本都必须划分正确

软间隔:允许某些样本不满足约束

在最大化间隔的同时,不满足约束的样本应尽可能少,于是,优化目标可写为

其中 C>0 是一个常数,l_{0/1} 是“0/1损失函数” 

当C为无穷大时,迫使所有样本均满足约束;当C取有限值时,允许一些样本不满足约束

l_{0/1} 非凸、非连续,数学性质不太好,三种常用的替代损失函数:

6.5 支持向量回归

考虑回归问题,给定训练样本D=\{(x_1,y_1),(x_2,y_2),\cdots , (x_m,y_m)\}, y_i\in R,希望学得一个形如 f(x)=w^Tx+b 的回归模型,使得 f(x) 与 y 尽可能接近, w 和 b 是待确定的模型参数

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

SVR问题可形式化为

其中C为正则化常数,l_\epsilon 是\epsilon-不敏感损失函数 

6.6 核方法

表示定理:令H为核函数 \kappa 对应的再生核希尔伯特空间,||h||_H 表示 H 空间中关于 h 的范数,对于任意单调递增函数 \Omega :[0, +\infty ]\rightarrow R 和任意非负损失函数 l:R^m \rightarrow [0, +\infty],优化问题

的解总可写为

表示定理对损失函数没有限制,对正则化项 Ω 仅要求单调递增,甚至不要求 Ω 是凸函数,意味着对于一般的损失函数和正则化项,最优解h*(m)都可表示为核函数 \kappa (x,x_i) 的线性组合,这显示出核函数的巨大威力.

核方法:基于核函数的学习方法

最常见的,是通过“核化”(即引入核函数)来将线性学习器拓展为非线性学习器.

七、贝叶斯分类器

7.1 贝叶斯决策论

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

下面我们以多分类任务 为例来解释其基本原理.

假设有N种可能的类别标记,即 \gamma =\{c_1,c_2,\cdots, c_N\}\lambda_{ij} 是将一个真实标记为 c_j 的样本误分类为 c_i 所产生的损失,基于后验概率 P(c_i|x) 可获得将 样本 x 分类为 c_i 所产生的期望损失,即在样本 x 上的“条件风险”

我们的任务是寻找一个判定准则 h:\chi \rightarrow \gamma 以最小化总体风险 

对每个样本 x,若 h 能最小化条件风险 R(h(x)|x),则总体风险 R(h) 也将被最小化,这就产生了贝叶斯判定准则:为最小化总体风险,只需在每个样本上选择那个能使条件风险 R(c|x) 最小的类别标记,即

h*称为贝叶斯最优分类器,与之对应的总体风险 R(h^*) 称为贝叶斯风险,1-R(h^*) 反映了分类器所能达到的最好性能,即通过机器学习所能产生的模型精度的理论上限. 

最小化分类错误率的贝叶斯最优分类器为

即对每个样本x,选择能使后验概率 P(c|x) 最大的类别标记

不难看出,欲使用贝叶斯判定准则来最小化决策风险,首先要获得后验概率 P(c|x),然而,在现实任务中这通常难以直接获得、从这个角度来看,机器学习所要实现的是基于有限的训练样本集尽可能准确地估计出后验概率 P(c|x)。大体来说,主要有两种策略:

给定 x,可通过直接建模 P(c|x) 来预测 c,这样得到的是“判别式模型”;

也可先对联合概率分布 P(x,c) 建模,然后再由此获得 P(c|x),这样得到的是“生成式模型”

7.2 极大似然估计

令 D_c 表示训练集 D 中第 c 类样本组成的集合,假设这些样本是独立同分布的,则参数 \theta _c 对于数据集 D_c 的似然是

对 \theta _c 进行极大似然估计,就是去寻找能最大化似然 P(D_c|\theta_c) 的参数值 \hat{\theta}_c 

连乘操作易造成下溢,通常使用对数似然

此时参数 \theta_c 的极大似然估计 \hat{\theta}_c 为

7.3 朴素贝叶斯分类器

朴素贝叶斯分类器采用了 “属性条件独立性假设”: 对已知类别,假设所有属性相互独立,换言之,假设每个属性独立地对分类结果发生影响.

基于属性条件独立性假设,得

由于对所有类别来说 P(x) 相同,因此贝叶斯判定准则有 

这就是朴素贝叶斯分类器的表达式 

7.4 半朴素贝叶斯分类

半朴素贝叶斯分类器的基本想法是适当考虑一部分属性间的相互依赖信息,从而既不需进行完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系,

“独依赖估计”(简称 ODE)是半朴素贝叶斯分类器最常用的一种策略,“独依赖”就是假设每个属性在 类别之外最多仅依赖于一个其他属性,即

其中 pa_i 为属性 x_i,所依赖的属性,称为 x_i 的父属性 

问题的关键就转化为如何确定每个属性的父属性,不同的做法产生不同的独依赖分类器, 最直接的做法是假设所有属性都依赖于同一个属性,称为“超父”,然后通过交叉验证等模型选择方法来确定超父属性,由此形成了 SPODE (Super-Parent ODE) 方法.

7.5 贝叶斯网

贝叶斯网亦称“信念网”,它借助有向无环图来刻画属性之间的依赖关系,并使用条件概率表来描述属性的联合概率分布

具体来说,一个贝叶斯网B由结构 G 和参数 \Theta 两部分构成,即 B=(G,\Theta),网络结构G是一个有向无环图,其每个结点对应于一个属性,若两个属性有直接依赖关系,则它们由一条边连接起来;参数 \Theta 定量描述这种依赖关系,假设属性 x_i 在 G 中的父结点集为 \pi _i,则 \Theta 包含了每个属性的条件概率表 \theta _{x_i|\pi_i}=P_B(x_i|\pi_i).

7.5.1 结构

贝叶斯网结构有效地表达了属性间的条件独立性,给定父结点集,贝叶斯网假设每个属性与它的非后裔属性独立,于是 B=(G,\Theta) 将属性 x_1,x_2,\cdots,x_d 的联合概率分布定义为

在“同父”结构中,给定父结点 x_1 的取值,则 x_3 与 x_4 条件独立,在“顺序”结构中,给定 x 的值,则 y 与 z 条件独立, V型结构亦称“冲撞”结构,给定子结点 x_4 的取值,x_1 与 x_2 必不独立;奇妙 的是,若 x_4 的取值完全未知,则V型结构下 x_1 与 x_2 却是相互独立的 

7.5.2 学习

若网络结构已知,即属性间的依赖关系已知,则贝叶斯网的学习过程相对简单,只需通过对训练样本“计数”,估计出每个结点的条件概率表即可。但在现实应用中我们往往并不知晓网络结构,于是,贝叶斯网学习的首要任务就是根据训练数据集来找出结构最“恰当”的贝叶斯网,“评分搜索”是求解这一问题的常用办法。具体来说,我们先定义一个评分函数,以此来评估贝叶斯网与训练数据的契合程度,然后基于这个评分函数来寻找结构最优的贝叶斯网,显然,评分函数引入了关于我们希望获得什么样的贝叶斯网的归纳偏好,

7.5.3 推断

贝叶斯网训练好之后就能用来回答“查询”,即通过一些属性变量的观测值来推测其他属性变量的取值。例如在西瓜问题中,若我们观测到西瓜色泽青绿、敲声浊响、根蒂蜷缩,想知道它是否成熟、甜度如何,这样通过已知变量观测值来推测待查询变量的过程称为“推断”,已知变量观测值称为“证据”.

7.6 EM算法

未观测变量的学名是“隐变量”,令Z表示隐变量集

EM 是常用的估计参数隐变量的利器,它是一种迭代式的方法,其基本想法是:若参数 \Theta 已知,则可根据训练数据推断出最优隐变量 Z 的值(E步);反之,若Z的值已知,则可方便地对参数日做极大似然估计(M步).

八、集成学习

8.1 个体与集成

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

集成中只包含同种类型的个体学习器,例如“决策树集成” 中全是决策树,“神经网络集成”中全是神经网络,这样的集成是“同质” 的。同质集成中的个体学习器亦称“基学习器”, 相应的学习算法称为“基学习算法”.

集成也可包含不同类型的个体学习器,例如同时包含决策树和神经网络,这样的集成是“异质”的。异质集成中的个体学习器由不同的学习算法生成,这时就不再有基学习算法;相应的,个体学习器一般不称为基学习器,常称为“组件学习器”或直接称为个体学习器. 

在二分类任务中,假定三个分类器在三个测试样本 上的表现如上图所示,其中 √ 表示分类正确,×表示分类错误,集成学习的结 果通过投票法产生,即“少数服从多数”.在(a)中,每个分类器都只有66.6%精度,但集成学习却达到了100%,(b)中,三个分类器没有差别,集成之后性能没有提高;在(c)中,每个分类器的精度都只有 33.3集成学习的结果变得更糟。这个简单的例子显示出:要获得好的集成, 个体学习器应“好而不同”,即个体学习器要有一定的“准确性”,即学习器不能太坏,并且要有“多样性”,即学习器间具有差异 

8.2 Boosting

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

8.3 Bagging与随机森林

8.3.1 Bagging

Bagging 是并行式集成学习方法最著名的代表,给定包含m个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集,可采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合,这就是 Bagging的基本流程.

在对预测输出进行结合时,Bagging通常对分类任务使用简单投票法,对 回归任务使用简单平均法.

8.3.2 随机森林

随机森林(简称 RF)是Bagging的一个扩展变体,RF在以决策树为基学习器构建 Bagging 集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。具体来说,传统决策树在选择划分属性时是在当前结点的属性集合(假定有d个属性)中选择一个最优属性;而在 RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含 k 个属性的子集,然后再从这个子集中选择一个最优属性用于划分,这里的参数 k 控制了随机性的引入程度:若令 k=d,则基决策树的构建与传统决策树相同; 若令k=1,则是随机选择一个属性用于划分;一般情况下,推荐值 k=log_2d

8.4 结合策略

学习器结合可能会从三个方面带来好处:

(1)从统计的方面来看,由于学习任务的假设空间往往很大,可能有多个假设在训练集上达到同等性能,此时若使用单学习器可能因误选而导致泛化性能不佳,结合多个学习器则会减小这一风险;

(2)从计算的方面来看,学习算法往往会陷入局部极小,有的局部极小点所对应的泛化性能可能很糟糕,而通过多次运行之后进行结合,可降低陷入糟糕局部极小点的风险;

(3)从表示的方面来看,某些学习任务的真实假设可能不在当前学习算法所考虑的假设空间中,此时若使用单学习器则肯定无效,而通过结合多个学习器,由于相应的假设空间有所扩大, 有可能学得更好的近似

8.4.1 平均法

对数值型输出 h_i(x)\in\mathbb{R},最常见的结合策略是使用平均法

简单平均法

加权平均法

8.4.2 投票法

绝对多数投票法,即若某标记得票过半数,则预测为该标记;否则拒绝预测

相对多数投票法,即预测为得票最多的标记,若同时有多个标记获最高票,则从中随机选取一个

加权投票法 

8.4.3 学习法

当训练数据很多时,一种更为强大的结合策略是使用“学习法”,即通过另一个学习器来进行结合. Stacking 是学习法的典型代表。这里我们把个体学习器称为初级学习器,用于结合的学习器称为 次级学习器或元学习器

Stacking先从初始数据集训练出初级学习器,然后“生成”一个新数据集用于训练次级学习器,在这个新数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍被当作样例标记.

8.5 多样性

8.5.1 误差-分歧分解

假定我们用个体学习器 h_1,h_2,\cdots,h_T 通过加权平均法结合产生的集成来完成回归学习任务f:R^d\rightarrow R,对示例 x, 定义学习器 h_i 的“分歧”为

 则集成的“分歧”是

令 \bar{E}=\sum^T_{i=1}w_iE_i 表示个体学习器泛 化误差的加权均值,\bar{A}=\sum^T_{i=1}w_i A_i 表示个体学习器的加权分歧值,有集成的泛化误差

说明个体学习器准确性越高、多样性越 大,则集成越好 。

8.5.2 多样性度量

多样性度量是用于度量集成中个体分类器的多样性,即估算个体学习器的多样化程度,典型做法是考虑个体分类器的两两相似/不相似性

给定数据集 D=\{(x_1,y_1),(x_2,y_2),\cdots, (x_m,y_m)\},对二分类任务,y_i\in \{-1,+1\} 分类器 h_i 与 h_j 的预测结果列联表为

不合度量,dis_{ij} 的值域为[0,1],值越大则多样性越大

相关系数,\rho_{ij} 的值域为[-1,1],若 h_i 与 h_j 无关则值为0;若 h_i 与 h_j 正相关则值为正,否则为负

Q-统计量,Q_{ij} 与相关系数 \rho_{ij} 的符号相同,且 |Q_{ij}|\le |\rho_{ij}|

\kappa-统计量 

其中,p_1 是两个分类器取得一致的概率;p_2 是两个分类器偶然达成一致的概率,它们可由数据集D估算:

若分类器 h_i 与 h_j 在D上完全一致,则 \kappa =1;若它们仅是偶然达成一致,则 \kappa =1,κ 通常为非负值,仅在 h_i 与 h_j 达成一致的概率甚至低于偶然性的情况下取负值 

8.5.3 多样性增强

在集成学习中需有效地生成多样性大的个体学习器,与简单地直接用初始数据训练出个体学习器相比,如何增强多样性呢?一般思路是在学习过程中引入随机性,常见做法主要是对数据样本、输入属性、输出表示、算法参数进行扰动.

数据样本扰动

给定初始数据集,可从中产生出不同的数据子集,再利用不同的数据子集训练出不同的个体学习器,数据样本扰动通常是基于采样法,例如在 Bagging 中使用自助采样,在 AdaBoost 中使用序列采样.

输入属性扰动

训练样本通常由一组属性描述,不同的“子空间”(即属性子集)提供了观察数据的不同视角。显然,从不同子空间训练出的个体学习器必然有所不同,著名的随机子空间算法就依赖于输入属性扰动,该算法从初始属性集中抽取出若干个属性子集,再基于每个属性子 集训练一个基学习器

输出表示扰动

此类做法的基本思路是对输出表示进行操纵以增强多样性,可对训练样本的类标记稍作变动,如“翻转法”随机改变 一些训练样本的标记;也可对输出表示进行转化,如“输出调制法”将分类输出转化为回归输出后构建个体学习器; 还可将原任务拆解为多个可同时求解的子任务,如 ECOC法利用纠错输出码将多分类任务拆解为一系列二分类任务来训练基学习器.

算法参数扰动

基学习算法一般都有参数需进行设置,例如神经网络的隐层神经元数、初始连接权值等,通过随机设置不同的参数,往往可产生差别较大的个体学习器.

九、聚类 

9.1 聚类任务

聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集 称为一个“簇”

9.2 性能度量

聚类性能度量亦称聚类“有效性指标”

聚类性能度量大致有两类:

一类是将聚类结果与某个“参考模 型”进行比较,称为“外部指标”;

另一类是直接考察聚类结果而不利用任何参考模型,称为“内部指标”。

对数据集 D=\{x_1,x_2,\cdots ,x_m\},假定通过聚类给出的簇划分为 C=\{C_1,C_2,\cdots ,C_k\},参考模型给出的簇划分为 C^*=\{C^*_1,C^*_2,\cdots ,C^*_s\},相应地,令 λ 与 λ* 分别表示与 C 和 C* 对应的簇标记向量,我们将样本两两配对考虑,定义

集合 SS 包含了在 C 中隶属于相同簇且在 C* 中也隶属于相同簇的样本对,集合 SD 包含了在 C 中隶属于相同簇但在 C* 中隶属于不同簇的样本对,由于每个样本对 (x_i,x_j)(i<j) 仅能出现在一个集合中,因此有 a+b+c+d=m(m-1)/2 成立

Jaccard 系数

FM 指数

 Rand 指数

上述性能度量的结果值均在 [0,1] 区间,值越大越好 

考虑聚类结果的簇划分 C=\{C_1,C_2,\cdots ,C_k\},定义

dist(\cdot,\cdot) 用于计算两个样本之间的距离;μ 代表簇 C 的中心点 \mu=\frac{1}{|C|}\sum_{1\le i\le|C|}x_iavg(C)对应于簇C内样本间的平均距离, diam(C)对应于簇C内样本间的最远距离,d_{min}(C_i,C_j) 对应于簇C_i 与簇 C_j 最近样本间的距离,d_{cen}(C_i,C_j) 对应于簇 C_i 与族 C_j 中心点间的距离. 

DB 指数(简称DBI)

Dunn 指数(DI)

 DBI的值越小越好,而DI则相反,值越大越好

9.3 距离计算

对函数 dist(\cdot,\cdot),若它是一个“距离度量”,则需满足一 些基本性质:

非负性:dist(x_i,x_j)

同一性:dist(x_i,x_j)=0 当且仅当 x_i=x_j

对称性:dist(x_i,x_j)=dist(x_j,x_i)

直递性:dist(x_i,x_j)\le dist(x_i,x_k)+dist(x_k,x_j).

闵可夫斯基距离

9.4 原型聚类

原型聚类亦称“基于原型的聚类”,此类算法假设聚类结构能通过一组原型刻画,在现实聚类任务中极为常用,通常情形下,算法先对原型进行初始化,然后对原型进行迭代更新求解,采用不同的原型表示、不同的求解方式,将产生不同的算法。

9.4.1 k均值算法

k均值算法针对聚类所得簇划分 C=\{C_1,C_2,\cdots ,C_k\} 最小化平方误差

其中 \mu _i=\frac{1}{|C_i|}\sum_{x\in C_i}x 是簇 C_i 的均值向量 

9.4.2 学习向量量化

学习向量量化(简称 LVQ)也是试图找到一组原型向量来刻画聚类结构,但与一般聚类算法不同的是,LVQ假设数据样本带有类别标记,学习过程利用样本的这些监督信息来辅助聚类.

9.4.3 高斯混合聚类

高斯混合聚类采用概率模型来表达聚类原型.

9.5 密度聚类

密度聚类亦称“基于密度的聚类”,此类算法假设聚类结构能通过样本分布的紧密程度确定.通常情形下,密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇 以获得最终的聚类结果.

DBSCAN是一种著名的密度聚类算法,它基于一组“邻域” 参数 (\epsilon ,MinPts) 来刻画样本分布的紧密程度,给定数据集 D=\{x_1,x_2,\cdots ,x_k\},定义下面这几个概念:

\epsilon-邻域:对 x_j\in D,其 \epsilon-邻域包含样本集 D 中与 x_j 的距离不大于 \epsilon 的样本,即N_\epsilon (x_j)=\{x_i\in D| dist(x_i,x_j)\le \epsilon \}

核心对象:若 x_j 的 \epsilon-邻域至少包含 MinPts 个样本,即|N_\epsilon (x_j)|\ge MinPts,则 x_j 是一个核心对象;

密度直达:若 x_j 位于 x_i 的 \epsilon-邻域中,且 x_i 是核心对象,则称 x_j 由 x_i 密度直达;

密度可达:对 x_i 与 x_j,若存在样本序列p_1,p_2,\cdots ,p_n,其中 p_1 =x_i,p_n=x_j 且 p_{i+1} 由 p_i 密度直达,则称 x_j 由 x_i 密度可达;

密度相连:对 x_i 与 x_j,若存在 x_k 使得 x_i 与 x_j 均由 x_k 密度可达,则称 x_i 与 x_j 密度相连

9.6 层次聚类

层次聚类试图在不同层次对数据集进行划分,从而形成树形的聚类结构,数据集的划分可采用“自底向上”的聚合策略,也可采用“自顶向下”的分拆策略

十、降维与度量学习

10.1 k近邻学习

给定测试样本,基于某种距离度量找出训练集中与其最靠近的 k 个训练样本,然后基于这无个“邻居”的信息来进行预测,通常,在分类任务中可使用“投票法”,即选择这k个样本中出现最多的类别标记作为预测结果;在回归任务中可使用“平均法”,即将这k个样本的实值输出标记的平均值作为预测结果;还可基于距离远近进行加权平均或加权投票,距离越近的样本权重越大.

10.2 低维嵌入

在高维情形下出现的数据样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临的严重障碍,被称为“维数灾难”

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

为什么能进行降维?这是因为在很多时候,人们观测或收集到的数据样本虽是高维的,但与学习任务密切相关的也许仅是某个低维分布,即高维空间中的一个低维“嵌入”

10.3 主成分分析

主成分分析(简称 PCA)是最常用的一种降维方法

考虑这样一个问题:对于正交属性空间中的样本点,如何用一个超平面(直线的高维推广)对所有样本进行恰当的表达?容易想到,若存在这样的超平面,那么它大概应具有这样的性质:

最近重构性:样本点到这个超平面的距离都足够近;

最大可分性:样本点在这个超平面上的投影能尽可能分开.

10.4 核化线性降维

为了对“原本采样的”低维空间与降维后的低维空间加以区别,我们称前者为“本真”低维空间

 非线性降维的一种常用方法,是基于核技巧对线性降维方法进行“核化”。下面我们以核主成分分析(简称 KPCA)为例来进行演示.

假定我们将在高维特征空间中把数据投影到由W确定的超平面上,即 PCA 欲求解

其中 z_i 是样本点 x_i 在高维特征空间中的像 ,易知

其中 \alpha _i =\frac{1}{\lambda}z_i^TW,假定 z_i 是由原始属性空间中的样本点 x_i 通过映射 \phi 产生, 即z_i =\phi(x_i),i=1,2,\cdots ,m,若 \phi 能被显式表达出来,则通过它将样本映射至高维特征空间,再在特征空间中实施 PCA 即可.

 一般情形下,我们不清楚 \phi 的具体形式,于是引入核函数

 化简可得

其中 K 为 \kappa 对应的核矩阵,(K)_{ij}=\kappa (x_i,x_j),A=(\alpha_1;\alpha_2;\cdots;\alpha_m),显然, 上式是特征值分解问题,取 K 最大的 d' 个特征值对应的特征向量即可. 

对新样本 x,其投影后的第 j(j=1,2,\cdots,d') 维坐标为

其中 \alpha _i 已经过规范化, \alpha ^j_i 是 \alpha _i 的第 j 个分量.

10.5 流形学习

流形学习是一类借鉴了拓扑流形概念的降维方法。 “流形”是在局部与欧氏空间同胚的空间,换言之,它在局部具有欧氏空间的性质,能用欧氏距离来进行距离计算,这给降维方法带来了很大的启发:若低维流形嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去非常复杂,但在局部上仍具有欧氏空间的性质,因此,可以容易地在局部建立降维映射关系,然后再设法将局部映射关系推广到全局,当维数被降至二维或三维时,能对数据进行可视化展示,因此流形学习也可被用于可视化

10.5.1 等度量映射

等度量映射(简称 Isomap) 的基本出发点,是认为低维流形嵌入到高维空问之后,直接在高维空间中计算直线距离具有误导性,因为高维空间中的直线距离在低维嵌入流形上是不可达的,如图(a)所示,低维嵌入流形上两点间的距离是“测地线”距离: 想象一只虫子从一点爬到另一点,如果它不能脱离曲面行走,那么图(a)中 的红色曲线是距离最短的路径,即S曲面上的测地线,测地线距离是两点之间的本真距离、显然,直接在高维空间中计算直线距离是不恰当的.

如何计算测地线距离呢? 我们可利用流形在局部上与欧氏空间同胚这个性质,对每个点基于欧氏距离找出其近邻点,然后就能建立一个近邻连接图,图中近邻点之间存在连接,而非近邻点之间不存在连接,于是,计算两点之间测地线距离的问题,就转变为计算近邻连接图上两点之间的最短路径问题,从图(b)可看出,基于近邻距离逼近能获得低维流形上测地线距离很好的近似

10.5.2 局部线性插入

与 Isomap 试图保持近邻样本之间的距离不同,局部线性嵌入(简称LLE) 试图保持邻域内样本之间的线性关系,假定样本点正的坐标能通过它的邻域样本 x_j,x_k,x_l 的坐标通过线性组合而重构出来,即

LLE希望上式的关系在低维空间中得以保持. 

10.6 度量学习

在机器学习中,对高维数据进行降维的主要目的是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好。事实上,每个空间对应了在样本属性上定义的一个距离度量,而寻找合适的空间,实质上就是在寻找一个合适的距离度量。那么为何不直接尝试“学习”出一个合适的距离度量呢? 这就是度量学习的基本动机

十一、特征选择与稀疏学习

11.1 子集搜索与评价

我们将属性称为“特征”,对当前学习任务有用的属性称为“相关特征”、没什么用的属性称为“无关特 征”,从给定的特征集合中选择出相关特征子集的过程,称为“特征选择”

有一类特征称为“冗余特征”,它们所包含的信息能从其他特征中推演出来。例如,考虑立方体对象,若已有特征“底面长” “底面宽”,则“底面积”是冗余特征,因为它能从“底面长”与“底面宽” 得到.

第一个环节是“子集搜索”问题,给定特征集合 \{a_1,a_2,\cdots ,a_d\},我们可将每个特征看作一个候选子集,对这 d 个候选单特征子集进行评价,假定 \{a_2\} 最优,于是将 \{a_2\} 作为第一轮的选定集;然后,在上一轮的选定集中加入一个特征,构成包含两个特征的候选子集,假定在这 d-1 个候选两特征子集中 \{a_2, a_4\} 最优,且优于 \{a_2\},于是将 \{a_2, a_4\} 作为本轮的选定集;……假定在第k+1 轮时,最优的候选 (k+1) 特征子集不如上一轮的选定集,则停止生成候选子集,并将上一轮选定的 k 特征集合作为特征选择结果。这样逐渐增加相关特征的策略称为“前向”搜索

显然,上述策略都是贪心的,因为它们仅考虑了使本轮选定集最优

第二个环节是“子集评价”问题,给定数据集 D,假定 D 中第 i 类样本所占的比例为 p_i(i=1,2,\cdots,|\gamma |),为便于讨论,假定样本属性均为离散型,对属性子集 A,假定根据其取值将 D 分成了 V 个子集 \{D^1,D^2,\cdots,D^V\},每个子集中的样本在A上取值相同,于是我们可计算属性子集A的信息增益

其中信息熵定义为

 信息增益 Gain(A)越大,意味着特征子集A包含的有助于分类的信息越多,于是,对每个候选特征子集,我们可基于训练数据集D来计算其信息增益,以此作为评价准则

11.2 过滤式选择

过滤式方法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关。这相当于先用特征选择过程对初始特征进行“过滤”,再用过滤后的特征来训练模型

Relief 是一种著名的过滤式特征选择方法,该方法设计了一个“相关统计量”来度量特征的重要性,该统计量是一个向量,其每个分量分别对应于一个初始特征,而特征子集的重要性则是由子集中每个特征所对应的相关统计量分量之和来决定,于是,最终只需指定一个阀值 \tau,然后选择比 \tau 大的相关统计量分量所对应的特征即可;也可指定欲选取的特征个数 k,然后选择相关统计量分量最大的 k 个特征.

11.3 包裹式选择

与过滤式特征选择不考虑后续学习器不同,包裹式特征选择直接把最终将要使用的学习器的性能作为特征子集的评价准则,换言之,包裹式特征选择的目的就是为给定学习器选择最有利于其性能、“量身定做”的特征子集.

一般而言,由于包裹式特征选择方法直接针对给定学习器进行优化,因此从最终学习器性能来看,包裹式特征选择比过滤式特征选择更好,但另一方面, 由于在特征选择过程中需多次训练学习器,因此包裹式特征选择的计算开销通常比过滤式特征选择大得多

11.4 嵌入式选择与L1正则化

在过滤式和包裹式特征选择方法中,特征选择过程与学习器训练过程有明显的分别;与此不同,联入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择

给定数据集 D=\{(x_1,y_1),(x_2,y_2),\cdots ,(x_m,y_m)\},其中 x\in \mathbb{R},y\in \mathbb{R},我们考虑最简单的线性回归模型,以平方误差为损失函数,则优化目标为

当样本特征很多,而样本数相对较少时,上式很容易陷入过拟合,为了缓解过拟合问题,可引入正则化项,若使用 L_2 范数正则化,则有 

其中正则化参数 \lambda >0,上式称为“岭回归”,通过引入 L_2 范数正则化,能显著降低过拟合的风险 

若采用 L_1 范数,则有

其中正则化参数 \lambda >0

L_1 范数和 L_2 范数正则化都有助于降低过拟合风险,但前者还会带来一个额外的好处:它比后者更易于获得“稀疏”解,即它求得的 w会有更少的非零分量 

11.5 稀疏表示与字典学习

不妨把数据集 D 考虑成一个矩阵,其每行对应于一个样本,每列对应于一 个特征,特征选择所考虑的问题是特征具有“稀疏性”,即矩阵中的许多列与当前学习任务无关,通过特征选择去除这些列、则学习器训练过程仅需在较小的矩阵上进行,学习任务的难度可能有所降低,涉及的计算和存储开销会减少,学得模型的可解释性也会提高

现在我们来考虑另一种稀疏性:D 所对应的矩阵中存在很多零元素,但这些零元素并不是以整列、整行形式存在的.

为普通稠密表达的样本找到合适的字典,将样本转化为合适的稀疏表示形式,从而使学习任务得以简化,模型复杂度得以降低,通常称为“字典学习”,亦称“稀疏编码”。这两个称谓稍有差别,“字典学习”更侧重于学得字典的过程,而“稀疏编码”则更侧重于对样本进行稀疏表达的过程。由于两者通常是在同一个优化求解过程中完成的,因此下面我们不做进一步区分,笼统地称为字典学习

11.6 压缩感知

与特征选择、稀疏表示不同,压缩感知关注的是如何利用信号本身所具有的稀硫性,从部分观测样本中恢复原信号。通常认为,压缩感知分为“感知测量”和“重构恢复”这两个阶段。“感知测量”关注如何对原始信号进行处理以获得稀疏样本表示,这方面的内容涉及傅里叶变换、小波变换以及11.5 节介绍的字典学习、稀疏编码等,不少技术在压缩感知提出之前就已在信号处理等领域有很多研究;“重构恢复”关注的是如何基于稀疏性从少量观测中恢复原信号,这是压缩感知的精髓,当我们谈到压缩感知时,通常是指该部分.

十二、计算学习理论

12.1 基础知识

假设 \chi 中的所有样本服从一 个隐含未知的分布 \mathcal{D},D 中所有样本都是独立地从这个分布上采样而得,即独立同分布样本

令 h 为从 \chi 到 \gamma 的一个映射,其泛化误差为

h 在 D 上的经验误差为 

由于 D 是 \mathcal{D} 的独立同分布采样,因此 h 的经验误差的期望等于其泛化误差,在上下文明确时,我们将 E(h;\mathcal{D}) 和 \hat{E}(h;\mathcal{D}) 分别简记为 E(h) 和 \hat{E}(h),令 \epsilon 为E(h)的上限,即 E(h)\le \epsilon;我们通常用 \epsilon 表示预先设定的学得模型所应满足的误差要求,亦称“误差参数” 。本章后面部分将研究经验误差与泛化误差之间的逼近程度。若 h 在数据集 D 上的经验误差为 0,则称 h 与 D 一致,否则称其与D不一致,对任意两个映射 h_1,h_2\in \chi \rightarrow \mathcal{Y},可通过其“不合”来度量它们之间的差别: 

Jensen 不等式:对任意凸函数 f(x),有

Hoeffding不等式:若 x_1,x_2,\cdots,x_m 为 m 个独立随机变量,且满足 0\le x_i\le 1,则对任意\epsilon >0,有 

 McDiarmid不等式:若 x_1,x_2,\cdots,x_m 为 m 个独立随机变量,且对任意1\le i\le m,函数 f 满足

则对任意 \epsilon >0,有 

12.2 PAC学习

计算学习理论中最基本的是概率近似正确(简称 PAC)学习理论

令 c 表示“概念”,这是从祥本空间 \mathcal{X} 到标记空间 \mathcal{Y} 的映射,它决定示例 x 的真实标记 y,若对在何样例 (x,y) 有 c(x)=y 成立,则称 c 为目标概念;所有我们希望学得的目标概念所构成的集合称为“概念类”,用符号 \mathcal{C} 表示.

给定学习算法 \pounds,它所考虑的所有可能概念的集合称为“假设空间”,用符号 \mathcal{H} 表示,由于学习算法事先并不知道概念类的真实存在,因此 \mathcal{H} 和 \mathcal{C} 通常是不同的,学习算法会把自认为可能的目标概念集中起来构成 \mathcal{H},对 h\in \mathcal{H},由于并不能确定它是否真是目标概念,因此称为 “假设”。显然,假设 h 也是从样本空间 \mathcal{X} 到标记空间 \mathcal{Y} 的映射.

若目标概念 c\in \mathcal{H},则 \mathcal{H} 中存在假设能将所有示例按与真实标记一致的方式完全分开,我们称该问题对学习算法是是“可分的”,亦称“一致的”;若 c\notin \mathcal{H},则 \mathcal{H} 中不存在任何假设能将所有示例完全正确分开,称该问题对学习算法是是“不可分的”,亦称“不一致的”

给定训练集 D,我们希望基于学习算法 \pounds 学得的模型所对应的假设 h 尽可能接近目标概念 c,读者可能会问:为什么不是希望精确地学到目标概念 c 呢? 这是由于机器学习过程受到很多因素的制约,例如我们获得的训练集D往往仅包含有限数量的样例,因此,通常会存在一些在D上“等效”的假设,学习算法对它们无法区别;再如,从分布 \mathcal{D} 采样得到 D 的过程有一定偶然性,可以想象,即便对同样大小的不同训练集,学得结果也可能有所不同,因此,我们是希望以比较大的把握学得比较好的模型,也就是说,以较大的概率学得误差满足预设上限的模型;这就是“概率”“近似正确”的含义。形式化地说,令 δ 表示置信度,可定义:

PAC辨识:对 0<\epsilon ,\delta <1,所有 c\in \mathcal{C} 和分布 \mathcal{D},若存在学习算法 \pounds,其输出假设 h\in \mathcal{H} 满足

则称学习算法 \pounds 能从假设空间 \mathcal{H} 中PAC辨识概念类 \mathcal{C} 

PAC可学习:令 m 表示从分布 \mathcal{D} 中独立同分布采样得到的样例数目,0<\epsilon ,\delta <1,对所有分布 \mathcal{D},若存在学习算法 \pounds 和多 项式函数 poly(\cdot,\cdot,\cdot,\cdot),使得对于任何 m\ge poly(1/\epsilon ,1/\delta ,size(x),size(c))\pounds能从假设空间 \mathcal{H} 中 PAC 辨识概念类 \mathcal{C},则称概念类 \mathcal{C} 对假设空间 \mathcal{H} 而言是 PAC 可学习的,有时也简称概念类 \mathcal{C} 是 PAC 可学习的

PAC学习算法:若学习算法 \pounds 使概念类 \mathcal{C} 为PAC可学习的,且 \pounds 的运行时间也是多项式函数 poly(1/\epsilon ,1/\delta ,size(x),size(c)),则称概念类 \mathcal{C} 是高效 PAC可学习的,称 \pounds 为概念类 \mathcal{C} 的PAC学习算法.

样本复杂度:满足 PAC学习算法 \pounds 所需的 m\ge poly(1/\epsilon ,1/\delta ,size(x),size(c)) 中最小的 m,称为学习算法 \pounds 的样本复杂度.

12.3 有限假设空间

12.3.1 可分情形

可分情形意味着目标概念 c 属于假设空间 \mathcal{H},即 c\in \mathcal{H},给定包含 m 个样例的训练集 D,如何找出满足误差参数的假设呢? 容易想到一种简单的学习策略:既然 D 中样例标记都是由目标概念 c 赋予的,并且 c 存在于假设空间 \mathcal{H} 中,那么任何在训练集 D 上出现标记错误的假设肯定不是目标概念c。于是,我们只需保留与D一致的假设,剔除与 D不一致的假设即可。若训练集D足够大,则可不断借助 D 中的样例剔除不一致的假设,直到 \mathcal{H} 中仅剩下一个假设为止,这个假设就是目标概念 c,通常情形下,由于训练集规模有限,假设空间 \mathcal{H} 中可能存在不止一个与 D 一致的“等效”假 设,对这些等效假设,无法根据D来对它们的优劣做进一步区分.

到底需多少样例才能学得目标概念 c 的有效近似呢? 对PAC学习来说,只要训练集 D 的规模能使学习算法足以概率 1-δ 找到目标假设的 \epsilon 近似即可.

12.3.2 不可分情形

对较为困难的学习问题,目标概念 c 往往不存在于假设空间 \mathcal{H} 中,假定对 于任何 h\in \mathcal{H},\hat{E}(h)\neq 0,也就是说,\mathcal{H} 中的任意一个假设都会在训练集上出现或多或少的错误.

不可知 PAC 可学习:令 m 表示从分布 \mathcal{D} 中独立同分布采样得到的样例数目,0<\epsilon ,\delta <1,对所有分布 \mathcal{D},若存在学习算法是和多项式函数 poly(\cdot,\cdot,\cdot,\cdot),使得对于任何 m\ge poly(1/\epsilon ,1/\delta ,size(x),size(c))\pounds 能从假设空间 \mathcal{H} 中输出满足下式的假设 h:

则称假设空间 \mathcal{H} 是不可知 PAC可学习的 

与 PAC 可学习类似,若学习算法 \pounds 的运行时间也是多项式函数 poly(1/\epsilon ,1/\delta ,size(x),size(c)),则称假设空间 \mathcal{H} 是高效不可知 PAC可学习的,学习算法 \pounds 则称为假设空间 \mathcal{H} 的不可知 PAC学习算法,满足上述要求的最小 m 称为学习算法 \pounds 的样本复杂度

12.4 VC维

给定假设空间 \mathcal{H} 和示例集 D=\{x_1,x_2,\cdots, x_m\}\mathcal{H} 中每个假设 h 都能对 D 中示例赋予标记,标记结果可表示为

对所有 m\in \mathbb{N},假设空间 \mathcal{H} 的增长函数 \Pi _{\mathcal{H}}(m) 为

增长函数 \Pi _{\mathcal{H}}(m) 表示假设空间 \mathcal{H} 对 m 个示例所能赋予标记的最大可能结果数,显然,\mathcal{H} 对示例所能赋予标记的可能结果数越大,\mathcal{H} 的表示能力越强, 对学习任务的适应能力也越强。因此,增长函数描述了假设空间 \mathcal{H} 的表示能力,由此反映出假设空间的复杂度。我们可利用增长函数来估计经验误差与泛化误差之间的关系: 

对假设空间 \mathcal{H},h\in \mathbb{N}, 0<\epsilon <1 和任意 h\in \mathcal{H} 有

根设空间 \mathcal{H} 中不同的假设对于 D 中示例赋予标记的结果可能相同,也可能不同;尽管 \mathcal{H} 可能包含无穷多个假设,但其对 D 中示例赋予标记的可能结果数是有限的:对 m 个示例,最多有 2^m 个可能结果。对二分类问题来说,\mathcal{H} 中的假设对 D 中示例赋予标记的每种可能结果称为对 D 的一种“对分”。若假设空间 \mathcal{H} 能实现示例集 D 上的所有对分,即 \Pi _{\mathcal{H}}(m)=2^m,则称示例集 D 能被假设空间 \mathcal{H} “打散”. 

假设空间 \mathcal{H} 的 VC维是能被 \mathcal{H} 打散的最大示例集的大小,即

VC(\mathcal{H})=d 表明存在大小为 d 的示例集能被假设空间 \mathcal{H} 打散。注意:这并不意味着所有大小为 d 的示例集都能被假设空间 \mathcal{H} 打散. 

12.5 Rademacher复杂度

给定训练集 D=\{(x_1,y_1),(x_2,y_2),\cdots ,(x_m,y_m)\},假设 h 的经验误差为

其中 \frac{1}{m}\sum^m_{i=1}y_ih(x_i) 体现了预测值 h(x_i) 与样例真实标记 y_i 之间的一致性,若对于所有i\in \{1,2,\cdots ,m\} 都有 h(x_i)=y_i,则 \frac{1}{m}\sum^m_{i=1}y_ih(x_i) 取最大值1,也就是说,经验误差最小的假设是

然而,现实任务中样例的标记有时会受到噪声影响,即对某些样例 (x_i, y_i)y_i 或许已受到随机因素的影响,不再是 x_i 的真实标记。在此情形下,选择假设空间 \mathcal{H} 中在训练集上表现最好的假设,有时还不如选择 \mathcal{H} 中事先已考虑了 随机噪声影响的假设 

考虑随机变量\sigma _i,它以0.5的概率取值 -1,0.5 的概率取值 +1,称为Rademacher 随机变量,基于\sigma _i,可将上式重写为

考虑 \mathcal{H} 中的所有假设,对上式取期望可得 

其中 \sigma =\{\sigma_1, \sigma_2,\cdots ,\sigma_m\},上式的取值范围是 [0,1],它体现了假设空间 \mathcal{H} 的表达能力,例如,当 |\mathcal{H}|=1 时,\mathcal{H} 中仅有一个假设,这时可计算出上式的值为 0;当 |\mathcal{H}|=2^m 且 \mathcal{H} 能打散 D 时,对任意 \sigma 总有一个假设使得 h(x_i)=\sigma _i (i=1,2,\cdots,m),这时可计算出上式的值为1. 

考虑实值函数空间下:\mathcal{F}: \mathcal{Z} \rightarrow \mathbb{R},令 Z=\{z_1,z_2,\cdots ,z_m\},其中 z_i\in \mathcal{Z},将上式中的 \mathcal{X} 和 \mathcal{H} 替换为 \mathcal{Z} 和 \mathcal{F} 可得

函数空间 \mathcal{F} 关于 Z 的经验 Rademacher 复杂度

经验 Rademacher 复杂度衡量了函数空间 \mathcal{F} 与随机噪声在集合 Z 中的相关性,通常我们希望了解函数空间 \mathcal{F} 在 \mathcal{Z} 上关于分布 \mathcal{D} 的相关性,因此,对所有从 \mathcal{D} 独立同分布采样而得的大小为 m 的集合 Z 求期望可得 

函数空间 \mathcal{F} 关于 \mathcal{Z} 上分布 \mathcal{D} 的Rademacher复杂度

12.6 稳定性

算法的“稳定性”考察的是算法在输入发生变化时,输出是否会随之发生较大的变化,学习算法的输入是训练集,因此下面我们先定义训练集的两种变化.

给定 D=\{z_1={(x_1,y_1),z_2=(x_2,y_2),\cdots,z_m=(x_m,y_m)}\},x_i\in \mathcal{X} 是来自分布 \mathcal{D} 的独立同分布示例,y_i=\{-1,+1\}。对假设空间 \mathcal{H}:\mathcal{X}\rightarrow \{-1,+1\} 和学习算法 \mathcal{L},令表示\mathcal{L}_D\in \mathcal{H} 基于训练集 D 从假设空间 \mathcal{H} 中学得的假设,考虑 D 的以下变化:

D^{/i}表示移除 D 中第 i 个样例得到的集合

D^i 表示替换 D 中第 i 个样例得到的集合

损失函数 l(\mathcal{L}_D(x),y):\mathcal{Y}\times\mathcal{Y}\rightarrow\mathbb{R}^+ 刻画了假设 \mathcal{L}_D 的预测标记 \mathcal{L}_D(x) 与 真实标记 y 之间的差别,简记为 l(\mathcal{L}_D,z)。下面定义关于假设 \mathcal{L}_D 的几种损失.

泛化损失

经验损失

 留一损失

 对任何 x\in \mathcal{X}, z=(x,y),若学习算法 \mathcal{L} 满足

则称 \mathcal{L} 关于损失函数 l 满足 β-均匀稳定性 

十三、半监督学习

13.1 未标记样本

我们可以用标记样本集 D_l 先训练一个模型,拿这个模型去地里挑一个瓜,询问瓜农好不好,然后把这个新获得的有标记样本加入 D_l 中重新训练一个模型,再去挑瓜,这样,若每次都挑出对改善模型性能帮助大的瓜,则只需询问瓜农比较少的瓜就能构建出比较强的模型,从而大幅降低标记成本、这样的学习方式称为“主动学习”,其目标是使用尽量少的“查询”来获得尽量好的性能.

未标记样本虽未直接包含标记信息,但若它们与有标记样本是从同样的数据源独立同分布采样而来,则它们所包含的关于数据分布的信息对建立模型将大有神益,下图给出了一个直观的例示。若仅基于图中的一个正例和一个反例,则由于待判别样本恰位于两者正中间,大体上只能随机猜测;若能观察到图中的未标记样本,则将很有把握地判别为正例.

让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能,就是半监督学习 

半监督学习可进一步划分为纯半监督学习和直推学习,前者假定训练数据中的未标记样本并非待预测的数据,而后者则假定学习过程中所考虑的未标记样本恰是待预测数据,学习的目的就是在这些 未标记样本上获得最优泛化性能。换言之,纯半监督学习是基于“开放世界” 假设,希望学得模型能适用于训练过程中未观察到的数据;而直推学习是基 于“封闭世界”假设,仅试图对学习过程中规察到的未标记数据进行预测.。

13.2 生成式方法

生成式方法是直接基于生成式模型的方法,此类方法假设所有数据(无论是否有标记)都是由同一个潜在的模型“生成”的、这个假设使得我们能通过潜在模型的参数将未标记数据与学习日标联系起来,而未标记数据的标记则可看作模型的缺失参数,通常可基于EM算法进行极大似然估计求解

13.3 半监督SVM

半监督支持向量机(简称 S3VM)是支持向量机在半监督学习上的推广,在不考虑未标记样本时,支 持向量机试图找到最大间隔划分超平面,而在考虑未标记样本后,S3VM试图找到能将两类有标记样本分开,且穿过数据低密度区域的划分超平面,这里的基本假设是“低密度分隔”,显然,这是聚类假设在考虑了线性超平面划分后的推广

13.4 图半监督学习

给定一个数据集,我们可将其映射为一个图,数据集中每个样本对应于图中一个结点,若两个样本之间的相似度很高(或相关性很强),则对应的结点之间 存在一条边,边的“强度”正比于样本之间的相似度(或相关性)。我们可将有标记样本所对应的结点想象为染过色,而未标记样本所对应的结点尚未染色。于是,半监督学习就对应于“颜色”在图上扩散或传播的过程,由于一个图对应了一个矩阵,这就使得我们能基于矩阵运算来进行半监督学习算法的推导与分析

13.5 基于分歧的方法

与生成式方法、半监督 SVM、图半监督学习等基于单学习器利用未标记数据不同,基于分歧的方法使用多学习器,而学习器之间的“分歧”对未标记数据的利用至关重要

“协同训练”是此类方法的重要代表,它最初是针对“多视图”数据设计的,因此也被看作“多视图学习”的代表

在不少现实应用中,一个数据对象往往同时拥有多个“属性集”,每个属性集就构成了一个“视图”。一个电影片段可表示为样本 (\left \langle x^1,x^2 \right \rangle ,y),其中 x^i 是样本在视图 i 中的示例,即基于该视图属性描述而得的属性向量,不妨假定 x^1 为图像视图中的属性向量,x^2 为声音视图中的属性向量;y 是标记,假定是电影的类型,例如“动作片”、“爱情片”等,(\left \langle x^1,x^2 \right \rangle ,y) 这样的数据就是多视图数据

若两个视图充分且条件独立,则可利用未标记样本通过协同训练将弱分类器的泛化性能提升到任意高。不过,视图的条件独立性在现实任务中通常很难满足,因此性能提升幅度不会那么大,但研究表明,即便在更弱的条件下, 协同训练仍可有效地提升弱分类器的性能

13.6 半监督聚类

聚类是一种典型的无监督学习任务,然而在现实案类任务中我们往往能获得一些额外的监督信息,于是可通过半监督聚类来利用监督信息以获得更好的聚类效果.

聚类任务中获得的监督信息大致有两种类型,

第一种是“必连”与“勿连”约束,前者是指样本必属于同一个簇,后者是指样本必不属于同一个簇;

第二种是少量的有标记样本

十四、概率图模型

14.1 隐马尔可夫模型

概率图模型是一类用图来表达变量相关关系的概率模型。它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的边表示变量间的概率相关关系,即“变量关系图”。根据边的性质不同,概率图模型可大致分为两类:

第一类是使用有向无环图表示变量间的依赖关系,称为有向图模型或贝叶斯网;

第二类是使用无向图表示变量间的相关关系,称为无向图模型或马尔可夫网。

隐马尔可夫模型(简称HMM)是结构最简单的动态贝叶斯网,这是一种著名的有向图模型,主要用于 时序数据建模,在语音识别、自然语言处理等领域有广泛应用.

隐马尔可夫模型中的变量可分为两组。第一组是状态变量 \{y_1,y_2,\cdots,y_n\},其中 y_i\in \mathcal{Y} 表示第 i 时刻的系统状态,通常假定状态变量是隐藏的、不可被观测的,因此状态变量亦称隐变量,第二组是观测变量 \{x_1,x_2,\cdots,x_n\},其中 x_i\in \mathcal{X} 表示第 i 时刻的观测值。

图中的箭头表示了变量间的依赖关系。在任一时刻,观测变量的取值仅依赖于状态变量,即 x_t 由 y_t 确定,与其他状态变量及观测变量的取值无关。同时,t 时刻的状态 y_t 仅依赖于 t-1 时刻的状态 y_{t-1},与其余 n-2 个状态无关。这就是所谓的“马尔可夫链”,即:系统下一时刻的状态仅由当前状态决定,不依赖于以往的任何状态。基于这种依赖关系,所有变量的联合概率分布为 

除了结构信息,欲确定一个隐马尔可夫模型还需以下三组参数: 

状态转移概率:模型在各个状态间转换的概率,通常记为矩阵 A=[a_{ij}]_{N\times N},其中

 输出观测概率:模型根据当前状态获得各个观测值的概率,通常记为矩阵 B=[b_{ij}]_{N\times N},其中

表示在任意时刻 t,若状态为 s_i,则观测值 o_j 被获取的概率.

初始状态概率:模型在初始时刻各状态出现的概率,通常记为 \pi =(\pi_1,\pi_2,\cdots,\pi_N),其中

表示模型的初始状态为 s_i 的概率. 

通过指定状态空间 \mathcal{Y}、观测空间 \mathcal{X} 和上述三组参数,就能确定一个隐马尔可夫模型,通常用其参数 \lambda=[A,B,\pi] 来指代。给定隐马尔可夫模型 \lambda,它按如下过程产生观测序列 \{x_1,x_2,\cdots,x_n\} :

(1)设置 t=1,并根据初始状态概率 π 选择初始状态 y_1

(2)根据状态 y_t 和输出观测概率 B 选择观测变量取值 x_t

(3)根据状态 y_t 和状态转移矩阵 A 转移模型状态,即确定 y_{t+1}

(4)若 t<n,设置 t=t+1,并转到第(2)步,否则停止。

其中 y_t\in \{s_1,s_2,\cdots,s_N\} 和 x_t\in \{o_1,o_2,\cdots,o_M\} 分别为第 t 时刻的状态和观测值

14.2 马尔可夫随机场

马尔可夫随机场(简称 MRF)是典型的马尔可夫网,这是一种著名的无向图模型,图中每个结点表示一个或一组变量,结点之间的边表示两个变量之间的依赖关系,马尔可夫随机场有一组势函数,亦称“因子”,这是定义在变量子集上的非负实函数,主要用于定义概率分布函数.

14.3 条件随机场

条件随机场(简称CRF)是一种判别式无向图模型。生成式模型是直接对联合分布进行建模,而判别式模型则是对条件分布进行建模。前面介绍的隐马尔可夫模型和马尔可夫随机场都是生成式模型,而条件随机场则是判别式模型.

14.4 学习与推断

基于概率图模型定义的联合概率分布,我们能对目标变量的边际分布或以某些可观测变量为条件的条件分布进行推断。条件分布我们已经接触过很多,例如在隐马尔可夫模型中要估算观测序列 x 在给定参数 λ 下的条件概率分布。边际分布则是指对无关变量求和或积分后得到结果,例如在马尔可夫网中,变量的联合分布被表示成极大团的势函数乘积,于是,给定参数 \Theta 求解某个变量 x 的分布,就变成对联合分布中其他无关变量进行积分的过程,这称为“边际化”

14.4.1 变量消去

精确推断的实质是一类动态规划算法,它利用图模型所描述的条件独立性来削减计算目标概率值所需的计算量。变量消去法是最直观的精确推断算法,也是构建其他精确推断算法的基础

14.4.2 信念传播

信念传播算法将变量消去法中的求和操作看作一个消息传递过程,较好地解决了求解多个边际分布时的重复计算问题.

在信念传播算法中,一个结点仅在接收到来自其他所有结点的消息后才能向另一个结点发送消息,且结点的边际分布正比于它所接收的消息的乘积,即

14.5 近似推断

精确推断方法通常需要很大的计算开销,因此在现实应用中近似推断方法更为常用,近似推断方法大致可分为两大类:

第一类是采样,通过使用随机化方法完成近似;

第二类是使用确定性近似完成近似推断,典型代表为变分推断。

14.5.1 MCMC采样

在很多任务中,我们关心某些概率分布并非因为对这些概率分布本身感兴趣,而是要基于它们计算某些期望,并且还可能进一步基于这些期望做出决策。 例如上述贝叶斯网,进行推断的目的可能是为了计算变量 x_5 的期望。若直接计算或逼近这个期望比推断概率分布更容易,则直接操作无疑将使推断问题的求解更为高效。

采样法正是基于这个思路,具体来说,假定我们的目标是计算函数 f(x) 在概率密度函数 p(z) 下的期望

则可根据 p(x) 抽取一组样本 \{x_1,x_2,\cdots,x_N\},然后计算 f(x) 在这些样本上的均值 

以此来近似目标期望 \mathbb{E}[f]。若样本 \{x_1,x_2,\cdots,x_N\} 独立,基于大数定律,这种通过大量采样的办法就能获得较高的近似精度. 

概率图模型中最常用的采样技术是马尔可夫链蒙特卡罗(简称 MCMC)方法,给定连续变量 x\in X 的概率密度函数 p(x),x 在区间 A 中的概率可计算为

若有函数 f:X\rightarrow \mathbb{R},则可计算 f(x) 的期望 

若 x 不是单变量而是一个高维多元变量 x,且服从一个非常复杂的分布,则对上式求积分通常很困难。为此,MCMC先构造出服从 p 分布的独立同分布随机变量x_1,x_2,\cdots ,x_N,再得到上式的无偏估计 

然而,若概率密度函数 p(x) 很复杂,则构造服从 p 分布的独立同分布样本也很困难。 MCMC方法的关键就在于通过构造“平稳分布为 p 的马尔可夫链” 来产生样本:若马尔可夫链运行时间足够长(即收敛到平稳状态),则此时产出的样本 x 近似服从于分布p。

14.5.2 变分推断

变分推断通过使用已知简单分布来逼近需推断的复杂分布,并通过限制近似分布的类型,从而得到一种局部最优、但具有确定解的近似后验分布

在学习变分推断之前,我们先介绍概率图模型一种简洁的表示方法——盘式记法。下图给出了一个简单的例子(a)表示 N 个变量 \{x_1,x_2,\cdots ,x_N\} 均依赖于其他变量 z.。在(b)中,相互独立的、由相同机制生成的多个变量被放在一个方框(盘)内,并在方框中标出类似变量重复出现的个数N;方框可以联套。通常用阴影标注出已知的、能观察到的变量,如下图的变量 x。在很多学习任务中,对属性变量使用盘式记法将使得图表示非常简洁。

14.6 话题模型

话题模型是一族生成式有向图模型,主要用于处理离散型的数据(如文本集合),在信息检索、自然语言处理等领域有广泛应用、隐狄利克雷分配模型(简称 LDA)是话题模型的典型代表,

我们先来了解一下话题模型中的几个概念:词、文档和话题。

“词”是待处理数据的基本离散单元,例如在文本处理 任务中,一个词就是一个英文单词或有独立意义的中文词;

“文档”是待处理的数据对象,它由一组词组成,这些词在文档中是不计顺序的,例如一篇论文、 一个网页都可看作一个文档;这样的表示方式称为“词袋”.数据对象只要能用词袋描述,就可使用话题模型.

“话题”表示一个概念,具体表示为一系列相关的词,以及它们在该概念下出现的概率.

十五、规则学习

15.1 基本概念

机器学习中的“规则”通常是指语义明确、能描述数据分布所隐含的客观规律或领域概念、可写成“若……,则……”形式的逻辑规则。“规则学习”是从训练数据中学习出一组能用于对未见示例进行判别的规则.

形式化地看,一条规则形如

其中逻辑蕴含符号“ \leftarrow ”右边部分称为“规则体”,表示该条规则的前提,左边部分称为“规则头”,表示该条规则的结果。规则体是由逻辑文字 f 组成的合取式,其中合取符号“ \wedge ”用来表示“并且”。每个文字f都是对示例属性进行检验的布尔表达式,例如“(色泽=乌黑)”或“\neg(根蒂=硬挺)”。L 是规则体中逻辑文字的个数,称为规则的长度。规则头的“ \oplus ”同样是逻辑文字,一般用来表示规则所判定的目标类别或概念,例如“好瓜”。这样的逻辑规则也被称为“if-then规则” 

15.2 序贯覆盖

规则学习的目标是产生一个能覆盖尽可能多的样例的规则集。最直接的做法是“序贯覆盖”,即逐条归纳:在训练集上每学到一条规则,就将该规则覆盖的训练样例去除,然后以剩下的训练样例组 成训练集重复上述过程,由于每次只处理一部分数据,因此也被称为“分治”策略。

15.3 剪枝优化

规则生成本质上是一个贪心搜索过程,需有一定的机制来缓解过拟合的风险,最常见的做法是剪枝,与决策树相似,剪枝可发生在规则生长过程中,即“预剪枝”,也可发生在规则产生后,即“后剪枝”。通常是基于某种性能度量指标来评估增/删逻辑文字前后的规则性能,或增/删规则前后的规则集性能,从而判断是否要进行剪枝.

15.4 一阶规则学习

受限于命题逻辑表达能力,命题规则学习难以处理对象之间的“关系”,而关系信息在很多任务中非常重要。

例如,我们在现实世界挑选西瓜时,通常很难把水果摊上所有西瓜的特征用属性值描述出来,因为我们很难判断:色泽看起来多深才叫“色泽青绿”? 敲起来声音多低才叫“敲声沉闷”? 比较现实的做法是将西瓜进行相互比较,例如,“瓜1的颜色比瓜2更深,并且瓜1的根蒂比瓜2更蜷”,因此“瓜1比瓜2更好”。然而,这已超越了命题逻辑的表达能力,需用一阶逻辑表示,并且要使用一阶规则学习.

15.5 归纳逻辑程序设计

归纳逻辑程序设计(简称 ILP)在一阶规则学习中引入了函数和逻辑表达式嵌套。一方面,这使得机器学习系统具备了更为强大的表达能力;另一方面,ILP可看作用机器学习技术来解决基于背景知 识的逻辑程序归纳,其学得的“规则”可被 PROLOG 等逻辑程序设计语言直接使用

15.5.1 最小一般泛化

归纳逻辑程序设计采用自底向上的规则生成策略,直接将一个或多个正例所对应的具体事实作为初始规则,再对规则逐步进行泛化以增加其对样例的覆盖率。泛化操作可以是将规则中的常量替换为逻辑变量,也可以是删除规则体中的某个文字.

15.5.2 逆归结

基于归结原理,我们可将貌似复杂的逻辑规则与背景知识联系起来化繁为简;而基于逆归结,我们可基于背录知识来发明新的概念和关系.

十六、强化学习

16.1 任务与奖赏

我们考虑一下如何种西瓜,种瓜有许多步骤,从一开始的选种,到定期浇水、施肥、除草、杀虫,经过一段时间才能收获西瓜。通常要等到收获后,我们 才知道种出的瓜好不好,若将得到好瓜作为辛勤种瓜劳动的奖赏,则在种瓜过程中当我们执行某个操作(例如,施肥)时,并不能立即获得这个最终奖赏,甚至难以判断当前操作对最终奖赏的影响,仅能得到一个当前反馈(例如,瓜苗看起 来更健壮了)。我们需多次种瓜,在种瓜过程中不断摸索,然后才能总结出较好的种瓜策略。这个过程抽象出来,就是“强化学习”

强化学习任务通常用马尔可夫决策过程(简称 MDP)来描述:机器处于环境 E 中,状态空间为 X,其中每个状态 x\in X 是机器感知到的环境的描述,如在种瓜任务上这就是当前瓜苗长势的描述;机器能采取的动作构成了动作空间 A,如种瓜过程中有浇水、施不同的肥、使用不同的农药等多种可供选择的动作;若某个动作 a∈A 作用在当前状态 x 上,则潜在的转移函数 P 将使得环境从当前状态按某种概率转移到另一个状态,如瓜苗状态为缺水,若选择动作浇水,则瓜苗长势会发生变化,瓜苗有一定的概率恢复健康,也有一定的概率无法恢复;在转移到另一个状态的同时,环境会根据潜在的“奖赏”函数 R 反馈给机器一个奖赏,如保持瓜苗健康对应奖赏 +1,瓜苗凋零对应奖赏 -10,最终种出了好瓜对应奖赏 +100。

综合起来,强化学习任务对应了四元组 E=(X,A,P,R),其中P:X\times A\times X\rightarrow \mathbb{R} 指定了状态转移概率,R:X\times A\times X\rightarrow \mathbb{R} 指定了奖赏;在有的应用中,奖赏函数可能仅与状态转移有关,即 R:X\times X\rightarrow \mathbb{R}

16.2 K-摇臂赌博机

16.2.1 探索与利用

与一般监督学习不同,强化学习任务的最终奖赏是在多步动作之后才能观察到,这里我们不妨先考虑比较简单的情形:最大化单步奖赏,即仅考虑一步操作。需注意的是,即便在这样的简化情形下,强化学习仍与监督学习有显著不同,因为机器需通过尝试来发现各个动作产生的结果,而没有训练数据告诉机器应当做哪个动作.

欲最大化单步奖赏需考虑两个方面:一是需知道每个动作带来的奖赏,二是要执行奖赏最大的动作。若每个动作对应的奖赏是一个确定值,那么尝试一遍所有的动作便能找出奖赏最大的动作。然而,更一般的情形是,一个动作的奖赏值是来自于一个概率分布,仅通过一次尝试并不能确切地获得平均奖赏值.

实际上,单步强化学习任务对应了一个理论模型,即“K-摇臂赌博机”。K-摇臂赌博机有K个摇臂,赌徒在投入一个硬币后可选择按下其中一个摇臂,每个摇臂以一定的概率吐出硬币,但这个概率赌徒并不知道。赌徒的目标是通过一定的策略最大化自己的奖赏,即获得最多的硬币.

若仅为获知每个摇臂的期望奖赏,则可采用“仅探索”法:将所有的尝试机会平均分配给每个摇臂(即轮流按下每个摇臂),最后以每个摇臂各自的平均吐币概率作为其奖赏期望的近似估计。若仅为执行奖赏最大的动作,则可采用“仅利用”法:按下目前最优的(即到目前为止平均奖赏最大的)摇臂,若有多个摇臂同为最优,则从中随机选取一个。 显然,“仅探索”法能很好地估计每个摇臂的奖赏,却会失去很多选择最优摇臂的机会;“仅利用”法则相反,它没有很好地估计摇臂期望奖赏,很可能经常选不到最优摇臂,因此,这两种方法都难以使最终的累积奖赏最大化.

事实上,“探索”和“利用”这两者是矛盾的,因为尝试次数有限,加强了一方则会自然削弱另一方,这就是强化学习所面临的“探素-利用窘境”。显然,欲累积奖赏最大,则必须在探索与利用之间达成 较好的折中.

16.2.2 \epsilon-贪心

\epsilon-贡心法基于一个概率来对探索和利用进行折中:每次尝试时,以 \epsilon 的概率进行探索,即以均匀概率随机选取一个摇臂;以1-\epsilon 的概率进行利用,即选择当前平均奖赏最高的摇臂

16.2.3 Softmax

Softmax 算法基于当前已知的摇臂平均奖赏来对探索和利用进行折中,若各摇臂的平均奖赏相当,则选取各摇臂的概率也相当;若某些摇臂的平均奖赏明显高于其他摇臂,则它们被选取的概率也明显更高

Softmax算法中摇臂概率的分配是基于 Boltzmann分布

16.3 有模型学习

考虑多步强化学习任务,暂且先假定任务对应的马尔可大决策过程四元组 E=\left \langle X,A,P,R \right \rangle 均为已知,这样的情形称为“模型已知”,即机器己对环境进行了建模,能在机器内部模拟出与环境相同或近似的状况,在已知模型的环境中学习称为“有模型学习”

16.3.1 策略评估

在模型已知时,对任意策略π能估计出该策略带来的期望累积奖赏

在模型已知时,对任意策略 \pi 能估计出该策略带来的期望累积奖赏。令函数 V^{\pi}(x) 表示从状态 x 出发,使用策略 \pi 所带来的累积奖赏;函数 Q^{\pi}(x,a) 表示从状态 x 出发,执行动作 a 后再使用策略 \pi 带来的累积奖赏。这里的 V(\cdot) 称为“状态值函数”,Q(\cdot) 称为“状态-动作值函数”,分别表示指定“状态”上以及指定“状态-动作”上的累积奖赏。

由累积奖赏的定义,有状态值函数 

16.3.2 策略改进

对某个策略的累积奖赏进行评估后,若发现它并非最优策略,则当然希望对其进行改进。理想的策略应能最大化累积奖赏

一个强化学习任务可能有多个最优策略,最优策略所对应的值函数 V* 称为最优值函数,即 

最优状态-动作值函数

 上述关于最优值函数的等式,称为最优 Bellman 等式,其唯一解是最优值函数

最优 Bellman 等式揭示了非最优策略的改进方式:将策略选择的动作改变为当前最优的动作.

16.3.3 策略迭代与值迭代

从一个初始策略(通常是随机策略)出发,先进行策略评估,然后改进策略,评估改进的策略,再进一步改进策略,……不断迭代进行策略评估和改进,直到策略收敛、不再改变为止.这样的做法称为“策略迭代”

16.4 免模型学习

若学习算法不依赖于环境建模,则称为“免模型学习”

16.4.1 蒙特卡罗强化学习

在免模型情形下,策略迭代算法首先遇到的问题是策略无法评估,这是由 于模型未知而导致无法做全概率展开,一种直接的策略评估替代方法是多次“采样”,然后求取平均累积奖赏来作为期望累积奖赏的近似,这称为蒙特卡罗强化学习

16.4.2 时序差分学习

蒙特卡罗强化学习算法通过考虑采样轨迹,克服了模型末知给策略估计造 成的困难.此类算法需在完成一个采样轨迹后再更新策略的值估计,而前面介 绍的基于动态规划的策略迭代和值迭代算法在每执行一步策略后就进行值函 数更新.两者相比,蒙特卡罗强化学习算法的效率低得多,这里的主要问题是 蒙特卡罗强化学习算法没有充分利用强化学习任务的 MDP 结构。时序差分学习则结合了动态规划与蒙特卡罗方法的思想,能做到更高效的免模型学习.

16.5 值函数近似

“表格值函数”,即值函数能表示为一个数组,输入 i 对应的函数值就是数组元素;的值,且更改一个状态上的值不会影响其他状态上的值。

直接对连续状态空间的值函数进行学习,假定状态空间为 n 维实数空间 X=\mathbb{R}^n,此时显然无法用表格值函数来记录状态值。先考虑简单情形,即值函数能表达为状态的线性函数

其中x为状态向量,θ为参数向量

由于此时的值函数难以像有限状态那样精确记录每个状态的值,因此这样值函数的求解被称为值函数近似

16.6 模仿学习

在强化学习的经典任务设置中,机器所能获得的反馈信息仅有多步决策后的累积奖赏,但在现实任务中,往往能得到人类专家的决策过程范例,例如在种瓜任务上能得到农业专家的种植过程范例。从这样的范例中学习,称为“模仿学习”

16.6.1 直接模仿学习

强化学习任务中多步决策的搜索空间巨大,基于累积奖赏来学习很多步之前的合适决策非常困难,而直接模仿人类专家的“状态-动作对”可显著缓解这一困难,我们称其为“直接模仿学习”

16.6.2 逆强化学习

在很多任务中,设计奖赏函数往往相当困难,从人类专家提供的范例数据中反推出奖赏函数有助于解决该问题,这就是逆强化学习

  • 24
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值