softmax和softmax loss笔记

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

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

全连接层解释

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

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

softmax层解释

\[S_j = \frac{exp(a^j)}{\sum_{k=1}^{T}a_k} \]

可以采用softmax层来实现多分类任务。如上图所示:

  • \(logits[T\times1]\)是softmax层的输入,输入向量中的每个数的大小是\((-\infty, +\infty)\)
  • \(prob[T\times1]\)是softmax层的输出,输出向量中的每个数的大小是\((0,1)\)表示概率大小。其中\(S_j\)表示该样例分类为\(j\)类别的概率。

softmax loss解释

\[L = -\sum_{j=1}^Ty_jlog(S_j) \]

\(y\)是一个\(1 \times T\)的向量,其中只有一个值为1,其余的值都为0。假设第j个位置对应该样本的真实标签,则第j个位置的值为1,其余位置的值为0。所以,上述公式可以简化为如下所示:

\[L = -y_jlog(S_j) \]

其中j为该样本对应的真实标签的位置(id)。

Cross entropy解释

\[E = -\sum_{j=1}^{T}y_jlog(P_j) \]

上面公式中的\(P_j\)是样本被分类为第j类的概率。如果概率向量P是有softmax function计算得到的,那么cross entropy loss和softmax loss相等。


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

posted @ 2021-04-08 09:47  sykline  阅读(427)  评论(0编辑  收藏  举报