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