一、why semi-supervised
dataset中只有部分数据进行了lable标注,即,有的数据成对出现{输入,输出},有的数据只有输入{输入};
Transductive learning(直推试学习):unlabled数据作为测试集;
Inductive learning(启发式学习):unlabled数据不是测试集。
半监督学习有用的原因:虽然unlabled数据的分类结果直接由supervsed的网络决定,但是,被测试的数据可以用来更新网络,简单说就是会改变分界线;但是,这种方式会基于labled data学习到网络对unlabled data进行分类,并不一定完全准确。
二、主要内容
三、generative model
1、回顾监督学习的generative model:贝叶斯模型
2、从这个思路出发,半监督学习就需要在加入了unlabled数据之后,找到新的概率分布,变成如下虚线的形式:
3、操作步骤:估计新的均值,方差
首先,基于初始的均值与方差,估计每个unlabled数据属于C1的概率;
然后,所有unlabled数据属于C1的概率相加记做N2,就是这些数据期望是C1的个数,可计算出新的P(C1),进而算出新的均值;
所以,预测模型相应改变了,换上新的数据,反复迭代上述步骤
四、self-Training
如下图,蓝色与黄色分别为class1和2,绿色unlable,一般来说,分界线位于数据密度较小的地方较为合理。这里对unlable data进行非黑即白的假设。
self-training与generative model总体思想类似,都需要先使用lable的data得到一个模型,再使用该模型预测unlable的data,然后进行模型更新,区别在于generative model基于概率的模型,预测的是unlable data的概率,而self-training直接给出unlable data的分类结果。
那么,对于self-training,对数据的lable属于hard lable,相对的,generative model是soft lable的,如果将soft lable用于semi-supervised的卷积网络,网络可能就不会work了。
五、Loss Function
训练出的模型分类尽量集中,对于一个输入,输出必然集中在某一类。最后的Loss Function是lable data的cross entropy与unlable data的entropy之和,这里可以给出一个权重,可以调整模型更加偏重于哪一方。
六、Smoothness Assumption
基于Smoothness Assumption,可以利用先验知识对损失函数进行正则化,smoothness的假设直观的表达就是近朱者赤近墨者黑。代表输入越像的两组数据,分类的结果就越像。
但是,这种直观表述并不严谨,更精确的表述是,在高密度区域,输入越接近,输出就越接近。如图所示,x1与x2其实更接近,如果不加high desity的限定,那么结果就是x2与x3更接近。
另外,图像输入相似度不能简单的以像素值来判定,而对auto encoder之后的数据做相似度计算效果可能会更好。
smoothness 的假设更倾向于数据缓慢间接变化的一个过程,如图中的2与3,直接以像素的角度判断,后面的2与3可能更像,但从变化的角度看,两个2才是一类。
从另一个角度说,同一类型可以相互传导