Negative log-likelihood function

Softmax function

Softmax 函数 (y=[y_1,cdots,y_m]) 定义如下:

[y_i=frac{exp(z_i)}{sumlimits_{j=1}^m{exp(z_j)}}, i=1,2,cdots,m ]

它具有很好的求导性质:

[frac{partial y_i}{partial z_i}=y_i* (1-y_i) ]

其中,(y)的每一个维度 (y_i) 表明,属于第 (i) 类的概率。求导过程,请参考:Softmax vs. Softmax-Loss: Numerical Stability

Negative log-likehood

当我们使用softmax 函数作为 output function的时候,即:

[y=softmax(z) ]

(z) 在这里只表示某些需要优化的参数。

我们需要选择 negiative log-likelihood 作为代价函数( cost function), 也被称作 Cross-Entropy cost function. 即:

[E(t,y)= -sumlimits_i {t_i log y_i} ]

(t)表示的是 tagert, (y) 表示的是model's prediction. 通常,(t) 表示的是 one-hot representation, (y) 表示的是各类的 predicted probability.

Note

如果 (t) 采用的是 one-hot representation, 那么我们的计算公式是:

[E(t,y)= -t log y ]

如果 (t) 是对应的 index, 而 (y) 是对应的 predicted probability vector 的话,计算公式:

[E(t,y)= - log y [t] ]

它的求导公式也很简单:

[frac{partial E(t,y)}{partial z_i}= sumlimits_j {frac{partial E(t,y)}{partial y_i}frac{partial y_j}{partial z_j}}= y_i -t_i ]

Note

如果 (t) 采用的是 one-hot representation, 那么我们的计算公式是:

[frac{partial E(t,y)}{partial z}= y -z ]

如果 (t) 是对应的 index, 而 (y) 是对应的 predicted probability vector 的话,计算公式:

[y[t]-=1 ]

[frac{partial E(t,y)}{partial z} := y ]

原文地址:https://www.cnblogs.com/ZJUT-jiangnan/p/5489047.html