天天看點

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

1.邏輯回歸是廣義線性回歸(GLM)的一種特殊形式

2.GLM有三個要素構成:響應變量服從指數族分布,系統分量是預測變量x的線性模型,通過連接配接函數聯系前兩者

2.邏輯回歸建立在0-1分布上,而0-1分布是指數族分布一員

3.由最大熵原理可以推導出指數族分布

4.邏輯回歸假設函數值域是[0,1]能代表機率是因為指數族分布的對數配分函數的一階導(是充分統計量的期望)剛好與0-1分布均值為h的事實相吻合

5.最後,連接配接函數選擇典則連接配接,這樣可以使得GLM有完全統一的MLE正則方程

6.綜上,推導出邏輯回歸的假設函數是siomoid函數,這是基于GLM模型推導的結果,不是原因

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

邏輯回歸是機器學習用于二分類任務的重要算法,也是金融風控評分卡模型的假設函數。小編剛學習的時候就很多疑問:為什麼一定是sigmoid函數而不能是均方誤差呢,代價函數為什麼是交叉熵呢。

一開始我得到的答案是分類問題要限定在0~1機率範圍,sigmoid的性質很好等等,這些答案都是錯的!!!

要回答【邏輯回歸為什麼要使用sigmoid函數】這個問題,得了解【指數族分布】和【廣義線性回歸】

1.指數族分布

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

滿足已知事實的最大熵問題

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

機器學習經常需要做的事情是:給定一組訓練資料 D,我們希望通過 D 得到我們研究空間的機率分布。這樣,給出一個測試資料,我們就可以找出條件機率中機率最大的那個點,将其作為答案輸出。

直接學習機率分布是不現實的。直接學習機率分布最簡單的方法,就是把空間分成很多很多小的單元,然後統計樣本落在每個單元的頻率,作為每個單元的機率分布。但是這種方法會面臨着資料不足、有噪音、存儲能力受限等問題。

在大多數情況下,我們都會人為指定某種機率分布的形式(例如指定為高斯分布或伯努利分布等)。對機率函數的學習就轉化為了函數參數的學習,減小了學習的難度;我們也隻需要存儲我們感興趣的統計量(例如對于高斯分布,我們隻需要存儲均值和方差;對于伯努利分布,我們隻需要存儲取正類的機率),減小了對存儲空間的需求。當然,由于人為限定了機率分布形式,我們就需要根據不同的問題選擇不同的分布,就像對不同問題選擇不同的機器學習模型一樣。

 為此,我們抽象出機率模型P,它滿足以下性質:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

其中,Xi表示第i條訓練樣本資料, ϕ(Xi)表示從第i條樣本資料中感興趣的統計量(向量),簡單來說,就是機率模型的期望等于所有訓練資料的均值

注: ϕ(X)其實叫做充分統計量,它直覺了解是用一定的統計量(可以是一個,也可以是多個)就能表示一組資料,比如高斯分布,隻需要存儲均值和方差,就能生成一組服從該分布的資料。可以減少資料存儲的壓力。

滿足上述式子的機率模型有很多種,我們再加一條限制:這個機率模型要有最大的資訊熵,也就是有最大的不确定性。我們認為這樣的機率模型能夠涵蓋更多的可能性。

所謂的資訊熵,就是衡量事件包含資訊量的大小;最大熵,就是每個随機事件都是等可能性的。(關于熵,小編已經在機器學習之模型評估(損失函數)介紹過,這裡再次介紹)

熵是資訊論中最基本、最核心的一個概念,它衡量一個機率分布的随機程度,或者說包含的資訊量的大小。

我們知道,如果一個事件發生的機率越大,它所包含的資訊量越少,反之則越多。比如事件“太陽從東邊升起”,這幾乎是100%确定的事情,有用的資訊量很少。是以,事件包含的資訊量與事件發生的機率成反比。

接着進一步思考,如果是獨立的兩個事件,那麼其資訊量應該是求和,而它們同時發生的可能,應該是機率的乘積。是以,我們要找到一個名額,能夠衡量機率和資訊的之間的這種直覺關系,天才的數學家們想到了這樣一個名額:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

p(x)是事件發生的機率,h(x)表示事件包含的資訊量。可以看到,名額h(x)滿足上述兩個要求:資訊量與機率成反比;兩個獨立事件發生的資訊量是各自求和。

有了以上定義,熵的概念自然而然就出來了,上面是考察了一個确定事件下的資訊量,那麼如果這個事件是一個随機變量呢(記得嗎,學習機率論的時候也是從事件到随機事件的過度,這個就是天才數學家們的思維,你學到了嗎),就用數學期望衡量其資訊量的大小。這個數學期望就是我們要的熵:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

這裡,随機變量越均勻(随機),熵越大,反之越小。

是以,最大熵就是所有随機變量等可能發生,其原理的實質可以了解為,在已知部分知識的前提下,關于未知分布最合理的推斷就是符合已知知識最不确定或最随機的推斷。

是以,從最大熵原理出發,機率模型求解化為以下限制問題

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

可以這麼了解:在滿足已知事實(現實中收集到的資料集)條件下的最大熵

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

從最大熵原理到指數族分布

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

利用拉格朗日乘子法求解上面的數學限制問題:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

充分統計量ϕ(X)可以有多個,是以是一個向量,故θ也是一個向量

函數L對p(x)求偏導,可得:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

最後我們推導出機率模型表達式紅色框框那一坨東西,實際上,這坨東西就是機率論上很重要的一個族分布~指數族分布(以後小編會專門介紹指數族分布,這裡僅僅為了推導出邏輯回歸的表達式)。

我們先給出表達式的A其實是關于θ的函數,與x無關,隻需要對所有訓練集求和即可:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

這裡,給出指數族分布的一般表達形式。

稱一個機率密度函數族或機率品質函數族為指數族(exponential family),如果它統一表示成:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

注:定義出自《統計推斷》102頁,教科書标準定義

大多數情況下,我們用更一般參數化的形式表示指數族分布:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

這裡必須要強調的是,參數向量η實際更一般形式為w(η),當取w(η)=η時,這種叫做canonical form,在GLM回歸中連接配接函數通常用canonical link,其實就是w(η)=η的情況。維基百科也有提到:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

實際上,大多數機率分布都可表示為指數族分布形式:

  1. 伯努利分布(Bernoulli):對0、1問題模組化
  2. 多項式分布(Multinomial):對有K個離散結果事件模組化
  3. 泊松分布(Poisson):對計數過程進行模組化。比如網站通路量,商店顧客數量等。
  4. 指數分布(exponential)與伽馬分布(gamma):對有間隔的正數進行模組化
  5. b分布:對小數模組化
  6. Dirichlet分布:對機率分布模組化
  7. Wishart分布:協方差矩陣的分布
  8. 高斯分布

關于指數族分布,是機器學習非常重要的數學基礎,以後小編會出一篇系統講解,現在是從最大熵原理出發推導出該分布的一般形式。

2.廣義線性回歸(GLM)

廣義線性模型(Generalized linear model)描述一個響應變量的均值與自變量x的關系。

一個GLM包含三個部分:響應變量,系統分量和連接配接函數

(1)響應變量Y1,Y2,...,Yn是随機分量。假定它們是獨立的随機變量,其中每一個服從來自于一個特定的指數族分布。這些Yi不是同分布的,但它們每一個都有來自于同一個分布族的分布,這個分布族可以是二項,Possion,正态等

(2)系統分量是模型。它是預測變量X的一個函數,對于參數是線性的,并且與Yi的均值相聯系。這裡隻考慮線性關系(θ0+θ1X1+..+θnXn)

(3)連接配接函數通過G(μ)=θ0+θ1X1+..+θnXn連接配接上面兩個分量,其中μi=E(Yi)

注:該定義出自《統計推斷(翻譯版原書第2版)》648頁對GLM的定義

把GLM假設寫得更直覺一點:

(1)機率分布服從指數族分布

(2)線性關系:(θ^T)X

  (3)連接配接函數g:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

3.邏輯回歸

對于0-1分布的模組化問題,記y=1為正樣本,y=0為負樣本,h為正樣本出現的機率,則樣本服從二項分布:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

由此,響應變量Y服從二項分布的指數族分布,滿足GLM第一個假設。

注意到A(η)可以轉換為η的表達式:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

0-1分布的均值為u=h,于是有:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

可見,該表達式和0-1分布的均值為h的事實相吻合,也就是說A(η)一階導的取值值域由機率h完全刻畫,這也是為什麼sigmoid函數把線性回歸轉化到[0,1]之間可以代表機率。

注:指數族分布的對數配分函數與充分統計量有如下關系:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

于是連接配接函數是關于h的函數:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

理論上,可以有很多種,這裡選取的連接配接函數是:

g(h)=log[h/(1-h)]

為什麼要這麼選呢,因為這樣的連接配接函數稱為典則連接配接(Canonical link),canonical形式唯一,它可以使得GLM有完全統一的MLE正則方程(下一節推導):

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

由此,我們得到邏輯回歸的假設函數:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

最後我們發現,假設函數剛好是sigmoid函數。

由此,邏輯回歸的連接配接函數是G(h)=log[h/(1-h)],激活函數是sigmoid函數,它是推導的結果,不是原因!!!

注:從0-1分布推導出指數族分布剛好是sigmoid形式是沒掌握GLM連接配接函數的概念,這是不對的;sigmoid函數有很好的性質(平滑,可導,限定在0-1區間)這些答案犯了把結果當成原因的邏輯錯誤

拓展:對于0-1分布,連接配接函數可以不選擇Canonical link,如果選擇标準正态累計分布函數,模型叫做probit回歸;如果用Gumbel累計分布函數,連接配接函數叫做log-log連接配接

4.邏輯回歸參數估計

邏輯回歸最常用的估計方法是MLE,還記得嗎,最大似然是已知分布和事件結果,求解參數,在這裡,已知分布就是我們假定的響應變量服從0-1分布,事件結果就是給定的是資料集。下面我們用MLE估計其參數。

根據連接配接函數,不妨記F:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

給定樣本點x1,x2....,xn,似然函數為:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

對數似然是

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

求對數似然關于θ參數的偏導數,首先,常數項偏導數為:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

同理可得非常數項偏導數,于是得到似然函數關于θ參數的偏導數:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

如果F(w)是sigoimd函數,則:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

是以,似然函數關于θ參數可以簡化為:

sigmoid函數_從【為什麼要用sigmoid函數】到真的懂【邏輯回歸】

這樣子簡化了GLM的MLE方程,這也是為什麼要用sigmoid激活函數的原因。

這些方程式θ參數非線性方程,必須用數值解法,最常用的是梯度下降法

參考資料:

《統計推斷(翻譯版原書第2版)》

https://www.zhihu.com/question/41647192

https://www.zhihu.com/question/35322351

https://en.wikipedia.org/wiki/Generalized_linear_model

繼續閱讀