文章详情

度量学习中损失函数的学习与深入理解

日期:2021-04-08 02:03
浏览次数:1704
摘要: 『深度概念』度量学习中损失函数的学习与深入理解 0. 概念简介 度量学习(Metric Learning)江苏快3,也称距离度量学习(Distance Metric Learning江苏快3,DML) 属于机器学习的一种江苏快3。其本质就是相似度的学习江苏快3江苏快3,也可以认为距离学习江苏快3江苏快3。因为在一定条件下江苏快3,相似度和距离可以相互转换江苏快3。比如在空间坐标的两条向量江苏快3江苏快3,既可以用余弦相似度的大小,也可以使用欧式距离的远近来衡量相似程度江苏快3江苏快3。 一般的度量学习包含以下步骤: Encoder编码模型:用于把原始数据编码为特征向量(重点如何训练模型) 相似度判别算法:将一对特征...

『深度概念』度量学习中损失函数的学习与深入理解

0. 概念简介

度量学习(Metric Learning)江苏快3,也称距离度量学习(Distance Metric Learning江苏快3江苏快3江苏快3,DML) 属于机器学习的一种江苏快3。其本质就是相似度的学习江苏快3江苏快3,也可以认为距离学习江苏快3江苏快3江苏快3。因为在一定条件下江苏快3江苏快3,相似度和距离可以相互转换江苏快3。比如在空间坐标的两条向量,既可以用余弦相似度的大小江苏快3江苏快3,也可以使用欧式距离的远近来衡量相似程度江苏快3江苏快3。

一般的度量学习包含以下步骤:

Encoder编码模型:用于把原始数据编码为特征向量(重点如何训练模型)

相似度判别算法:将一对特征向量进行相似度比对(重点如何计算相似度,阈值如何设定)

基于深度学习的度量学习算法中江苏快3江苏快3,可以分为两个流派:

网络设计派:代表孪生神经网络(Siamese network)

损失改进派:代表 xx-softmax

本文介绍重点是损失改进派江苏快3江苏快3江苏快3,是*近发展迅速江苏快3,应用广泛的方法江苏快3江苏快3。

在人脸识别与声纹识别这种度量学习算法中江苏快3,算法的提高主要体现在损失函数的设计上,损失函数会对整个网络的优化有着导向性的作用江苏快3?江苏快3江苏快3?梢钥吹叫矶喑S玫乃鹗Ш?江苏快3,从传统的softmax loss到cosface, arcface 都有这一定的提高江苏快3。

无论是SphereFace、CosineFace还是ArcFace的损失函数江苏快3,都是基于Softmax loss来进行修改的江苏快3。

Base line

Softmax loss

各种延伸的算法

Triplet loss, center loss

*新算法

A-Softmax Loss(SphereFace),  Cosine Margin Loss, Angular Margin Loss, Arcface

Softmax loss

 这就是softmax loss函数,表示全连接层的输出江苏快3江苏快3。在计算Loss下降的过程中江苏快3江苏快3,我们让 的比重变大江苏快3,从而使得log() 括号内的数更变大来更接近1,就会 log(1) = 0江苏快3江苏快3,整个loss就会下降江苏快3江苏快3。其中W和b就是分类层参数江苏快3江苏快3江苏快3,其实就是*后学习到的分类中心,对应下图就是每种颜色对称轴江苏快3,各种颜色点的集合就是x=encoder(row)江苏快3江苏快3,就是分类层前面一层的输出江苏快3江苏快3江苏快3。

下面图如何理解呢江苏快3江苏快3?倒数**层输出不应该是很多维吗江苏快3?

形象的理解:当做是一个球体江苏快3江苏快3江苏快3江苏快3,但是为了可视化方便江苏快3,把球给压扁了。就成为了二维的图像江苏快3。(个人理解)

如何操作江苏快3?应该通过降维方法江苏快3江苏快3。

这样如何完成分类的江苏快3江苏快3江苏快3?

我们知道江苏快3江苏快3,softmax分类时取的是*大那类(argmax)江苏快3,只要目标那一类大于其他类就可以了江苏快3江苏快3江苏快3江苏快3。反映在图上,每个点与各类中心的距离(W与b决定),距离哪个中心*近就会分成哪一类江苏快3江苏快3。

可以发现江苏快3,Softmax loss做分类可以很好完成任务江苏快3江苏快3,但是如果进行相似度比对就会有比较大的问题

(参加[深度概念]·Softmax优缺点解析)

L2距离:L2距离越小江苏快3江苏快3江苏快3江苏快3,向量相似度越高江苏快3江苏快3江苏快3??赡芡嗟奶卣飨蛄烤嗬耄ɑ粕┍炔煌嗟奶卣飨蛄烤嗬耄躺└?/span>

cos距离:夹角越小江苏快3,cos距离越大江苏快3江苏快3,向量相似度越高江苏快3?江苏快3江苏快3江苏快3?赡芡嗟奶卣飨蛄考薪牵ɑ粕┍炔煌嗟奶卣飨蛄考薪牵躺└?/span>

总结来说:

Softmax训练的深度特征江苏快3江苏快3江苏快3,会把整个超空间或者超球江苏快3江苏快3,按照分类个数进行划分江苏快3,保证类别是可分的江苏快3,这一点对多分类任务如MNIST和ImageNet非常合适江苏快3江苏快3,因为测试类别必定在训练类别中江苏快3。

Softmax并不要求类内紧凑和类间分离江苏快3,这一点非常不适合人脸识别任务江苏快3,因为训练集的1W人数,相对测试集整个世界70亿人类来说江苏快3江苏快3江苏快3江苏快3,非常微不足道江苏快3,而我们不可能拿到所有人的训练样本,更过分的是江苏快3江苏快3,一般我们还要求训练集和测试集不重叠江苏快3江苏快3江苏快3。

所以需要改造Softmax江苏快3,除了保证可分性外江苏快3江苏快3,还要做到特征向量类内尽可能紧凑江苏快3,类间尽可能分离江苏快3江苏快3。

这种方式只考虑了能否正确分类江苏快3江苏快3,却没有考虑类间距离。所以提出了center loss 损失函数江苏快3。(paper)

Center loss

center loss 考虑到不仅仅是分类要对江苏快3,而且要求类间有一定的距离。上面的公式中表示某一类的中心,表示每个人脸的特征值江苏快3。作者在softmax loss的基础上加入了江苏快3,同时使用参数来控制类内距离江苏快3江苏快3江苏快3,整体的损失函数如下:

3. Triplet Loss

三元组损失函数江苏快3江苏快3,三元组由Anchor江苏快3, Negative江苏快3江苏快3江苏快3, Positive这三个组成江苏快3江苏快3江苏快3。从上图可以看到江苏快3江苏快3,一开始Anchor离Positive比较远,我们想让Anchor和Positive尽量的靠近(同类距离)江苏快3,Anchor和Negative尽量的远离(类间距离)。

表达式左边为同类距离 江苏快3江苏快3江苏快3,右边为不同的类之间的距离江苏快3。使用梯度下降法优化的过程就是让类内距离不断下降江苏快3江苏快3江苏快3,类间距离不断提升江苏快3,这样损失函数才能不断地缩小江苏快3。

上面的几个算法都是比较传统老旧的江苏快3江苏快3,下面说一下比较新的算法江苏快3江苏快3。

4. L-softmax

前面Softmax loss函数没有考虑类间距离江苏快3江苏快3,Center loss函数可以使类内变得紧凑江苏快3,但没有类间可分江苏快3江苏快3,而Triplet loss函数比较耗时江苏快3江苏快3,就产生了一下新的算法江苏快3江苏快3。

softmax函数开始就做了比较精细的改动江苏快3江苏快3,从softmax 函数log里面的转化到江苏快3江苏快3。L-softmax函数不仅希望类间距离拉的更大,还能够把类内距离压缩的更紧凑江苏快3。

把其中的cosθ改成了cos(mθ)江苏快3江苏快3,

m倍θ起到了增加 margin 的效果江苏快3,让类内距离更加紧凑江苏快3,同时类间距离变大。m越大类间距离就越大,因为在(0, π)区间cos函数单调递减,m越大 cos(mθ)趋向于0江苏快3江苏快3。

5. SphereFace(A-Softmax)

A-softmax 是在 L-softmax 函数上做了一个很小的修改江苏快3江苏快3江苏快3,A-softmax 在考虑 margin时添加两个限制条件:将权重W归一化 江苏快3江苏快3,b = 0江苏快3。这使得模型的预测仅取决于 W 和 X 之间的角度江苏快3江苏快3。

6. CosFace

cosface的loss函数如下:

上式中江苏快3江苏快3江苏快3,s为超球面的半径,m为margin江苏快3江苏快3江苏快3江苏快3。

7. ArcFace

对比arcface和cosface这两个函数,发现arcface是直接在角度空间中*大化分类界限江苏快3江苏快3,而cosface是在余弦空间中*大化分类界限江苏快3,这样修改是因为角度距离比余弦距离在对角度的影响更加直接江苏快3江苏快3江苏快3。  

分类的决策边界如下:

 arcface算法流程如下:

---------------------

作者:小宋是呢

来源:CSDN

原文:https://blog.csdn.net/xiaosongshine/article/details/93004534

版权声明:本文为博主原创文章江苏快3江苏快3,转载请附上博文链接江苏快3!

下一篇: 机器视觉
上一篇: 暂无

粤公网安备 44030602002639号

江苏快3