Softmax

$ Softmax $ 的作用是把一个序列$\boldsymbol{a}$,变成概率。

$$ Softmax(\boldsymbol{a}) = \frac{e^{a_i}}{\sum_j e^{a_j}} $$

从概率的角度解释 $Softmax$ 的话,就是 $S_i = \frac{e^{a_i}}{\sum_{k=1}^Ne^{a_k}} = P(y=i|a)$

其中,$LR$ 是 $Softmax$ 的类别数为 2 时 $Softmax$ 的特殊形式

Cross-Entropy

给定两个概率分布: $p$ (理想结果即正确标签向量)和 $q$ (神经网络输出结果即经过 $softmax$ 转换后的结果向量),则通过 $q$ 来表示 $p$ 的交叉熵为

$$ H(p, q) = -\sum_x p(x)log(q(x)) $$

例如

$$H(p=[1,0,0], q=[0.5,0.4,0.1]) = -(1 \cdot log(0.5) + 0 \cdot log(0.4) + 0 \cdot log(0.1)) $$

nll_loss (negative log likelihood loss)