深度学习-softmax和softmax loss笔记

本文作为自己学习softmax和softmax loss笔记而写,留作自己日后回顾,如文中有错误还请不吝指教,感谢!

全链接层到softmax的计算
图片来自:https://eli.thegreenplace.net/2016/the-softmax-function-and-its-derivative/

全连接层解释

上图展示了从全连接层到softmax层的计算过程。其中,等号左边就是全连接层需要完成的任务,其中:

  • W [ T × N ] W[T\times N] W[T×N]是全连接层的权重(参数),在训练网络过程中全连接层最终的目标就是寻找合适的 W W W W [ T × N ] W[T\times N] W[T×N]中的 T T T是分类中类别的数量, N N N是全连接层输入长度。
  • x [ N × 1 ] x[N\times 1] x[N×1]是全连接层的输入(特征),其中 N N N是输入的长度 x [ N × 1 ] x[N\times 1] x[N×1]是由全连接层之前的卷积层、池化层等layer得到的。假设,该全连接之前为一个卷积层,该卷积层输出100个特征(即feature map中的 c h a n n e l = 100 channel=100 channel=100),每个特征大小为 3 × 3 3\times 3 3×3,在输入到全连接层之前将其flat成 N × 1 N\times 1 N×1的向量,即 100 × 3 × 3 = 900 100 \times 3 \times 3 = 900 100×3×3=900,在这个例子中 N = 900 N=900 N=900
  • l o g i t s [ T × 1 ] logits[T \times 1] logits[T×1]是全连接层的输出。同样是后边softmax层的输入

softmax层解释

S j = e x p ( a j ) ∑ k = 1 T a k S_j = \frac{exp(a^j)}{\sum_{k=1}^{T}a_k} Sj=k=1Takexp(aj)
可以采用softmax层来实现多分类任务。如上图所示:

  • l o g i t s [ T × 1 ] logits[T\times1] logits[T×1]是softmax层的输入,输入向量中的每个数的大小是 ( − ∞ , + ∞ ) (-\infty, +\infty) (+)
  • p r o b [ T × 1 ] prob[T\times1] prob[T×1]是softmax层的输出,输出向量中的每个数的大小是 ( 0 , 1 ) (0,1) (0,1)表示概率大小。其中 S j S_j Sj表示该样例分类为 j j j类别的概率。

softmax loss解释

L = − ∑ j = 1 T y j l o g ( S j ) L = -\sum_{j=1}^Ty_jlog(S_j) L=j=1Tyjlog(Sj)
y y y是一个 1 × T 1 \times T 1×T的向量,其中只有一个值为1,其余的值都为0。假设第j个位置对应该样本的真实标签,则第j个位置的值为1,其余位置的值为0。所以,上述公式可以简化为如下所示:
L = − y j l o g ( S j ) L = -y_jlog(S_j) L=yjlog(Sj)
其中j为该样本对应的真实标签的位置(id)。

Cross entropy解释

E = − ∑ j = 1 T y j l o g ( P j ) E = -\sum_{j=1}^{T}y_jlog(P_j) E=j=1Tyjlog(Pj)
上面公式中的 P j P_j Pj是样本被分类为第j类的概率。如果概率向量P是有softmax function计算得到的,那么cross entropy loss和softmax loss相等。


后续如有相关内容学习,会继续补充……

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值