動手學深度學習——softmax與分類模型

softmax基本概念

softmax是單層神經網絡,與線性迴歸相同,通常用於離散的分類問題。掌握softmax需要掌握模型數據集損失函數優化函數四個方面。

  1. softmax的使用場景
    softmax一般用於離散分類問題,使用softmax主要解決兩個問題:
    (1)不採用softmax層直接使用輸出層會使得輸出值的範圍不確定,難以通過直觀意義確定輸出數值的意義。
    (2)數據集的真實標籤是離散值,這些離散值與不確定範圍的輸出值之間的誤差難以衡量。

  2. softmax模型
    在這裏插入圖片描述
    注:上述圖片引自https://segmentfault.com/a/1190000017320763

如上圖所示,softmax是單層神經網絡,其主要作用在於將輸出值再通過softmax運算符(softmax operator)進行轉換,使其變爲所有值爲正且和爲1的概率分佈。轉換後,要知道分類後的結果只需找到最大的概率值即可。
z^1=e1z/k=1Kekz,z^2=e2z/k=1Kekz,...,z^K=eKz/k=1Kekz \hat{z}_{1} = e_{1}^{z} /\sum_{k=1}^Ke_{k}^{z} , \hat{z}_{2} = e_{2}^{z} /\sum_{k=1}^Ke_{k}^{z},..., \hat{z}_{K} = e_{K}^{z} /\sum_{k=1}^Ke_{k}^{z}
因此,目標函數轉換成爲:
arg maxz^ arg \ max\hat{\boldsymbol{z}}
3. 損失函數
對於softmax而言,若採用均方差函數作爲損失函數,則要求過於嚴格,導致不必要的資源浪費。對於離散分類問題而言,最重要的在於對於分類正確的預測值顯著大於其餘預測值即可。改善該問題的一個方法就是使用更適合衡量兩個概率分佈差異的測量函數。其中,交叉熵(cross entropy)是一個常用的衡量方法:
H(z(i),z^(i))=j=1qzj(i)logz^j(i) H\left(\boldsymbol{z}^{(i)}, \hat{\boldsymbol{z}}^{(i)}\right)=-\sum_{j=1}^{q} z_{j}^{(i)} \log \hat{z}_{j}^{(i)}
假設每次迭代的訓練數據樣本數量爲NN,則交叉熵損失函數定義爲:
 loss=(1/N)i=1NH(z(i),z^(i)) \ loss= (1/N)\sum_{i=1}^{N}H\left(\boldsymbol{z}^{(i)}, \hat{\boldsymbol{z}}^{(i)}\right)
最小化交叉熵損失函數等價於最大化訓練數據集所有標籤類別的聯合預測概率。
對於交叉熵的理解,本文舉一個小例子: [^1]
假如有一個三分類問題,其採用模型的預測概率和真實的標籤如下表所示:
在這裏插入圖片描述
根據交叉熵損失的計算公式可得到:
在這裏插入圖片描述
[^1]:https://zhuanlan.zhihu.com/p/35709485

發佈了9 篇原創文章 · 獲贊 17 · 訪問量 994
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章