课程链接
半监督学习的原理跟我们自己学习辨认物体是很接近的,小时候可能父母长辈会在某次见到猫狗时告诉你这个是猫,这个是狗。但是之后就不会每次都告诉了,而实际上猫狗的形态多种多样,我们之后每次看到不同形态的猫狗时,即使没有人告诉,也能自己完成分类。
用少部分的带标签的数据,和大部分无标签的数据进行训练,这就是半监督学习。
半监督生成模型
如果把有标签和无标签的数据画在同一张图上,再根据他们画出概率分布,显然概率分布会受无标签的数据的影响。
训练的时候,先用有标签的数据训练出一个先验概率分布,然后逐个加入无标签的数据,迭代更新概率分布。
半监督低密度分割
低密度分割的原则是非黑即白。
简单来说就是对于无标签的数据,在迭代时根据概率把它打上伪标签,然后继续迭代。
在实际计算损失函数时,,只需要在后面加上一个熵正则项。熵正则的原理,是一个数据能被明确分类为一种时上较低,而分类的概率越平均,熵越大。低密度分割倾向于明确的分类。
smoothness assumption
在做分类时,未必两个数据点离得近就是一类,还要参考他们和其他数据的关系。
如果把数据点的密度看做某个地方的海拔高度,那么下图中x1和X2虽然距离较远,但是却是在一个等高的山上,x2和x3离得近却隔了一条山谷,所以x1和x2更有可能是一类。
在做数字识别和人脸识别也是同理。相比于2和3,两种2可能并不很相似,但是它们之间有连续的可以转换的形态,所以两个2是同一种数字。
在训练时,通常有两种策略,一种是聚类,另一种是建立图,这里的图是指数据结构的概念。
聚类在本节不作介绍,重点介绍图的方法。
如下图所示,我们把有可能为一类的点两两相连,有路径相通的就是一类。
那么如何建立图呢,简单来说就是每个点连接与它最近的几个点。两个点之间的边的权值如下图
在图建立之后就是如何评判smoothness以及如何建立损失函数了。
根据数据的标签yi和它连接的边的权值可以得到smoothness的公式。
为了计算方便我们把这个公式转化成矩阵运算的形式,其中运用了拉普拉斯变换。
最后在损失函数后面加上smoothness的正则项。