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

原创 2016年09月26日 21:30:26

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



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 for Convolutional Neural Networks

参考文献: Liu W, Wen Y, Yu Z, et al. Large-Margin Softmax Loss for Convolutional Neural Networks[C]//P...

《Large-Margin Softmax Loss for Convolutional Neural Networks》

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

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

ICML2016 Large-Margin Softmax Loss for Convolutional Neural Networks本文针对CNN网络中的 Softmax Loss 做出改进,使...

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

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

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

待续

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

ICML2016 Large-Margin Softmax Loss for Convolutional Neural Networks本文针对CNN网络中的 Softmax Loss 做出改进,使...

Recurrent Convolutional Neural Networks for Text Classification阅读笔记

下面是我对这篇文章内容的整理,因为刚刚接触这一方向,读的这方面的文章还比较少,知识的了解也不够,如果有不对的地方还请大家批评指正,谢谢!                               ...

Understanding Convolutional Neural Networks for NLP(理解NLP中的卷积神经网络) 阅读笔记

什么是卷积? 每一次卷积相当于把低级的特征转换成更高级更抽象的特征 图片卷积的时候需要注意位置不变性和组合性,在NLP中则不需要,因为在图片中相近的像素语义也相近,...
  • aPYXa
  • aPYXa
  • 2016年07月19日 15:39
  • 765

论文阅读:End-to-End Learning of Deformable Mixture of Parts and Deep Convolutional Neural Networks for H

human pose estimation DPM End-to-End Learning of Deformable Mixture of Parts and Deep Convolutional ...

论文阅读:Multi-view Convolutional Neural Networks for 3D Shape Recognition

阅读一篇ICCV2015的论文:Multi-view Convolutional Neural Networks for 3D Shape Recognition,简称:MVCNN 用物体的三维数据...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:阅读小结:Large-Margin Softmax Loss for Convolutional Neural Networks
举报原因:
原因补充:

(最多只允许输入30个字)