天天看點

動手學PyTorch | (4) Softmax回歸

前面介紹的線性回歸模型适⽤于輸出為連續值的情景。在另一類情景中,模型輸出可以是一個像圖像的類别這樣的離散值。對于這樣的離散值預測問題,我們可以使⽤諸如softmax回歸在内的分類模型。和線性回歸不不同,softmax回歸的輸出單元從⼀一個變成了多個,且引⼊了softmax運算使輸出更适合離散值的預測和訓練。本節以softmax回歸模型為例,介紹神經⽹絡中的分類模型。

目錄

1. 分類問題

2. Softmax回歸模型

3. 單樣本分類的矢量計算表達式

4. 小批量樣本分類的矢量計算表達式

5. 交叉熵損失函數

6. 模型預測與評價

1. 分類問題

我們考慮一個簡單的圖像分類問題,其輸入圖像的高和寬均為2像素,且是灰階圖。這樣每個像素值都可以⽤一個标量表示。我們将圖像中的4像素分别記為

動手學PyTorch | (4) Softmax回歸

.假設訓練資料集中圖像的真實标簽為狗、貓或雞(假設可以⽤4像素表示出這3種動物),這些标簽分别對應離散值

動手學PyTorch | (4) Softmax回歸

(三分類)。

我們通常使⽤離散的數值來表示類别,例如

動手學PyTorch | (4) Softmax回歸

.如此,一張圖像的标簽為1、2和 3這3個數值中的一個。雖然我們仍然可以使用回歸模型來進行模組化,并将預測值就近定點化到1、2和3 這3個離散值之一,但這種連續值到離散值的轉化通常會影響到分類質量。是以我們一般使⽤更加适合離散值輸出的模型來解決分類問題。

2. Softmax回歸模型

softmax回歸跟線性回歸一樣将輸⼊特征與權􏰀做線性疊加。與線性回歸的⼀個主要不同在于, softmax回歸的輸出值個數等于标簽⾥的類别數。因為⼀共有4種特征和3種輸出動物類别,是以權􏰀包含12個标量(帶下标的w),偏差包含3個标量(帶下标的b),且對每個輸入計算

動手學PyTorch | (4) Softmax回歸

這三個輸出:

動手學PyTorch | (4) Softmax回歸

下圖用神經⽹絡圖描繪了上⾯的計算。softmax回歸同線性回歸一樣,也是一個單層神經⽹絡。由于每個輸出

動手學PyTorch | (4) Softmax回歸

的計算都要依賴于所有的輸⼊

動手學PyTorch | (4) Softmax回歸

,softmax回歸的輸出層也是⼀個全連接配接層。

動手學PyTorch | (4) Softmax回歸

既然分類問題需要得到離散的預測輸出,⼀個簡單的辦法是将輸出值

動手學PyTorch | (4) Softmax回歸

當作預測類别是i的置信度,并将值最大的輸出所對應的類作為預測輸出,即輸出

動手學PyTorch | (4) Softmax回歸

。例如,如果

動手學PyTorch | (4) Softmax回歸

分别為0.1,10,0.1,由于

動手學PyTorch | (4) Softmax回歸

最⼤,那麼預測類别為2,其代表貓。

然⽽,直接使⽤輸出層的輸出有兩個問題。⼀⽅面,由于輸出層的輸出值的範圍不确定,我們難以直覺上判斷這些值的意義。例如,剛才舉的例子中的輸出值10表示“很置信”圖像類别為貓,因為該輸出值是其他兩類的輸出值的100倍.但如果

動手學PyTorch | (4) Softmax回歸

,那麼輸出值10卻⼜表示圖像類别為貓的機率很低。另⼀⽅面,由于真實标簽是離散值,這些離散值與不确定範圍的輸出值之間的誤差難以衡量。

softmax運算符(softmax operator)解決了以上兩個問題。它通過下式将輸出值變換成值為正且和為1的機率分布:

動手學PyTorch | (4) Softmax回歸
動手學PyTorch | (4) Softmax回歸

容易看出

動手學PyTorch | (4) Softmax回歸

,是以

動手學PyTorch | (4) Softmax回歸

是一個合法的機率分布。這時候, 如果

動手學PyTorch | (4) Softmax回歸

,不管

動手學PyTorch | (4) Softmax回歸

的值是多少,我們都知道圖像類别為貓的機率是80%。此外,我們注意到:

動手學PyTorch | (4) Softmax回歸

是以softmax運算不改變預測類别輸出。

3. 單樣本分類的矢量計算表達式

為了提高計算效率,我們可以将單樣本分類通過⽮量計算來表達。在上⾯的圖像分類問題中,假設softmax回歸的權􏰀和偏差參數分别為:

動手學PyTorch | (4) Softmax回歸

設⾼和寬分别為2個像素的圖像樣本的特征為:

動手學PyTorch | (4) Softmax回歸

輸出層的輸出為:

動手學PyTorch | (4) Softmax回歸

預測為狗、貓或雞的機率分布為:

動手學PyTorch | (4) Softmax回歸

softmax回歸對樣本分類的⽮量計算表達式為:

動手學PyTorch | (4) Softmax回歸

4. 小批量樣本分類的矢量計算表達式

為了進一步提升計算效率,我們通常對⼩批量資料做⽮量計算。⼴義上講,給定一個⼩批量樣本,其批量⼤小為n,輸入個數(特征數)為d ,輸出個數(類别數)為q。設批量特征為

動手學PyTorch | (4) Softmax回歸

.假設 softmax回歸的權􏰀和偏差參數分别為

動手學PyTorch | (4) Softmax回歸

.softmax回歸的⽮量計算表達式為:

動手學PyTorch | (4) Softmax回歸

其中的加法運算使⽤了⼴播機制,

動手學PyTorch | (4) Softmax回歸

且這兩個矩陣的第i行分别為樣本i的輸出

動手學PyTorch | (4) Softmax回歸

和機率分布

動手學PyTorch | (4) Softmax回歸

.

5. 交叉熵損失函數

前⾯提到,使⽤softmax運算後可以更⽅便地與離散标簽計算誤差。我們已經知道,softmax運算将輸出變換成⼀個合法的類别預測分布。實際上,真實标簽也可以用類别分布表達:對于樣本i ,我們構造 向量

動手學PyTorch | (4) Softmax回歸

(hardmax one-hot),使

動手學PyTorch | (4) Softmax回歸

中樣本i類别的離散數值對應的分量/位置為1,其餘為0.這樣我們的訓練⽬标可以設為使預測機率分布

動手學PyTorch | (4) Softmax回歸

盡可能接近真實的标簽機率分布

動手學PyTorch | (4) Softmax回歸

.

我們可以像線性回歸那樣使用平⽅損失函數

動手學PyTorch | (4) Softmax回歸

.然⽽,想要預測分類結果正确,我們其實并不需要預測機率完全等于标簽機率。例如,在圖像分類的例子里,如果

動手學PyTorch | (4) Softmax回歸

=3,那麼我們隻需要

動手學PyTorch | (4) Softmax回歸

比其他兩個預測值

動手學PyTorch | (4) Softmax回歸

大就行了。即使

動手學PyTorch | (4) Softmax回歸

=0.6,不管其他兩個預測值為多少,類别預測均正确。⽽平⽅損失則過于嚴格,例如

動手學PyTorch | (4) Softmax回歸

動手學PyTorch | (4) Softmax回歸

的損失要⼩小很多,雖然兩者都有同樣正确的分類預測結果。

改善上述問題的⼀個⽅法是使⽤更适合衡量兩個機率分布差異的測量函數.其中,交叉熵(cross entropy)是一個常用的衡量⽅法:

動手學PyTorch | (4) Softmax回歸

其中帶下标的

動手學PyTorch | (4) Softmax回歸

是向量

動手學PyTorch | (4) Softmax回歸

中非0即1的元素,需要注意将它與樣本類别的離散數值,即不帶下标的

動手學PyTorch | (4) Softmax回歸

(标量)的差別。在上式中,我們知道向量

動手學PyTorch | (4) Softmax回歸

中隻有第

動手學PyTorch | (4) Softmax回歸

(标量)個元素

動手學PyTorch | (4) Softmax回歸

為1,其餘全為0,于是

動手學PyTorch | (4) Softmax回歸

.也就是說,交叉熵隻關⼼心對正确類别的預測機率,因為隻要其值⾜夠大, 就可以確定分類結果正确。當然,遇到一個樣本有多個标簽時,例如圖像里含有不止一個物體時,我們并不能做這一步簡化。但即便對于這種情況,交叉熵同樣隻關⼼對圖像中出現的物體類别的預測機率。

假設訓練資料集的樣本數為n ,交叉熵損失函數定義為:

動手學PyTorch | (4) Softmax回歸

其中

動手學PyTorch | (4) Softmax回歸

代表模型參數。同樣地,如果每個樣本隻有一個标簽,那麼交叉熵損失可以簡寫成:

動手學PyTorch | (4) Softmax回歸

從另⼀個角度來看,我們知道最小化

動手學PyTorch | (4) Softmax回歸

等價于最大化:

動手學PyTorch | (4) Softmax回歸

即最⼩化交叉熵損失函數等價于最⼤化訓練資料集所有标簽類别的聯合預測機率。

6. 模型預測與評價

在訓練好softmax回歸模型後,給定任一樣本特征,就可以預測每個輸出類别的機率。通常,我們把預測機率最⼤的類别作為輸出類别。如果它與真實類别(标簽)⼀緻,說明這次預測是正确的。在之後的試驗中,我們将使用準确率(accuracy)來評價模型的表現。它等于正确預測數量與總預測數量之比。

  • 小結

1)softmax回歸适⽤于分類問題。它使用softmax運算輸出類别的機率分布。

2)softmax回歸是一個單層神經⽹網絡,輸出個數等于分類問題中的類别個數。

3)交叉熵适合衡量兩個機率分布的差異。

繼續閱讀