使用半监督学习从研究到产品化的3个教训( 三 )
需要注意的是 , Noisy Student方法是一个任务无关的框架 , 可以被广泛应用:图像分类 , 目标检测 , 情感分析 , 等等 。 **对我们来说 , Noisy Student方法是我们尝试的所有技术中用于目标检测最成功的 。 **我们在后面会讨论为什么FixMatch的物体检测版本(STAC)和其他方法可能对我们无效 , 但是我们坚信 , 与其他方法相比 , Noisy Student的简单性和灵活性是我们在产品模型中看到改进的原因 。
为什么这么简单?现有的训练超参数和设置几乎没有改变 。 以下是整个管道所需要做的:
- 把我们现有的生产模型当作教师模型 。
- 编写一些脚本 , 与教师模型一起推断和改进未标记数据上的伪标签(关于伪标签改进的更多信息 , 请参阅lesson #2) 。
- 训练“学生”模型 , 增加噪音(增强等) 。
- 按照图中显示的框架重复这个过程 。
- 我们惊讶地发现 , 在使用Noisy Student方法时 , 未标记数据比标记数据少的情况下 , 我们的一些模型得到了改进 。 更多关于这个的内容 , 请参见lesson #2 。 一般来说 , 未标记数据越多越好 。
- 我们发现 , 在没有进行增强 , 比如dropout、随机深度或软伪标签的情况下 , 使用普通的自我训练 , 我们的学生模型的表现得到了改善 。 一旦增加了这些 , 就有可能进一步提高我们的性能 , 就像在ImageNet上那样 。 、
- 使用较大的学生模型的结果是有好有差的 , 对我们来说 , 这意味着在我们的检测模型中使用从ResNet-50到ResNet-101的主干 。
Lesson #2: 启发式伪标签优化可以非常有效果伪标签 , 也被称为 self-training , 是在SSL中出现的一个范式 , 早在20世纪60年代和70年代 , 因为它的简单而被坚持了下来 。 引入伪标签的深度SSL展示了使用有标签数据的时候 , 这个想法是如此的简单而强大 。 使用该模型在未标记数据上推断标签(现在叫伪标签) , 然后用标签数据和伪标签数据再进行训练 。 许多现在的SSL技术都在使用某种形式的伪标签 , 包括FixMatch和使用Noisy Student的Self-Training 。
然而 , 这些伪标签常常是有噪声的 , 需要某种形式的提纯才能使用 。 在FixMatch和Noisy Student中 , 这意味着对推断出的伪标签应用一个临界值(比如0.7或0.9) , 只取那些softmax confidence得分高于临界值的预测 。 我们发现这对于获得高质量的伪标签是一个有用的启发式方法 , 也发现对伪标签应用与其他领域特定的启发式方法在Noisy Student中有显著的效果 。
我们在讨论什么样的启发式?例如 , 你正在为一家房地产公司构建一个物体检测分类器 , 该模型需要为home中的不同物体提供边框 。 你注意到(教师)模型的预测通常是好的 , 然而 , 分类器倾向于对未标记的集合产生几个不正确的、高可信度的预测 , 其中一些梳妆台实际上是厨房岛 。
文章插图
这里有一些启发式的例子 , 我们可以选择优化这个标签:
- 如果厨房岛和床的预测出现在同一图像中 , 将厨房岛标签转换为梳妆台 。
- 如果梳妆台和厨房岛的预测出现在同一幅图像中 , 把厨房岛标签转换为梳妆台 。
- 如果厨房岛 , 床 , 和梳妆台的预测出现在同一图像 , 将厨房岛标签转换为梳妆台 。
- 不看不知道 80%的人使用耳机的习惯都错了
- 研究发现许多iOS加密措施实际上未被使用
- 雷蛇RGB口罩真的来了!N95级别可重复使用
- 学习了大数据开发知识,但是面试却屡屡碰壁该怎么办
- 大一上学期学了Python,希望主攻大数据还应该学习什么语言
- 大一下学期转入计算机专业,寒假期间该重点学习什么内容
- Android 12或让未使用的App休眠以节省系统资源
- iOS 14.4版开始将对使用非原装摄像头的iPhone弹出警告
- 从运维岗转向开发岗,该选择学习Java还是Python
- 想学习编程,该从哪开始