簡單總結一下機器學習最多見的兩個函數,一個是logistic函數,另外一個是softmax函數,如有不足之處,但願你們能夠幫忙指正。本文首先分別介紹logistic函數和softmax函數的定義和應用,而後針對二者的聯繫和區別進行了總結。php
引用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})}}$spa
其中,$x_{0}$表示了函數曲線的中心(sigmoid midpoint),$k$是曲線的坡度。3d
logistic的幾何形狀以下所示:blog
logistic函數自己在衆多領域中都有不少應用,咱們只談統計學和機器學習領域。
教程
logistic函數在統計學和機器學習領域應用最爲普遍或者最爲人熟知的確定是邏輯斯諦迴歸模型了。邏輯斯諦迴歸(Logistic Regression,簡稱LR)做爲一種對數線性模型(log-linear model)被普遍地應用於分類和迴歸場景中。此外,logistic函數也是神經網絡最爲經常使用的激活函數,即sigmoid函數。ip
一樣,咱們貼一下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$。
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的思想和方法。
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"類別。
[1] wiki百科:logistic函數
[2] wiki百科:softmax函數