半监督学习与监督学习
监督学习中的样本中的是已知的,所以监督学习算法可以在训练集数据中充分使用数据的信息
———————————————————————
半监督学习的样本中只有R个样本的是已知,U个样本的未知,且通常U远大于R
—Transductive learning :将未知标签的数据作为测试集数据
—Inductive learning:未知标签的数据不作为测试集数据
在实际生活中,我们很容易用到半监督学习的方式,因为收集无标签的数据很容易,但是收集有标签数据不是那么容易。比如说,看到一个动物,只有很少的时候会有人告诉你这是哪种动物,大部分时候没有人告诉你这是哪种动物~
虽然存在大量未知标签的数据,但是他们依然能帮助我们构建模型
Semi-supervised Learning for Generative Model
- 监督学习中的概率生成模型
在之前的学习中,我们可以得知,在监督学习中,可以之间计算样本中的类别比率、先验分布,从而计算出后验概率。
- 半监督学习中的概率生成模型
假设绿色为未知标签的数据,蓝色、橘色各表示一类,此时由已知标签的样本数据估计出来的
μ
1
,
μ
2
,
∑
\mu^1,\mu^2,\sum
μ1,μ2,∑ 显然是不合理的,以已知标签样本计算
P
(
C
1
)
>
P
(
C
2
)
P(C1)>P(C2)
P(C1)>P(C2),而如果考虑未知标签的样本数据则有可能
P
(
C
1
)
<
P
(
C
2
)
P(C1)<P(C2)
P(C1)<P(C2),因此半监督学习中的概率生成模型要比监督学习中的概率生成模型要复杂得多。
半监督学习中的概率生成模型算法
- 初始化 θ : = P ( C 1 ) , P ( C 2 ) , μ 1 , μ 2 , ∑ \theta:=P(C_1),P(C_2),\mu^1,\mu^2,\sum θ:=P(C1),P(C2),μ1,μ2,∑
- 根据给定 θ \theta θ 的条件计算出给定一个未知标签数据属于 C 1 C_1 C1 类的概率 P ( C 1 ∣ x μ ) P(C_1|x^{\mu}) P(C1∣xμ)
- 按照下图蓝色框部分公式更新 P ( C 1 ) , μ 1 P(C_1),\mu^1 P(C1),μ1
- 返回第二步重复计算直到收敛
算法可以得到收敛解,但是初始值不同可能导致得到的是局部最优解。
半监督学习中的概率生成模型算法解释
如果在监督学习中,训练数据都是已标记的数据,则算法的目的就是极大化最大似然函数;但是在半监督学习中,还有一部分没有标记的数据,对这些未标记的数据的 P θ ( x μ ) P_\theta(x^{\mu}) Pθ(xμ) 使用全概率公式计算得出,对这样的极大似然函数求解最大值的过程即上述的步骤。
低密度分离假设
给定一个假设:不同标签之间存在着明显的差别
Self-training
Self-training是低密度分离假设最简单的代表,如图,现在有
R
R
R 个已标记的样本,
U
U
U 个未标记的样本
- 使用 R R R 个已标记的样本利用监督学习的算法训练出最优的模型 f ∗ f^* f∗。
- 使用模型 f ∗ f^* f∗ 对 U U U 个已标记的样本进行标记
- 从这 U U U 个样本中(已经带有了预测的标记)挑出一部分加入 R R R 个已标记的样本
重复上面步骤直到收敛(此时的已标记的样本包含R个已标记的样本和从第3步挑选出的样本)
这一算法在回归上没有用处
很类似上述的半监督学习中的概率生成模型算法,区别在于这一算法使用的是hard label(要么是1要么是0),而后者则使用的是soft label(样本属于每个label的概率)
基于熵的正则化(Entropy-based Regularization)
Entropy-based Regularization 是Self-training的进阶版本,估计
x
μ
x^{\mu}
xμ 此时不是直接得到 label 而是得到关于 label 的分布(假设分布很集中,否则不符合 Low-density 的假设),此时就是求解
L
L
L 的极小值。
Entropy 表明集中的程度,这个数值越小越好
Outlook: Semi-supervised SVM
如图,蓝色、橘色为已标记的两类样本,灰色为未标记样本,此时Semi-supervised SVM会穷举所有的可能(
2
4
2^4
24种),对每一种可能都算一个SVM模型,选取margin最大且误差最小的模型。
margin:样例点到划分超平面的距离
平滑度假设
现在给定一个假设,相似的 $x $的
y
y
y 也相似,更准确地表述是,
x
1
x^1
x1 和
x
2
x^2
x2 在密度高的地方相近,则
y
1
y^1
y1 和
y
2
y^2
y2 更相似(
x
1
x^1
x1 和
x
2
x^2
x2 可以用high density path做连接)。如图,尽管
x
3
x^3
x3 和
x
2
x^2
x2 在图形上比较相近,但是考虑密度分布之后
x
1
x^1
x1 和
x
2
x^2
x2 更接近。
聚类后标签(Cluster and then Label)
Cluster and then Label是在Smoothness假设下的简单算法,对所有的数据进行聚类,得到3个cluster,cluster1中的class1最多,所以cluster1里的数据都算class1,同理cluster2、cluster3都算class2。
基于图的方法
每个样本都是图上的一个点,先算出点之间的相似性,把它们之间的联系建立起来(如图),此时Smoothness假设就体现在能够连通的点是同一类。
Graph-based Approach具有传染性,如图中蓝色样本和红色样本将使得各自所连通的整个graph都是蓝色/红色。
那么如何建立这个图呢
对于有些直观的情况,比如网页与网页之间、论文的引用被引用可以直接构建,对于无法直观联系的数据,我们可以通过以下计算构建 Graph。
- 计算 x i , x j x^i,x^j xi,xj 的相似性 s ( x i , x j ) s(x^i,x^j) s(xi,xj)
- 添加 edge(这里有两种方法,KNN 选择最近的 K 个点进行连接,eN 选择半径 e 以内的所有点)
我们可以用一个值定量描述 smooth 的程度(越小越平滑)
其中,可以进一步使用矩阵的形式简化上图中的计算思路,
W
W
W 矩阵中的
w
i
j
w_{ij}
wij 表示
x
i
x^i
xi 和
x
j
x^j
xj 的权重,
D
D
D 是一个对角矩阵,为
W
W
W 的行加总和: