0%

半监督机器学习模型学习笔记

基本介绍

半监督(Semi-supervised Learning)即输入小部分已标记数据和大部分未标记数据进行学习,以提升准确率的一类机器学习方法。

有两种用法:

  • Transductive learning:无标记数据就是测试集本身
  • Inductive learning:无标记数据不是测试集

之所以有效果的原因:未标记的数据的特征是有价值的,例如下图,未标记的样本分布决定SVM的超平面怎么划:

1571834496021

但是这也不绝对,因为如果左下的数据点时狗的话那么平面就不是这样了,因此半监督不一定效果好,其关键在于假设是否符合实际。

Semi-supervised Generative Model(生成式方法)

先给出初始值,接着计算无标记数据的$p\theta(C_1|x^u)$,再更新模型的$P(C_1)$和$\mu$,反复迭代直到算法收敛

image-20191024110951281

Self-training

  1. 用标记数据生成模型
  2. 用模型预测未标记数据
  3. 将部分预测的标记数据从未标记数据中移到已标记数据中,再回到第一步,这里移动的策略需要自己决定

image-20191024111124407

Generative Model & Self-training

Generative Model对未标记数据属于哪一类不是确定的,而是一个可能性,而Self-training对与未标记数据会给出属于哪一类,非黑即白。

对于神经网络来说,Generative Model不适用

对于直推学习来说,Self-trainging不适用(因为未标记的数据本身就是需要预测的,第一次已经能给出结果)

Entropy-based Regularization

Self-training的优化版,使其适用于神经网络,其思想是认为,如果$y^u$的分布较为集中,那么分类效果比较好,而若$y^u$分布不集中,则神经网络效果较差,因此再损失函数总增加E的度量,E为Entropy,表示了分布是否集中

1571835087936

Semi-supervised SVM

枚举未标记的所有可能性,最大化margin和least error

image-20191024121420642

Smoothness Assumption

假设:如果$x_1$和$x_2$相似,那么$y_1$可能等于$y_2$,更准确的说,$x_1$和$x_2$在同一高密度的区域的区域上,那么它们可能一致(感觉很像基于密度的聚类算法)

又由于未标记样本的特征可以填充密度,理论上是有效的。

因此具体做法:先聚类,然后再Label

Graph-based Approach

将$x$视为点,在点之间连边,构成图,如果两点之间可达,那么认为两条数据是相似的。如下如,方块和三角虽然距离很近,但是由于它们不可达,因此它们不相似

1571836705037

有些时候,这些边是现成就有的,比如说论文之间的互相引用,网页间的超链接。

有些情况下是没有的,只能通过一些经验来构造边,比如使用k近邻,e-近邻(推荐),如下图所示,距离推荐使用Gaussian Radial Basis,只有靠近的点才会符合要求

1571837008739

该方法的优势在于赋予了标记数据“传染性”,其可以延边传播到所有类成员。劣势在于未标记数据要足够多,否则无法传递。

定量分析smoothness:

image-20191024115845979

另外$S$可以通过矩阵运算得到,即计算L, W为图的邻接矩阵,D的对角线上的值为每行的和

image-20191024120650988

在神经网络传播时,将S乘上权重$\lambda$加到损失函数上:

image-20191024121139659

Disagreement-based method(基于分歧的方法)

首先提出多视图的概念,即一个数据对象在多个方面存在多个数据集,比如电影,就存在图像画面的数据集和声音的数据集(两个视图),因此对于多个方面(视图)建立多个模型。

多个模型间可以展开协同训练,即先在每个视图上,使用已标记的数据训练出分类器,让每一个分类器标记未标记的数据,选择最有把握的未标记样本赋予伪标记放入训练集,再将新的训练集给另一视图上的分类器训练,直到分类器结果不再变化。

该方法经过改造,可以用于单视图,仅需不同分类器就可提升效果。

参考资料