semi-supervisied learning

unlabel数据为什么有用?
可以影响数据的分布
存在一些假设
有没有用就看假设是否合理

semi-supervisied learningsemi-supervised learning for generative model:

semi-supervisied learning
low-density separation assumption:
数据分布最少的地方就是做好的boundary

semi-supervisied learning
与生成模型的比较,label非黑即白,不以概率表示;训练神经网络,要使用hard类型的标注,更可能为类1,则标注为类1。
semi-supervisied learning
上面的方法,通过概率直接分类有点太粗暴了,更好的方法是根据熵来做,熵值越小,样本分布越集中。求得一个样本是不同类的概率值后计算熵。损失函数可改写为有label的和无label的,如下所示。具体来说,计算出样本的entropy,改写损失函数,以此重新训练神经网络。如下图所示。
semi-supervisied learning
smoothness assumption:
通过分布概率判别是否属于同一类
semi-supervisied learningsmoothness应用场景:
利用unlabel data 来构造可能的过渡
semi-supervisied learning
具体的做法:提出了graph -based 方法来表达smoothness,如何表达两个数据点是否相似呢?构建图,两个点可达的则是相似的。
semi-supervisied learning如何构建graph?计算data point间的相似度,如下述公式;利用knn或是e-neighborhood根据计算的相似度构建图。
semi-supervisied learning
建好graph后,根据label data ,与label data相连接的data point是同一类,相似度会依次传递下去。但是有一个问题!如果数据量不足的话,无法连接成希望的图,效果很差!如下图所示。
semi-supervisied learning为图的边添加weight后,定义整个图的smoothness计算公式(y是预测的label),得到smoothness后,将其作为正则项加入到损失函数中,重新训练神经网络,整个过程如下两个图所示:
semi-supervisied learning
semi-supervisied learningsmooth可以不仅仅是在output layer上,可以在任何层。
semi-supervisied learning