譯自:http://willwolf.io/2017/04/19/deriving-the-softmax-from-first-principles/
本文的原始目標是探索softmax函數與sigmoid函數的關系。事實上,兩者的關系看起來已經是遙不可及:一個是分子中有指數!一個有求和!一個分母中有1!。當然,最重要的是兩個的名稱不一樣。
推導一下,很快就可以意識到,兩者的關系可以回溯到更為泛化的條件慨率原理的建模框架(back out into a more general modeling framework motivated by the conditional probability axiom)。本文首先探索了sigmoid函數是一種特殊的softmax函數,以及各自在Gibbs distribution, factor products和概率圖模型方面的理論支撐。接下來,我們繼續展示概框架如何自然的擴展到canonical model class,如softmax回歸,條件隨機場(Conditional Random Fields),朴素貝葉斯(Naive Bayes)以及隱馬爾科夫模型(Hidden Markov Model)。
目標(Our Goal)
下圖是一個預測模型(predictive model),其中菱形表示接收輸入,並產生輸出。輸入向量,有3種可能的輸出
:。模型的目標在於在輸入的條件下產生各種輸出的概率:
。概率是位於閉區間[0,1]的一個實數值。
輸入對輸出的影響(How does the input affect the output?)
每個輸入是4個數的列表(輸入向量是4維),每一維度對各個可能的輸出影響程度不同,這里我們稱它為權重(weight)。4個輸入數據乘以3個輸出,代表了12個不同的權重。可能如下表所示:
生成輸出(Producing an Output)
給定一個輸入向量,我們的模型將使用上述權重來生成輸出
。這里假設每個輸入元素的影響是加性的(The effect of each input element will be additive.)。至於原因留待后續解釋。
這些求和公式會對模型的輸出結果產生貢獻。最大的數將會勝出。例如,若上式得到的結果是,則我們的模型會得到結論:最大可能產生c。
轉換為概率(Converting to Probabilities)
之前說過,我們的目標在於獲得概率:。其中
為黑體,為了表示任意的輸入向量。當給定一個具體的輸入向量時,我們用花體
表示,這樣我們的目標可以更精確的表示為:
。至此,我們已經獲得
。為了將這些值轉換成一個概率,也就是閉區間[0,1]之間的一個實數值,我們只需要用這些值的和去除原始值。
最后我們得到一個合理的概率分布,所有值的和相加為1.
如果我們得到的值是負數怎么辦?(What if our values are negative?)
如果其中的一個未經正則化的概率的值為負數,例如,,那么所有的都會被破壞。該值對應的概率值也不會是一個合理的概率,
因為
它不能落在[0,1]閉區間之內。
為了保證所有沒有正則化的概率值為正數,我們必須用一個函數對這些值進行處理,以保證能夠產生一個嚴格的正實數。簡單來說,就是指數函數,我們選額歐拉數e作為底。這種選擇的原理有待后續解釋。
這樣我們正則化后的概率,也就是合法的概率,如下式所示:
與Sigmoid函數的聯系(Relationship to the sigmoid)
如果說Softmax可以得到在多於兩個()不同的輸出上的一個合理的概率分布,那么sigmoid可以得到針對兩種輸出(
)的一個合理的概率分布。也就是說,sigmoid僅僅是softmax的一個特例。用定義來表示,假設模型只能產生兩種不同的輸出:
和
,給定輸入
,我們可以寫出sigmoid函數如下:
然而,值得注意的是,我們只需要計算一種結果的產生概率,因為另外一種結果
的產生概率可以由概率分布的性質得到:
。接下來,我們對
的產生概率的表示進行擴展:
然后,對該分式的分子和分母都同時除以,得到:
最后,我們可以用該式代入求另一種結果的產生概率的式子中得到:
該等式是欠定的(underdetermined),由於等式中有多於1個的未知變量。如此說來,我們的系統可以有無窮多組解。因此,我們對上式進行簡單的修改,直接固定其中一個值。例如:
這就是sigmoid函數,最終,我們得到:
為什么這些未正則化概率值是求和得到(影響是加性的)?(Why is the unnormalized probability a summation?)
我們理所當然的認為canonical線性組合的語義是。但是為什么先求和?
為了回答這個問題, 我們先復述一下我們的目標:給定輸入,預測各種可能結果的產生概率,即。接下來,我們重新看一下條件概率的定義式:
發現這個式子很難解釋,我們對這個式子重新變化一下,以或則某些直覺:
得到的信息是:同時觀測到A與B的值的概率,也就是A與B的聯合概率,等於觀測到A的概率乘以給定A觀測到B的概率。
例如,假設生一個女孩的概率是0.55,而女孩喜歡數學的概率是0.88,因此,我們得到:
現在,我們對原始的模型輸出,利用條件概率的定義式,進行重寫:
值得注意的是,這里采用指數函數,以保證將每個未正則的概率值轉換為一個嚴格概率值。技術上來講,這個數字稱為,因為可能大於1,所以並非一個嚴格的概率,我們需要引入另一個項到我們的等式鏈中:
等式左邊的項:
分子是一個嚴格的聯合概率分布。
分母為觀測到任意一個x值的概率,為1
等式右邊的項:
分子是一個嚴格的正的未經歸一化的概率值
分母是某個常數,以保證和為1。這里歸一化項稱為partition function。
知道了這些,我們可以對softmax等式中的分子進一步分解:
Lemma:若我們的輸出函數softmax函數通過指數函數得到一個多個可能結果上的合理的條件概率分布,那么下述結論肯定成立:該softmax函數的輸入()必須是原始輸入元素
的加權求和模型。
上述Lemma成立的前提是我們首先接收這樣的事實:。從而引出來Gibbs distribution。
(二)Gibbs Distribution
Gibbs Distribution給出了一個結果集合上的未歸一化的聯合概率分布,類似於,定義如下:
Factor本質為滿足下面兩個條件的函數:(1)將隨機變量作為輸入,所有輸入隨機變量構成的列表稱為scope;(2)針對每個可能的隨機變量的組合值(即scope的叉積空間中的點),返回一個值。例如,scope為的factor可能如下所示:
(三)Softmax regression
未完待續