本文主要用于介绍LeCun团队提出的一种相似性度量的方法。本笔记主要为方便初学者快速入门,以及自我回顾。
论文链接:http://yann.lecun.com/exdb/publis/pdf/chopra-05.pdf
基本目录如下:
- 摘要
- 核心思想
- 总结
------------------第一菇 - 摘要------------------
1.1 论文摘要
我们提出了一种方法用于从数据中去训练学习相似度的评价指标。这个方法可以被用于识别或者验证任务,通常是那种类别的数量很大,或者说是在训练的时候不确定的,然后每一个类别的训练样本又很小的。基本的思想原理就是去学习一个方法,该方法能够映射输入的特征到目标空间,然后在目标空间使用L1正则,用于近似评估输入空间的语义(semantic)距离。该方法能够被用于人脸验证任务。学习的过程就是去最小化度量损失函数,让相似的配对图之间的距离能够减少,而不相似的配对图的距离增大。整个从一个纬度空间映射到另一个纬度是通过卷积网络实现的,这种网络对各种图片的几何变化具有很好的鲁棒性。整套系统在Purdue/AR人脸数据库(具有丰富的姿态,光照,表情,位置等)上进行了测试,效果还是可以的~
------------------第二菇 - 核心思想------------------
2.1 核心思想
传统用于分类的判别式方法,包括神经网络,支持向量机等,都需要提前知道所有的类别分类。并且还希望所有的类别的样本是均匀分布的,且样本的类别数量最好是可控的(大概在100左右)。但是这种方法却并不适用于那种类目的数量很大,且在训练阶段只有一部分的样本是已知的情况。比如,人脸检测和人脸验证等。这种实际的应用场景,往往一个类别的数量是非常少的,且类目数量巨大。通常处理这种情景的办法都是基于“距离”度量的,另外一种就是基于生产式模型。
本文提出的一种解决办法就是从数据中去学习一种相似度的度量方法。这种相似度的度量方法后续可以用于匹配新的样本与已知样本。该方法的核心思想就是将输入样本映射到目标空间,然后在目标空间中用一种评估方法来衡量输入的“语义”距离。
接下来,我们就来仔细研读一下,整一套框架体系是如何搭建的。
2.1.1 Siamese Architecture
整体的网络架构如下图所示,
Siamese Architecture.jpg假设和就是我们的一组输入图片,就是一个二分类的标签,如果这组图片相似(属于同一个人)则为1,如果不相似则为0。然后就是共享的参数,和就是映射后的特征值,则我们可以定义一个标量“能量方程(energy function)”,
给予2组图片,其中一组是相似的,一组是不相似的,则整套机制应该符合以下的条件,
其中参数就可以被解释为是margin(边缘)
为了简化公式的表达,下文将用来表示和来表示。
本文将考虑一组训练样本,包括1对相似的图片()和1对不相似对图片(),定义总的损失函数为,
其中就是相似组对的损失,就是不相似组对的损失。
经过论文中(详见论文)的一系列推导,最终推导出的公式为,
损失函数.jpg其中就是一个常数,也就是可调的超参数,也就是的上界。
至此,整一套架构到损失函数的设计已经讲明白了,具体的细节还需要去看原论文,以及更重要的还是要动手自己去实践体验。
------------------第三菇 - 总结------------------
3.1 总结
多实验实验后,再来重新记录一遍新得体会~
网友评论