缘起:
有人说起深度度量学习,就会觉得这里面水文多,或者觉得鱼龙混杂,参见曾经上了知乎热榜的一个问题:
如何看待研究人员声称近13年来在 deep metric learning 领域的进展实际并不存在?
作为在这个坑里摸爬了一段时间,也发了两三篇顶会的从业人员.我的看法是,有的文章确实是纯粹的水文,有些文章还是挤挤的话,还是有些营养的.与其去嘲笑别人,不如从别人的亮点中获得启发.这里我以随笔的形式,不定时的分享我对这个领域的一些文章的思考,破开文章的层层包装,直达本质,让读者不被它们的层层套路所误导,迷失方向,甚至有了一些偏见,从而更加快速地对DML领域有个我认为的清晰正确的见解.
如果大家遇到一些有意思的文章,也可以在评论里告诉我,我可以去看看,并写下我的感想.
总览
我认为,metric learning的方法有两大分支:pair-based 和 proxy-based.pair-based是基于真实的样本对,比如contrastive loss, triplet loss, N-pair loss和MS loss等,而proxy-based是利用proxy去表示类别的特征,或者样本特征,比如说softmax, Proxy-NCA等.proxy是一个非常宽泛的概念,在softmax中,它是fc层的列;在memory的方法中,它是存储在memory中的特征.
pair-based的方法的好处在于简单准确,准确的意思是你的feature是从当前模型前向出来的,可以精确的表示当前的模型;缺点在于计算量大,信息局限,pair-based只可以利用当前mini-batch的信息,不能看到模型在整体的数据的表现,一直在做局部的优化.
那么,proxy的好处在于可以有global的信息,但是,缺点是什么?proxy是基于历史信息,或者是网络一步步学过来的,未必能够准确的表达当前模型.
论文点评
1