Sigmoid函式總結

Candy_GL發表於2019-02-22

Sigmoid函式又叫Logistic函式,它在機器學習領域有極其重要的地位。以前一直不是很理解Sigmoid函式的重要性,查了很多資料,大體上屢了一下,不過數學功底太差,很多地方理解的不夠透徹。這裡簡單記錄一下。

一 函式基本性質
二 Sigmoid函式與邏輯迴歸
三 為什麼要選擇Sigmoid函式
LR的需求選擇Sigmoid是可以的
Sigmoid特殊的性質為什麼選擇Sigmoid
正態分佈解釋
最大熵解釋
四 總結
一、 函式基本性質
首先Sigmoid的公式形式: 
S(t)=11+e−t
S(t)=11+e−t
函式影象:

函式的基本性質:

定義域:(−∞,+∞)(−∞,+∞)
值域:(−1,1)(−1,1)
函式在定義域內為連續和光滑函式
處處可導,導數為:f′(x)=f(x)(1−f(x))f′(x)=f(x)(1−f(x))
最早Logistic函式是皮埃爾·弗朗索瓦·韋呂勒在1844或1845年在研究它與人口增長的關係時命名的。廣義Logistic曲線可以模仿一些情況人口增長(P)的 S 形曲線。起初階段大致是指數增長;然後隨著開始變得飽和,增加變慢;最後,達到成熟時增加停止。1

二、 Sigmoid函式與邏輯迴歸
Sigmoid函式之所以叫Sigmoid,是因為函式的影象很想一個字母S。這個函式是一個很有意思的函式,從影象上我們可以觀察到一些直觀的特性:函式的取值在0-1之間,且在0.5處為中心對稱,並且越靠近x=0的取值斜率越大。

機器學習中一個重要的預測模型邏輯迴歸(LR)就是基於Sigmoid函式實現的。LR模型的主要任務是給定一些歷史的{X,Y},其中X是樣本n個特徵值,Y的取值是{0,1}代表正例與負例,通過對這些歷史樣本的學習,從而得到一個數學模型,給定一個新的X,能夠預測出Y。LR模型是一個二分類模型,即對於一個X,預測其發生或不發生。但事實上,對於一個事件發生的情況,往往不能得到100%的預測,因此LR可以得到一個事件發生的可能性,超過50%則認為事件發生,低於50%則認為事件不發生

從LR的目的上來看,在選擇函式時,有兩個條件是必須要滿足的: 
1. 取值範圍在0~1之間。 
2. 對於一個事件發生情況,50%是其結果的分水嶺,選擇函式應該在0.5中心對稱。

從這兩個條件來看,Sigmoid很好的符合了LR的需求。關於邏輯迴歸的具體實現與相關問題,可看這篇文章Logistic函式(sigmoid函式) - wenjun’s blog,在此不再贅述。

三、 為什麼要選擇Sigmoid函式?
很多文章講到第二章就結束了,我們試著理解一下,第二章其實是在說LR模型可以選擇Sigmoid函式實現,但是我們為什麼選Sigmoid函式而不選擇其他函式呢?這其實也是我一直困惑的點。例如仔細觀察上述的兩個條件,並不是只有Sigmoid能滿足這兩個條件,取值在0-1之間且以0.5值處中心對稱的曲線函式有無數種。

我們可以從兩個方面試著解釋一下為什麼選擇Sigmoid函式。

LR的需求(選擇Sigmoid是可以的)
上邊我們從直觀上說明了LR可以選擇Sigmoid,下面從從數學上解釋一下LR模型的原理。

對於一個分類模型,我們需要給定一個學習目標,對於LR模型來說,這個目標是最大化條件似然度,對於給定一個已知的樣本向量x,我們可以表示其對應的類標記y發生的概率為P(y|x;w)P(y|x;w),在此基礎上定義一個最大似然函式學習w,就可以得到一個有效的LR分類模型。

仔細觀察上述對LR的描述,LR模型的重點是如何定義這個條件概率P(y|x;w)P(y|x;w)。對於一個有效的分類器,通常上response value(響應值)即w⋅xw⋅x(w和x的內積)代表了資料x屬於正類(y=1)的置信度。w⋅xw⋅x越大,這個資料屬於正類的可能性越大;w⋅xw⋅x越小,屬於反類的可能性越大。因此,如果我們有一個函式能夠將w⋅xw⋅x對映到條件概率P(y=1|x;w)P(y=1|x;w),而sigmoid函式恰好能實現這一功能(參見sigmoid的函式形狀):首先,它的值域是(0,1),滿足概率的要求;其次,它是一個單調上升函式。最終,p(y=1|x,w)=sigmoid(w⋅x)p(y=1|x,w)=sigmoid(w⋅x)。sigmoid的這些良好性質恰好能滿足LR的需求。2

Sigmoid特殊的性質(為什麼選擇Sigmoid)
這裡給出兩個解釋:(個人感覺第二個更準確一點,不過真心看不懂)

正態分佈解釋
大多數情況下,並沒有辦法知道未知事件的概率分佈形式,而在無法得知的情況下,正態分佈是一個最好的選擇,因為它是所有概率分佈中最可能的表現形式。正態分佈的函式如下:

在笛卡爾座標系下,正態分佈的函式呈現出“鍾”形,如下圖。圖中四條曲線代表引數不同的四個正態分佈。

在假定某個事件的概率分佈符合正態分佈的規律後,要分析其可能發生的概率,就要看它的積分形式,上圖四個正態分佈的曲線如圖:

Sigmoid函式和正態分佈函式的積分形式形狀非常類似。但計算正態分佈的積分函式,計算代價非常大,而Sigmoid的形式跟它相似,卻由於其公式簡單,計算量非常的小,因此被選為替代函式。3

最大熵解釋
該解釋是說,在我們給定了某些假設之後,我們希望在給定假設前提下,分佈儘可能的均勻。對於Logistic Regression,我們假設了對於{X,Y},我們預測的目標是Y|XY|X,並假設認為Y|XY|X服從bernoulli distribution,所以我們只需要知道P(Y|X)P(Y|X);其次我們需要一個線性模型,所以P(Y|X)=f(wx)P(Y|X)=f(wx)。接下來我們就只需要知道f是什麼就行了。而我們可以通過最大熵原則推出的這個f,就是sigmoid。4

這裡給出推導過程,大神們可以看看,我是真沒看懂: 
LogisticRegressionMaxEnt.pdf

四、 總結
綜上所述,Logistics Regression之所以選擇Sigmoid或者說Logistics函式,因為它叫Logistics Regression。

沒錯,我是正經的,之所以這樣說是因為問題在於,並不是只有Sigmoid函式能解決二分類問題。

為什麼要選用sigmoid函式呢?為什麼不選用其他函式,如probit函式? 
其實,無論是sigmoid函式還是probit函式都是廣義線性模型的連線函式(link function)中的一種。選用聯接函式是因為,從統計學角度而言,普通線性迴歸模型是基於響應變數和誤差項均服從正態分佈的假設,且誤差項具有零均值,同方差的特性。但是,例如分類任務(判斷腫瘤是否為良性、判斷郵件是否為垃圾郵件),其響應變數一般不服從於正態分佈,其服從於二項分佈,所以選用普通線性迴歸模型來擬合是不準確的,因為不符合假設,所以,我們需要選用廣義線性模型來擬合資料,通過標準聯接函式(canonical link or standard link function)來對映響應變數,如:正態分佈對應於恆等式,泊松分佈對應於自然對數函式,二項分佈對應於logit函式(二項分佈是特殊的泊松分佈)。因此,說了這麼多是想表達聯接函式的選取除了必須適應於具體的研究案例,不用糾結於為什麼現有的logistic迴歸會選用sigmoid函式,而不選用probit函式,雖然網上也有不少說法說明為什麼選擇sigmoid函式,例如“該函式有個漂亮的S型”,“在遠離x=0的地方函式的值會很快接近0/1”,“函式在定義域內可微可導”,這些說法未免有些“馬後炮”的感覺,哪個說法仔細分析都不能站住腳,我覺得選用sigmoid函式也就是因為該函式滿足分類任務,用的人多了也就成了預設說法,這跟給物體取名字有點類似的感覺,都有些主觀因素在其中。5

邏輯函式 - 維基百科 ↩
知乎-為什麼 LR 模型要使用 sigmoid 函式,背後的數學原理是什麼?-謝澎濤的回答 ↩
Sigmoid什麼鬼_ _ Shuping LIU ↩
知乎-為什麼 LR 模型要使用 sigmoid 函式,背後的數學原理是什麼?-匿名回答 ↩
機器學習-邏輯迴歸與最大似然估計 - Longfei Han ↩
--------------------- 
作者:狼血wolfblood 
來源:CSDN 
原文:https://blog.csdn.net/wolfblood_zzx/article/details/74453434 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

相關文章