Softmax函数
背景与定义
在Logistic regression二分类问题中,我们可以使用sigmoid
函数将输入 Wx+b 映射到 (0,1) 区间中,从而得到属于某个类别的概率。将这个问题进行泛化,推广到多分类问题中,我们可以使用softmax
函数,对输出的值归一化为概率值。
这里假设在进入softmax
函数之前,已经有模型输出 C 值,其中
所以对每个样本,它属于类别 i 的概率为:
yi=eai∑Ck=1eak ∀i∈1...C
通过上式可以保证 ∑Ci=1yi=1 ,即属于各个类别的概率和为1。
导数
对softmax
函数进行求导,即求
∂yi∂aj
第 i 项的输出对第
代入
softmax
函数表达式,可以得到:
∂yi∂aj=∂eai∑Ck=1eak∂aj
用我们高中就知道的求导规则:对于
f(x)=g(x)h(x)
它的导数为
f′(x)=g′(x)h(x)−g(x)h′(x)[h(x)]2
所以在我们这个例子中,
g(x)=eaih(x)=∑k=1Ceak
上面两个式子只是代表直接进行替换,而非真的等式。
eai (即 g(x) )对 aj 进行求导,要分情况讨论:
1. 如果 i=j ,则求导结果为 eai
2. 如果 i≠j ,则求导结果为 0
再来看 ∑Ck=1eak 对 aj 求导,结果为 e