本章首先讲解了什么是半监督学习,以及分类与作用;其次讲解了基于高斯分布与似然估计的半监督学习基础理论,其主要实现有四种Semi-supervised Learning for Generative Model)生成模型中的半监督学习,对比了Supervised Generative Model;Low-density Separation Assumption,基本思想是非黑即白,以及两种方法self training与 Entropy-based Regularization;Smoothness Assumption,基本思想是近朱者赤,近墨者黑,以及如何实现Smoothness Assumption的方法cluster and then label与Graph-based Approach,引入了Graph structure;Better Representation,基本思想是去芜存菁,化繁为简,具体内容将在unsupervised Learning中展开。
分类(classification)这种机器学习算法就是一种监督学习。对于分类,输入的训练数据有特征(feature),有标签(label)。也就是我们之前的输入x和输出y。每一个x样本都对应着一个y(输出)标签。所谓的学习,其本质就是找到特征和标签间的关系(mapping),也就是找规律。这样当有特征而无标签的未知数据输入时,我们就可以通过已有的关系得到未知数据标签,即根据新数据进行预测。在上述的分类过程中,如果所有训练数据都有标签,则为有监督学习(supervised learning)。如果训练数据既有标签,又有无标签的,那就是半监督学习(Semi-supervised learning)。如果数据没有标签,显然就是无监督学习(unsupervised learning),即聚类(clustering)。
Supervised learning: 在训练数据中,所有的data都是有label的,即输入数据Xi都有与之对应的目标输出Yi(标签)。
Semi-supervised learning: 在训练数据中,既有label data,又有unlabeled data,且通常情况下U>>R 。
对于半监督学习分为两大类:
1.我们不缺数据,但是缺有标签的数据。
2.我们的现实生活中大多数都是半监督学习方式。
上图中有一部分labeled的data,还有一部分unlabeled的data。
unlabeled data的分布可能会告诉我们一些信息,比如切割的边界线,但是半监督学习使用unlabelled data 的方式往往伴随着一些假设,半监督学习是否有用,往往取决于假设是否符合实际,是否精确。所以半监督学习未必一直有用,他取决于所做的假设是否合适。
根据高斯分布,估测, Σ,然后就可以估测出一个新的data属于哪类(生成模型可以去回顾一下)
如果在原先的数据下多了unlabeled data(上图中绿色的点),它就会影响最终的决定,你会发现原先的, Σ显然是不合理的,新的, Σ需要使得样本点的分布更接近上图虚线圆所标出的范围。此时,unlabeled data对P(C1)、P(C2)、u1、u1、Σ 都产生了一定程度的影响,划分两个class的decision boundary也会随之发生变化。
半监督学习的生成模型,一般分为三步:
Initialization :初始化模型参数,假设是二元分类问题的话,先初始化一组参数,初始化 P ( C 1 ) 和 P ( C 2 ) , μ 1 , μ 2 P ( C 1 ) 和P ( C 2 ) ,\mu^1 , \mu^2 P(C1)和P(C2),μ1,μ2 ,∑,初始化的值可以random产生也可以又labelled data得来。
把 P ( C 1 ) 和 P ( C 2 ) , μ 1 , μ 2 P ( C 1 ) 和P ( C 2 ) ,\mu^1 , \mu^2 P(C1)和P(C2),μ1,μ2 ,∑,这些参数统称为:θ,根据已有的θ ,可以估算每笔unlabelled data属于class1 的几率,几率取决于model的θ 。
compute the posterior probability of unlabeled data:计算无标签数据的分类概率,原来没有考虑unlabelled data的时候,N可能是所有的example,N1是标记为C1的example数目,则不考虑unlabelled data时候, P ( C 1 ) = N 1 / N P ( C 1 ) = N 1 / N P(C1)=N1/N。
现在考虑unlabelled data的公式:
3.update model :根据无标签数据的分类概率更新所有参数,重复步骤以上,计算P和 μ 1 \mu^1 μ1等,有了新的model后,几率 P θ ( C 1 ∣ x u ) P _\theta(C_1|x^u) Pθ(C1∣xu)又会改变,就会进行第二步,model又不一样了,以此类推。。。(如下图计算所示)
Maximum likelyhood with labelled data
原来只有labelled data的时候,我们要做的事情是要最大化一个likelyhood,每笔训练数据的likelyhood是可以计算的(如图),求和后是total likelyhood。
Maximum likelyhood with labelled + unlabelled data
公式纠正:
labelled data和前面公式一样,但是unlabelled data需要估测他的概率,因为一笔unlabelled data不知道是从C1还是C2来,所以,一笔unlabelled data出现的概率:
即为这笔unlabelled data出现的概率。接下来,就是最大化该式 — — l o g L ( θ ) ——logL(θ) ——logL(θ)。不幸的是,解开这个式子只能重复地去解这个式子(即,前面方法步骤里的step1和step2不断重复),不断地增大 l o g L ( θ ) logL(θ) logL(θ),最后会收敛到一个locla minimum局部最优的地方。
注意:最大化该样本出现的原因,监督学习是可以得到最优解的,但是由于半监督方法中的优化函数不是凸函数,即不能得到最优解,所以只能迭代求解。
通俗来讲,就是这个世界是非黑即白的,在两个class的交界处data的密度(density)是很低的,它们之间会有一道明显的鸿沟,此时unlabeled data(下图绿色的点)就是帮助你在原本正确的基础上挑一条更好的boundary。
low-density separation最具代表性也最简单的方法是self training
首先将data分为两组,一组是labeled data,一组是unlabeled data
Q问:这个方法可以用在回归问题上吗?
A答:回归问题是要输出一个实数,把一部分data加入labelled data后,再训练,并不会影响 f ∗ f^* f∗,所以regression不可以使用这个方法。
self training与Semi-supervised Learning for Generative Model很相似,对比:
前面的hard label的方法太武断,可以用Entropy-based Regularization,output是一个分布,但是分布也要集中,因为“世界”是非黑即白的,过于平均不符合low-density separation的假设。
Q问:那么要如何用一个数值来评估一个分布是好还是不好,集中还是不集中呢?
A答:使用Entropy来评估,分布比较集中的Entropy比较小。
上图中可见entropy越大,distribution就越分散,entropy越小,distribution就越集中,因此我们的目标是在labeled data上分类要正确,在unlabeled data上,output的entropy要越小越好,此时就要修改loss function。
重新设计Loss function:
训练依旧使用梯度下降来最小化L,类似于Regularization(在原来的loss function后,加一个参数的L1或L2,来防止过拟合),现在这个很类似,现在加上一个根据unlabelled data来得到的entropy,来防止过拟合,称作Entropy-based Regularization。
假设: 如果x是像的,那么他们的label y也会相似。(但是这样假设是不精确的)
更精确的假设:
假设下图是data的分布,x1,x2,x3是其中的三笔data,如果单纯地看x的相似度,显然x2和x3更接近一些,但对于smoothness assumption来说,x1和x2是处于同一块区域的,它们之间可以有一条相连的路径;而x2与x3之间则是“断开”的,没有high density path,因此x1与x2更“像”。
比如的应用:
如何实现Smoothness Assumption,有一种简单的方法是cluster and then label(先聚类后标记),也就是先把data分成几个cluster,划分class之后再拿去训练,但这种方法不一定会得到好的结果,因为它的假设是你可以把同一个class的样本点cluster在一起,而这其实是没那么容易的。
下图中有 橙色是class1,绿色是class2,蓝色是unlabelled data。
把所有数据先聚类,分出三个cluster,观察cluster1中,class1的label data最多,所以把cluster1中的所有data都归于class1,同理,cluster2和cluster3都归于class2。
引入Graph structure,使用图结构来表达conneced by a high density path。
把所有的数据点都建成一个图,每笔data point x都是图上一个点,想要计算他们的相似度,要把图的边建立出来。如果现在有两个点之间有边,可以走的到,说明是同一个class,否则,哪怕距离很近,也走不到,不是同一类。
如何建图呢?
graph-based approach的基本精神:在graph上已经有一些labeled data,那么跟它们相连的point,属于同一类的概率就会上升,假设有两把data属于class1,那相邻邻居也可能是class1,所以会像传染病一样传递下去。
以上是定性的例子。
如何定量使用graph ?
定义一个计算smoothness的函数,常用函数:
我们期望smooth的值越小越好:
将计算smoothness的函数转换成矩阵相乘:
这样在构建loss function 的时候,可以将监督学习的误差和smoothness of label的值结合起来表示,后者作为regularization term来调节,smoothness可以放在任何地方,不一定是output的地方(视情况而定)。
基本思想:去芜存菁,化繁为简
找到表面观察背后的隐含特征,更好地表示这个物体。
算法具体思路和内容到unsupervised learning的时候再介绍!!!
本章学习了半监督学习的分类与作用,以及四种实现方式;半监督学习的价值在于大大降低了机器学习模型对于标注数据的依赖,未标注数据的分布,也能提供很多信息,对模型迭代有指导意义,即使他们是没有标签。半监督学习方法一般都具有某些假设,半监督学习方法有没有作用,取决于这些假设的正确程度。最重要的三个假设是Low-density Separation Assumption和Smoothness Assumption以及Better Representation假设。low density separation就是通过强制分类来提升分类效果的方法(基本思想是非黑即白),而smoothness assumption的思想就是近朱者赤近墨者黑,better representation的思想是,去芜存菁,化繁为简.算法具体思路和内容到unsupervised learning的时候再介绍,下一章将学习无监督学习及无监督学习的类别,以及其作用与科学原理等。