Semi-supervised
简介
比如在图像识别中。
- 监督学习:每个图像都有标签。
- 半监督学习:部分数据没有标签,只有输入x;通常,无标签的数据量远大于有标签的。
半监督学习可以分为两种情况:
- Transductive Learning:unlabeled data is the testing data。把testing data当做无标签的training data使用(这个是没有问题的,因为在比赛中,所有已有的数据都可以使用,当然包括测试数据的特征值);
- Inductive Learning:unlabeled data is not the testing data。事先无法获取testing data,并且无法使用。
为什么使用半监督学习?
- 我们不缺数据,但是缺有标签的数据;
- 人类一直在做“半监督学习”。
通过对未标记的数据做出假设,我们可以获得很多有用的信息。
Semi-supervised Generative Model
监督学习的Generative Model之前已经学过了。我们假设了数据服从高斯分布,并且依次做了许多拓展。
半监督学习的做法是这样的:
- 猜测出需要的参数,当做初始模型
- 计算每个数据点在 C l a s s 1 Class\ 1 Class 1中的概率
- 更新模型
原因在于:
Low-density Separation Assumption
认为在数据密度低的地方,其有一条绝对的分界线。
Self-training
low-density separation最经典简单的方法是self training:
- 先用labeled data set去训练一个model f ∗ f^* f∗
- 然后用 f ∗ f^* f∗对unlabeled data set打标记,叫做Pseudo-label;
- 根据自己算法,从unlabeled data set选出一部分移动到labeled data set中
- 重复1即可
Tips:
这一招在 Regression 上没有用。
并且,这个用的是Hard label,之前的Semi-supervised Generative Model用的是Soft label。在NN中,一定要用Hard label。
Entropy-based Regularization
是Self-training的进阶版。
我们希望
y
u
y_u
yu的分布越集中越好,因此使用
E
n
t
r
o
p
y
Entropy
Entropy(信息熵)来计算,并且希望这个值越小越好。
这样就可以重新设计Loss Function:第一部分是labeled data离正确答案的距离,第二部分是unlabeled data的
E
n
t
r
o
p
y
Entropy
Entropy。
Semi-supervised SVM
Semi-supervised SVM穷举了所有的可能性,然后去用 SVM 拟合,最后找出让 margin 最大又有error最小的方案。
但不可能真的全都枚举,因此他提出了一种方法,基本精神:一开始给出一些label,然后每次改一笔unlabeled data,看看能不能接近function变大,变大了就改变。
Smoothness Assumption
基本精神:近朱者赤,近墨者黑。
两个数据
x
x
x是接近的,并且都在一个密度很好的区域,那可以假设他们的
y
y
y是一样的。
例如:下面都是2,却是最左最右虽然很不一样,但可以过渡到。
此外,这招在文件分类上也是有用的。
cluster and then label
有一种方法是,先进行聚类,接着打标签。
Graph-based Approach
还有一招,对数据建图。
基本流程:
- 算距离:定义两个数据间的相似度 s ( x i , x j ) s(x_i,x_j) s(xi,xj)
- 连边:设定一个条件,符合条件的两点连一条边
- 给权重:边权一般与相似度成正比。
相似度:一种方法如下:
smoothness
定量的给出smooth。
上面的式子还可以展开(W是邻接矩阵,D是W每一行的和):
这样,就可以在Loss Function里加上惩罚项。
Better Representation
Better Representation 的精神:去芜存菁,化繁为简。
我们观察到的世界很复杂,但是背后蕴含的规律很简单——因此我们需要看破真相。
将在 Supervised Learning 中介绍。