簡單總結一下機器學習最常見的兩個函數,一個是logistic函數,另一個是softmax函數,若有不足之處,希望大家可以幫忙指正。本文首先分別介紹logistic函數和softmax函數的定義和應用,然后針對兩者的聯系和區別進行了總結。
1. logistic函數
1.1 logistic函數定義
引用wiki百科的定義:
A logistic function or logistic curve is a common "S" shape (sigmoid curve).
其實邏輯斯諦函數也就是經常說的sigmoid函數,它的幾何形狀也就是一條sigmoid曲線。
logistic函數的公式形式如下:
$f(x) = \frac{L}{1+e^{-k(x-x_{0})}}$
其中,$x_{0}$表示了函數曲線的中心(sigmoid midpoint),$k$是曲線的坡度。
logistic的幾何形狀如下所示:
1.2 logistic函數的應用
logistic函數本身在眾多領域中都有很多應用,我們只談統計學和機器學習領域。
logistic函數在統計學和機器學習領域應用最為廣泛或者最為人熟知的肯定是邏輯斯諦回歸模型了。邏輯斯諦回歸(Logistic Regression,簡稱LR)作為一種對數線性模型(log-linear model)被廣泛地應用於分類和回歸場景中。此外,logistic函數也是神經網絡最為常用的激活函數,即sigmoid函數。
2. softmax函數
2.1 softmax函數的定義
同樣,我們貼一下wiki百科對softmax函數的定義:
softmax is a generalization of logistic function that "squashes"(maps) a $K$-dimensional vector $z$ of arbitrary real values to a $K$-dimensional vector $\sigma(z)$ of real values in the range (0, 1) that add up to 1.
這句話既表明了softmax函數與logistic函數的關系,也同時闡述了softmax函數的本質就是將一個$K$維的任意實數向量壓縮(映射)成另一個$K$維的實數向量,其中向量中的每個元素取值都介於(0,1)之間。
softmax函數形式如下:
$\sigma(z)_{j}=\frac{e^{z_{j}}}{\sum^{K}_{k=1}e^{z_{k}}}$
其中$j = 1,2, ... , K$。
2.2 sotfmax函數的應用
softmax函數經常用在神經網絡的最后一層,作為輸出層,進行多分類。此外,softmax在增強學習領域內,softmax經常被用作將某個值轉化為激活概率,這類情況下,softmax的公式如下:
$P_{t}(a)=\frac{e^{\frac{q_{t}(a)}{T}}}{\sum^{n}_{i=1}e^{\frac{q_{t}(i)}{T}}}$
其中,$T$被稱為是溫度參數(temperature parameter)。當T很大時,即趨於正無窮時,所有的激活值對應的激活概率趨近於相同(激活概率差異性較小);而當T很低時,即趨於0時,不同的激活值對應的激活概率差異也就越大。這個結論很重要,Hinton在2015年的一篇paper中重點闡釋了如何根據溫度參數來soften神經網絡的輸出,從而提出了distillation的思想和方法。
3. logistic和softmax的關系
1)logistic具體針對的是二分類問題,而softmax解決的是多分類問題,因此從這個角度也可以理解logistic函數是softmax函數的一個特例。
這里借鑒UFLDL教程中的推導,具體的推導過程如下:
當分類數為2時,softmax回歸的假設函數表示如下:
利用softmax回歸參數冗余的特點,從兩個參數向量中都減去向量$\theta_{1}$,得到:
最后,用$\theta^{'}$來表示$\theta_{2}-\theta_{1}$,上述公式可以表示為softmax回歸器預測其中一個類別的概率為
$\frac{1}{1+e^{\theta^{'T}x^{i}}}$
另一個類別的概率為
$1-\frac{1}{1+e^{\theta^{'T}x^{i}}}$
這與logistic回歸是完全一致的。
2)從概率角度來看logistic和softmax函數的區別。
softmax建模使用的分布是多項式分布,而logistic則基於伯努利分布,這方面具體的解釋可以參考Andrew Ng的講義去理解。
3)softmax回歸和多個logistic回歸的關系。
有了解的同學可能知道多個logistic回歸通過疊加也同樣可以實現多分類的效果,那么多個logistic回歸和softmax一樣不一樣呢?
softmax回歸進行的多分類,類與類之間是互斥的,即一個輸入只能被歸為一類;
多個logistic回歸進行多分類,輸出的類別並不是互斥的,即"蘋果"這個詞語既屬於"水果"類也屬於"3C"類別。
4. 參考內容
[1] wiki百科:logistic函數
[2] wiki百科:softmax函數