未标注数据|实践中完全没用的半监督学习,正在悄然的进化出超能力


未标注数据|实践中完全没用的半监督学习,正在悄然的进化出超能力文章插图
【新智元导读】谷歌首席科学家提出要想让半监督学习实际上有用 , 要同时考虑低维数据和高维数据 , 并讨论了谷歌最近的两个研究 。 作者认为在实际环境中重新审视半监督学习的价值是一个激动人心的时刻 。
作为一个机器学习工程师 , 可能平时最常打交道的就是海量数据了 。 这些数据只有少部分是有标注的 , 可以用来进行监督学习 。 但另外一大部分的数据是没有标注过的 。
那么接下来 , 我们就会顺理成章的想到用这些已标注过的数据进行训练 , 再利用训练好的学习器找出未标注数据中 , 对性能改善最大的数据 , 让机器自己的对未标注数据进行分析来提高泛化性能 ,
这种介于监督学习和无监督学习之间的方式 , 称为半监督学习 。 人类的学习方法是半监督学习 , 我们能从大量的未标注数据和极少量的标注数据学习 , 迅速理解这个世界 。
然而半监督学习实践中根本没用?人类的半监督学习非常有效 , 那么我们自然的希望机器的半监督学习也能达到类似的程度 。 但是从历史上来看 , 半监督学习的效果和我们想象的效果有很大差距 。 先来看一张图:
未标注数据|实践中完全没用的半监督学习,正在悄然的进化出超能力文章插图
上图可以看出来 , 最开始的时候 , 半监督学习训练确实有种提升监督学习效果的趋势 , 然而实际操作中 , 我们经常陷入从“可怕又不可用”的状态 , 到“不那么可怕但仍然完全不可用” 。
如果你突然发现你的半监督学习起效了 , 这意味着你的分类器单纯的不行 , 单纯的没有实际用处 。
而且面对大量的数据 , 半监督学习方式通常不能实现和监督学习中所实现的相同渐近性质 , 未标注的数据可能会引入偏差 。
举个例子 , 在深度学习的早期阶段 , 一种非常流行的半监督学习方法是首先学习一个关于未标注数据的自动编码器 , 然后对标注数据进行微调 。
现在几乎没人这么做了 。 因为通过自动编码学习的表示 , 倾向于在经验上限制微调的渐近性能 。
而且 , 即使是已经突飞猛进的现代生成方法 , 也没有对此状况有多大的改善 。 可能因为提升生成模型效果的元素 , 并不能很有效的提升分类器的效果 。
当你在今天看到机器学习工程师对模型进行微调时 , 基本都是从从监督数据上学习的表示开始 。 而且文本是用于语言建模目的的自监督数据 。
最终我们得出一个结论:实际情况下 , 从其他预训练模型进行转移学习是一个更稳健的起点 , 在这方面半监督方法难以超越 。
所以 , 一位机器学习工程师在半监督学习的沼泽中艰难前行的典型路径如下:
未标注数据|实践中完全没用的半监督学习,正在悄然的进化出超能力文章插图

  1. 一切都很糟糕 , 让我们尝试半监督学习吧!(毕竟这是工程工作 , 比标注数据这种纯体力活可有意思多了)
  2. 看 , 数字上去了!但是仍然很糟糕 。 看起来我们还是得去搞标注数据...
  3. 数据越多 , 效果越好 。 但是你有没有尝试过丢弃半监督机器会发生什么?
  4. 嘿你知道吗 , 它实际上更简单更好 。 我们可以通过完全跳过2和3来节省时间和大量技术债
如果你走运的话 , 你的问题也可能具有这样的性能特征:
未标注数据|实践中完全没用的半监督学习,正在悄然的进化出超能力文章插图
巧了 , 在这种情况下 , 存在一种狭窄的数据体系 。 半监督学习在其中不仅不糟糕 , 而且还实实在在的提高了数据效率 。
但是根据过来人的经验来看 , 这个点很难找到 。 考虑到额外复杂性的成本 , 标注数据量之间的鸿沟 , 通常不会带来多大的效果 , 并且收益递减 , 所以根本不值当浪费精力在这个上面 , 除非你想在这个领域竞争学术基准 。
半监督学习其实正在悄然的进化说了这么多半监督学习的弱项 。 其实本文真正想讲的是在半监督学习领域 , 一直在悄悄发生的进化 。
一个引人入胜的趋势是 , 半监督学习的可能会变成看起来更像这样的东西:
未标注数据|实践中完全没用的半监督学习,正在悄然的进化出超能力文章插图
这将改变所有目前半监督学习领域的难题 。
这些曲线符合我们理想中的半监督方法的情况:数据越多越好 。 半监督学习和监督学习之间的差距 , 也应该是严格成正比的 , 即使是监督学习表现的很好的领域 , 半监督学习也应该能表现的很好 。