知行编程网知行编程网  2022-05-22 11:00 知行编程网 隐藏边栏 |   抢沙发  87 
文章评分 0 次,平均分 0.0

如何理解与看待在cvpr2020中提出的circle loss?

来自 | 知乎    作者 | Yifan Sun

链接 | https://www.zhihu.com/question/382802283/answer/1116269890
本文仅作学术交流,如有侵权,请联系删除

如何理解与看待在cvpr2020中提出的circle loss?

首先,如果仅仅从实用角度,实际上Circle Loss在多个任务中(例如行人reid、人脸识别、车辆reid、通用细粒度检索、甚至网友所做的声纹识别)、超大规模数据集上都取得了正面的效果。正式代码将作为一个重要baseline方法发布到MegEngine中,欢迎大家使用。

我主要解释本文的两个核心,一是公式1提供的unfied视角。可以说,对deep reprentation learning或者loss function不太熟悉的同学可能会心急地跳到公式4和公式6,因为它是circle loss“涨点”的主要秘诀所在。但其实公式一信息量也很大。可以说,内行看公式一,加上自己的体会,会看见不同的“哈姆雷特”。原文对公式1解释不多,尤其是对于为什么这么做一笔带过“It iterates through every similarity pair to reduce ”,但其实公式1提供的unfied视角是很重要的。它允许我们不经过任何modification,用完全相同的一个数学表达,兼容pairwise learning和classification learning两种基本的深度特征学习方式。

如何理解与看待在cvpr2020中提出的circle loss?

虽然有人会好奇,觉得之前NPair loss似乎也是用CE loss的表达式来做pairwise learning,但是实际上,它是无法直接处理multiple postive的情况的——它默认一个anchor只有一个positive sample。NPair loss在实验中,甚至得出推测说,这种形式无法处理多positive的情况。但Circle Loss的公式1,却是第一次能够不经任何modification,直接兼容分类和pairwise两种学习模式的。正是因为这个原因,审稿人一致认为circle loss为两种深度特征学习提供了一个unfied framework,是非常有意义的。

细节解读:完成公式1,真正用一个公式来表达pairwise learning和classification learning,需要摆脱一个习惯性解读:当我们在利用classification loss function(如CE Loss)学习时,是在让一个样本属于它自己类的概率尽量大(尽管相似性及相似性margin解读在large margin softmax之后也流行了起来,但这个概率解读仍然是并行的主流解读)。现在让我们考虑这样一个问题——假如给定一个样本,会有多个positive similarity 与之相关(就像pairwise learning中常见的那样),那么,我们该如何泛化CE Loss,来让它能够直接处理多个positive similarity呢?这个问题很容易给出如下错误答案

如何理解与看待在cvpr2020中提出的circle loss?

上述做法,是非常自然的:一个变成多个 ,那么我就把它们对应的exp项加起来咯。但这个做法会导致embedding学的并不好。这是因为,它试图增大 ,而这样做其实在对 进行easy mining——它总是highlight那些较大的 ,这也就意味着,只要有一个 到了比较大的值,优化就停止了。那么相反,我们看公式1,它不是这样的,它试图减小 ,它要求每个 都很大才善罢甘休。

言归正传强调一下,并不是说这个hard mining本身多么厉害。而是说,这样一个视角,可以让我们轻松跳过分类loss和pairwise loss在传统解读中的鸿沟,获得一个真正的统一的公式——无论相似性是利用样本与W(分类方式)、还是利用样本与样本(pairwise方式),都能直接利用它进行学习,并且实际上最终取媲美原本两种方式下各自SOTA的性能。就像A Metric Learning Reality Check中提到的“在过去的metric learning领域,大家从来不把人脸上的(分类)方法与pairwise版本的metric learning方法放到一起比较,这件事情很诡异”。我与两位作者Kevin Musgrave,Serge Belongie进行过交流,他们对circle loss做到这一点,并且是使用同一个公式,在两种模式下取得高水平,是非常认可的。

在我们已经有了这样一个general公式的基础上,我们进一步进行泛化让 。我们认为,优化 的方式是不够灵活且收敛目标相对模糊的。为此,我们简单地进行了一个泛化,把最小优化单元从 变成了 ,就获得了更灵活的优化和更明确的收敛目标。

如何理解与看待在cvpr2020中提出的circle loss?

这里值得一提的是,我们最初的做法其实不是这样,而是一个更加复杂的做法。这里不具体介绍。我们一边总结一遍改进,最终逐渐把方法的核心本质,总结到这样一个简单泛化。我相信,简单有效才是好的。

至于为什么这个简单的泛化能获得更好的优化效果,大家还是详细看看论文,这里的原因并不是一两句能说清楚,甚至可以承认,paper也没能给出最为彻底的分析,还有一些没探索清楚的地方。仔细思考的话是会有新发现的。

最后,再说一下我奉行的两个好习惯:
1. 从特殊到一般、从离散到连续,我们通常能找到更优美也更好的解决方法;
2. 即使是复杂的做法,也应该尽量用简单的角度来表达,这样才会获得更好的理解。

<pre style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;min-height: 1em;letter-spacing: 0.544px;white-space: normal;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;widows: 1;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong>完<strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong></span></strong></span></strong></section><section style="max-width: 100%;letter-spacing: 0.544px;white-space: normal;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;widows: 1;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;padding-left: 0em;padding-right: 0em;"><section style="margin-bottom: 15px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 25.5938px;letter-spacing: 3px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(0, 0, 0);box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 16px;font-family: 微软雅黑;caret-color: red;box-sizing: border-box !important;overflow-wrap: break-word !important;">为您推荐</span></strong></span></section><p style="margin: 5px 0px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 14px;">如何评价何恺明团队的最新工作RegNet?</span><br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"  /></p><p style="margin: 5px 0px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(87, 107, 149);font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;">MIT最新深度学习入门课,安排起来!</span></p><p style="margin: 5px 0px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(87, 107, 149);-webkit-tap-highlight-color: rgba(0, 0, 0, 0);cursor: pointer;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;">有了这个神器,轻松用 Python 写个 App</span></p><p style="margin: 5px 0px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 14px;">教育部:我国高校将为世界各国大学生提供线上课程</span><br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"  /></p><p style="margin: 5px 0px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 14px;">李飞飞经典CS231N课程2020季开课了!</span><br  /></p><section style="margin: 5px 32px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br  /></section></section></section></section></section></section></section></section></section>
如何理解与看待在cvpr2020中提出的circle loss?

本篇文章来源于: 深度学习这件小事

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享