Negative log-likelihood function

Softmax function

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

\[y_i=\frac{exp(z_i)}{\sum\limits_{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)= -\sum\limits_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}= \sum\limits_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 \]

posted @ 2016-05-13 13:12  姜楠  阅读(20831)  评论(0编辑  收藏  举报