Deep SSL系列1: Pseudo-Label (ICML 2013)

近期准备做一个Deep SSL的综述,梳理一下最近几年深度半监督学习的相关进展,包括哪些人在做,都是采用了什么样的假设和方法,取得了怎样的效果,再整理一下相关算法的代码,以便后续使用。

大概列了一些近几年关于Deep SSL的文章,写在了网站上,guolz.com/paper-reading,接下来准备逐篇补充论文介绍和代码重现。

今天写的这篇“Pseudo-Label: The simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks“是比较早的一片Deep SSL的文章,发表在ICML 2013上。作者是Dong-Hyun Lee,是一个韩国人,现在韩国的ESTsoft工作,这个公司以前没怎么听过。

这个人应该是Bengio的硕士生,所以做了一些表示学习、半监督相关的工作。这篇工作也和Bengio 05年的“Semi-supervised Learning by Entropy Minimization“有一些联系。


本文的方法非常简单,就是对于未标记数据,选择预测概率最大的标记作为该样本的伪标记,然后,给未标记数据设一个权重,在训练过程中慢慢增加未标记数据的权重。可能在13年还没有类似想法在深度神经网络上的应用,所以能发一篇ICML。

该方法整体的Loss是:

第一项是labeled data的loss,第二项是unlabeled data的loss。未标记数据权重的更新公式为:

整体流程就是,在T1轮以前,只在有标记数据上训练,然后利用训练的模型给未标记数据打上伪标记,再逐渐增加未标记数据的权重。

(其实除了加权之外,还有一种控制伪标记影响的方法,就是给定一个阈值,只有当未标记数据属于某一类的预测值达到一个阈值之后,才给它打上伪标记,不然就还是作为未标记数据,这个方法在我们一篇图半监督学习的工作中得到了应用,取得了不错的效果。具体可以看:Robust Semi-supervised Representation Learning for Graph-Structured Data)。

然后,作者解释了一下伪标记数据work的原因,是如上所说跟05年“Semi-supervised Learning by Entropy Minimization“这篇文章采用的Entropy Regularization扯上了关系。

Entropy regularization是根据低密度假设得来的,这个了解半监督学习的同学应该都清楚。因为熵可以度量class overlap,所以通过最小化未标记数据的条件熵:

可以减少class overlap从而得到通过低密度区域的决策边界。所以,entropy regularization的优化公式为:

第一项为有标记数据的conditional log-likelihood,第二项为entropy of unlabeled data。

作者认为该式的两项和本文方法的loss中的两项相对应的。大概想法可以解释为,打伪标记的方法相当于鼓励未标记数据的标记是一个1-of-K的code(就是说只在一类上取值为1,其它都为0,而不是K个类,每个类上的取值都是零点几这样)。所以这两个loss的第一项都是有标记数据上的损失,第二项都可以减少class overlap,即伪标记和做entropy regularization可以达到类似的效果。

所以作者通过从pseudo-label到entropy regularizaiton的关系,再到low-density assumption,推出这个方法可以利用未标记数据提升泛化性。但是这个解释非常的牵强,直观上虽然说得通,但是作者没有给出任何理论上的证明和分析,这个可以作为一个关注和思考的点。

发布于 2019-07-09

文章被以下专栏收录