神經網路多分類任務的損失函式 交叉熵

2021-08-19 07:57:58 字數 909 閱讀 1080

神經網路解決多分類問題最常用的方法是設定n個輸出節點,其中n為類別的個數。對於每乙個樣例,神經網路可以得到的乙個n維陣列作為輸出結果。陣列中的每乙個維度(也就是每乙個輸出節點)對應乙個類別。在理想情況下,如果乙個樣本屬於類別k,那麼這個類別所對應的輸出節點的輸出值應該為1,而其他節點的輸出都為0。

以識別手寫數字為例,0~9共十個類別。識別數字1,神經網路的輸出結果越接近[0,1,0,0,0,0,0,0,0,0]越好。交叉熵是最好的評判方法之一。交叉熵刻畫了兩個概率分布之間的距離,它是分類問題中使用比較廣的一種損失函式。

p代表正確答案,q代表的是**值。交叉熵值越小,兩個概率分布越接近。

需要注意的是,交叉熵刻畫的是兩個概率分布之間的距離,然而神經網路的輸出卻不一定是乙個概率分布,很多情況下是實數。如何將神經網路前向傳播得到的結果也變成概率分布,softmax回歸就是乙個非常有用的方法。

softmax將神經網路的輸出變成了乙個概率分布,這個新的輸出可以理解為經過神經網路的推導,乙個樣例為不同類別的概率分別是多大。這樣就把神經網路的輸出也變成了乙個概率分布,從而可以通過交叉熵來計算**的概率分布和真實答案的概率分布之間的距離了。

例子:假設有乙個三分類問題,某個樣例的正確答案是(1,0,0)。某模型經過softmax回歸之後的**答案是(0.5,0,4,0.1),那麼這個**和正確答案直接的交叉熵是:

如果另外乙個模型的**是(0.8,0.1,0.1),那麼這個**值和真實值的交叉熵是:

從直觀上可以很容易知道第二個答案要優於第二個。通過交叉熵計算得到的結果也是一致的(第二個交叉熵的值更小)。

神經網路多分類任務的損失函式 交叉熵

神經網路解決多分類問題最常用的方法是設定n個輸出節點,其中n為類別的個數。對於每乙個樣例,神經網路可以得到的乙個n維陣列作為輸出結果。陣列中的每乙個維度 也就是每乙個輸出節點 對應乙個類別。在理想情況下,如果乙個樣本屬於類別k,那麼這個類別所對應的輸出節點的輸出值應該為1,而其他節點的輸出都為0。以...

神經網路損失函式

2018,aug 3 顧名思義,從標題就能知道損失函式 loss function 一定就是來計算神經網路在訓練中的損失的。說完了定義那到了舉例時間了 主要拿softmax loss來分析 這裡的k也就是我們分類的類別。然後這個函式是怎麼用的呢,我們可以簡單的舉乙個分類的例子來看下。假設我們輸入一張...

神經網路 損失函式

開始之前我們先進入數字識別這樣乙個場景 以識別數字1為例,神經網路模型的輸出結果越接近 0,1,0,0,0,0,0,0,0,0 越好。神經網路解決多分類的問題,最常見的方法是設定n個輸出節點,其中n類別個數,那麼上述數字判斷就應該有n 10個輸出。那麼如何判斷乙個輸出向量和期望向量的接近程度呢?交叉...