softmax函式為神經網路定義了一種新的輸出層:它把每個神經元的輸入佔當前層所有神經元輸入之和的比值,當作該神經元的輸出。假設人工神經網路第$l$層的第$j$個節點的帶權輸入為
在該層應用softmax函式作為啟用函式,則第$j$個節點的啟用值$a^_$就為
一般來說,我們只在神經網路最後一層應用softmax函式,並把該層叫做softmax層。可以看到,softmax層的所有輸出均為正數,且總和為1,因而可以被看作是乙個概率分布。因為softmax層的輸出是每個神經元的輸入佔當前層所有神經元輸入之和的比值,所以某個神經元的輸出值越大,則該神經元對應的類別是真實類別的可能性更高。我們可以選取輸出值最大的神經元對應的類別,作為我們的**結果!
softmax層的形象表示如下圖:
pytorch實現softmax的**示例如下:
import torch結果如下:import torch.nn.functional as f
data = torch.floattensor([[3, 1, -3], [2, 8, 1]])
out = f.softmax(data, dim=1) # dim=1表示對每一行求softmax
print(out)
tensor([[8.7888e-01, 1.1894e-01, 2.1785e-03],softmax層和交叉熵損失函式結合起來可解決該層引數學習緩慢的問題。交叉熵損失函式定義為[2.4704e-03, 9.9662e-01, 9.0880e-04]])
式中,$a_k$表示第$k$個神經元的輸出值,$y_k$表示第$k$個神經元對應的真實值,一般取值為0或1。值得注意的是,該損失函式的求和號是對softmax層的所有神經元求和。
交叉熵損失函式關於偏置$b_j$的偏導數
式(*)中除了$\frac$和$\frac$之外,其它均為已知,下面將推導這兩個偏導數的值
把上面兩個偏導值代入式(*)中,可得
同樣地,可以推導得到交叉熵損失函式關於權重$w_jk$的偏導數
參考資料
[1]. softmax的log似然代價函式(公式求導)
[2]. 詳解softmax函式以及相關求導過程
logisitic回歸代價函式對數似然法原理詳解
關於對數似然法原理,網上部落格眾說紛紜,但能說清楚,解釋對數似然公式為何如此卻寥寥無幾。今天我就發個部落格,來和大家討論一下。正文如下 對數學家們提供的最簡式改為以下通俗易懂式,先不要拿走符號以便理解 上述的對數似然代價公式m為樣本數量,x為樣本,y為標籤,為權重向量。上式由兩部分組成,分別對應了標...
對數似然函式理解
對數似然函式 log likelihood 機器學習裡面,對模型的訓練都是對loss function進行優化,在分類問題中,我們一般使用最大似然估計 maximum likelihood estimation 來構造損失函式。對於輸入的x,其對應的類標籤為t,我們的目的是找到使p t x 最大的模...
似然函式與最大似然估計
概率用於在已知一些引數的情況下,接下來的觀測所得到的結果,而似然性則是用於在已知某些觀測所得到的結果時,對有關事物性質的引數進行估計。是一種關於統計模型中引數的函式。例如,已知有事件a發生,運用似然函式,我們估計引數b的可能性。表明在已知觀測結果情況下,似然函式的值越高,該引數值可使模型越合理。最大...