1. 程式人生 > >《Gluon 動手學深度學習 六》Softmax實現

《Gluon 動手學深度學習 六》Softmax實現

線性迴歸適用於輸出為連續值的情景,對於輸出離散值的分類問題,需要使用分類模型,例如softmax,與線性迴歸不同的是softmax輸出單元從一個變為多個。和線性迴歸相同的是,softmax也是一個單層神經網路。和線性迴歸不同的是,softmax輸出層的個數等於類別個數。

softmax 每個輸出的計算都要依賴於上一層的每個元素,所以softmax輸出層是一個全連線層


舉例:圖片分類問題

假設輸入圖片的尺寸為 2×22×2。設圖片的四個特徵值,即畫素值分別為 x1,x2,x3,x4。假設訓練資料集中圖片的真實標籤為狗、貓或雞,這些標籤分別對應離散值 y1,y2,y3。舉個例子,如果 y1=0,y2=1,y3=2,任意一張狗的圖片的標籤記作 0。

設帶下標的 w和 b 分別為 softmax 迴歸的權重和偏差引數。給定單個圖片的輸入特徵 x1,x2,x3,x4,有關三個不同標籤的輸出分別為

在得到輸出層的三個輸出後,我們需要預測輸出分別為狗、貓或雞的概率,即各個類別的預測概率。


交叉熵損失函式

Softmax 迴歸使用了交叉熵損失函式(cross-entropy loss)。

 

給定分類問題的類別個數 m。當樣本 i的標籤類別為 yj 時(1≤j≤m),設q(i)j=1且當 k≠j,1≤k≤m時 q(i)k=0。設模型對樣本 i 在類別 yj 上的預測概率為 pj(i)(1≤j≤m)。假設訓練資料集的樣本數為 n。

希望模型對這些樣本真實的標籤類別的預測概率儘可能大,也就是希望模型儘可能容易輸出真實的標籤類別。

模型預測及評價

在訓練好 softmax 迴歸模型後,給定任一樣本特徵,我們可以預測每個輸出類別的概率。通常,我們把預測概率最大的類別作為輸出類別。如果它與真實類別(標籤)一致,說明這次預測是正確的。

參考:http://zh.gluon.ai/chapter_deep-learning-basics/softmax-regression.html