Softmax函数与交叉熵

在Logistic regression二分类问题中,我们可以使用sigmoid函数将输入Wx+b映射到(0,1)区间中,从而得到属于某个类别的概率。将这个问题进行泛化,推广到多分类问题中,我们可以使用softmax函数,对输出的值归一化为概率值

这里假设在进入softmax函数之前,已经有模型输出C值,其中C是要预测的类别数,模型可以是全连接网络的输出aa,其输出个数为C,即输出为: [公式]

所以对每个样本,它属于类别i的概率为:

[公式]

通过上式可以保证 [公式] ,即属于各个类别的概率和为1

softmax函数进行求导,即求: [公式] ,第i项的输出对第j项输入的偏导。代入softmax函数表达式,可以得到:

[公式]

求导规则:对于 [公式] ,导数为:

[公式]

所以在我们这个例子中,

[公式]

上面两个式子只是代表直接进行替换,而非真的等式。 [公式] ,(即g(x)= [公式][公式] 进行求导),要分情况讨论:

  1. 如果i=j,则求导结果为 [公式]
  2. 如果i≠j,则求导结果为0

再来看 [公式][公式] 求导,结果为 [公式]

所以,当i=j时:(其中,为了方便,令 [公式] )

[公式]

当i≠j时:

[公式]

标红下,这俩公式很重要:




原文地址:https://www.cnblogs.com/wqbin/p/11070647.html