廣義線性模型GLM

FarmerJohn發表於2020-04-04

本文轉自 GLM(廣義線性模型) 與 LR(邏輯迴歸) 詳解(原作者:愛學習的段哥哥)

GLM的內容,本應該較早之前就總結的,但一直覺得這種教科書上的基礎知識不值得專門花時間copy到部落格裡來。直到某一天看到一篇不錯的總結,在徵求作者同意後,轉載於此(本人比較懶啦)(然而公式重新排版竟然花了1個多小時TT)。

原文如下

George Box said: “All models are wrong, some are useful”

1. 始於 Linear Model

作為 GLM 的基礎,本節 review 經典的 Linear Regression,並闡述一些基礎 term。 
我們線性迴歸的基本如下述公式,本質上是想通過觀察x,然後以一個簡單的線性函式 h(x) 來預測 y:
      y=h(x)=w^Tx

1.1 dependent variable y

這是我們的預測目標,也稱 response variable。這裡有一個容易混淆的點,實際上 y 可以表達三種含義(建模用的是分佈,觀察到的是取樣,預測的是期望):

distribution;抽象地討論 response variable 時,我們實際上關注對於給定資料和引數時, y| x,w 服從的分佈。Linear Regression 的 y 服從高斯分佈,具體取值是實數,但這裡我們關注的是分佈。
observed outcome;我們的 label,有時用 t 區分表示;這是真正觀察到的結果,只是一個值。
expected outcome;y=E[y|x]=h(x) 表示模型的預測;注意 y 實際上服從一個分佈,但預測結果是整個分佈的均值 \mu,只是一個值。


1.2 independent variable x

這是我們的特徵,可以包含很多維度,一個特徵也稱為一個 predictor。

1.3 hypothesis h(x)
線性模型的假設非常簡單,即 h(x)=w^Tx inner product of weight vector and feature vector,被稱為 linear predictor。這是就是線性模型,GLM 也是基與此的推廣。 
深入來看,各個維度特徵(predictor) x_j 通過係數 w_j 線性加和,這一過程將資訊進行了整合;而不同的 weight(coefficient) 反映了相關特徵不同的貢獻程度 。

2. 推廣到 Generalized Linear Model

2.1 Motive & Definition

線性模型有著非常強的侷限,即 response variable y 必須服從高斯分佈;主要的侷限是擬合目標 y 的 scale 是一個實數 (-\infty ,+\infty )。具體來說有倆個問題:

y 的取值範圍和一些常見問題不匹配。例如 count(遊客人數統計恆為正)以及 binary(某個二分類問題)
y 的方差是常數 constant。有些問題上方差可能依賴 y 的均值,例如我預測目標值越大方也越大(預測越不精確)
所以這時我們使用 Generalized Linear Model 來克服這倆個問題。 
一句話定義 GLM 即(from wiki): 
In statistics, the generalized linear model (GLM) is a flexible generalization of ordinary linear regression that allows for response variables that have error distribution models other than a normal distribution. 
詳細來說,我們可以把 GLM 分解為 Random Component、System Component 和 Link Function 三個部分

2.2 Random Component

An exponential family model for the response

這裡是指 response variable 必須服從某一 exponential family distribution 指數族分佈,即 y|x,w\sim ExponentialFamily(\eta)\eta 指 exponential family 的 natural parameter 自然引數。 
例如 linear regression 服從 Gaussian 高斯分佈,logistic regression 服從 Bernoulli 伯努利分佈。指數族還有很多分佈如 多項分佈、拉普拉斯分佈、泊松分佈等等。 
另外,這也可以被稱為 Error Structure : error distribution model for the response。對於 Gaussian 的 residual 殘差 \epsilon =y-h(x) 服從高斯分佈 N(0,\sigma ) 是很直觀可;但是,例如 Bernoulli 則沒有直接的 error term。可以構造其他的 residual 服從 Binomial,但是較抽象,本文不對此角度展開。

2.3 Systematic Component

linear predictor

廣義線性模型 GLM 本質上還是線性模型,我們推廣的只是 response variable yy 的分佈,模型最終學習的目標還是 linear predictor w^Tx 中的 weight vector。 
注意,GLM 的一個較強的假設是\eta=w^Tx,即 yy 相關的 exponential family 的 natural parameter \eta 等於 linear predictor。這個假設傾向於是一種 design choice(from Andrew),不過這種 choice 是有合理性的,至少 \eta 和 linear predictor 的 scale 是一致的。

2.4 Link Function

A link function connects the mean of the response to the linear predictor

通過上述的 Random Component 和 Systematic Component,我們已經把 yw^Tx 統一到了 exponential family distribution 中,最終的一步就是通過 link function 建立倆者聯絡。對任意 exponential family distribution,都存在 link function g(\mu)=\eta\mu 是 分佈的均值 而 \eta 是 natural parameter;例如 Gaussian 的 link function 是 identity(g(\mu)=\eta),Bernoulli 的 link function 是 logit,即: g(\mu)=ln\frac{\mu}{1-\mu}=\eta。 
link function 建立了response variable 分佈均值(實際就是我們的預測目標) 和 linear predictor 的關係(準確來說,這隻在 T(y)=y 條件下成立,但大多數情況都條件都成立,這裡不展開說明)。實際上 link function 把原始 y 的 scale 轉換統一到了 linear predictor 的 scale 上。另外,不同分佈的 link function 可以通過原始分佈公式變換到指陣列分佈形式來直接推出,之後本文第4章會有詳細講解。 
最後要強調的是,link function 的反函式 g^{-1}(\eta)=\mu 稱為 響應函式 response function。響應函式 把 linear predictor 直接對映到了預測目標 y,較常用的響應函式例如 logistic/sigmoid、softmax(都是 logit 的反函式)。

2.5 Contrast between LM & GLM

  • linear predictor \eta=w^Tx

Linear Regression

  • response variable y\sim N(\eta,\sigma_e^2)
  • link function \eta=g(\mu)=\mu, called identity
  • prediction h(x)=E[y|x,w]=\mu=g^{-1}(\eta)=\mu

Generalized Linear Model

  • response variable y\sim exponential family
  • link function g(\mu), eg. logit for Bernoulli
  • prediction h(x)=E[y|x,w]=\mu=g^{-1}(\eta), eg.logistic for Bernoulli

這裡再次強調了他們 linear predictor 的部分是一致的;不過對 response variable 服從分佈的假設不一致。Gaussian 的 response function 是 g^{-1}(\eta)=\mu;而 exponential family 根據具體假設的分佈,使用相應的 response function (例如 Bernoulli 是 sigmoid)。

額外強調一個點,無論是 LM 還是 GLM,我們對不同資料 x 得到的其實是不同的 response variable 的分佈,所以不同分佈的 \mu 值不同,進而我們預測的結果不同。雖然每一條資料只是預測了一個值,但其實對應的是一個分佈。並且資料相似的話對應的分佈也相似,那麼預測結果也相似。

3. 例項:Linear Regression 到 Logistic Regression

GLM 中我們最常用到的是 Logistic Regression;即假設 y 服從 Bernoulli 伯努利分佈,這裡詳細展開闡述。

3.1 以 GLM 來看 Logistic Regression

以下直接列出相關的 GLM 概念對 LR 的解釋:

  • An exponential family (random component) y_i\sim Bern(\mu_i)
  • linearl predictor (system component):\eta_i=\sum ^J_jw_jx_{ij},這個部分 GLM 都有且都一致
  • link function:\eta=g(\mu)=ln\frac{\mu}{1-\mu},這個函式是 log-odds,又稱 logit 函式
  • response function:\mu=g^{-1}(\eta)=\frac{1}{1+e^{-\eta}},稱為 logistic 或 sigmoid
  • prediction:h(x_i)=E[y_i|w,x_i]=sigmoid(\eta_i)
  • loss function : E=-y ln h(x)-(1-y)ln(1-h(x)), 和 Linear Model 一樣由 MLE 推導得到,3.3 中會給出詳細推導過程

Scale Insight 可以給我們更多 link function 的理解:

  • binary outcome:0 or 1,對應 observed outcome 即 label
  • probability:[0,1],對應 expected outcome,即 y 的分佈的 \mu
  • odds:(0,\infty ),概率和機率可相互轉換 (o_a=\frac{p_a}{1-p_a},p_a=\frac{o_a}{1+o_a}) ;即是發生概率與不發生概率的比,賭博中常見這一概念,和賠率相關
  • log-odds/logit(-\infty ,+\infty ),即 log\frac{p_a}{1-p_a}

所以 log-odds 在 scale 上和 linear predictor 匹配。對於 Logistic Regression,我們通過 link function logit 建立了與簡單線性模型的關聯。link function 就是把任意 exponential family distribution 的均值 \mu 對映到線性尺度上: 

      \eta=g(\mu)=ln\frac{\mu}{1-\mu}

      \eta=ln\frac{E[y_i|w_i,x_i]}{1-E[y_i|w_i,x_i]}=w^Tx_i=\sum _j^Jw_jx_{ij}

即是,在 Logistic Regression 模型中,輸出 y=1 的 log-odds 對數機率是關於輸入 x 的線性函式。

3.2 Logistic/Sigmoid 函式

此函式是 Bernoulli 在 GLM 的 response function,即 link function 的反函式。(強調反函式的時候可以使用 g^{-1}(x) 標識;當然直接使用 g(x) 也沒問題,Andrew 課上使用的是後者) 
此函式在神經網路中也有用作 activate function 來引入非線性(當然現在更常用 rectified linear unit, ReLU),其擁有一些特點:

  • bounded 有界的,取值 (0,1),有概率意義
  • monotonic 單調遞增函式
  • differentiable 可微,且求導簡單

函式呈 S 曲線,中央區域敏感,兩側抑制(有倆個優點:首先是符合神經啟用原理;其次是現實問題會有類似的非線性關係,當自變數很大或很小時對因變數影響很小,但是在某個閾值範圍上時影響很大)
這裡展開證明一下求導簡單,即 g'(z)=g(z)(1-g(z)): 
      
另外,這裡先證明一個有趣的特性 g(-z)=1-g(z)(為後續章節證明流程鋪墊~) 
      
logistic/sigmoid 函式還有一些其他的解釋,例如生態學模型。

3.3 LR 的 loss function

3.3.1 標準套路

本節詳細完成 logistic regression 剩下部分的闡述。假設我們觀察到了資料集 (x_i,t_i) 包含 N 個樣本,x_i 表示某一樣本的特徵向量,t_i=0 or 1 表示這一樣本的真實類別(observed outcome)。另外定義 y_i=h(x_i) 為模型的輸出結果(expected outcome)。我們假設 t_i 服從 Bernoulli 伯努利分佈(Bern(x|\mu)=\mu^x(1-\mu)^{1−x}),則可以寫出似然函式如下: 
      

對似然函式取對數化簡如下: 
      

所以 loss fucntion 可以寫為(最大化似然 轉 最小化cost): 
      
這是基於 binomial 二項分佈推匯出來的 loss,所以又被稱為 negative binomial log-likelihood。
其中 h(x) 依照 GLM 理論,依據 response function 展開為:
h(x)=g^{-1}(w^Tx)=\frac{1}{1+e^{-w^Tx}}

為 loss function J 帶入 h(x_i) 對 weight vector w 求導(注意 Chain Rule): 
      

所以 Logistic Regression 與 Linear Regression 更新公式(Batch Gradient Descent)是類似的,唯一不同點在於不同的 response function h(x_i) : 
      

3.3.2 其他套路

這裡專門強調一下,有一些論文裡面會使用其他形式的等價的 negative binomial log-likelihood: 
      

這個形式要簡潔很多,但實際和上小節中 loss function J=\sum_{i=1}^N[-t_ilnh(x_i)-(1-t_i)ln(1-h(x_i))] 完全等價的,唯一的區別是:這裡使用的 label t_i=-1/+1 而非上一小節的 t_i=0/1。這種表達有一個好處,z_i 是 linear predictor,上小節有 z_i=w^Tx_i,但是這裡更 general,可以用其他方式定義來定義這個 linear predictor,例如 GBDT 中的函式加和,其實這個 loss 就是從 GBDT 論文上看到的~以下將證明這一套路與標準討論等價:
首先,把原 loss 展開 h(x_i)=g^{-1}(w^Tx_i)=g(z_i)h(x_i)=g^{-1}(w^Tx_i)=g(z_i)(把 inverse 符號去掉了,這裡不需要再強調了),且根據 sigmoid 的 g(-z)=1-g(z),有: 
      

對 label t_i 分情況展開: 
      

切換到 t_i=-1/+1(這是唯一的不同哦): 
      

顯然可以對原 loss 整合並展開為: 
      
證畢。
loss 的 gradient 當然也是完全等價的,這裡簡單展開部分結果: 
      

4. Exponential Family

這裡補充一下 exponential family 的定義,並且給出 Bernoulli 以及 Categorical 對應的 link function 和 response function。

4.1 Definition

The exponential family of distribution over x given \eta is (h,g,u 都是確定的函式,基於 \etax 確定的,所以這是隻以 \eta 為引數的分佈): 
      p(x|\eta)=h(x)g(\eta)exp[\eta^Tu(x)]

  • \eta natural parameter 自然引數,這是決定分佈的具體引數
  • u(x) sufficient statistics 充分統計量,通常有 u(x)=x
  • g(\eta) 是分佈正規化係數 coefficient,即確保概率和為1,滿足 g(\eta)\int h(x)exp[\eta^Tu(x)]dx=1

常見的 exponential family 有 Bernoulli Distribution, Binomial Poisson Distribution, Negative Binomial Distribution, Categorical Distribution, Multinomial Distribution, Beta Distribution, Dirichlet Distribution, Laplace Distribution, Gamma Distribution, Normal Distribution 等等,所以說 GLM 極大地擴充了 LM 的使用範圍。

4.2 Bernoulli Distribution

伯努利分佈 的 分佈律(相對於 continuous variable 的 概率密度函式) 如下:

    p(x|\mu)=Bern(x|\mu)=\mu^x(1-\mu)^{1-x}

我們將其變換到標準 exponential family 形式: 
      

得到 natural parameter,也正是 GLM 使用的 link function,logit:\eta=ln\frac{\mu}{1-\mu}

這裡推導一下其 inverse function,即 GLM 使用的 response function: 
      

這也就是 logistic/sigmoid 函式。剩餘其他部分: 
      

4.3 Categorical Distribution

作為 Bernoulli 的推廣,Categorical 的 link function 和 response function 與前者非常相似。其 response function 是 softmax,所以 logistic/sigmoid 和 softmax 也是一個推廣關係。

這裡注意一點,Categorical Distribution 即是單次的 Multiple Distribution,後者更常見。(而 Bernoulli Distribution 是單次的 Binomial Distribution)

以下介紹推導過程,分類分佈的 分佈律,以及 exponential family 形式如下: 
      

上述表達缺少了一個約束:\sum _{k=1}^M\mu_k=1, 通常會改寫分佈形式來消除這個約束,即我們只確認 M−1 個 \mu_k,剩下 1 個 \mu_k 是一個確定的值。當然,我們其實還會有隱含的約束 0\leq \mu_k\leq 1\sum _{k=1}^{M-1}\mu_k\leq 1,這個 Bernoulli 也有。 
下面是包含約束的改寫過程: 
      
所以 natural parameter 正是: 
      

這裡的 \eta 是一個向量,比 Bernoulli 要複雜,因為需要考慮 M 個不同分類。上述公式中的分母其實就是 M−1 以外的那一個分類的概率 \mu_k=M,所以其實也有點 odds 的意思;這裡可以理解為我們隨意選擇了一個分類作為base,然後用其他分類出現的概率對其求對數比例,把可能性的取值範圍擴充套件到了 (-\infty ,+\infty )作為被選擇作base的分類,其 \eta_{k=M}=ln1=0
下面推導其 inverse function 即 GLM 使用的 response function,這個過程比 logistic 要複雜很多。首先等價變換 link function: 
      

接下來,對上式 left side 累加 M 個分類的值: 
      

對 right side 累加 M 個分類的值: 
      
倆個式子結合則有: 
      

重新代入 link function 則有: 
      

這裡對於特殊的,

       

所以對任意分類上式都是成立的。 
最終,softmax 的形式為: 
      

也可以等價地寫作: 
      

這個結果近似於 logistic/sigmoid 的: 
      

且 logistic/sigmoid 中第二種可能的概率為: 
      

可見 logistic/sigmoid 只是 softmax 在 M=2 時的特殊形式。
 

相關文章