【Softmax迴歸算法】{0} —— Softmax迴歸算法的簡單介紹

Softmax迴歸

對於多分類問題,有一種 Logistic迴歸的一般形式,叫做 Softmax迴歸,用於處理多分類問題,例如:

假設你需要識別多種動物,把貓作爲類1,狗作爲類2,小雞作爲類3,如果不屬於以上任何一類,就分到類0。

上述圖片及其對應的分類就是一個例子,第一幅圖片是一隻小雞,所以是類3,貓是類1,狗是類2,第四幅圖片是考拉,所以以上均不符合,那就是類0,以此類推……

我們用大寫的 CC 來表示輸入會被分入的類別總個數,在這個例子中,我們有4種可能的類別。當有4個分類時,指示類別的數字,就是從 00C1C-1,換句話說就是0、1、2、3。


在上述例子中,我們將建立一個神經網絡,其輸出層有4個輸出單元(一般而言等於 CC )。

我們想要輸出層單元的數字告訴我們這 4 種類型中每個的概率有多大,輸出層的第一個節點輸出的應該是0類的概率。在輸入 XX 的情況下,輸出層的第二個節點會輸出貓的概率,以此類推……

因此,此處的 yy 將是一個 414*1 維向量,它必須輸出四種概率,且它們加起來應該等於 11

讓神經網絡做到以上要求的標準模型要用到 Softmax層,以及輸出層來生成輸出,把式子寫下來,就會對 Softmax 的作用有一點感覺了。

在神經網絡的最後一層,我們計算各層的線性部分,z[l]z^{[l]} 是最後一層的 zz 變量,記住這是大寫 LL 層,計算方法是 z[l]=W[l]a[L1]+b[l]z^{[l]} = W^{[l]}a^{[L-1]}+b^{[l]}

算出了 zz 之後,你需要應用 Softmax 激活函數,這個激活函數對於 Softmax 層而言有些不同,它的作用是這樣的:

首先,我們要計算一個臨時變量,把它叫做 tt,它等於 ez[l]e^{z[l]},這適用於每個元素,而這裏的 z[l]z^{[l]},在我們的例子中, z[l]z^{[l]}414*1 維的,四維向量 t=ez[l]t=e^{z[l]},這是對所有元素求冪,tt 也是一個 414*1 維向量,然後輸出的 a[l]a^{[l]},基本上就是向量 tt,但是會歸一化,使和爲1。因此 a[l]=ez[l]j=14tia^{[l]} =\frac{e^{z[l]}}{\sum^4_{j=1}t_i},換句話說,a[l]a^{[l]} 也是一個 414*1 維向量,而這個四維向量的第 ii 個元素 ai[l]=tij=14tia^{[l]}_i =\frac{t_i}{\sum^4_{j=1}t_i}


總結:

總結一下從 z[l]z^{[l]}a[l]a^{[l]} 的計算步驟,整個計算過程,從計算冪到得出臨時變量 tt,再歸一化,我們可以將此概括爲一個 Softmax 激活函數。

a[l]=g[l](z[l])a^{[l]}=g^{[l]}(z^{[l]}),這一激活函數的與衆不同之處在於,這個激活函數 gg 需要輸入一個 414*1 維向量,然後輸出一個 414*1 維向量。之前的激活函數都是接受單行數值輸入,例如 SigmoidReLu 激活函數,輸入一個實數,輸出一個實數。Softmax激活函數的特殊之處在於,因爲需要將所有可能的輸出歸一化,就需要輸入一個向量,最後輸出一個向量。

Softmax分類器還可以代表其它東西。

例如,有兩個輸入 x1x_1x2x_2,它們直接輸入到 Softmax層,它有三四個或者更多的輸出節點,輸出 y^\hat{y},此時會有一個沒有隱藏層的神經網絡,它所做的就是計算 z[l]=W[l]x+b[l]z^{[l]} = W^{[l]}x + b^{[l]},而輸出的出 a[l]a^{[l]},或者說 y^\hat{y}a[l]=y=g(z[l])a^{[l]} =y= g(z^{[l]}),就是 z[l]z^{[l]}Softmax激活函數,這個沒有隱藏層的神經網絡能讓我們對 Softmax函數能夠代表的東西有所瞭解。


例子:

如圖(左邊圖),原始輸入只有 x1x_1x2x_2,一個 C=3C = 3 個輸出分類的 Softmax層能夠代表這種類型的決策邊界,請注意這是幾條線性決策邊界,這使得它能夠將數據分到3個類別中,在這張圖表中,我們所做的是選擇這張圖中顯示的訓練集,用數據的3種輸出標籤來訓練 Softmax分類器,圖中的顏色示了 Softmax分類器輸出的閾值,輸入的着色是基於三種輸出中概率最高的那種。因此我們可以看到這是 Logistic迴歸的一般形式, 有類似線性的決策邊界,但有超過兩個分類,分類不只有0和1,而是可以是0,1或2。

如圖(中間圖),另一個 Softmax分類器可以代表的決策邊界的例子,用有三個分類的數據集來訓練。

如圖(右邊圖),任何兩個分類之間的決策邊界都是線性的,但這些不同的線性函數可以把空間分成三類。


更多分類的例子:

如圖(左邊圖)C=4C= 4,因此這個綠色分類和 Softmax仍舊可以代表多種分類之間的這些類型的線性決策邊界。

如圖(中間圖)是 C=5C= 5

如圖(右邊圖)是 C=6C=6,這顯示了 Softmax分類器在沒有隱藏層的情況下能夠做到的事情,當然更深的神經網絡會有 xx,然後是一些以及更多的隱藏單元等等,到時就可以學習更復雜的非線性決策邊界,來區分多種不同分類。


參考資料:https://mooc.study.163.com/smartSpec/detail/1001319001.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章