阅读小结:Large-Margin Softmax Loss for Convolutional Neural Networks

1252人阅读 评论(2) 收藏 举报

徐博最近一直在看我博客,肯定是想看我什么时候不更新,然后好嘲笑我。当然,不排除徐博已经爱上我的可能。



What:

改进SoftmaxLoss,显式的鼓励类间差异和类内相似,防止过拟合。 


在minist上的效果如下,可以看到用Lsoftmax的每一类的宽度小。(对应余弦距离小)




回顾SoftmaxLoss:

1. Softmax

就是一个 把一个向量归一到[0,1]的函数,输出也是向量。在matlab里就3行代码:

% X is input vector,  Y is output vector
E = exp(X - max(X,[],3));
L = sum(E,3);
Y = E/L;

2. Softmax Loss

前向

Loss = -log(Y(c_gt)); 

c_gt 是一个one-hot向量,比如[0,0,1,0,0,0,0,0],1的那一维就是正确类所在的序号,这里就是第3类。

所以Y(c_gt)就是ground truth那一类的softmax score。  这个score越接近1越好,对应的Loss越小越好

带入Y的softmax公式,那么可以化简为:Loss = -log(exp(X_gt-Xmax) / L) = -(X_gt-Xmax) + log(L) = Xmax + log(L) - X_gt;

其中Xmax就是向量X中最大值,X_gt 就是ground truth那一维上X的值, L同上面代码中的一样,是exp的和。

比如在minist上,我输入一张1的手写图片(gt_label=2,因为minist有0),最后得到向量是10维的,

[0.1,0.2,0.3,0.4,0,0,0,0]   那么Xmax =0.4, X_gt =0.2(在第二维)


反向bp

bp要输出和输入一样维度的向量。

Loss = Xmax + log(L) - X_gt;

Loss' = mt + E/L  - gt = mt + Y  - gt;  (mt,gt 是一个one-hot向量,比如[0,0,1,0,0,0,0,0],1的那一维就是之前max的那一维和gt_label的那一维)

matlab代码如下:

gradient = Y;
gradient(c_gt) = gradient(c_gt) -1;

其实我觉得mt应该也要加的,但我参考的matconvnet代码中没有加。不是很明白。


 3. Large-Margin Softmax Loss

目标函数的目标是要score高,所以感性上正确那一类的W会渐渐变成input同向,而其他W则会和input正交。

所以作者想出了一个办法,让它们同向或者正交没辣么容易。

就是加大夹角

m = 1就是原来的softmax。

使用下面这张图更好说明:

x到W1的夹角是 θ1,到W2的夹角是θ2

如果使用了Lsoftmax,相当于要求 W1到 Decision Boundary Class2的夹角 为 mθ1。


在实际使用时,cos(mθ)可以用 cos(θ)来表示。而cos(θ)可以用 Wx/ llWll llxll 来得到。






查看评论

损失函数改进之Large-Margin Softmax Loss

最近几年网络效果的提升除了改变网络结构外,还有一群人在研究损失层的改进,这篇博文要介绍的就是较为新颖的Large-Margin softmax loss(L-softmax loss)。Large-M...
  • u014380165
  • u014380165
  • 2017-08-08 08:23:24
  • 3650

【论文笔记】Large-Margin Softmax Loss for Convolutional Neural Networks

参考文献: Liu W, Wen Y, Yu Z, et al. Large-Margin Softmax Loss for Convolutional Neural Networks[C]//P...
  • shaoxiaohu1
  • shaoxiaohu1
  • 2016-11-25 21:54:36
  • 4623

损失函数改进之L-Softmax Loss

深度学习交流QQ群:116270156最近几年网络效果的提升除了改变网络结构外,还有一群人在研究损失层的改进,这篇博文要介绍的就是较为新颖的Large-Margin softmax loss(L-so...
  • sinat_24143931
  • sinat_24143931
  • 2018-01-11 14:04:19
  • 268

论文阅读:ICML 2016 Large-Margin Softmax Loss for Convolutional Neural Networks

待续
  • u014230646
  • u014230646
  • 2016-12-23 11:47:49
  • 429

大裕量Softmax 损失函数--Large-Margin Softmax Loss for Convolutional Neural Networks

ICML2016 Large-Margin Softmax Loss for Convolutional Neural Networks本文针对CNN网络中的 Softmax Loss 做出改进,使...
  • cv_family_z
  • cv_family_z
  • 2016-10-17 16:10:19
  • 3104

《Large-Margin Softmax Loss for Convolutional Neural Networks》

机器学习中的一个任务是学习具有判别性的特征,使得类内距离较小,类间距离较大,或者说使得学习到的特征具有类内的紧致性和类间的分离性。传统的做法是利用contrastive loss,triplet lo...
  • Dilusense
  • Dilusense
  • 2017-01-20 04:44:41
  • 1084

large margin-人脸识别

最近新出的 角度间隔使得在lfw 数据库上能达到一个比较好的效果。 重新读了一下large margin 的文章,感觉如出一辙。 思想是一样的,要把两个有重叠的区域,尽可能的分开。 largin ma...
  • keyanxiaocaicai
  • keyanxiaocaicai
  • 2017-06-11 20:44:05
  • 510

机器学习(十七)- SVMs - Large Margin Classification

Large Margin Classification Optimization Objective 对于SVMs,我们从目标函数开始讲起,由于SVM的目标函数和逻辑回归的目标函数很相似,所以...
  • mike112223
  • mike112223
  • 2017-07-28 10:16:06
  • 588

损失函数改进总结

深度学习交流QQ群:116270156 这篇博客主要列个引导表,简单介绍在深度学习算法中损失函数可以改进的方向,并给出详细介绍的博客链接,会不断补充。 1、Large Marge So...
  • sinat_24143931
  • sinat_24143931
  • 2018-01-11 14:00:54
  • 256

损失函数改进方法之A-softmax loss

论文:SphereFace: Deep Hypersphere Embedding for Face Recognition 论文链接:https://arxiv.org/abs/1704.0806...
  • u014380165
  • u014380165
  • 2017-08-09 08:19:31
  • 4706
    个人资料
    持之以恒
    等级:
    访问量: 9万+
    积分: 1292
    排名: 3万+
    关于我