有监督、无监督与半监督学习【总结】

概念

有监督学习训练数据既有特征(feature)又有标签(label),通过训练,让机器可以自己找到特征和标签之间的联系,在面对只有特征没有标签的数据时,可以判断出标签。

无监督学习(unsupervised learning):训练样本的标记信息未知,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础,此类学习任务中研究最多、应用最广的是"聚类" (clustering),其他无监督算法还有:密度估计(densityestimation)、异常检测(anomaly detection) 等。

半监督学习训练集同时包含有标记样本数据和未标记样本数据不需要人工干预,让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能,就是半监督学习。

主动学习:有的时候,有类标的数据比较稀少而没有类标的数据很多,但是对数据进行人工标注又非常昂贵,这时候,学习算法可以主动地提出一些标注请求,将一些经过筛选的数据提交给专家进行标注,这个筛选过程也就是主动学习主要研究的地方了。

注:半监督学习与主动学习属于利用未标记数据的学习技术,只是其基本思想不同。

内容

1、监督学习

监督学习从训练数据集合中训练模型,再对测试据进行预测,训练数据由输入和输出对组成,通常表示为:

测试数据也由相应的输入输出对组成。

输入变量与输出变量均为连续的变量的预测问题称为回归问题,输出变量为有限个离散变量的预测问题称为分类问题,输入变量与输出变量均为变量序列的预测问题称为标注问题。

监督算法常见的有:线性回归,神经网络,决策树,支持向量机,KNN等。

2、无监督学习

聚类

聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个"簇" (cluster).。通过这样的划分,每个簇可能对应于一些潜在的概念(类别) ,这些概念对聚类算法而言事先是未知的,聚类过程仅能自动形成簇结构,簇所对应的概念语义需由使用者来把握和命名。

聚类既能作为一个单独过程,用于找寻数据内在的分布结构,也可作为分类等其他学习任务的前驱过程。

先讨论聚类算法涉及的两个基本问题一一性能度量和距离计算。

【性能度量】

对聚类结果,我们需通过某种性能度量来评估其好坏;直观上看,我们希望"物以类聚",即聚类结果的"簇内相似度" (intra-cluster similarity) 高且"簇间相似度" (inter-cluster similarity) 低,聚类性能度量大致有两类. 一类是将聚类结果与某个"参考模型" 进行比较,称为"外部指标"  另一类是直接考察聚类结果而不利用任何参考模型,称为"内部指标" 。
对数据集D = {X1 , X2 ,..., Xm },假定通过聚类给出的簇划分为C = {C1,C2 , … ,Ck } , 参考模型给出的簇划分为C* = {C*1,C*2,…,C*s},相应地,令λ 与λ*分别表示与C 和C*对应的簇标记向量,通常k≠s,我们将样本两两配对考虑,定义:

 

注:由于每个样本对(Xi,Xj) (i < j) 仅能出现在一个集合中,因此有α +b+ c+ d = m(m-1)/2 成立。

根据上述四式定义如下性能度量外部指标

 

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

【距离计算】

给定样本Xi与Xj,最常用的是"闵可夫斯基距离" (Minkowski distance):

即Xi-Xj的Lp范数。

p=2 时,即欧氏距离(Euclidean distance):

p=1时,即曼哈顿距离(Manhattan distance):

注:闵可夫斯基距离可用于连续变量和有序变量。

【原型聚类】

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


1)k 均值算法

给定样本集D = {X1,X2,... ,Xm},k 均值 (k-means )算法针对聚类所得簇划分为K类:C = {C1, C2,..., Ck} ,最小化平方误差:

其中,μi为Ci的均值向量。上式在一定程度上刻画了簇内样本围绕簇均值向量的紧密程度, E 值越小则簇内样本相似度越高。求解上式过程采用迭代贪心策略求解,算法流程如下:

注:为避免运行时间过长,通常设置一个最大运行轮数或最小调整幅度。


2)层次聚类
层次聚类(hierarchical clustering)试图在不同层次对数据集进行划分,从而形成树形的聚类结构. 数据集的划分可采用"自底向上"的聚合策略,也可采用"自顶向下" 的分拆策略。
AGNES 是一种采用自底向上聚合策略的层次聚类算法,它先将数据集中的每个样本看作一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个粟类簇进行合并,该过程不断重复,直至达到预设的聚类簇个数。
可通过如下式子计算聚类距离:

显然,最小距离由两个簇的最近样本决定,最大距离由两个簇的最远样本决定,而平均距离则由两个簇的所有样本共同决定。当聚类距离分别由min,max,avg决定时,AGNES 算法被相应地称为"单链接" (single-linkage) 、"全链接" (complete-linkage) 或"均链接" (average-linkage) 算法。

其他聚类方法还有:密度聚类(假设聚类结构能通过样本分布的紧密程度确定),高斯混合聚类(采用概率模型来表达聚类原型.)。

 3、半监督学习

【假设】

要利用未标记样本,必然要做一些将未标记样本所揭示的数据分布信息与类别标记相联系的假设。
假设一:" 聚类假设" (duster assumption) ,即假设数据存在簇结构,同一个簇的样本属于同一个类别。

假设二:"流形假设" (manifold assumption) , 即假设数据分布在一个流形结构上,邻近的样本拥有相似的输出值"邻近" 程度常用"相似"程度来刻画,因此,流形假设可看作聚类假设的推广, 但流形假设对输出值没有限制,因此比聚类假设的适用范围更广,可用于更多类型的学习任务。
事实上,无论聚类假设还是流形假设,其本质都是"相似的样本拥有相似的输出"这个基本假设。
【类型】

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

换言之,假设有如下的数据集,其中训练集为XL+XU,测试集为Xtest,标记样本数目为L,未标记样本数目为U,L<<U:

  • 标记样本(XL,YL)={(x1:L,y1:L)}  
  • 未标记样本XU={xL+1:N},训练时可用
  • 测试样本Xtest={xN+1:},只有在测试时才可以看到

纯半监督学习可以对测试样本Xtest进行预测,直推学习仅仅可以对未标记样本XU进行标记,模型不具备对测试样本Xtest进行泛化的能力。

 参考:

《机器学习》周志华

《统计学习方法》李航

 

 

 

 

 

 

 

 

 

posted @ 2018-03-15 14:58  文刀煮月  阅读(22303)  评论(0编辑  收藏  举报