增大表名最大长度_缩小类内距离增大类间距离策略

博客介绍了深度学习中用于区分相似样本的损失函数,如Triplet Loss和L-Softmax。Triplet Loss通过优化锚点、正样本和负样本之间的距离来学习区分特征。L-Softmax则通过加大类间距离,缩小类内距离,增强了模型的区分能力。此外,还提到了A-Softmax和Am-Softmax的改进,其中A-Softmax进行了权重归一化,而Am-Softmax引入了加性边距,简化了计算。
摘要由CSDN通过智能技术生成

声明只是一个搬运工,搬运大牛的文章,对自己只是做知识的梳理,以备以后查找

1.triplet loss

最初是在FaceNet: A Unified Embedding for Face Recognition and Clustering论文中提出的,可以学到较好的人脸的embedding; 是深度学习中的一种损失函数,用于训练差异性较小的样本,如人脸等, Feed数据包括锚(Anchor)示例、正(Positive)示例、负(Negative)示例,通过优化锚示例与正示例的距离小于锚示例与负示例的距离,实现样本的相似性计算;

1.1 原理:

输入是一个三元组<a, p, n>

a: anchor ,

p: positive, 与 a 是同一类别的样本;

n: negative, 与 a 是不同类别的样本

公式是:

L=max(d(a,p)−d(a,n)+margin,0)

f504001a390266550547efe09038ad47.png

triplet 存在较多变种,有兴趣的可以找度娘了解

参考: Triplet Loss 损失函数

https://blog.csdn.net/u013082989/article/details/83537370

2. softmax 改进版本

L-softmax,A-softmax以及Am-sorfmax

2.1 L-softmax

作者:AI图哥

来源:CSDN

原文:https://blog.csdn.net/sinat_24143931/article/details/79033462

softmax loss 公式

yj是全连接层第j个元素的输出,n表示训练数据的数量,log函数的括号里面的内容就是softmax

上面这个式子就是W和x的内积,因此可以写成下面这样:

a58fd1ce07c82561722b6ddc14203cf4.png

因此Li就变成下式:

bcb29e63b36428ecebcc7ccca6966aa9.png

那么Large Margin Softmax Loss是什么意思?

假设一个2分类问题,x属于类别1,那么原来的softmax肯定是希望:

df925d9696220b8a07c29ef47ee82e77.png

也就是属于类别1的概率大于类别2的概率,这个式子和下式是等效的:

df354b35f3cab31ab03cf218522055c9.png

那么Large Margin Softmax就是将上面不等式替换成下式:

b17aee341b97b5222da24839cf81c701.png

因为m是正整数,cos函数在0到π范围又是单调递减的,所以cos(mx)要小于cos(x)。m值越大则学习的难度也越大,这也就是最开始Figure2中那几个图代表不同m值的意思。因此通过这种方式定义损失会逼得模型学到类间距离更大的,类内距离更小的特征。

figure4是从几何角度直观地看两种损失的差别,L-softmax loss学习到的参数可以将两类样本的类间距离加大。通过对比可以看到L-softmax loss最后学到的特征之间的分离程度比原来的要明显得多

340fe3af692944fd26cbb2f45bb0ca58.png

因此L-softmax loss的思想简单讲就是加大了原来softmax loss的学习难度。借用SVM的思想来理解的话,如果原来的softmax loss是只要支持向量和分类面的距离大于h就算分类效果比较好了,那么L-softmax loss就是需要距离达到mh(m是正整数)才算分类效果比较好了

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

2.2 A-softmax

作者:@Thaurun

转载请注明出处:http://www.cnblogs.com/heguanyou/p/7503025.html

推导和原理请看上面连接,比较详细,我只copy其中与L-softmax

对比内容,非常赞!!

与L-Softmax的区别

A-Softmax与L-Softmax的最大区别在于A-Softmax的权重归一化了,而L-Softmax则没的。A-Softmax权重的归一化导致特征上的点映射到单位超球面上,而L-Softmax则不没有这个限制,这个特性使得两者在几何的解释上是不一样的。如图10所示,如果在训练时两个类别的特征输入在同一个区域时,如下图10所示。A-Softmax只能从角度上分度这两个类别,也就是说它仅从方向上区分类,分类的结果如图11所示;而L-Softmax,不仅可以从角度上区别两个类,还能从权重的模(长度)上区别这两个类,分类的结果如图12所示。在数据集合大小固定的条件下,L-Softmax能有两个方法分类,训练可能没有使得它在角度与长度方向都分离,导致它的精确可能不如A-Softmax。

c45854a16bc631e96a806be3ee0efea1.png

图10:类别1与类别2映射到特征空间发生了区域的重叠

af49889c18639ef42a977a41b6fe0b3b.png

图11:A-Softmax分类可能的结果

b9b152fd8f7a238fedec0ab4c5b12f4f.png

图12:L-Softmax分类可能的结果

2.3 Am-softmax

论文链接:Additive Margin Softmax for Face Verification

AMSoftmax

这就是本文新提出的损失函数了。其变化就在于修改了Cos(mθ)为一个新函数:

f17c8019763540c18aea7fa22815bcd1.png

与ASoftmax中定的的类似,可以达到减小对应标签项的概率,增大损失的效果,因此对同一类的聚合更有帮助根据Normface,对f进行归一化,乘上缩放系数s,最终的损失函数变为:

362199955caa56a58ede6e5a89fa4992.png

这样做的好处在于ASoftmax的倍角计算是要通过倍角公式,反向传播时不方便求导,而只减m反向传播时导数不用变化

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

作者:Fire_Light_

来源:CSDN

原文:https://blog.csdn.net/fire_light_/article/details/79602310

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

内容请参考https://blog.csdn.net/Fire_Light_/article/details/79602310

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值