deep-learning

半监督学习

半监督学习,也叫自训练,是指通过小样本训练一个分类器,利用分类器去分类未标注样本,再反过来利用得到的数据继续迭代优化分类器的方法。
通过半监督学习学习得到的分类器可能比只通过小样本训练出来的分类器效果要好,毕竟见多识广跑得快。

半监督学习也很有可能是人脑学习新知识的模式。毕竟我们在学习新知识的时候,不会有成千上万的训练数据,而是通过几个例子就能举一反三。

弱监督学习成立的条件在于相似的样本大概率是同一类的,效果的好坏取决于相似性的判断好不好。模型除了向伪标签类学习以外,也会像临近的真标签学习。

比如一开始只标了一张男人的图片是正样本和一张母狗的图片是负样本,然后来一张公狗的图片,你说应该判断成啥?这其实很难说对吧,只有 2 个样本的那个模型也确实很难判断,不过我相信大部分人都会认为公狗应该判为负样本。
这就基于大多数人认为公狗和母狗更相近。
所以公狗这个样本虽然没有标记,但是可以利用某种相似性判断的方式,判断出和母狗更相似,因此 label 一方面是听从原先那个有监督模型的意见,另一方面还要听从相似性的意见,和母狗使用同样的标签。
比如有监督模型给出的是[0.5,0.5],相似性给出[0.1,0.9],那综合起来可能就是[0.3, 0.7],这样就认为公狗的 label 是[0.3,0.7],即更偏向负样本,但没那么确定。
一般来讲人们会让这个 label 更确定一些,也就是盲目自信一些,比如看到 0.3,0.7 就给它变成 0.1,0.9。
这样对于模型来说,有监督模型不知道是该分人和狗还是该分性别,有了相似性的约束信息之后,就更偏向于人和狗的分类了,因此只凭借较少的标注样本,和一套合理的相似性判断方法,就可以得到更准确的分类模型。

样本了之后半监督可以提升指标,那干嘛不都加上个半监督?

因为有成本啊,你还得考虑怎么算相似,你还得有大量没标注的同分布样本,然后你还得付出对那些没标注样本训练的成本,计算量变大,实现麻烦,有的项目还不一定能找到合适的样本或方法。对于大样本量的有监督算法而言,半监督的收益也不是很大。

比如你已经标了 1 亿条了,你再加上 5 亿未标注的数据可能效果也不会有啥提升,因为哪怕你把这 6 亿都标了指标也差不多,因为已经饱和了。

最后,机器学习是一门实验科学。当然大多数情况下没有绝对的,方法不好也许实际 cover 了多数情况,也会有收益。所以收益多少一般都要试一试,与此相比更多的情况可能是任务比较复杂不太适合这么做,或者没有成本这么做。

参考

  1. 小海星机器学习讲义
  2. https://en.wikipedia.org/wiki/Semi-supervised_learning
  3. https://en.wikipedia.org/wiki/Weak_supervision