多類分類下為什麼用softmax而不是用其他歸一化方法?
多類分類問題下使用softmax,我理解的功能主要是能把所有類別輸出和唯一,也就是說把輸出直接看作是該類的概率。但是達到這個目的完全可以用一些歸一化方法,例如min-max方法,或者乾脆直接用每個值除以向量和,都能做到把數據映射到[0,1]區間。
請問使用softmax除了把數據範圍映射到[0,1] 還有啥其他的作用?
補充一下 @王贇 Maigo的答案。
如果用 cross entropy 做 cost function 的話,backpropagation 的時候要針對 cross entropy 求導,並向後傳導。假設當前樣本的 label 為 ,對應輸出層結點為, 那麼 cost 是 ,求導可得 。這裡面 就是從輸出層開始還得往後傳繼續求導的部分。
這裡在(即輸出層輸出的概率)比較小的時候,會出現 numerically unstable (overflow) 的情況,很容易就強擼灰飛煙滅了。而如果輸出層是 softmax(或者二分類時的 sigmoid,其實可以看成 softmax 的一種特殊情況),這個分母部分剛好可以被 softmax 層的導數(部分)消除。
實際上我從來沒見過其他激活函數放在輸出層接 cross entropy 做 cost function 的情況。
Pluskid 大神有一篇文章很詳細的解釋了這個問題:Softmax vs. Softmax-Loss: Numerical Stability有兩點原因。
softmax的形式為:
原因之一在於softmax設計的初衷,是希望特徵對概率的影響是乘性的。
原因之二在於,多類分類問題的目標函數常常選為cross-entropy,即,其中目標類的等於1,其它類的等於0。在神經網路模型(最簡單的logistic regression也可看成沒有隱含層的神經網路)中,輸出層第個神經元的輸入為。神經網路是用error back-propagation訓練的,這個過程中有一個關鍵的量是。可以算出,同時使用softmax和cross-entropy時,。這個形式非常簡潔,而且與線性回歸(採用最小均方誤差目標函數)、兩類分類(採用cross-entropy目標函數)時的形式一致。
先理解max. 對一個三類問題,某樣本經過NN處理後,最後一層輸出值為[24,3,0.1]的話,那麼經過max之後的結果為[1,0,0]。對不?(至於為啥要max,輸出結果本來挺奇怪 經過max以後就是categorical 的了,那麼樣本的類標就可以和他的預測值一起合體 直觀地計算cost function。)我們最需要的其實是max,但是max有個缺點就是不可導,沒法用在dp里,於是有人就想出了softmax。思路就是指數級擴大最後一層的輸出,每個值都會增大,然而最大的那個值相比其他值擴大的更多,然後歸一化一下,考慮一下極限,如果最大值x_1經過指數運算後想對其他值為無窮大,那麼exp(x_1)/exp(x_1)+others =1,其他輸出值對應的為0。所以softmax模擬了max的行為,同時他還可導。至於其他的歸一化準則,有什麼優點呢?
機器學習剛入門,從物理學的角度來隨便說說
softmax這個形式跟玻爾茲曼分布是一致的,參看wikiBoltzmann distribution也就是說,認為各個因素之間是線性可加的關係,加起來就是類似於物理裡面的能量的形式,這其實也是跟LR本身的思路等價,將概率這種不可加的元素,映射為一個統一的可加元素(物理裡面的能量),加完之後再映射回來。類似的,LR里的logistic映射函數就是對應費米-狄拉克分布————新內容的分隔線——————
寫上面那個答案的時候只是從數學形式出發論證,並沒有具體的推導,後來看到了這個答案為什麼 LR 模型要使用 sigmoid 函數,背後的數學原理是什麼? - 匿名用戶的回答,最後附的pdf文件就是推導。softmax是最大熵模型的結果,玻爾茲曼分布也是熱力學熵最大(微觀狀態等概率)的結果,所以它們具有相同的結果就是理所當然的了。當然如同上面所說,關鍵還要把特徵的貢獻看成是如同能量一樣的可加形式(線性模型),因為最大熵模型可以選擇不同的約束條件,只有這個條件會推導出這個結論
個人感覺從廣義線性模型和指數簇更好理解一些。
softmax公式就是熱力學裡的boltzmann分布,其公式的源頭是最大化熵(熱力學裡最大化熵也就等同於最大化log微正則排列組合個數)。沒有任何先驗知識的情況下,一個分類的概率正比於該分類擁有的微正則個數(每個微正則排列組合出現的概率相等)。在滿足限制條件1:系統能量守恆 2:分類個數不變的條件下,通過最大化系統總微正則個數可推導出boltzmann分布的形式。以上內容翻譯成人話的意思就是:在滿足一系列限制條件的情況下,對一個多分類問題,沒有任何先驗知識的系統,最公正的,也就是最沒有偏私,才能讓不確定性最大,這就必然導致概率分布滿足boltamann形式,也就是softmax。
是選擇使用 softmax 分類器呢,還是使用 logistic 回歸演算法建立 k 個獨立的二元分類器呢?
這一選擇取決於你的類別之間是否互斥,例如,如果你有四個類別的音樂,分別為:古典音樂、鄉村音樂、搖滾樂和爵士樂,那麼你可以假設每個訓練樣本只會被打上一個標籤(即:一首歌只能屬於這四種音樂類型的其中一種),此時你應該使用類別數 k = 4 的softmax回歸。(如果在你的數據集中,有的歌曲不屬於以上四類的其中任何一類,那麼你可以添加一個「其他類」,並將類別數 k 設為5。)
如果你的四個類別如下:人聲音樂、舞曲、影視原聲、流行歌曲,那麼這些類別之間並不是互斥的。例如:一首歌曲可以來源於影視原聲,同時也包含人聲 。這種情況下,使用4個二分類的 logistic 回歸分類器更為合適。這樣,對於每個新的音樂作品 ,我們的演算法可以分別判斷它是否屬於各個類別。
現在我們來看一個計算視覺領域的例子,你的任務是將圖像分到三個不同類別中。(i) 假設這三個類別分別是:室內場景、戶外城區場景、戶外荒野場景。你會使用sofmax回歸還是 3個logistic 回歸分類器呢? (ii) 現在假設這三個類別分別是室內場景、黑白圖片、包含人物的圖片,你又會選擇 softmax 回歸還是多個 logistic 回歸分類器呢?
在第一個例子中,三個類別是互斥的,因此更適於選擇softmax回歸分類器 。而在第二個例子中,建立三個獨立的 logistic回歸分類器更加合適。
廣義線性模型,請參考PRML(好像是第三章)
廣義線性模型的推導出來不就是這個嘛?雖然不了解廣義線性模型具體是個什麼東西
廣義線性模型,詳細請見cs229的note
輸出的分類其實就是全空間的概率分布,需要滿足 所有之和=1,同時還要在(0,1)這個區間。採用softmax是可以滿足的。還連續可導。所以採用了softmax. 若是能找到其他函數,也能有這效果,應該同樣可以
推薦閱讀:
※為什麼都說神經網路是個黑箱?
※為什麼人工智慧的研究都是基於演算法,而不是基於「硬體」?
※人工智慧是根據什麼原理來設計和製造的?
※有關神經網路和遺傳演算法?
※不擅長編程,有運籌學基礎,該怎麼學習智能演算法?
TAG:機器學習 | 模式識別 | 凸優化 | 神經網路 | Logistic回歸 |