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
]