Softmax求导

softmax 可以看作是logistic “one versus all”的多分类版本,和普通的“one versus all”不同的是,softmax是通过选择最大的输出概率值来做最后的决策任务,因此不存在”混淆区域“

softmax的公式为:

为什么$p(Y=K|x)=\frac{1}{1+\Sigma_i^{K-1}{exp(w_i x)}}$?是因为,softmax是存在参数冗余的,即一开始所有的类别k都有一个$w_k$的,但是,如果对上面下面都除以一个$exp(w_Kx)$的话,就得到上面的公式:

令新的到的$w_i- w_K$为新的$w_i$即得到公式(1)。

得到softmax的参数的过程是通过最大似然函数得到的。

其中$1\{y_i=k\}在$$\{\}$内表达式为真的时候取1。由于有多个连乘,做法是对其log,得到它的对数似然函数:

此外,$log\{1+\Sigma_i^{K-1}{exp(w_i * x)}\}w_k$求导有:

因此对对数似然函数求导为:

可知,样本是否属于j类,样本i对于$w_j$的梯度贡献不同(这里假设是最小化log likelihood,需要对梯度取反):

回顾到感知机的更新为用错误的样本对权重$w$进行更新,

可以看到softmax除了对错误样本进行更新和感知机是吻合的,不同指出是softmax也用正确的样本来更新权重。

可以把$x_i(1-p(y=j|x_i))$ 重新写为:$-x_i(p(y=j|x_i) - 1)$