李宏毅机器学习P24——semi-supervised learning半监督学习
- 首先初始化参数θ
- 然后计算无标签数据的后验概率
- 然后更新模型的参数θ
这种方法相当直觉,没有很特别的理论解释
这个方法理论上会收敛,但是初始值会影响结果
- 原始的标注数据加上后面的无标签数据
- 一次一次进行循环(solved iteratively)
- 训练有标签数据得出一个model,然后使用这个model来跑无标签的数据得到一批Pseudo-label,再将无标签数据的一部分移除,加到有标签数据集里面(ppt有勘误),怎么选择这部分数据没有固定要求(还可以给这部分数据赋予权值)
- regression是不能用这种方法的,因为标签数据得出来的function来处理无标签数据得到的y本身就符合这个function,再进行迭代更新毫无意义。
- 在neural network应用中,从labelled data中得到一组network parameter,将这组参数用于对无标签数据进行label,有hard label和soft label两种方式,这里需要采取非黑即白的方法,即采用hard label的方法是有效的,而soft label是不会work的(我理解为参数不会更新)
- 一般希望unlabel data的output的分布distribution越集中越好
- 可以用unlabelled data的output的熵entropy来衡量output的集中程度distribution
- 然后重新定义损失函数为:labelled data的判断结果与实际结果的距离+unlabelled data的output的熵
- 过渡性假设smoothness assumption
- 更精确的假设不只是说x具有相似度,还具体的说是在一个high density region上的x具有相同的label
- 比如虽然x1和x3更接近,但是x1和x2才是在同一个集中区域内,因此x1和x2有相同的label
- 定义点之间的相似度可以使用KNN和e-Neighborhood来划分
- 效果更好的方法有Gaussian Radial Basis Function,引入了一个指数
- 定义label的smoothness,计算式中labelled data和unlabelled data都要参与计算
- 公式前面的二分之一是为了后面方便计算,没有特别的意义
- 公式还有下面的表达形式
- 可以表示成矩阵相乘的形式,y是一个(R+U)维的矩阵,L是一个(R+U)×(R+U)维的矩阵
- L=D-W,D的对角线的值是由W的每一行的加和得到的
- S的值其实是取决于网络的参数的,因此可以参考正则化的表达式,将S考虑到损失函数中
- S作为正则项,然后对L做梯度下降进行参数更新,这样既考虑了点分类的误差,又考虑了smoothness的因素
- S作为正则项,然后对L做梯度下降进行参数更新,这样既考虑了点分类的误差,又考虑了smoothness的因素
- smooth的操作可以加入到网络的任何一层中