使用半监督学习从研究到产品化的3个教训
作者:Varun Nair
编译:ronghuaiyang
导读
作者总结了自己在使用半监督学习进行研究和产品化的过程中踩过的一些坑 , 非常的有实际意义 。
文章插图
我从2019年6月开始读的一堆半监督式学习的论文中 , 最上面是我读过的第一篇论文:MixMatch —— 我不建议为了更好地回忆你读过的东西而在每一篇文章上画下划线 。
如今 , 大多数深度学习算法的成功 , 在很大程度上是几十年研究、GPU和可用数据不断增长的的结果 。 但不是任何类型的数据 —— 而是那些丰富的、干净的、带有标签的数据 。
像ImageNet, CIFAR10, SVHN等数据集 , 已经帮助研究人员在计算机视觉任务上取得显著进展 , 并且对我们自己的实验非常有用 。 然而 , 对于许多寻求从这一进步中获益的应用(如医学)来说 , 棘手的问题恰恰是数据必须是“丰富的、干净的、有标签的”这一事实 。
半监督学习(SSL) , 一个结合了监督和非监督学习的子领域 , 在过去几年中在深度学习研究社区中越来越受欢迎 。 很有可能 , 至少在短期内 , SSL方法可能成为标签密集型监督学习和未来数据高效建模之间的桥梁 。
在这篇文章中 , 我们将讨论在生产环境中什么时候应该考虑使用SSL方法 , 以及在Uizard上使用它们来改进物体检测模型所获得的经验教训 。
我们希望通过展示SSL是如何工作的 , 以及什么时候不工作 , 通过分享我们从研究到生产的过程中学到的技巧 , 我们可以激励你在工作冒险用SSL试试 , 释放你的未标记数据的潜力 。
简而言之 , 我们强调以下几点教训:
- 简单为王 。 在SSL中 , 从研究到生产的最成功的方法是那些最容易复制的方法 。 具体来说 , 我们将详细阐述“Self-Training with Noisy Student”对我们的作用 。
- 使用启发式的伪标签优化可以是非常有效的 。 伪标记是SSL方法中一个流行的组成部分 —— 我们发现 , 使用简单的启发式方法来优化未标记数据中的伪标记可以提高不同大小的未标记数据集的性能 。
- 半监督图像分类的提升很难转化为目标检测的提升 。 我们在SSL方面的大部分进展都是在图像分类性能方面进行的 , 并在目标检测方面进行类似的改进 , 但我们发现很难在实践中对它们进行适应 。 因此 , 在半监督目标检测领域需要进行更多的工作和研究 。
文章插图
半监督学习和监督学习的区别
顾名思义 , 半监督学习(SSL)指的是一类介于监督学习和非监督学习之间的算法 —— 旨在同时使用标记数据和非标记数据对分布进行建模 。
SSL的目标通常是比单独使用有标签的数据做得更好 , 能够建模目标分布 , 就好像我们也可以访问所有未标记数据的标签一样 。
这样的算法并不是一个新想法 , 尽管在过去的18个月中 , 在深度半监督学习方面已经有了相当多的兴趣、进展和应用 , 我们将在下面讨论 。
什么时候在产品中使用SSL是正确的?如果你正在考虑使用SSL解决一个问题 , 那一定是因为你的数据集很大 , 并且有许多未标记的数据 。 你的数据集的一部分可能被标记 , 当然标记越多的数据越好 —— 但希望至少有和标记数据一样多的未标记数据 , 或者可能更多 。
如果你可用的大多数数据都是带标签的 , 或者不带标签的数据集的分布与带标签的数据集明显不同 , 那么SSL现在可能并不适合你的应用 。 对于后一种情况 , 请查看域适应 。
考虑到这一点 , 在实际应用中有两个主要设置适合去研究SSL方法:
- 你正在处理一个高价值的问题 , 对于这个问题 , 仅使用标记数据不足以产生足够的性能 , 并且还有很多倍的(10-100x +)的未标记数据可用和/或容易获得 。
- 不看不知道 80%的人使用耳机的习惯都错了
- 研究发现许多iOS加密措施实际上未被使用
- 雷蛇RGB口罩真的来了!N95级别可重复使用
- 学习了大数据开发知识,但是面试却屡屡碰壁该怎么办
- 大一上学期学了Python,希望主攻大数据还应该学习什么语言
- 大一下学期转入计算机专业,寒假期间该重点学习什么内容
- Android 12或让未使用的App休眠以节省系统资源
- iOS 14.4版开始将对使用非原装摄像头的iPhone弹出警告
- 从运维岗转向开发岗,该选择学习Java还是Python
- 想学习编程,该从哪开始