1. 程式人生 > >softmax的log似然代價函式(公式求導)

softmax的log似然代價函式(公式求導)

        在人工神經網路(ANN)中,Softmax通常被用作輸出層的啟用函式。這不僅是因為它的效果好,而且因為它使得ANN的輸出值更易於理解。同時,softmax配合log似然代價函式,其訓練效果也要比採用二次代價函式的方式好。

1. softmax函式及其求導

softmax的函式公式如下:


中,表示第L層(通常是最後一層)第j個神經元的輸入,表示第L層第j個神經元的輸出,表示自然常數。注意看,表示了第L層所有神經元的輸入之和。

softmax函式最明顯的特點在於:它把每個神經元的輸入佔當前層所有神經元輸入之和的比值,當作該神經元的輸出。這使得輸出更容易被解釋:神經元的輸出值越大,則該神經元對應的類別是真實類別的可能性更高。

另外,softmax不僅把神經元輸出構造成概率分佈,而且還起到了歸一化的作用,適用於很多需要進行歸一化處理的分類問題。

由於softmax在ANN演算法中的求導結果比較特別,分為兩種情況。希望能幫助到正在學習此類演算法的朋友們。求導過程如下所示:


2. softmax配合log似然代價函式訓練ANN

在上一篇博文“交叉熵代價函式”中講到,二次代價函式在訓練ANN時可能會導致訓練速度變慢的問題。那就是,初始的輸出值離真實值越遠,訓練速度就越慢。這個問題可以通過採用交叉熵代價函式來解決。其實,這個問題也可以採用另外一種方法解決,那就是採用softmax啟用函式,並採用log似然代價函式(log-likelihood cost function)來解決。

log似然代價函式的公式為:


其中,表示第k個神經元的輸出值,表示第k個神經元對應的真實值,取值為0或1。

我們來簡單理解一下這個代價函式的含義。在ANN中輸入一個樣本,那麼只有一個神經元對應了該樣本的正確類別;若這個神經元輸出的概率值越高,則按照以上的代價函式公式,其產生的代價就越小;反之,則產生的代價就越高。

為了檢驗softmax和這個代價函式也可以解決上述所說的訓練速度變慢問題,接下來的重點就是推導ANN的權重w和偏置b的梯度公式。以偏置b為例:


同理可得:


從上述梯度公式可知,softmax函式配合log似然代價函式可以很好地訓練ANN,不存在學習速度變慢的問題。