Semi-supervised Learning

前沿

监督学习:所有数据都有标签
半监督学习:
* 仅有部分数据有标签,且通常情况下U>>RU>>R,U是为标注的数据。
* Transductive learning:unlabeled数据作为测试数据。
* Inductive learning:unlabeled数据并不是测试数据。

为什么要做半监督学习?
* 收集数据很容易,但是收集有标签的数据很难
* 人类在日常生活中会做半监督学习

Semi-supervised Learning for Generative Model

步骤

  • 初始化参数 θ=P(C1),P(C2),μ1,μ2,\theta = {P(C_1),P(C_2),\mu^1,\mu^2,\sum}

  • Step 1: 计算无标签数据的posterior probability Pθ(C1xu)P_\theta(C_1|x^u)

  • Step 2: 更新模型
    P(C1)=N1+xuP(C1xu)N P(C_1)=\frac{N_1+\sum_{x^u}P(C_1|x^u)}{N}
    N: 样本总数
    N1N_1: 属于C1的样本数
    μ1=1N1xrC1xr+1xuP(C1xu)xuP(C1xu)xu \mu^1 = \frac{1}{N_1}\sum_{x^r \in C_1}{x^r}+\frac{1}{\sum_{x^uP(C_1|x^u)}}\sum_{x^u}P(C_1|x^u)x^u
    所有属于类别1的data进行平均。

  • step3: 反复进行1,2步,进行模型训练。

原理

  • 在有标签数据上最大似然估计
    logL(θ)=xrlogPθ(xr,y^r) logL(\theta) = \sum_{x^r}logP_{\theta}(x^r,\hat{y}^r)

  • 在有标签和无标签的数据上进行最大似然估计
    logL(θ)=xrlogPθ(xr,y^r)+xulogPtheta(xu)Pθ(xu)=Pθ(xuC1)P(C1)+Pθ(xuC2)P(C2) logL(\theta)=\sum_{x^r}logP_{\theta}(x^r,\hat{y}^r)+\sum_{x^u}logP_{theta}(x^u)\\ P_{\theta}(x^u)= P_{\theta}(x^u|C_1)P(C_1)+P_{\theta}(x^u|C_2)P(C_2)

Low-density Separation

假设数据是非黑即白的,0和1样本之间,从分布上看应该会有一条较明显鸿沟。
Self-training:

  • 在labeled data上训练一个模型
  • 将unlabeled data喂入该模型,得到Pseudo-label
  • 取unlabeled data加入到labeled data

该方法无法用到回归任务上。
对于神经网络的方法,用soft label是没用的。

Entropy-based Regularization

用entropy对输出进行正则,因为假设是非黑即白,我们期望输出每个类的概率是较大的,而不是每个类的概率相似。

Entropy-based RegularizationEntropy-based Regularization

Smoothness Assumption

近朱者赤近墨者黑
"similar" x has the same y^\hat{y}
更精确的假设:

  • x的分布不是均匀分布
  • If x1x_1 and x2x_2 are close in a high density region y^1\hat{y}_1 and y^2\hat{y}_2 are the same.
    数据分布示例数据分布示例

x2x_2x3x_3标签不同,虽然他们比较相近,但是中间没有high density region。

Cluster and Label

Graph-based Approach

Represented the data points as a graph

对于没有明显图结构的数据,如何构建图?

  • 定义两个样本(xi,xj)(x_i,x_j)间的相似度s(xi,xj)s(x_i,x_j)
  • 增加边
    • KNN(K Nearest Neighbor)
    • e-Neighborhood
  • 边的权重与相似度成正比
    Gaussian Radial Basis Function:
    s(xi,xj)=exp(γxixj2)s(x_i,x_j)=exp(-\gamma||x_i-x_j||^2)

步骤

  • Define the smoothness of the labels on the graph (定量地描述一个图是否是smoothness的)
    对于所有数据计算下列式子。
    S=12wi,j(yi,yj)2=yTLyS=\frac{1}{2}\sum{w_{i,j}(y_i,y_j)^2}=y^TLy
    y: (R+U)-dim vector
    y=[yiyj]Ty=[\ldots y^i \ldots y^j \ldots]^T

L: (R+U)-dim matrix
L = D - W
W是边权重矩阵,D是将W的每行相加得到的对角矩阵。

D&WD&W

最后的损失函数可以定义为:
L=xrC(yr,y^r)+λS L=\sum_{x^r}C(y^r,\hat{y}^r) + \lambda S