Softmax迴歸
對於多分類問題,有一種 Logistic迴歸的一般形式,叫做 Softmax迴歸,用於處理多分類問題,例如:
假設你需要識別多種動物,把貓作爲類1,狗作爲類2,小雞作爲類3,如果不屬於以上任何一類,就分到類0。
上述圖片及其對應的分類就是一個例子,第一幅圖片是一隻小雞,所以是類3,貓是類1,狗是類2,第四幅圖片是考拉,所以以上均不符合,那就是類0,以此類推……
我們用大寫的 來表示輸入會被分入的類別總個數,在這個例子中,我們有4種可能的類別。當有4個分類時,指示類別的數字,就是從 到 ,換句話說就是0、1、2、3。
在上述例子中,我們將建立一個神經網絡,其輸出層有4個輸出單元(一般而言等於 )。
我們想要輸出層單元的數字告訴我們這 4 種類型中每個的概率有多大,輸出層的第一個節點輸出的應該是0類的概率。在輸入 的情況下,輸出層的第二個節點會輸出貓的概率,以此類推……
因此,此處的 將是一個 維向量,它必須輸出四種概率,且它們加起來應該等於 。
讓神經網絡做到以上要求的標準模型要用到 Softmax層,以及輸出層來生成輸出,把式子寫下來,就會對 Softmax 的作用有一點感覺了。
在神經網絡的最後一層,我們計算各層的線性部分, 是最後一層的 變量,記住這是大寫 層,計算方法是 。
算出了 之後,你需要應用 Softmax 激活函數,這個激活函數對於 Softmax 層而言有些不同,它的作用是這樣的:
首先,我們要計算一個臨時變量,把它叫做 ,它等於 ,這適用於每個元素,而這裏的 ,在我們的例子中, 是 維的,四維向量 ,這是對所有元素求冪, 也是一個 維向量,然後輸出的 ,基本上就是向量 ,但是會歸一化,使和爲1。因此 ,換句話說, 也是一個 維向量,而這個四維向量的第 個元素 。
總結:
總結一下從 到 的計算步驟,整個計算過程,從計算冪到得出臨時變量 ,再歸一化,我們可以將此概括爲一個 Softmax 激活函數。
設 ,這一激活函數的與衆不同之處在於,這個激活函數 需要輸入一個 維向量,然後輸出一個 維向量。之前的激活函數都是接受單行數值輸入,例如 Sigmoid 和 ReLu 激活函數,輸入一個實數,輸出一個實數。Softmax激活函數的特殊之處在於,因爲需要將所有可能的輸出歸一化,就需要輸入一個向量,最後輸出一個向量。
Softmax分類器還可以代表其它東西。
例如,有兩個輸入 ,,它們直接輸入到 Softmax層,它有三四個或者更多的輸出節點,輸出 ,此時會有一個沒有隱藏層的神經網絡,它所做的就是計算 ,而輸出的出 ,或者說 ,,就是 的 Softmax激活函數,這個沒有隱藏層的神經網絡能讓我們對 Softmax函數能夠代表的東西有所瞭解。
例子:
如圖(左邊圖),原始輸入只有 和 ,一個 個輸出分類的 Softmax層能夠代表這種類型的決策邊界,請注意這是幾條線性決策邊界,這使得它能夠將數據分到3個類別中,在這張圖表中,我們所做的是選擇這張圖中顯示的訓練集,用數據的3種輸出標籤來訓練 Softmax分類器,圖中的顏色示了 Softmax分類器輸出的閾值,輸入的着色是基於三種輸出中概率最高的那種。因此我們可以看到這是 Logistic迴歸的一般形式, 有類似線性的決策邊界,但有超過兩個分類,分類不只有0和1,而是可以是0,1或2。
如圖(中間圖),另一個 Softmax分類器可以代表的決策邊界的例子,用有三個分類的數據集來訓練。
如圖(右邊圖),任何兩個分類之間的決策邊界都是線性的,但這些不同的線性函數可以把空間分成三類。
更多分類的例子:
如圖(左邊圖),因此這個綠色分類和 Softmax仍舊可以代表多種分類之間的這些類型的線性決策邊界。
如圖(中間圖)是 。
如圖(右邊圖)是 ,這顯示了 Softmax分類器在沒有隱藏層的情況下能夠做到的事情,當然更深的神經網絡會有 ,然後是一些以及更多的隱藏單元等等,到時就可以學習更復雜的非線性決策邊界,來區分多種不同分類。
參考資料:https://mooc.study.163.com/smartSpec/detail/1001319001.htm