不需要负样本对的SOTA的自监督学习方法:BYOL( 四 )


投影z和z'之间的平均余弦相似度 。 下方(蓝色)条是同一幅图像x的投影之间的相似性 , 上方(红色)条是同一小批中不同图像的投影之间的相似性 。 非MLP归一化实验和层归一化实验的所有表示具有很高的相似性 , 表明模态发生了坍塌 。 这些结果支持我们对batch normalization的理解 , 即隐含地引入了使用minibatch统计的对比学习 。
另外的实验早期的batch normalization层具有相同的效果(最终)到目前为止 , 我们只看了训练的前10个epochs 。 当我们训练的时间更长时 , 我们发现ResNet编码器中的batch normalization层与MLPs中的具有相似的效果 。 在编码器中(而不是MLPs中)进行batch normalization后 , 网络首先学习了坍塌了的表示的函数 , 然后逐渐开始从正样本中分离出负样本 。
删除所有batch normalization将完全阻止学习 —— 除非至少使用了一种技术来防止模式坍塌 。 当我们从ResNet编码器中删除批处理归一化并使用SGD训练网络时 , 它无法学习任何东西(正是我们上面描述的原因) 。
然而 , 当我们联系到作者时 , 他们友好地指出 , 我们并没有使用与BYOL原始论文完全相同的设置 。 通过从SGD切换到分层学习率自适应(LARS)或增加权值衰减 , 我们的网络能够再次学习(尽管性能显著下降) 。
我们研究了每一种技术 , 发现它们只是防止模式坍塌的替代方法 。 此外 , 它们自身的健壮性明显较差 —— 它们依赖于仔细的超参数调优 , 如果不调优 , 它们很容易出现模式坍塌并且性能糟糕 。 因此 , 我们得出结论 , batch normalization似乎是防止BYOL中模式坍塌的最健壮的技术 。
总结有趣的是 , 即使在损失函数中没有负样本 , BYOL中的batch normalization可以隐式地引入了对比学习 。 这一发现在事后看来是有意义的 —— 没有学习什么时候有模式坍塌 , 而batch normalization使模式崩溃变得不可能!无论是不同的图像彼此对比或对比每一图像与所有图像的平均值 , 学习的主要部分是理解事物之间的差异 。
除了阐明batch normalization如何在对比学习中工作之外 , 这还可以作为一个教训 , 说明batch normalization可能会产生意想不到的副作用 。 通过batch normalization , 网络不再是纯粹的学习与输入相应的输出的函数了 。 由于这个和其他原因 , 在训练中可能需要避免batch normalization 。 我们建议其他从业者也许应该默认使用其他替代方案 , 比如layer normalization或weight standardization with group normalization 。
对未来的工作来说 , 相反的方向也是一个有趣的途径 。 与其因为这种隐式对比效果而避免batch normalization , 不如直接利用它 , 允许在层中(而不是最后一层)进行隐式对比学习 , 这可能会很有趣 。 一个有趣的开放问题是 , 在训练神经网络中 , batch normalization的成功有多少是由内部表示的分离直接造成的 。
最后 , 我们发现BYOL(使用正确的超参数)甚至在没有显式的对比损失或通过batch normalization的隐式对比机制的情况下也能学到一些东西 , 这一点很有趣 。 虽然我们不建议任何从业者在实践中使用这些网络 , 我们认为这是一个新颖有趣的贡献 , 这个行为可能会提供一个有价值去了解为什么这些技术(weight decay, weight standardization以及LARS)非常有效 。
英文原文:
【不需要负样本对的SOTA的自监督学习方法:BYOL】更多内容 , 请关注微信公众号“AI公园” 。