首页 技术 正文
技术 2022年11月22日
0 收藏 820 点赞 4,375 浏览 1315 个字

参考博客:

L-margin softmax loss:https://blog.csdn.net/u014380165/article/details/76864572

A-softmax loss:https://blog.csdn.net/u011808673/article/details/80491361

AM-softmax loss:https://blog.csdn.net/fire_light_/article/details/79602310

arcface:https://blog.csdn.net/Fire_Light_/article/details/79602705

softmax loss:

人脸识别-arcface损失函数

N是样本的数量,i代表第i个样本,j代表第j个类别,fyi代表着第i个样本所属的类别的分数

fyi是全连接层的输出,代表着每一个类别的分数,

人脸识别-arcface损失函数   每一个分数即为权重W和特征向量X的内积人脸识别-arcface损失函数

每个样本的softmax值即为:

人脸识别-arcface损失函数

L-softmax loss:

假设一个2分类问题,x属于类别1,那么原来的softmax肯定是希望:人脸识别-arcface损失函数

也就是属于类别1的概率大于类别2的概率,这个式子和下式是等效的:人脸识别-arcface损失函数

large margin softmax就是将上面不等式替换为:人脸识别-arcface损失函数人脸识别-arcface损失函数

m是正整数,cos函数在0到π范围又是单调递减的,所以cos(mx)要小于cos(x)。通过这种方式定义损失会逼得模型学到类间距离更大的,类内距离更小的特征。

人脸识别-arcface损失函数

从几何的角度看两种损失的差别:

人脸识别-arcface损失函数

设置为cos(mx)后,使得学习到的W参数更加的扁平,可以加大样本的类间距离。

Large-Margin Softmax的实验效果:

人脸识别-arcface损失函数

A-softmax loss

A-softmax loss简单讲就是在large margin softmax loss的基础上添加了两个限制条件||W||=1和b=0,使得预测仅取决于W和x之间的角度。

softmax的计算:人脸识别-arcface损失函数

人脸识别-arcface损失函数可以写成人脸识别-arcface损失函数

若引入两个限制条件,人脸识别-arcface损失函数人脸识别-arcface损失函数

decision boundary变为人脸识别-arcface损失函数,只取决于角度了

则损失函数变为:人脸识别-arcface损失函数

在这两个限制条件的基础上,作者又添加了和large margin softmax loss一样的角度参数,使得公式变为:

人脸识别-arcface损失函数

AM-softmax

在A-softmax的基础上,修改Cos(mθ)为一个新函数: 人脸识别-arcface损失函数

与ASoftmax中定的的类似,可以达到减小对应标签项的概率,增大损失的效果,因此对同一类的聚合更有帮助

然后根据Normface,对f进行归一化,乘上缩放系数s,最终的损失函数变为:

人脸识别-arcface损失函数

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

Asoftmax是用m乘以θ,而AMSoftmax是用cosθ减去m,这是两者的最大不同之处:一个是角度距离,一个是余弦距离。

之所以选择cosθ-m而不是cos(θ-m),这是因为我们从网络中得到的是W和f的内积,如果要优化cos(θ-m)那么会涉及到arccos操作,计算量过大。

arcface

人脸识别-arcface损失函数

分类正确label的值为人脸识别-arcface损失函数,cos函数在(0,1)内是单调递减的,加上m,会使该值变得更小,从而loss会变得很大。

这样修改的原因:角度距离比余弦距离在对角度的影响更加直接

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,991
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,505
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,349
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,134
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,766
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,844