登录
首页精彩阅读机器学习几个重要概念
机器学习几个重要概念
2018-03-20
收藏

机器学习几个重要概念

统计学习的算法可以分为以下几个类别:监督学习、非监督学习、半监督学习以及强化学习。

监督学习的输入数据都有对应的类标签或是一个输出值,其任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出做出一个好的预测。

非监督学习就是没有对应的类标签或是输出值。学习中并没有任何标准来告诉你,某个概念是否正确,需要学习器自身形成和评价概念。就是自动地从数据中挖掘出结构信息或是抽取出一些规则。近年来,非监督学习被认为是解决一些重要问题的突破口所在。因为科学的产生就是人类中无监督学习的最佳案例。

半监督学习就是介于监督学习和非监督学习之间。这在最近的研究领域也是被大家所热烈探讨的,因为对于现实数据来说,有标签的数据总是少量的,往往都需要人工来进行标注。而无标签数据是能够大量获得的。

增强学习强调如何基于环境而行动,以取得最大化的预期利益。其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。强化学习和标准的监督式学习之间的区别在于,它并不需要出现正确的输入/输出对,也不需要精确校正次优化的行为。(以上内容摘自维基百科)这在机器人、无人机领域中应用的还是非常广泛的。

在线学习与离线学习

对于机器学习算法的分类,站在不同的角度就能有不同的分类方法。在具体的应用中还有一种常用的分类方法是:在线学习与离线学习。

在线学习,是在获取到新的数据后就能够输入到模型中进行学习。这需要学习算法能够在处于任何状态时都能进行参数的更新。而且需要算法对噪声数据有很好的鲁棒性。

离线学习就正好与在线学习相反,当数据有更新时,需要将其与原来的数据一起对模型的参数进行重新地训练。这时,整个训练的过程能够被很好的控制,因为所有的数据都是已知的,能够对数据进行细致的预处理过程。

生成模型与判别模型

这种分类方式是针对于监督学习来进行分类的。这个在我腾讯面试的时候还被问到过这个问题。

生成模型

生成方法由数据学习联合概率分布P(X,Y)

,然后求出条件概率分布P(Y|X)

作为预测的模型,即生成模型:


模型表示了给定输入X产生输出Y的生成关系。典型的生成模型有:朴素贝叶斯方法和隐马尔可夫模型。

生成模型能够还原出联合概率分布P(X,Y)

;生成模型的收敛速度快,当样本容量增加的时候,学到的模型可以更快地收敛于真实模型;当存在隐变量时,仍可以使用生成学习方法,此时判别方法就不能用。

判别模型

判别方法由数据直接学习决策函数f(x)

或者条件概率分布P(Y|X)

作为预测的模型,即判别模型。典型的判别模型包括:k近邻法、感知机决策树、logistic回归模型、最大熵模型、支持向量机、提升方法和条件随机场。

判别模型直接面对预测,往往学习的准确率越高。可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。

算法的归纳偏好

机器学习算法在学习过程中对某种类型假设的偏好称为『归纳偏好』。这个『假设』包含了一个算法方方面面的内容。

任何一个有效的机器学习算法必有其归纳的偏好,否则它将被假设空间中看似在训练集上『等效』的假设所迷惑,而无法产生确定的学习结果。例如在分类问题中,如果随机抽选训练集上等效的假设(可以认为所有的正反例并没有区别),那么它的分类结果其实是不确定的,这要根据它所选取的样本来决定,这样的学习显然是没有意义的。

归纳偏好对应了学习算法本身所做出的关于『什么样的模型更好』的假设。在具体的问题中,这个假设是否成立,即算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法能否取得好的性能。

『奥卡姆剃刀』就是一个常用的原则,『若有多个假设与观察一致,则选择最简单的那个』。对于一些以简洁为美的人来说是再正确不过了。在一些工程技术中有一些问题也确实是这样,一个较为简单的方法所取得的效果虽然不是最好,但是它的代价与其效果之比已然是最优。

对于一个线性回归问题,如下图所示:

根据『奥卡姆剃刀』原则,你肯定会选择中间那条经过回归处理之后的直线作为之后预测的标准。在一些场景下,这样选择自然是正确的。如果再给你更多的数据点,你发现这些点正好是在穿过所有红色点的曲线之上,你还会选择那条回归的直线吗?这就牵扯出一个非常有意思的定理,『没有免费的午餐』。

这个定理所描述的是,对于任意两个学习算法A和B,它们在任意分布数据上的误差其实是相等的。仔细想想的话确实是那么回事。这个定理有一个重要的前提:所有问题出现的机会相同或是所有问题都是同等重要的。

这时候你肯定会有疑问,既然所有的学习算法的期望性能都和随机猜测差不多,那学习的过程岂不是并没有什么用。注意到一点,上面所说的相等是在所有数据的分布之下,但是我们所处理的问题的数据往往是某一特定分布的。

欠拟合过拟合

当目标函数给定时,基于目标函数的模型训练误差和模型测试误差就自然成为学习方法的评估标准。注意,学习方法具体采用的目标函数未必是评估时所使用的标准。关于评估标准这一问题会在之后的博客中提到。

假设学习到的模型是Y=f^(x)

,训练误差是模型关于训练数据数据集的平均损失:

其中N是训练样本容量。

测试误差是模型关于测试数据集的平均损失:

其中N’是测试样本容量。

通常将学习方法对未知数据的预测能力称为泛化能力。显然,我们希望得到泛化误差小的学习器。然而,事先我们并不知道新样本是什么样的,实际能做的是努力使在训练集上的误差最小化。

如果一味追求提高对训练数据的预测能力,所选模型的复杂度往往会比真模型要高。这种现象称为过拟合过拟合是指学习时选择的模型包含参数过多,以致于出现这一模型对已知数据预测的很好,但对未知数据预测得很差的现象。与过拟合相对的是欠拟合,这是指对训练样本的一般性质尚未学好。

欠拟合比较容易克服,一般只需要增加训练的次数。而过拟合机器学习面临的关键障碍,各类学习算法都必然带有一些针对过拟合的措施;然而必须认识到,过拟合是无法彻底避免的,我们所能做的只是缓解。这是因为,机器学习面临的问题一般是NP难甚至是更难的,而有效的学习算法必然是在多项式时间内完成的。若可以彻底避免过拟合,这就意味着我们构造性地证明了『NP = P』,那么你就可以获得图灵奖了。只要相信『P != NP』,过拟合就无法避免。

关于过拟合欠拟合图形化的解释,下面那张图中有具体说明。

方差与偏差

偏差方差-分解试图对学习算法的期望泛化误差进行分解。推导的过程这里就不写了,直接给出公式。

这个式子表示的是泛化误差可以分解为偏差、方差与噪声之和。偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。为什么一个算法会有偏差呢,下面这句话给出了答案:

Biases are introduced by the generalizations made in the model including the configuration of the model and the selection of the algorithm to generate the model.

我个人的理解是,因为对于算法的选择乃至于调整参数方法的选择导致了算法是有偏差的。因为算法的选择中就蕴含着偏好。

方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声则表达了在当前任务上任何学习算法所能到达的期望泛化误差的下界,即刻画了问题本身的难度。

泛化能力是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。

偏差与方差是不能同时达到最优的,这称为偏差方差窘境。

这个图所表达的含义相信不用过多地解释了吧。


数据分析咨询请扫描二维码

客服在线
立即咨询