softmax基本概念
softmax是單層神經網絡,與線性迴歸相同,通常用於離散的分類問題。掌握softmax需要掌握模型、數據集、損失函數和優化函數四個方面。
-
softmax的使用場景
softmax一般用於離散分類問題,使用softmax主要解決兩個問題:
(1)不採用softmax層直接使用輸出層會使得輸出值的範圍不確定,難以通過直觀意義確定輸出數值的意義。
(2)數據集的真實標籤是離散值,這些離散值與不確定範圍的輸出值之間的誤差難以衡量。 -
softmax模型
注:上述圖片引自https://segmentfault.com/a/1190000017320763
如上圖所示,softmax是單層神經網絡,其主要作用在於將輸出值再通過softmax運算符(softmax operator)進行轉換,使其變爲所有值爲正且和爲1的概率分佈。轉換後,要知道分類後的結果只需找到最大的概率值即可。
因此,目標函數轉換成爲:
3. 損失函數
對於softmax而言,若採用均方差函數作爲損失函數,則要求過於嚴格,導致不必要的資源浪費。對於離散分類問題而言,最重要的在於對於分類正確的預測值顯著大於其餘預測值即可。改善該問題的一個方法就是使用更適合衡量兩個概率分佈差異的測量函數。其中,交叉熵(cross entropy)是一個常用的衡量方法:
假設每次迭代的訓練數據樣本數量爲,則交叉熵損失函數定義爲:
最小化交叉熵損失函數等價於最大化訓練數據集所有標籤類別的聯合預測概率。
對於交叉熵的理解,本文舉一個小例子: [^1]
假如有一個三分類問題,其採用模型的預測概率和真實的標籤如下表所示:
根據交叉熵損失的計算公式可得到:
[^1]:https://zhuanlan.zhihu.com/p/35709485