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 \]
