机器学习相关概念
机器学习致力于研究如何 通过计算的手段,利用经验来改善系统自身的性能,在计算机系统中,“经验”通常以“数据”形式存在,因此,机器学习所研究的主要内容,是关于在计算机上从数据中产生“模型”的算法,即“学习算法”。有了学习算法,把经验数据提供给它,它就能基于这些数据产生模型;在面对新的情况时,模型会听相应的判断。如果计算机科学是研究关于“算法”的学问,那么类似的,机器学习是研究关于“学习算法”的学问。
“模型”泛指从数据中学得的结果。“模式”指局部性结果。
预测的是离散值,此类学习任务称为“分类(classification)”;若欲预测的是连续值,此类任务称为“回归(regression)”对只涉及两个类别的“二分类(binary classification)”任务,通常称其中一个类为“正类(positive class)”,另一个类为“反类(negative class)”;涉及多个类别是,则称为“多分类(multi-class classification)”任务。一般的,预测任务是希望通过对训练集 { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } \{ (x_1, y_1), (x_2, y_2), ..., (x_m, y_m)\} {(x1,y1),(x2,y2),...,(xm,ym)} 进行学习,建立一个从输入空间 X X X到输出空间 y y y的映射: f : x → y f:x \rightarrow y f:x→y。对二分类任务,通常令 y = { − 1 , + 1 } y = \{-1, +1\} y={−1,+1}或 { 0 , 1 } \{0, 1\} {0,1};对多分类任务, ∣ y ∣ > 2 |y|>2 ∣y∣>2;对于回归任务, y = R y=R y=R, R R R为实数集。
学得的模型食用油新样本的能力,称为“泛化”(generalization)能力。具有强泛化能力的模型能很好的适用于整个样本空间。尽管训练集通常只是样本空间的一个很小的采样,仍希望它能够很好的反映出样本空间的特性,否则就很难期望在训练集上学得的模型能在整个样本空间上都工作的很好。通常建设样本空间中全体样本服从一个位置“分布”(distribution),我们获得的每个样本都是独立地从这个分布上采样获得的,即“独立同分布”(independent and identically distributed)。一般而言,训练样本越多,得到的关于分布的信息越多,这样就越有可能通过学习获得具有强泛化能力的模型。
假设空间
归纳(induction)与演绎(deduction)是科学推理的两大基本手段。“从样例中学习”是一个归纳的过程,也称为“归纳学习”(inductive learning)。
- 归纳:从特殊到一般的“泛化”(generalization)的过程,即从具体的事实归结出一般性规律;
- 演绎:从一般到特殊的“特化”(specialization)过程,即从基础原理推演出具体状况。
学习的过程看作一个在所有假设(hypothesis)组成的空间中进行搜索的过程,搜索目标是找到与训练集“匹配”(fit)的假设,即能够将训练集中的样本判断正确的假设。假设的表示一旦确定,假设空间及其规模大小就确定了。
现实问题中我们面临很大的假设空间,但学习过程是基于有限样本训练集进行的,因此,可能有很多个假设与训练集一致,即存在着一个与训练集一致的“假设集合”,我们称之为“版本空间”(version space)。
归纳偏好
通过学习得到的模型对应了假设空间只能的一个假设。对于学习算法而言,必须要产生一个模型,这时,学习算法本身的“偏好”就会起到关键作用。机器学习算法在学习过程中对某种类型假设的偏好,称为“归纳偏好”(inductive bias),或简称为“偏好”。
任何一个有效的机器学习算法必有其归纳偏好,否则它将被假设空间中看似在训练集上“等效”的假设所迷惑,从而无法产生确定的学习结果。如果没有偏好,学习算法产生的模型每次在进行预测时随机抽选训练集上的等效假设,那么对于同一个测试样本,学得模型时而告诉我们它是好的、时而告诉我们它是不好的,这样的学习结果,显然是没有意义的。
每个训练样本是一个点,要学得一个与训练集一致的模型,相当于找到一条穿过所有训练样本点的曲线。显然,对有限个样本点组成的训练集,存在着很多条曲线与其一致,我们的学习算法必须有某种偏好,才能产出它认为“正确”的模型。
归纳偏好可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或“价值观”。“奥卡姆剃刀”(Occarm’s razor)是一种常见的、自然科学研究中最基本的原则,即“若有多个假设与观察一致,则选最简单的那个”。
奥卡姆剃刀并非唯一可行的原则,事实上,归纳偏好对应了学习算法本身所做出的关于“什么样的模型更好”的假设,在具体的实际问题中,这个假设是否成立,即算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法能否取得好的性能。
“没有免费的午餐”定理(No Free Lunch Theorm,简称NFL定理)让我们认识到,脱离具体问题,空泛的谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有学习算法都一样好。要谈论算法的相对优劣,必须要针对具体的学习问题;在某些问题上表现好的学习算法,在另一些问题上却可能不尽如人意,学习算法自身的归纳偏好与问题是否相配,往往会起到决定性的作用。
发展历程
- 推理期
- 知识期
- 机器学习
- 从样例中学习
- 统计学习
- 深度学习
模型评估与选择
经验误差与过拟合
- 训练误差(training error)或“经验误差”:学习器在训练集上的误差。
- 泛化误差(generalization error):在新样本上的误差。
为了在新样本上能表现的很好,应该从训练样本中尽可能学出适用于所有潜在样本的“普遍规律”,这样才能在遇到新样本时做出正确的判别。然而,当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降。这种现象在机器学习中称为“过拟合”(overfitting),与“过拟合”相对的是“欠拟合”(underfitting),这是指对训练样本的一般性质尚未学好。
- 过拟合:有多种因素可能导致过拟合,其中最常见的情况是由于学习能力过于强大,以至于把训练样本包含的不太一般的特性都学到了。过拟合是机器学习面临的关键障碍,但是过拟合是无法彻底避免的,只能缓解,或者减小其风险。
- 欠拟合:由于学习能力低下而造成的。欠拟合比较容易克服,在神经网络学习中可以增加训练轮数来克服。
在现实任务中,往往哟多种学习算法可供选择,甚至对同一学习算法当使用不同的参数配置时,也会产生不同的模型。理想的解决方案是对候选模型的泛化误差进行评估,然后选择泛化误差最小的那个模型。
评估方法
通过实验测试啦对学习器的泛化误差进行评估并进而做出选择。使用测试集(testing set)来测试学习器对新样本的判别能力,然后以测试集上的测试误差(testing error)作为泛化误差的近似。假设测试样本也是从样本真实分布中独立同分布采样而得。但是,测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用过。
通过对样例数据集进行适当处理,从中产生训练集和测试集。
-
留出法(hold-out)
直接将数据划分为两个互斥的集合,一个集合作为训练集,另一个作为测试集,在训练集上训练处模型后,用测试集评估其测试误差,作为对泛化误差的估计。将大约2/3~4/5的样本用于训练,剩余样本用于测试。 -
交叉验证(cross validation)
-
自助法(bootstrapping)
自助法在数据集较小、难以有效划分训练/测试集时很有用;此外自主法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处。然而,自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。因此,在初始数据量足够时,留出法和交叉验证法更常用一些。 -
调参与最终模型
性能度量
对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要衡量模型泛化能力的评价标准,这就是性能度量(performance measure)。
-
错误率与精度
- 错误率:分类错误的样本数占样本总数的比例。
- 精度:分类正确的样本数占样本总数的比例。
-
查准率、查全率与F1(二分类问题)
查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。- P-R曲线:P-R曲线直观的显示出学习器在样本总体上的查全率、查准率。在进行比较时,若一个学习器的P-R曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者的性能。
- 平衡点:(Break-Event Point,简称BEP),“查准率=查全率”的取值。
-
F1
-
ROC与AUC
很多学习器为了测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值(threshold)进行比较,若大于阈值则为正类,否则为反类。- ROC
根据学习器的预测结果对样本序列进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图,就得到了“ROC曲线”。ROC曲线的纵轴是“真正例率”(True Positive Rate,简称TPR),横轴是“假正例率”(False Positive Rate, 简称FPR)。
- AUC(Area Under ROC Curve)
ROC曲线下的面积。
- ROC
-
代价敏感错误率与代价曲线
现实任务中会遇到不同类型的错误所造成的后果不同。为权衡不同类型错误所造成的的不同损失,为错误赋予“非均等代价”(unequal cost)。
比较检验
有了实验评估方法和性能度量,就能对学习器的性能进行评估比较了:先使用某种实验评估方法测得学习器的某个性能度量结果,然后对这些结果进行比较。
统计假设检验为进行学习器性能比较提供了重要依据。默认以错误率为性能度量。
- 假设检验
- 交叉验证t检验
- McNemar检验
- Friedman检验与Nemenyi后续检验
偏差与方差
“偏差-方差分解(bias-variance decomposition)”是解释学习算法泛化性能的一种重要工具。偏差-方差分解试图图学习算法的期望泛化错误率进行拆解。
- 偏差:度量学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;
- 方差:度量了同样大小的训练集的变动所导致的学习性能的变化。即刻画了数据扰动所造成的影响;
- 噪声:表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
- 偏差-方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。
线性模型
线性回归
对数几率回归(logistics regression亦称logits regression)
做分类任务时,需要找一个单调可微函数将分类任务的真实标记与线性回归模型的预测值联系起来。最理想的是单位阶跃函数(unit-step function),单位阶跃函数不连续,需要用单调可微的对数几率函数(logistics function)替代单位阶跃函数。对数几率函数是一种“Sigmoid函数”,它将真实值转换为一个接近0或1的值,且其输出值在0附近变换很陡。
线性判别分析
多分类学习
类别不平衡问题
类别不平衡(class-imbalance)是指分类任务中不同类别的训练样例数目差别很大的情况。
决策树
基本流程
决策树(decision tree)是一类常见的机器学习方法。决策是是基于树结构精细决策的。一般的,一棵决策树包含一个根结点、若干个内部结点和若干个叶结点;叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集。从根结点到每个叶结点的路径对应了一个判定测试序列。决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的“分而治之”(divide-and-conquer)策略。
决策树的生成式一个递归过程。在决策树基本算法中,有三种情形会导致递归返回:
- (1)当前结点包含的样本全属于同一类别,无需划分;
- (2)当前属性值为空,或是所有样本在所有属性上取值相同,无法划分。将当前结点标记为叶结点,并将其类别设定位该结点所含样本最多的类别,利用的是当前结点的后验分布;
- (3)当前结点包含的样本集合为空,不能划分。把当前结点标记为叶结点,但将其类别设定为其父结点所含样本最多的类别。把父结点的样本分布作为当前结点的先验分布。
划分选择
决策树学习的关键是如何选择最优划分属性,一般而言,随着划分过程不断进行,希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高。
-
信息增益
-
增益率
把“编号”也作为一个候选划分属性,“编号”的每个分支结点仅包含一个样本,这些分支结点的纯度已达最大,这样的决策树不具有泛化能力,无法对新样本进行有效预测。
信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响。使用“增益率”(grain ratio)来选择最优划分属性。增益率定义为:
增益率准则对可取值数目较少的属性有所偏好,算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式,先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。 -
基尼指数(Gini index)
剪枝处理
剪枝(pruning)是决策树学习算法对付“过拟合”的主要手段。在决策树的学习中,为了尽可能正确训练样本,结点划分过程将不断重复,有时也会造成决策树分支过多,这时就可能因为训练样本学得“太好了”,以至于把训练集吱声的一些特点来当作所有数据都具有的一般性质而导致过拟合。因此,可通过主动去掉一些分支来降低过拟合的风险。
决策树剪枝的基本策略有:
- “预剪枝”:在决策树生成过程中,对每个结点在划分前进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;预剪枝使得决策树的很多分支都没有“展开”,这不仅降低了过拟合的风险,还显著减少了决策树的训练时间开销和预测时间开销。但另一方面,有些分支的当前划分虽不能提升泛化性能、甚至可能导致泛化性能暂时下降,但在其基础上进行的候续划分却有可能导致性能显著提高;预剪枝基于“贪心”本质禁止这些分支展开,给预剪枝决策树带来了欠拟合的风险。
- 后剪枝,先从训练集生成一颗完整的决策树,然后自底向上的对非叶结点进行考察,若将该节点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶节点。后剪枝决策树通常比预剪枝决策树保留了更多的分支。一般情形下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树。但后剪枝过程是在生成完全决策树之后进行的,并且要自底向上的对树中的所有非叶结点进行逐一考察,因此其训练时间开销比未剪枝决策树和预剪枝决策树都要大得多。
连续与缺失值
- 连续值处理
现实学习任务中常会遇到连续属性,由于连续属性的可取值数目不再有限,因此,不能直接根据连续属性的可取值来对结点进行划分。可以将连续属性离散化。最简单的策略是采用二分法对连续属性进行处理。 - 缺失值处理
- 对于属性值缺失的情况下,只能根据没有缺失的属性来判断划分属性选择。
- 给定划分属性,若样本在该属性上的值缺失,则将该样本以不同的概率划入到不同的子结点中去。
多变量决策树
若把每个属性视为坐标空间中的一个坐标轴,则d个属性描述的描述样本就对应了d维空间中的一个数据点,对样本分类则意味着在这个坐标空间中寻找不同类样本之间的分类边界。决策说所形成的分类边界有一个明显的特点:轴平行(axis-parallel),即它的分类边界由若干个与坐标轴平行的分段组成。因为每一段划分都直接对应了某个属性取值,这样的分类边界使得学习结果有较好的可解释性。但在学习任务的真实分类边界比较复杂时,必须使用很多段划分才能获得较好的近似,由于要进行大量的属性测试,预测时间开销会很大。
多变量决策树(multivariate decision tree)能实现斜划分,甚至更复杂划分的决策树。以实现斜划分的多变量决策树为例,在此类决策树中,非叶结点不再是仅对某个属性,而是对属性的线性组合进行测试;每个非叶结点是一个线性分类器,与“单变量决策树”(univariate decision tree)不同,在多变量决策树的学习过程中,不是为每个非叶结点寻找一个最优划分属性,而是试图建立一个合适的线性分类器。
神经网络
神经元模型
神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。
M-P神经元模型接收来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过激活函数处理以产生神经元的输出。理想中的激活函数为阶跃函数,将输入值映射为输出值为0和1,对应于神经元抑制和兴奋。因为阶跃函数具有不连续、不光滑、等不太好的性质,实际常用Sigmoid函数作为激活函数。它把可能在较大范围内变化的输入值挤压到(0,1)输出值范围内,因此有时也称为“挤压函数”(squashing function)。
把多个这样的神经元按一定的层次结构连接起来,就得到了神经网络。从计算机的角度,可以不考虑神经网络是否真的模拟了生物神经网络,只需要将一个神经网络视为包含了许多参数的数学模型,这个模型是若干个函数。
感知机与多层网络
感知机(Perceptron)由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”(threshold logic unit)。
感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元(functional neuron),其学习能力非常有限。若两类模式是线性可分的,即存在一个超平面能将它们分开,则感知机的学习过程一定会收敛而求得适当的权向量;否则感知机学习过程将会发生振荡,不能求得合适解。
要解决非线性可分问题,需要考虑使用多层功能神经元。输入输出层之间的一层神经元,被称为隐层或隐含层(hidden layer),隐含层和输出层神经元都是拥有激活函数的功能神经元。
常见的神经网络是“前馈神经网络”(multi-layer feedforward neural networks),每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。其中输入层神经元接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出;输入层神经元仅是接收输入,不进行函数处理,隐层与输出层包含功能神经元。
神经网络的学习过程,就是根据训练数据来调整神经元之间的连接权以及每个功能神经元的阈值,神经元学到的东西都蕴含在连接权与阈值中。
误差逆向传播算法
逆向传播(error BackPropagation,简称BP)算法使最成功的神经网络学习算法。现实任务中使用神经网络时,大多是在使用BP算法进行训练。
BP算的工作流程。对每个训练样例,BP算法执行以下操作:
- 将输入示例提供给神经元,然后逐层将信息前传,直到产生输出层的结果;
- 然后计算输出层的误差,再将误差逆向传播至隐层神经元,最后根据隐层神经元的误差来对连接权和阈值进行调整。
- 该迭代过程循环进行,直到达到某些停止条件为止。
全局最小与局部极小
神经网络在训练集上的误差,是关于连接权和阈值的函数。神经网络的训练过程可看作一个参数寻优过程,即在参数空间中,寻找一组最优参数使得误差最小。
在现实任务中,通常采用如下策略来试图跳出局部极小,从而进一步接近全局最小:
- 以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数。这相当于从多个不同的初始点开始搜索,这样就不可能陷入不同的局部极小,从中进行选择有可能获得更接近全局最小的结果。
- 使用模拟退火(simulated annealing)技术,模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助于跳出局部极小。在每步迭代过程中,接受次优解的概率要随着时间的推移而逐渐降低,从而保证算法的稳定。
- 使用随机梯度下降。与标准梯度下降法精确计算梯度不同,随机梯度下降法再计算梯度时加入了随机因素,于是,即便陷入局部极小点,它计算出的梯度仍可能不为零,这样就有机会跳出局部极小极小搜索。
常见神经网络
- RBF网络(Radial Basis Function, 径向基函数)是一种单隐层前馈神经网络,它使用径向基函数作为隐层神经元激活函数,而输出层则是对隐层神经元输出的线性组合。
- ART网络
竞争型学习(competitive learning)是神经网络中一种常见的无监督学习策略,在使用该策略时,网络的输出神经元相互竞争,每一时刻仅有一个竞争获胜的神经元被激活,其他神经元的状态被抑制。这种机制亦称“胜者通吃”(winner-take-all)元则。
ART(Adaptive Resonance Theory,自适应谐振理论)网络是竞争型学习的重要代表。该网络由比较层、识别层、识别阈值和重置模块构成。其中比较层负责接收输入样本,并将其传递给别层神经元。识别层每个神经元对应一个模式类,神经元数目可在训练过程中动态增长以增加新的模式类。
在接收到比较层的输入信号后,识别层神经元之间相互竞争以产生获胜神经元。竞争的最简单方式是,计算输入向量与每个识别层神经元所对应的模式类的代表向量之间的距离,距离最小者胜。获胜神经元将向其他识别层神经元发送信号,抑制其激活。若输入向量与获胜神经元所对应的代表向量之间的相似度大于识别阈值,则当前输入样本将被归为该代表向量所属类别,同时,网络连接权将会更新,使得以后在接收到相似输入样本时该模式类会计算出更大的相似度,从而使该获胜神经元又更大可能获胜;若相似度不大于识别阈值,则重置模块将在识别层增设一个新的神经元,其代表向量就设置为当前输入向量。
识别阈值对ART网络的性能有重要影响。当识别阈值较高时,输入样本将会被分成比较多、比较精细的模式类,而如果识别阈值较低,则会产生比较少、比较粗略的模式类。
ART比较好的缓解了竞争型学习中的“可塑性-稳定性窘境”(stability-plasticity dilemma),可塑性是指神经网络要有学习新知识的能力,而稳定性则是指神经网络在学习新知识时要保持对旧知识的记忆。这就使得ART网络具有一个很重要的优点:可进行增量学习(incremental learning)或在线学习(online learning)。 - SOM网络(Self-Organizing Map, 自组织映射)
SOM网络是一种竞争学习型的无监督神经网络,它能将高为输入数据映射到低维空间(通常为二维),同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。
SOM的训练目标就是为每个输出层神经元找到合适的权向量,以达到保持拓扑结构的目的。
SOM的训练过程很简单:在接收到一个训练样本后,每个输出层神经元会计算该样本与自身携带的权向量之间的距离,距离最近的神经元成为竞争获胜者,称为最佳匹配单元(best matching unit)。然后,最佳匹配单元及其邻近神经元的权向量将被调整,以使得这些权向量与当前输入样本的距离缩小。这个过程不断迭代,直至收敛。 - 级联相关网络
一般的神经网络模型通常假定网络结构是事先固定的,训练的目的是利用训练样本来确定合适的连接权、阈值等参数。与此不同,结构自适应网络则将网络的结构也当作学习的目标之一,并希望能在训练过程中找到最符合数据特点的网络结构。级联相关(Cascade-Correlation)网络是结构自适应网络的重要代表。
级联相关网络有两个主要成分:“级联”和“相关”。级联是指建立层次连接的层级结构。在开始训练时,网络只有输入层和输出层,处于最小拓扑结构;随着训练的进行,新的隐层神经元逐渐加入,从而创建起层级结构。当新的隐层神经元加入时,其输入连接权值是冻结固定的。相关是指通过最大化新神经元的输出与网络误差之间的相关性来训练相关的参数。
与一般的前馈神经网络相比,级联相关网络无需设置网络层数、隐层神经元数目,且训练速度较快,但其在数据较小时易陷入过拟合。 - Elman网络
Elman网络是常用的递归神经网络之一,其结构与多层前馈网络很相似,但隐层神经元的输出被反馈回来,与下一时刻输入层神经元提供的信号一起,作为隐层神经元在下一时刻的输入。隐层神经元通常采用sigmoid激活函数,而网络的训练则常通过推广的BP算法进行。 - Botzmann机
神经网络中有一个模型是为网络状态定义一个“能量”,能量最小时网络达到理想状态,而网络的训练就是在最小化这个能量函数。Boltzmann是一种基于能量的模型(energy-based model),其神经元分为两层:显层与隐层。显层用于表示数据的输入与输出,隐层则被理解为数据的内在表达。
深度学习
支持向量机
间隔与支持向量
给定训练样本集,分类学习最基本的想法就是基于训练集在样本空间中找到一个划分超平面,将不同类别的样本分开。
对偶问题
核函数
假设训练样本是线性可分的,即存在一个划分超平面能将训练样本正确分类。然而在现实任务中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面(例如异或问题就不是线性可分的)。
对这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用,事实上,对于一个半正定核矩阵,总能找到一个与之对应的映射。任何一个核函数都隐式的定义了一个称为“再生核希尔伯特空间”的特征空间。
我们希望样本在特征空间中线性可分,因此特征空间的好坏对支持向量机的性能至关重要。但是在不知道特征映射的形式时,并不知道什么样的核函数是合适的,而核函数也仅是隐式的定义了这个特征空间。核函数的选择是支持向量机的关键。若核函数选择不合适,则意味这将样本映射到了一个不合适的特征空间,很可能导致性能不佳。
软间隔与正则化
现实任务中很难确定合适的核函数使得训练样本在特征空间中线性可分;即便找到了某个核函数使训练集在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合所造成的。
缓解该问题的一个办法是允许支持向量机在一些样本上出错。软间隔允许某些样本不满足约束:
支持向量回归
核方法
贝叶斯分类器
贝叶斯决策论
贝叶斯决策(Bayes Decision Theory)概率框架下实施决策的基本方法。它是决策论(Decision Theory)和概率论(Probability Theory)的组合。
贝叶斯决策论(Bayesian decision theory)是概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都已知的情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。
极大似然估计
朴素贝叶斯分类器
基于贝叶斯来估计后验概率
P
(
c
∣
x
)
P(c|x)
P(c∣x)的主要困难在于:类条件概率
P
(
x
∣
c
)
P(x|c)
P(x∣c)是所有属性上的联合概率,难以从有限的训练样本直接估计而得。为了避开这个障碍,朴素贝叶斯分类器采用了“属性条件独立性假设”:对已知类别,假设所有属性相互独立,换言之,假设每个属性独立的对分类结果发生影响。
半朴素贝叶斯分类器
贝叶斯网
贝叶斯网(Bayesian Network)亦称“信念网”(belief network),它借助有向无环图(Directed Acyclic Graph,简称DAG)来刻画属性之间的依赖关系,并使用条件属性概率表(Conditional Probability Table,简称CPT)来描述属性的联合概率分布。
- 结构
- 学习
若网络结构已知,即属性间的依赖关系已知,则贝叶斯网的学习过程相对简单,只需通过对训练样本“计数”,估计出每个结点的条件概率表即可。但在现实生活中往往并不知晓网络结构,于是,贝叶斯网络学习的首要任务就是根据训练数据集来找出结构最“恰当”的贝叶斯网。“评分搜索”是求解这一问题的常用办法。具体来说,先定义一个评分函数(score function)以此来评估贝叶斯网与训练数据的契合程度,然后基于这个评分函数来寻找结构最优的贝叶斯网,显然,评分函数引入了关于我们希望得到什么样的贝叶斯网的归纳偏好。
常用评分函数通常基于信息论准则,此类准则将学习问题看作一个数据压缩任务,学习的目标是找到一个能以最短编码长度描述训练数据的模型,此时编码的长度包含了描述模型自身所需的字节长度和使用该模型描述数据所需的字节长度。对贝叶斯网学习而言,模型就是一个贝叶斯网,同时,每个贝叶斯网描述了一个在训练数据上的概率分布,自有一套编码机制能使那些经常出现的样本有更短的编码。于是,我们应该选择那个综合编码长度(包括描述网络和编码数据)最短的贝叶斯网,这就是“最小描述长度”(Minimal Description Legth,检测MDL)准则。
于是学习任务就转换为一个优化任务,即寻找一个贝叶斯网使评分函数最小。 - 推断
贝叶斯网训练好之后就来用来回答“查询”(query),即通过一些属性变量的观测值来推测其他属性变量的取值。这样通过已知变量观测值来推测待查询变量的过程称为“推断”(inference),已知变量观测值称为“证据”(evidence)。
最理想的是直接根据贝叶斯网定义的联合概率分布来精确计算后验概率,这样的“精确推断”已被证明是NP难的。需要借助“近似推断”,通过降低精度要求,在有限时间内求得近似解。在现实应用中,贝叶斯的近似推断常使用吉布斯采样来完成,这是一种随机采样方法。 - EM算法
现实应用中往往会遇到“不完整”的训练样本,训练样本的属性变量值是未知的。
- 贝叶斯分类器:通过最大后验概率进行单点估计。
- 贝叶斯学习:通过最大后验概率进行分布估计。
EM算法:常见地计算隐变量估计方法,常被用来学习高斯混合模型的参数。
集成学习
个体与集成
集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)等。
集成学习的一般结构:先产生一组“个体学习器”(individual learner),再用某种策略将他们结合起来。个体学习器通常由一个现有的学习算从训练数据产生,若集成中只包含同类型的个体学习器,这样的集成是“同质”的(homogeneous)。同质集成中的个体学习器亦称“基学习器”(base learner),相应的学习算法称为“基学习算法”(base learning algorithm)。若集成包含不同类型的个体学习器,这样的集成是“异质”(heterogenous)的。异质集成中的个体学习器由不同的学习算法生成,这时就不再有基学习算法;相应的,个体学习器一般不称为基学习器,常称为“组件学习器”(component learner)或直接称为个体学习器。
根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类,即个体学习器间存在强依赖关系、必须串行生成的序列化方法,代表算法是Boosting;以及个体学习器间不存在强依赖关系、可同时生成的并行化方法,代表算法是Bagging和随机森林(Random Forest)。
Boosting
Boosting是一族将弱学习器提升为强学习器的算法。这族算法的工作机制类似:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。
Boosting算法要求基学习器能对特定的数据分布进行学习,这可通过“重赋权法”(re-weighting)实施,即在训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重。对无法接受带权样本的基学习算法,则可通过“重采样法”(re-sampling)来处理,即在每一轮学习中,根据样本分布对训练集重新进行采样,再用重采样而得的样本集对基学习器进行训练。一般而言,这两种做法没有显著的优劣差别。Boosting算法在训练的每一轮都要检查当前生成的基学习器是否满足基本条件,一旦条件不满足,则当前基学习器即被抛弃,且学习过程停止。在此种情形下,初始设置的学习轮数T也许还远未达到,可能导致最终集成中只包含很少的基学习器而性能不佳。若采用“重采样法”,则可获得“重启动”机会以避免训练过程过早停止,即咋抛弃不满足条件的当前基学习器之后,可根据当前分布重新对训练样本进行采样,再基于新的采样结果重新训练出基学习器,从而使得学习过程可以持续到预设的T轮完成。
Bagging与随机森林
欲得到泛化性能强的集成,集成中的个体学习器应尽可能相互独立;虽然“独立”在现实任务中无法做到,但可以设法使基学习器尽可能具有较大的差异。给定一个训练数据集,一种可能的做法是对训练样本进行采样,产生出若干个不同的子集,再从每个子集中训练出一个基学习器。这样,由于训练数据不同,获得的基学习器可望具有比较大的差异。
- Bagging:有放回的采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。在对预测输出进行结合时,Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法。若分类预测时出现两个类收到同样票数的情形,则最简单的做法是随机选择一个,也可进一步考察学习器投票的置信度来确定最终胜利者。
- 随机森林:随机森林(Random Forest,简称RF)是Bagging的一个扩展变体。RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入随机属性选择。具体来说,传统决策树在选择划分属性时是在当前结点的属性集合(假定有 d d d个属性)中选择一个最优属性;而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含 k k k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。这里的参数 k k k控制了随机性的引入程度:若令 k = d k=d k=d,则基决策树的构建与传统决策树相同;若令 k = 1 k=1 k=1,则随机选择一个属性用于划分;一般情况下,推荐值 k = l o g 2 d k=log_2d k=log2d。
结合策略
学习器结合可能会从三个方面带来好处:
- 首先,从统计的方面来看,由于学习任务的假设空间往往很大,可能有多个假设在训练集上达到同等性能,此时若使用单学习器可能因误选而导致泛化性能不佳,结合多个学习器则会减小这一风险;
- 第二,从计算的方面来看,学习算法往往会陷入局部极小,有的局部极小点所对应的泛化性能可能很糟糕,而通过多次运行之后进行结合,可降低陷入糟糕局部极小点的风险;
- 第三,从表示的方面来看,某些学习任务的真实假设可能不在当前学习算法所考虑的假设空间中,此时若使用单学习器则肯定无效,而通过结合多个学习器,由于相应的假设空间有所扩大,有可能学得更好的近似。
几种常见的结合策略:
- 平均法
- 简单平均法
- 加权平均法
- 投票法
- 绝对多数投票法:即若某标记得票过半数,则预测为该标记;否则拒绝预测。
- 相对多数投票法:预测为得票最多的标记,若同时有多个标记获最高票,则从中随机选取一个。
- 加权投票法
- 学习法:训练数据很多时,使用学习法,即通过一个学习器来进行结合。
多样性
- 误差-分歧分解:个体学习器准确性越高、多样性越大,则集成越好。
- 多样性度量:度量集成中个体分类器的多样性,即估算个体学习器的多样化程度。典型做法是考虑个体分类器的两两相似/不相似性。
- 不合度量
- 相关系数
- Q-统计量
- k-统计量
- 多样性增强
在集成学习中需有效的生成多样性大的个体学习器。一般思路是在学习过程中引入随机性,常见做法主要是对数据样本、输入属性、输出表示、算法参数进行扰动。- 数据样本扰动
- 输入属性扰动
- 输出表示扰动
- 算法参数扰动
聚类
聚类任务
在无监督学习(unsupervised learning)中,训练样本的标记信息时未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。此类学习任务只能研究最多、应用最广的是聚类(clustering)。
聚类试图将数据集的样本划分为若干个通常是不相交的子集,每个子集称为一个簇。通过这样的划分,每个簇可能对应于一些潜在的概念(类别),这些概念对聚类算法而言事先是未知的,聚类过程仅能自动形成簇结构,簇所对应的概念语义需由使用者来把握和命名。
性能度量
- 聚类性能度量亦称类“有效性指标”(validity index)。对聚类结果,需要通过某种性能度量来评估其好坏;另一方面,若明确了最终将要使用的性能度量,则可直接将其作为聚类过程的优化目标,从而更好的得到符合要求的聚类结果。
- 聚类性能度量大致有两类。一类是将聚类结果与某个“参考模型”(reference model)进行比较,称为“外部指标”(external index);另一类是直接考察聚类结果而不利用任何参考模型,称为“内部指标”(internal index )
距离计算
属性分为连续属性和离散属性,连续属性在定义域上有无穷多个可能的取值,离散属性在定义域上是有限个取值。离散属性不能直接在属性值上计算距离。
原型聚类(原型值样本空间中具有代表性的点)
-
k均值算法
-
学习向量量化
-
高斯混合聚类
高斯混合聚类采用概率模型来表达聚类原型。
密度聚类
密度聚类亦称“基于密度的聚类”(density-based clustering),此类算法假设聚类结构能通过样本分布的紧密程度确定。通常情形下,密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果。
层次聚类
层次聚类(hierarchical clustering)试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的聚合策略,也可采用“自顶向下”的分拆策略。
AGNES是一种采用自底向上聚合策略的层次聚类算法。它先将数据集中的每个样本看作一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直至达到预设的聚类簇个数。
降维与度量学习
k k k近邻学习
k
k
k近邻(
k
−
N
e
a
r
e
s
t
N
e
i
g
h
b
o
r
k-Nearest Neighbor
k−NearestNeighbor,简称
k
N
N
kNN
kNN)学习是一种常用的监督学习方法,其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的
k
k
k个训练样本,然后基于这
k
k
k个“邻居”的信息来进行预测。通常,在分类任务中可使用“投票法”,即选择这
k
k
k个样本中出现最多的类别标记作为预测结果;在回归任务中可使用“平均法”,即将
k
k
k各样本的实值输出标记的平均值作为预测结果;还可基于距离远近进行加权平均或加权投票,距离越近的样本权重越大。
k
k
k近邻学习没有显示的训练过程,它是“懒惰学习”(lazy learning)的著名代表,此类学习技术在训练阶段仅仅是把
样本保存起来,训练时间开销为零,待收到测试样本后再进行处理;相应的,那些在训练阶段就对样本进行学习处理的方法,称为“急切学习”(eager learning)。
低维嵌入
在高维情形下出现的数据样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临的严重障碍,被陈伟“维数灾难”(curse of dimensionality)。
缓解维数灾难的一个重要途径是降维(dimension reduction)亦称维数约简,即通过某种数学变换将原始高维属性空间转变为一个低维子空间(subspace),在这个子空间中样本密度大幅提高,距离计算也变得更为容易。为什么能降维?这是因为在很多时候,人们观测或收集到的数据样本虽是高维的,但与学习任务密切相关的也许仅是某个低维分布,即高维空间中的一个低维嵌入(embedding)。
若要求原始空间样本之间的距离在低维空间中得以保持,多维缩放(Multiple Dimensional Scaling,简称MDS)是一种经典的降维方法。
主成分分析
对于正交属性空间中的样本点,若用一个超平面(直线的高维推广)对所有样本进行恰当的表达,那么这个超平面大概应具有这样的性质:
- 最近重构性:样本点到这个超平面的距离都足够近;
- 最大可能性:样本点在这个超平面上的投影能尽可能分开。
基于最近重构性和最大可分性,能分别得到主成分分析的两种等价推导。
- 从最近重构性来推导。
- 从最大可分性出发推导。
核化线性降维
香型降维方法假设从高维到低维空间的函数映射是线性的,然而,在不少现实任务中,可能需要非线性映射才能找到恰当的低维嵌入。非线性降维的一种常用方法,是基于核技巧对线性降维方法进行“核化”(kernelized)。核主成分分析(Kernelized PCA,简称KPCA)示例:
流形学习(manifold learning)
流行学习(manifold learning)是一类借鉴了拓扑流行概念的降维方法。“流形”是在局部与欧式空间同胚的空间,换言之,它在局部具有欧式空间的性质,能用欧式距离来进行距离计算。这给降维方法带来了很大的启发:若低维流行嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去非常复杂,但在局部上仍具有欧氏空间的性质,因此,可以容易的在局部建立降维映射关系,然后再设法将局部映射关系推广到全局。当维数被降至二维或三维时,能对数据进行可视化展示,因此流行学习也被用于可视化。
- 等度量映射
基本出发点,是认为低维流形嵌入到高维空间之后,直接在高维空间中计算直线距离具有误导性,因为高维空间中的直线距离在低维嵌入流形上是不可达的。
利用流形在局部上与欧氏空间同胚这个性质,对每个点基于欧氏距离找出其近邻点,然后就能建立一个近邻连接图,图中近邻点之间存在连接,而非近邻点之间不存在连接,于是,计算点之间测地线距离的问题,就转变为计算近邻连接图上两点之间的最短路径问题。从图10.7(b)可看出,基于近邻距离能或得低维流形上测地线距离很好的近似。
对近邻图的构建通常有两种方法:一种是指定近邻点个数,例如欧式距离最近的 k k k个点为近邻点,这样得到的近邻图称为 k k k近邻图;另一种是指定距离阈值 ϵ \epsilon ϵ,距离小于 ϵ \epsilon ϵ的点被认为是近邻点,这样得到的近邻图称为 ϵ \epsilon ϵ近邻图。两种方式均有不足,例如若近邻范围指定得较大,则距离很远的点可能被误认为近邻,这样就出现“断路”问题;近邻范围指定得较小,则图中有些区域可能与其他区域不存在连接,这样就出现“断路”问题。短路与断路都会给后续的最短路径计算造成误导。 - 局部线性嵌入
度量学习
在机器学习中,对高维数据进行降维的主要目的是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好。事实上,每个空间对应了在样本属性上定义的一个距离度量,而寻找合适的空间,实质上就是在寻找一个合适的距离度量。度量学习(metric learning)的基本动机就是尝试学习出一个合适的距离度量。
对M信息学习当然要设置一个目标。假定我们是希望提高近邻分类器的性能,则可将M直接嵌入到近邻分类器的评价指标中去,通过优化该性能指标相应的求得M。以近邻成分分析(Neighbourhood Component Analysis,简称NCA)为例进行讨论。
实际上,我们不仅能把错误率这样的监督学习目标作为度量学习的优化目标,还能在度量学习中引入领域知识。
特征选择与稀疏学习
子集搜索与评价
将特征子集搜索机制与子集评价机制项结合,即可以得到特征选择方法。
常见的特征选择方法大致可分为三大类:
- 过滤式(filter)
- 包裹式(wrapper)
- 嵌入式(embedding)
过滤式选择
过滤式方法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关。相当于先用特征选择过程对初始特征进行“过滤”,再用过滤后的特征来训练模型。
Relief(Relevant Features)是一种著名的过滤式特征选择方法,该方法设计了一个“相关统计量”来度量特征的重要性。该统计量是一个向量,其每个分量分别对应于一个初始特征,而特征子集的重要性则是由子集中每个特征所对应的相关统计量分量之和来决定。于是,最终只需指定一个阈值
τ
\tau
τ,然后选择比
τ
\tau
τ大的相关统计量分量所对应的特征即可;也可指定欲选取的特征个数
k
k
k,然后选择相关统计量分量最大的
k
k
k个特征。
包裹式选择
与过滤式特征选择不考虑后续学习器不同,包裹式特征选择直接把最终将要使用的学习器的性能作为特征子集的评价准则。即包裹式特征选择的目的就是为了给定学习器选择最有利于其性能、“量身定做”的特征子集。
由于包裹式特征选择方法直接针对给定学习器进行优化,因此,从最终学习器性能来看,包裹式特征选择比过滤式特征选择更好,但另一方面,由于在特征选择过程中需多次训练学习器,因此包裹式特征选择的计算开销通常比过滤式特征选择大的多。
LVW(Las Vegas Wrapper)是一个典型的包裹式特征选择方法。它在拉斯维加斯方法(Las Vegas method)框架下使用随机策略来进行子集搜索,并以最终分类器的误差为特征子集评价准则。
嵌入式选择与 L 1 L_1 L1正则化
在过滤式和包裹式特征选择方法中,特征选择过程与学习器训练过程有明显的分别;与此不同,嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择。
稀疏表示与字典学习
把数据集D考虑成一个矩阵,其每行对应于一个样本,每列对应于一个特征。特征选择所考虑的问题是特征具有“稀疏性”,即矩阵中的许多列与当前学习任务无关,通过特征选择去除这些列,则学习器训练过程仅需在较小的矩阵上进行,学习任务的难度可能有所降低,涉及的计算和存储开销会减少,学得模型的可解释性也会提高。
在一般的学习任务中,为普通稠密表达的样本找到合适的字典,将样本转化为合适的稀疏表示形式,从而使学习任务得以简化,模型复杂度得以降低,通常称为“字典学习”(dictionary learning),亦称“稀疏编码”(sparse coding)。“字典学习”更侧重于学得字典的过程,而“稀疏编码”则更侧重于对样本进行稀疏表达的过程。由于两者通常是在同一个优化求解过程中完成,因此不做进一步区分,统称为字典学习。
压缩感知
与特征选择、稀疏表示不同,压缩感知关注的是如何利用信号本身所具有的稀疏性,从部分观测样本中恢复原信号。通常认为,压缩感知分为“感知测量”和“重构恢复”这两个阶段。“感知测量”关注如何对原始信号进行处理以获得稀疏样本表示;“重构恢复”关注的是如何基于稀疏性从少量观测中恢复原信号,这是压缩感知的精髓,当谈到压缩感知时,通常是指该部分。
计算学理论
基础知识
计算学习理论(computational learning theory)研究的是关于通过“计算”来进行“学习”的理论,即关于机器学习的理论基础,其目的是分析学习任务的困难本质,为学习算法提供理论保证,并根据分析结果指导算法设计。
PAC学习
计算学习理论中最基本的是概率近似正确(Probability Approximately Correct, 简称PAC)学习理论。
有限假设空间
- 可分情形
- 不可分情形
VC维
现实学习任务所面临的通常是无限假设空间,最常见的办法是考虑假设空间的“VC维”(Vapnik-Chervonenkis dimension)。
Rademacher复杂度
基于VC维的泛化误差界是分布无关的、数据独立的,也就是说,对任何数据分布都成立。这使得基于VC维的可学习性分析结果具有一定的普适性;但从另一方面来说,由于没有考虑数据自身,基于VC维得到的泛化误差界通常比较松,对那些学习问题的典型情况相差甚远的较坏分布来说尤其如此。
Rademacher复杂度是另一种刻画假设空间复杂度的途径,与VC维不同的是,它在一定程度上考虑数据分布。
稳定性
无论是基于VC维还是Rademacher复杂度来推导泛化误差界,所得到的结果均与具体学习算法无关,对所有学习算法都适用。这使得人们能够脱离具体学习算法的设计来考虑学习问题本身的性质,但在另一方面,若希望获得与算法有关的分析结果,则需另辟蹊径。稳定性分析是这方面一个值得关注的方向。
算法的稳定性考察的是算法在输入发生变化时,输出是否会随之发生较大的变化。学习算法的输入是训练集。
半监督学习
未标记样本
让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能,就是半监督学习。要利用未标记样本,必然要做一些将未标记样本所揭示的数据分布信息与类别标记相联系的假设。最常见的是“聚类假设”(cluster assumption)即假设数据存在簇结构,同一个簇的样本属于同一个类别。基于聚类假设来利用未标记样本,由于待预测样本与正例样本通过未标记样本的“撮合”聚在一起,与相对分离的反例样本相比,待判别样本更可能属于正类。半监督学习的另一种常见的假设是“流形假设”(manifold assumption),即假设数据分布在一个流形结构上,邻近的样本拥有相似的输出值。“邻近”程度常用“相似”程度来刻画,因此,流形假设可看作聚类假设的推广,但流形假设对输出值没有限制,因此比聚类假设的适用范围更广,可用于更多类型的学习任务。事实上,无论聚类假设还是流形假设,其本质都是“相似的样本拥有相似的输出”这个基本假设。
半监督学习可进一步划分为纯(pure)半监督学习和直推半监督学习(transductive learning)。
- 纯半监督学习:假定训练数据中的未标记样本并非待预测的数据,是基于“开放世界”假设,希望学得模型你能够适用于训练过程中未观察到的数据;
- 直推半监督学习:假定学习过程中所考虑的未标记样本恰是待预测数据,学习的目的就是在这些未标记样本上获得最优泛化性能。基于“封闭世界”假设,仅试图对学习过程中观察到的未标记数据进行预测。
生成式方法
生成式方法(generative methods)是直接基于生成式模型的方法。此类方法假设所有数据(无论是否有标记)都是由同一个潜在的模型“生成”的。这个假设使得我们能通过潜在模型的参数将未标记数据与学习目标联系起来,而未标记数据的标记则可看作模型的缺失参数,通常可基于EM算法进行极大似然估计求解。此类方法的区别主要在于生成式模型的假设,不同的模型假设将产生不同的方法。
此类方法简单,易于实现,在有标记数据极少的情形下往往比其他方法性能更好,然而,此类方法有一个关键:模型假设必须准确,即假设的生成式模型必须与真实分布吻合;否则利用未标记数据反倒会降低泛化性能,但是在现实任务中很难事先做出准确的模型假设,除非拥有充分可靠的领域知识。
半监督SVM
半监督支持向量机(Semi-Supervised Support Vector Machine,简称S3VM)是支持向量机在半监督学习上的推广。S3VM试图找到能将两类有标记样本分开,且穿过数据低密度区域的划分超平面。
半监督支持向量机的中最著名的的TSVM(Transductive Support Vector Machine),是针对二分类问题的学习方法。TSVM试图考虑对未标记样本进行各种可能的标记指派(label assignment),即尝试将每个未标记样本分别作为正例或反例,然后在所有这些结果中,寻求一个在所有样本(包括有标记样本和进行了标记指派的未标记样本)上间隔最大化的划分超平面。一旦划分超平面得以确定,未标记样本的最终标记指派就是其预测结果。
在对未标记样本进行标记指派及调整的过程中,有可能出现类别不平滑问题,即某类的样本远多于另一类,这将对SVM的训练造成困扰。为减轻类别不平衡性所造成的不利影响,可对算法稍加改进:将优化目标汇总的
C
u
C_u
Cu项拆分为
C
u
+
C_u^+
Cu+与
C
u
−
C_u^-
Cu−两项,分别对应于基于为标记而正当作正、反例使用的未标记样本。
图半监督学习
给定一个数据集,可将其映射为一个图,数据集中每个样本对应于图中一个结点,若两个样本之间的相似度很高(或相关性很强),则对应的结点之间存在一条边,边的“强度”(strength)正比于样本之间的相似度(或相关性)。我们可将有标记样本所对应的结点想象为染过色,而未标记样本所对应的结点尚未染色。于是,半监督学习就对应于“颜色”在图上扩散或传播的过程。由于一个图对应了一个矩阵,这就使得我们能基于矩阵运算来进行半监督学习算法的推导与分析。
上面描述的是一个针对二分类问题的标记传播方法,多分类问题的标记传播方法为:
图半监督学习方法在概念上相当清晰,且易于通过所渉矩阵算法的分析来探索算法性质。但是此类算法的缺陷额相当明显;
- 在存储开销上,若样本数为 O ( m ) O(m) O(m),则算法中所涉及的矩阵规模为 O ( m 2 ) O(m^2) O(m2),这使得此类算法很难直接处理大规模数据;
- 由于构图过程仅考虑训练样本集,难以判知新鲜样本在图中的位置,因此,在接收到新样本是,或是将其加入原数据集对图进行重构并重新进行标记传播,或是需引入额外的预测机制,例如将 D l D_l Dl和经标记传播后得到标记的 D u D_u Du合并作为训练集,另外训练一个学习器例如支持向量机来对新样本进行预测。
基于分歧的方法
与生成式方法、半监督SVM、图半监督学习等急用单学习器利用未标记数据不同,基于分歧的方法(disagreement-based methods)使用多学习器,而学习器之间的“分歧”对未标记数据的利用至关重要。
“协同训练”(co-training)是此类方法的重要代表,它最初是针对“多视图”(multi-view)数据设计的,因此也被看作“多视图学习”(multi-view learning)的代表。
协同训练利用了多视图的“相容互补性”。假设数据拥有两个充分(sufficient)且条件独立视图,“充分”是指每个视图都包含足以产生最优学习器的信息,“条件独立”则是指在给定类别标记条件下两个视图独立。在此情形下,可用一个简单的办法来利用未标记数据:
- 在每个视图上基于有标记样本分别训练出一个分类器;
- 让每个分类器分别去挑选自己“最优把握的”未标记样本赋予伪标记,并将伪标记样本提供给另一个分类器作为新增的有标记样本用于训练更新;
- 这个“互相学习、共同进步”的过程不断迭代进行,直到两个分类器都不再发生变化,或达到预先设定的迭代轮数为止。
半监督聚类
聚类任务中获得的监督线性大致有两种类型:
- 必连(must-link)与勿连(cannot-link)约束-约束
k
k
k均值算法(constrained k-means)
- 必连(must-link):样本必属于同一个簇;
- 勿连(cannot-link):样本必不属于同一个簇
- 少量的有标记样本-约束种子 k k k均值算法(constrained seed k-means)
概率图模型
概率图模型(probabilistic model)提供了一种描述框架,将学习任务归结于计算变量的概率分布。在概率模型中,利用已知变量推测未知变量的分布称为“推断”(inference),其核心是如何基于可观测变量推测出未知变量的条件分布。
概率图模型(probabilistic graphical model)是一类用图来表达变量相关关系的概率模型。它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的边表示变量间的概率相关关系,即“变量关系图”。根据边的性质不同,概率图模型可大致分为两类:
- 有向图模型或贝叶斯网(Bayesian Network):使用有向无环图表示变量之间的依赖关系。
- 无向图模型或马尔可夫网(Markov Network):使用无向图表示变量间的相关关系。
隐马尔可夫模型
隐马尔可夫模型(Hidden Markov Model,简称HMM)是结构最简单的动态贝叶斯网(dynamic bayesian network),是一种有向图模型,主要用于时序数据建模,在语音识别、自然语言处理等领域哟广泛应用。
马尔可夫随机场
马尔可夫随机场(Markov Random Field,简称MRF)是典型的马尔可夫网,值一种著名的无向图模型。图中每个结点表示一个或一组变量,结点之间的边表示两个变量之间的依赖关系。马尔可夫随机场有一组势函数(potential functions),亦称“因子”(factor),这是定义在变量子集上的非负实函数,主要用于定义概率分布函数。
马尔可夫随机场总的势函数的作用是定量刻画变量集中变量之间的相关关系,它应该是非负函数,且在所偏好的变量取值上有较大函数值。
条件随机场
条件随机场(Conditional Random Field,简称CRF)是一种判别无向图模型。生成式模型是直接对联合分布进行建模,而判别式模型则是对条件分布进行建模。隐马尔可夫模型和马尔可夫随机场都是生成模型,而条件随机场是判别式模型。
条件随机场试图对多个变量在给定观测值后的条件概率进行建模。具体来说,若令
x
=
{
x
1
,
x
2
,
.
.
.
,
x
n
}
x = \{x_1, x_2, ...,x_n \}
x={x1,x2,...,xn}为观测序列,
y
=
{
y
1
,
y
2
,
.
.
.
,
y
n
}
y = \{y_1, y_2,..., y_n\}
y={y1,y2,...,yn}为与之相应的标记序列,则条件随机场的目标是构建条件概率模型
P
(
y
∣
x
)
P(y|x)
P(y∣x)。标记变量
y
y
y可以是结构型变量,即其分量之间具有某种相关性。例如在自然语言处理的词性标注任务中,观测数据为语句(即单词序列),标记为相应的词性序列,具有线性序列结构;在语法分析任务中,输出标记则是语法树,具有树形结构。
学习推断
基于概率图模型定义的联合概率分布,对目标变量的边际分布(marginal distribution)或以某些可观测变量为条件的条件分布进行推断。条件分布如在隐马尔可夫模型中要估算观察序列在给定参数下的条件概率分布。边际分布则是指对无关变量求和或积分后得到结果,在马尔可夫网中,变量的联合分布被表示成极大团的势函数乘积,于是,给定参数求解某个变量的分布就变成对联合分布中其他无关变量进行积分的过程,这称为“边际化”。
概率图模型的推断方法大致可分为两类。第一类是精确推断方法,希望能计算出目标变量的边际分布或条件分布的精确值;一般情形下,此类算法的计算复杂度随着极大团规模的增长呈指数增长,适用范围有限。第二类近似推断方法,希望在较低的时间复杂度下获得原问题的近似解;此类方法在实际任务中更长见。
变量精确腿短的实质是一类动态规划算法,它利用图模型所描述的条件独立性来削减计算目标概率值所需的计算量。
- 变量消去:最直观的精确推断算法,也是构建其它精确推断算法的基础。通过利用乘法对加法的分配律,变量消去法把多个变量的积的求和问题,转化为对部分变量交替进行求积与求和的问题。这种转化使得每次的求和与求积运算限制在局部,仅与部分变量有关,从而简化了计算。若需计算多个边际分布,重复使用变量消去法将会造成大量热冗余计算。
- 信念传播:将变量消去法中的求和操作看作一个消息传递过程,较好的解决了求解多个边际分布时的重复计算问题。消息传递相关的计算被限制在图的局部进行。
近似推断
精确推断方法通常需要很大的计算开销,因此在现实应用中近似推断方法更为常用。近似推断方法大致可分为两大类:第一类是采样,通过使用随机方法完成近似;第二类是使用确定性近似完成近似推断,典型代表为变分推断(variational inference)。
- MCMC采样:在很多任务中,我们关心某些概率分布并非因为对这些概率分布本身感兴趣,而是要基于它们计算某些期望,并且还可能进一步基于这些期望做出决策。
- 变分推断:通过使用已知简单分布来逼近需推断的复杂分布,并通过限制近似分布的类型,从而得到一种局部最优、但具有确定解的近似后验分布。在实践中使用变分法时,最重要的是考虑如何对隐变量进行拆解,以及假设个变量子集服从何种分布,在此基础上套用公式,再结合EM算法即可进行概率图模型的推断和参数估计。显然,若隐变量的拆解或变量子集的分布假设不当,将会导致变分法效率低、效果差。
话题模型
话题模型是一族生成式有向图模型,主要用于处理离散型的数据(如文本集合),在信息检索、自然语言处理等领域有广泛应用。隐狄利克雷分配模型(Latent Dirichlet Allocation,简称LDA)是话题模型的典型代表。
规则学习
基本概念
规则学习是从训练数据中学习出一组能用于对未见示例进行判别的规则。
从形式语言表达能力而言,规则可分为两类:
- “命题规则”(propositional rule):原子命题和逻辑连接词“与”、“或”、“非”、“蕴含”构成的简单陈述句。
- “一阶规则”(first-order rule):用谓词和用于限定变量的取值范围的量词构成的简单陈述句。一阶规则能表达复杂的关系,因此也被称为“关系型规则”(relational rule)。
显然,从形式语义系统的角度来看,命题规则是一阶规则的特例,因此一阶规则的学习比命题规则要复杂的多。
序贯覆盖
规则学习的目标是产生一个能覆盖尽可能多的样例的规则集。最直接的做法是“序贯覆盖”(sequential covering),即逐条归纳:在训练集上每学到一条规则,就将该规则覆盖的训练样例去除,然后以剩下的训练样例组成训练集重复上述过程。由于每次只处理一部分数据,因此被称为“分治”(separate-and-conquer)策略。
现实任务中一般有两种方法来产生规则:
- 自顶向下,即从比较一般的规则开始,逐渐添加新文字以缩小规则覆盖范围,直到满足预定条件为止;亦称为生成-测试法,是规则逐渐特化的过程。覆盖范围从大往小搜索规则,更容易产生泛化性能较好的规则,对噪声的鲁棒性要强。在命题规则学习中通常使用该策略。
- 自底向上,即从比较特殊的规则开始,逐渐删除文字以扩大规则覆盖范围,直到满足条件为止;亦称为数据驱动法,是规则逐渐泛化的过程。覆盖范围从小往大搜索,更适合于训练样本较少的情形,对噪声的鲁棒性要弱。在一阶规则学习这类假设空间非常复杂的任务上使用较多。
剪枝优化
规则生成本质上是一个贪心搜索过程,需有一定的机制来缓解过拟合的风险,最常见的做法是剪枝(pruning)。与决策树相似,剪枝可发生在规则生长过程中,即“预剪枝”,也可发生在规则产生后,即“后剪枝”。通常是基于某种性能度量指标来评估增/删逻辑文字前后的规则性能,或增/删规则前后的规则集性能,从而判断是否要进行剪枝。
一阶规则学习
受限于命题逻辑表达能力,命题规则学习难以处理对象之间的“关系”(relation),而关系信息在很多任务中非常重要。需用一阶逻辑表示,并且要使用一阶规则学习。
一阶规则学习能容易的引入领域知识,这是它相对于命题规则学习的另一大优势。在命题规则学习乃至一般的统计学习中,若欲引入领域知识,通常有两种做法:在现有属性的基础上基于领域知识构造出新属性,或基于领域知识设计某种函数机制(例如正则化)来对假设空间加以约束。然而,现实任务中并非所有的领域知识都能容易的通过属性重构和函数约束来表达。
FOIL(First-Order Inductive Learner)是著名的一阶规则学习算法,它遵循序贯覆盖框架且采用自顶向下的规则归纳策略。FOIL增益与决策树使用的信息增益不同,它仅考虑正例的信息量,并且用新规则覆盖的正例数作为权重。这是由于关系数据中正例数往往远少于反例数,因此通常对正例应赋予更多关注。继续增加规则体长度,最终生成合适的单条规则加入规则集。此后,FOIL使用后剪枝对规则集进行优化。若允许将目标谓词作为候选文字加入规则体,则FOIL能学出递归规则;若允许将否定形式的文字作为候选,则往往能得到更简洁的规则集。
FOIL是命题规则学习与归纳逻辑程序设计之间的过渡,其自定向下的规则生成过程不能支持函数和逻辑表达式嵌套,因此规则表达能力仍有不足;但它是把命题规则学习过程通过变量替换等操作直接转化为一阶规则学习,因此比一般归纳逻辑程序设计技术更高效。
归纳逻辑程序设计
归纳逻辑程序设计(Inductive Logic Programming,简称ILP)在一阶规则学习中引入了函数和逻辑表达式嵌套。一方面,这使得机器学习系统具备了更为强大的表达能力;另一方面,ILP可看作用机器学习技术来解决基于背景知识的逻辑程序(logic program)归纳,其学得的“规则”可被PROLOG等逻辑程序设计语言直接使用。
然而,函数和逻辑表达式嵌套的引入也带来了计算上的巨大挑战。这就使得规则学习过程中可能的候选原子公式有无穷多个。若仍采用命题逻辑规则或FOIL学习那样自顶向下的规则生成过程,则在增加规则长度时将因无法列举所有候选文字而失败。实际困难还不止这些,例如计算FOIL增益需要对规则覆盖的全部正反例计数,而在引入函数和逻辑表达式嵌套之后这也变得不可行。
- 最小一般泛化
归纳逻辑程序设计采用自底向上的规则生成策略,直接将一个或多个正例所对应的具体事实(grounded fact)作为初始规则,再对规则逐步进行泛化以增加其对样例的覆盖率。泛化操作可以是将规则中的常量替换为逻辑变量,也可以是删除规则体中的某个文字。
最小一般泛化(least general generalization)把特殊规则转变为更一般的规则。 - 逆归结
在逻辑学中,演绎与归纳是人类认识世界的两种基本方式。大致来说,演绎是从一般规律出发探讨具体事物,而归纳则是从个别事物出发概括出一般性规律。一般数学定理证明是演绎实践的代表,而机器学习显然属于归纳的范畴。一阶谓词演算中的演绎推理能用一条十分简洁的规则描述,这就是数理逻辑中著名的归纳原理。针对归纳推理提出的“逆归结”对归纳逻辑程序设计的发展起到了重要的作用。
基于归纳原理,可以将貌似复杂的逻辑规则与背景知识联系起来化繁为简;而基于逆归结,可以基于背景知识来发明新的概念和关系。
强化学习
任务与奖赏
K-摇臂赌博机
- 探索与利用
与一般监督学习不同,强化学习任务的最终奖赏是在多步动作之后才能观察到,最大化单步奖赏,即仅考虑一步操作,即便这样的简化情形下,强化学习仍与监督学习有显著不同,因为机器需要通过尝试来发现各个动作产生的结果,而没有训练数据告诉机器应当做哪个动作。
欲最大化单步奖赏需考虑两个方面:一是需知道每个动作带来的奖赏,二是要执行奖赏最大的动作。若每个动作对应的奖赏是一个确定值,那么尝试一遍所有的动作便能找出奖赏最大的动作。然而,更一般的情形是,一个动作的奖赏值是来自于一个概率分布,仅通过一次尝试并不能确切的获得平均奖赏值。
单步强化学习任务对应理想模型:K-摇臂赌博机。K-摇臂赌博机有K个摇臂,赌徒在投入一个硬币后可选择按下其中一个摇臂,每个摇臂以一定的概率吐出硬币,但这个概率赌徒并不知道,赌徒的目标是通过一定的策略最大化自己的奖赏,即获得最多的硬币。若仅为获知每个摇臂的期望奖赏,则可采用“仅探索”(exploration-only)法:将所有的尝试机会平均分配给每个摇臂(即轮流按下每个摇臂),最后以每个摇臂各自的平均吐币概率作为其奖赏期望的近似估计。若仅为执行奖赏最大的动作,则可采用“仅利用”(exploitation-only)法:按下目前最优的(即按目标前为止平均奖赏最大的)摇臂,若有多个摇臂同为最优,则从中随机选取一个。“仅探索”法能很好的估计每个摇臂的奖赏,却会失去很多选择最优摇臂的机会;“仅利用”法则相反,它没有很好地估计摇臂期望奖赏,很可能经常选不到最优摇臂。因此,这两种方法都难以使最终的累积奖赏最大化。
探索(即估计摇臂的优劣)和利用(即选择当前最优摇臂)这两者是矛盾的,因为尝试次数(即总投币数)有限,加强了一方则会自然削弱另一方,这就是强化学习所面临的“探索-利用窘境”(exploration-exploitation dilemma)。显然,欲累积奖赏最大,则必须在探索与利用之间达成较好的折中。 -
ϵ
\epsilon
ϵ-贪心
ϵ \epsilon ϵ-贪心法基于一个概率来对探索和利用进行折中:每次尝试时,以 ϵ \epsilon ϵ的概率进行探索,即以均值概率随机选取一个摇臂;以 1 − ϵ 1-\epsilon 1−ϵ的概率进行利用,即选择当前平均奖赏最高的摇臂(若有多个,则随机选取一个)。 - softmax
softmax算法是基于当前已知的摇臂平均奖赏来对探索和利用进行折中。若各摇臂的平均奖赏相当,则选取各摇臂的概率也相当;若某些摇臂的平均奖赏明显高于其他摇臂,则他们被选取的概率也明显更高。
有模型学习
多步强化学习任务,假定任务对应的马尔可夫决策过程四元组均是已知,模型已知,即机器已对环境进行了建模,能在机器内部模拟出与环境相同或近似的状况。
- 策略评估
在模型已知时,对任意策略能估计出该策略带来的期望累积奖赏。 - 策略改进
对某个策略的累积奖赏进行评估后,若发现它并非最优策略,则当然希望对其进行改进。理想的策略应能最大化累积奖赏。 - 策略迭代与值迭代
从一个初始策略(通常是随机策略)出发,先进行策略评估,然后改进策略,评估改进的策略,再进一步改进策略,…不断迭代进行策略评估和改进,直到策略收敛、不再改变为止。这样的做法称为“策略迭代”(policy iteration)。
免模型学习
在现实的强化学习任务中,环境的转移概率、奖赏函数往往很难得知,甚至很难知道环境中一共有多少状态。若学习算法不依赖于环境建模,则称为“免模型学习”(model-free learning),这比有模型学习困难的多。
- 蒙特卡罗强化学习
在免模型情形下,策略迭代算法首先遇到的问题是策略无法评估,这是由于模型未知而导致无法做全概率展开。此时,只能通过在环境中执行选择的动作,来观察转移的状态和得到的奖赏。受到K摇臂赌博机的启发,一种直接的策略评估替代方法是多次“采样”,然后求取平均累积奖赏来作为期望累积奖赏的近似,这称为蒙特卡罗强化学习。由于采样必须为有限次数,因此该方法更适合于使用T步累积奖赏的强化学习任务。 - 时序差分学习
蒙特卡罗强化学习算法通过考虑采样轨迹,克服了模型未知给策略估计造成的困难。此类算法需在完成一个采样轨迹后再更新策略的值估计,而前面介绍的基于动态规划的策略迭代和值迭代算法在每执行一步策略后就进行值函数更新。两者相比,蒙特卡罗强化学习算法的效率低得多,这里的主要问题是蒙特卡罗强化学习算法没有充分利用强化学习任务的MDP结构。时序差分(Temporal Difference,简称TD)学习则结合了动态规划与蒙特卡罗方法的思想,能做到更高效的免模型学习。
值函数近似
值函数是关于有限状态的表格值函数(tabular value function),即值函数能表示为一个数组,输入 i i i对应的函数值就是数组元素 i i i的值,且更改一个状态上的值不会影响其他状态上的值。
模仿学习
在强化学习的经典任务设置中,机器所能获得的反馈信息仅哟多步决策后的累积奖赏,但在现实任务中,往往能得到人类专家的决策过程范例,从这样的范例中学习,称为“模仿学习”(imitation learning)。
- 直接模仿学习
强化学习任务中多步决策的搜索空间巨大,基于累积奖赏来学习很多步之前的合适决策非常困难,而直接模仿人类专家的“状态-动态对”可显著缓解这一困难,称为“直接模仿学习”。 - 逆强化学习
在很多任务中,设计奖赏函数往往相当困难,从人类专家提供的范例数据中反推出奖赏函数有助于解决该问题,这就是逆强化学习(inverse reinforcement learning)。
逆强化学习的基本思想是:欲使机器做出与范例一致的行为,等价于在某个奖赏函数的环境中求解最优策略,该最优策略所产生的轨迹与范例数据一致。换言之,我们要寻找某种奖赏函数使得范例数据是最优的,然后即可使用这个奖赏函数来训练强化学习策略。
数学基础
矩阵
- 基本演算
- 导数
- 奇异值分解
优化
-
拉格朗日乘子法
-
二次规划
-
半正定规划
-
梯度下降法
-
坐标下降法
概率分布
-
常见概率分布
-
均匀分布
-
伯努利分布
-
二项分布
-
多项分布
-
贝塔分布
-
狄利克雷分布
-
高斯分布
-
-
共轭分布
先验分布反映了某种先验信息,后验分布既反映了先验分布提供的信息、又反映了样本提供的信息。当先验分布与抽样分布共轭时,后验分布与先验分布属于同种类型,这意味着先验信息与样本提供的信息具有某种同一性。于是,若使用后验分布作为进一步抽样的先验分布,则新的后验分布仍 将属于同种类型。因此,共轭分布在不少情形下会使问题得以简化。 -
KL散度