目录
为什么需要半监督学习?因为打好标签的数据严重不足。
对未打标签数据的分布做了一些先验假设。
1. Semi-supervised Learning for Generative Model
假设图中绿色的点为unlabeled data
显然,只靠少量的labeled data去估计一类数据的分布是不合理的。
在生成式模型中,先初始化参数集
θ
\theta
θ,计算unlabeled data属于Class1的概率并更新Class1的先验概率和均值,不断迭代直到收敛。(实质上使用了EM算法)
隐变量就是未标记数据的类别。
2. Low-density Separation Assumption
假设两个class间,数据比较稀疏,存在一个可分的边界。
2.1 Self-training
先根据已标记数据训练出模型,然后用模型对未标记数据做预测,根据预测得到的分类,将一部分未标记数据归为标记数据,继续训练。
但这个技巧不能用于回归。
回归中y = wx+b,未标记数据x通过模型的输出即为y,将这样一组(x,y)用于训练回归模型的参数没有意义。
对比生成式模型和自训练模型:
神经网络中要使用hard label
2.2 Entropy-based Regularization
假设
x
u
x^u
xu经过神经网络输出的是一个概率分布
y
u
y^u
yu
当概率为平均分布时,熵最大,信息量最大,最不好用于判断x的类别。
重新设计Loss Function,增加一个信息熵形式的惩罚项,同时兼顾标记数据和未标记数据。
3. Smoothness Assumption
假设特征相似的数据x有相同的类别/输出
但前提是这些数据处于同一个数据密集的区域。
如图中的
x
1
x^1
x1和
x
2
x^2
x2是同一类,和
x
3
x^3
x3就不是同一类。
举例来说,以识别手写数字为例:
右侧的两幅图像“2”与“3”的像素点的平均欧氏距离更能更小。
但考虑到“2”的多种形态,它们不是一类
在文本分类中,假设黑色点对应未标记的文档
在实际中,文档与文档之间可能没有很多重合的词语,如右图所示。
但如果收集到足够多的未标记数据,从数据之间的相似性,就可以根据假设将数据分为两类。
比较直觉的做法:对所有数据聚类,取每个cluster中最多的标记数据的种类为该类数据的种类。
基于图的方法,比如网页的链接,论文的引用关系都可以用于构建图。
更一般地,如何建立图的结构呢?
注:取e指数计算相似度是为了保证彼此链接的数据点非常近,不会连到另一个区域中的数据。
定性描述:
有类似于“传染”的概念,标红的点没有与class1标签的数据点相连,但通过图连接,也会被标记为class1。
需要收集的数据够多,如果图不完整,类别的信息就无法传播。
如何具体计算:
用图的拉普拉斯矩阵表示