原问题来源于知乎
MoCo V2加了projection head 后在ImageNet linear classification上涨了6个点,并加上了SimCLR的augmentaion之后吊打了SimCLR,最后称large batches是不需要的....
一直以来对projection head
这块总觉得是个谜....
比如在person re-id等metric learning的task里面,有时候总是在加一个non-linear projection head,在head之前用ID loss训练,在head之后用metric learning loss训练。head之前和head之后的embedding空间到底哪个更适合retrieve任务,本质有何不同总是一个疑问。
比如hinton这篇提到head之前的feature presentation更好做分类,是因为metric learning loss会让颜色等信息丢失(因为data augmentation有color distortion),但是如果没有这些augmentation的话,这个head还需要吗,以及metric learning task的时候,什么时候需要这种non-linear head,加了之后head前后的空间feature都适合什么样的loss去训练
以及包括head中的L2 normalization去掉之后,会让contrastive task精度变高,但会导致representation的结果变差。这些现象都很神奇...但一直都没什么严格的解释。
该作者的回答下一位层主有更进一步的解释:
层主:
第一,嵌入一定与目标函数有关,使用不同目标一定影响嵌入。
第二,从信息瓶颈的角度,网络是逐渐丢掉非必要信息的,加入head后,取投影前的空间是会保留更多信息的。
第三,加入L2约束本质是降低head的复杂度,使得head不会为所欲为,也就变相减少了head处理信息的能力,其前的空间保留的信息就多了,或者说整个网络会更稳定一些了,泛化性改善了。
作者:
这些解释都很显然,但是有些情况用这些道理解释不了。比如说reid任务的head层(eg.BNneck)虽说head之前的信息更多,但是并没有发现head之前的feature更有利于retrieve的MAP。虽说信息更多这一点是同意的,但是更多的信息是否是对最终的metric是有利的呢?这篇文章是有利的,更多时候对于不同的任务结论也不同。不用层用不同的loss,后面的层的loss梯度会对前面一层的feature产生什么有利的影响也是个疑问。这个L2 norm层直觉上的确是为了让contrastive loss不那么放纵的改变embedding空间,但是去掉之后会对最后contrastive task MAP有所提升是不能理解的,人脸那一套早已证实L2norm层之后的feature更有利于contrastibe task。
层主:
我觉得是没有固定的结论的,只是能不能讲通的问题,具体影响要看具体问题,毕竟我们还是局部优化,也许只有对真正的全局最优解会有明确结论,我觉得这里只是能否说通的问题。
使用嵌入+投影的结构与单纯使用嵌入之间到底差别在哪里,如何理论刻画是个有点意思的问题。感觉上使用二阶段结构是加了先验,有点用多矩阵相乘完成矩阵填充的意思。