廣義線性模型GLM
本文轉自 GLM(廣義線性模型) 與 LR(邏輯迴歸) 詳解(原作者:愛學習的段哥哥)
GLM的內容,本應該較早之前就總結的,但一直覺得這種教科書上的基礎知識不值得專門花時間copy到部落格裡來。直到某一天看到一篇不錯的總結,在徵求作者同意後,轉載於此(本人比較懶啦)(然而公式重新排版竟然花了1個多小時TT)。
原文如下
George Box said: “All models are wrong, some are useful”
1. 始於 Linear Model
作為 GLM 的基礎,本節 review 經典的 Linear Regression,並闡述一些基礎 term。
我們線性迴歸的基本如下述公式,本質上是想通過觀察,然後以一個簡單的線性函式 來預測 :
1.1 dependent variable
這是我們的預測目標,也稱 response variable。這裡有一個容易混淆的點,實際上 可以表達三種含義(建模用的是分佈,觀察到的是取樣,預測的是期望):
distribution;抽象地討論 response variable 時,我們實際上關注對於給定資料和引數時, 服從的分佈。Linear Regression 的 服從高斯分佈,具體取值是實數,但這裡我們關注的是分佈。
observed outcome;我們的 label,有時用 區分表示;這是真正觀察到的結果,只是一個值。
expected outcome; 表示模型的預測;注意 實際上服從一個分佈,但預測結果是整個分佈的均值 ,只是一個值。
1.2 independent variable
這是我們的特徵,可以包含很多維度,一個特徵也稱為一個 predictor。
1.3 hypothesis
線性模型的假設非常簡單,即 inner product of weight vector and feature vector,被稱為 linear predictor。這是就是線性模型,GLM 也是基與此的推廣。
深入來看,各個維度特徵(predictor) 通過係數 線性加和,這一過程將資訊進行了整合;而不同的 weight(coefficient) 反映了相關特徵不同的貢獻程度 。
2. 推廣到 Generalized Linear Model
2.1 Motive & Definition
線性模型有著非常強的侷限,即 response variable 必須服從高斯分佈;主要的侷限是擬合目標 的 scale 是一個實數 。具體來說有倆個問題:
的取值範圍和一些常見問題不匹配。例如 count(遊客人數統計恆為正)以及 binary(某個二分類問題)
的方差是常數 constant。有些問題上方差可能依賴 的均值,例如我預測目標值越大方也越大(預測越不精確)
所以這時我們使用 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 指數族分佈,即 , 指 exponential family 的 natural parameter 自然引數。
例如 linear regression 服從 Gaussian 高斯分佈,logistic regression 服從 Bernoulli 伯努利分佈。指數族還有很多分佈如 多項分佈、拉普拉斯分佈、泊松分佈等等。
另外,這也可以被稱為 Error Structure : error distribution model for the response。對於 Gaussian 的 residual 殘差 服從高斯分佈 是很直觀可;但是,例如 Bernoulli 則沒有直接的 error term。可以構造其他的 residual 服從 Binomial,但是較抽象,本文不對此角度展開。
2.3 Systematic Component
linear predictor
廣義線性模型 GLM 本質上還是線性模型,我們推廣的只是 response variable yy 的分佈,模型最終學習的目標還是 linear predictor 中的 weight vector。
注意,GLM 的一個較強的假設是,即 yy 相關的 exponential family 的 natural parameter 等於 linear predictor。這個假設傾向於是一種 design choice(from Andrew),不過這種 choice 是有合理性的,至少 和 linear predictor 的 scale 是一致的。
2.4 Link Function
A link function connects the mean of the response to the linear predictor
通過上述的 Random Component 和 Systematic Component,我們已經把 和 統一到了 exponential family distribution 中,最終的一步就是通過 link function 建立倆者聯絡。對任意 exponential family distribution,都存在 link function , 是 分佈的均值 而 是 natural parameter;例如 Gaussian 的 link function 是 identity(),Bernoulli 的 link function 是 logit,即: 。
link function 建立了response variable 分佈均值(實際就是我們的預測目標) 和 linear predictor 的關係(準確來說,這隻在 條件下成立,但大多數情況都條件都成立,這裡不展開說明)。實際上 link function 把原始 的 scale 轉換統一到了 linear predictor 的 scale 上。另外,不同分佈的 link function 可以通過原始分佈公式變換到指陣列分佈形式來直接推出,之後本文第4章會有詳細講解。
最後要強調的是,link function 的反函式 稱為 響應函式 response function。響應函式 把 linear predictor 直接對映到了預測目標 ,較常用的響應函式例如 logistic/sigmoid、softmax(都是 logit 的反函式)。
2.5 Contrast between LM & GLM
- linear predictor
Linear Regression
- response variable
- link function , called identity
- prediction
Generalized Linear Model
- response variable
- link function , eg. logit for Bernoulli
- prediction , eg.logistic for Bernoulli
這裡再次強調了他們 linear predictor 的部分是一致的;不過對 response variable 服從分佈的假設不一致。Gaussian 的 response function 是 ;而 exponential family 根據具體假設的分佈,使用相應的 response function (例如 Bernoulli 是 sigmoid)。
額外強調一個點,無論是 LM 還是 GLM,我們對不同資料 得到的其實是不同的 response variable 的分佈,所以不同分佈的 值不同,進而我們預測的結果不同。雖然每一條資料只是預測了一個值,但其實對應的是一個分佈。並且資料相似的話對應的分佈也相似,那麼預測結果也相似。
3. 例項:Linear Regression 到 Logistic Regression
GLM 中我們最常用到的是 Logistic Regression;即假設 服從 Bernoulli 伯努利分佈,這裡詳細展開闡述。
3.1 以 GLM 來看 Logistic Regression
以下直接列出相關的 GLM 概念對 LR 的解釋:
- An exponential family (random component)
- linearl predictor (system component):,這個部分 GLM 都有且都一致
- link function:,這個函式是 log-odds,又稱 logit 函式
- response function:,稱為 logistic 或 sigmoid
- prediction:
- loss function : , 和 Linear Model 一樣由 MLE 推導得到,3.3 中會給出詳細推導過程
Scale Insight 可以給我們更多 link function 的理解:
- binary outcome:0 or 1,對應 observed outcome 即 label
- probability:[0,1],對應 expected outcome,即 的分佈的
- odds:,概率和機率可相互轉換 ;即是發生概率與不發生概率的比,賭博中常見這一概念,和賠率相關
- log-odds/logit:,即
所以 log-odds 在 scale 上和 linear predictor 匹配。對於 Logistic Regression,我們通過 link function logit 建立了與簡單線性模型的關聯。link function 就是把任意 exponential family distribution 的均值 對映到線性尺度上:
即是,在 Logistic Regression 模型中,輸出 的 log-odds 對數機率是關於輸入 的線性函式。
3.2 Logistic/Sigmoid 函式
此函式是 Bernoulli 在 GLM 的 response function,即 link function 的反函式。(強調反函式的時候可以使用 標識;當然直接使用 也沒問題,Andrew 課上使用的是後者)
此函式在神經網路中也有用作 activate function 來引入非線性(當然現在更常用 rectified linear unit, ReLU),其擁有一些特點:
- bounded 有界的,取值 (0,1),有概率意義
- monotonic 單調遞增函式
- differentiable 可微,且求導簡單
函式呈 S 曲線,中央區域敏感,兩側抑制(有倆個優點:首先是符合神經啟用原理;其次是現實問題會有類似的非線性關係,當自變數很大或很小時對因變數影響很小,但是在某個閾值範圍上時影響很大)
這裡展開證明一下求導簡單,即 :
另外,這裡先證明一個有趣的特性 (為後續章節證明流程鋪墊~)
logistic/sigmoid 函式還有一些其他的解釋,例如生態學模型。
3.3 LR 的 loss function
3.3.1 標準套路
本節詳細完成 logistic regression 剩下部分的闡述。假設我們觀察到了資料集 包含 個樣本, 表示某一樣本的特徵向量,=0 or 1 表示這一樣本的真實類別(observed outcome)。另外定義 為模型的輸出結果(expected outcome)。我們假設 服從 Bernoulli 伯努利分佈(),則可以寫出似然函式如下:
對似然函式取對數化簡如下:
所以 loss fucntion 可以寫為(最大化似然 轉 最小化cost):
這是基於 binomial 二項分佈推匯出來的 loss,所以又被稱為 negative binomial log-likelihood。
其中 依照 GLM 理論,依據 response function 展開為:
為 loss function 帶入 對 weight vector 求導(注意 Chain Rule):
所以 Logistic Regression 與 Linear Regression 更新公式(Batch Gradient Descent)是類似的,唯一不同點在於不同的 response function :
3.3.2 其他套路
這裡專門強調一下,有一些論文裡面會使用其他形式的等價的 negative binomial log-likelihood:
這個形式要簡潔很多,但實際和上小節中 loss function 完全等價的,唯一的區別是:這裡使用的 label 而非上一小節的 。這種表達有一個好處, 是 linear predictor,上小節有 ,但是這裡更 general,可以用其他方式定義來定義這個 linear predictor,例如 GBDT 中的函式加和,其實這個 loss 就是從 GBDT 論文上看到的~以下將證明這一套路與標準討論等價:
首先,把原 loss 展開 (把 inverse 符號去掉了,這裡不需要再強調了),且根據 sigmoid 的 ,有:
對 label 分情況展開:
切換到 (這是唯一的不同哦):
顯然可以對原 loss 整合並展開為:
證畢。
loss 的 gradient 當然也是完全等價的,這裡簡單展開部分結果:
4. Exponential Family
這裡補充一下 exponential family 的定義,並且給出 Bernoulli 以及 Categorical 對應的 link function 和 response function。
4.1 Definition
The exponential family of distribution over given is ( 都是確定的函式,基於 或 確定的,所以這是隻以 為引數的分佈):
- natural parameter 自然引數,這是決定分佈的具體引數
- sufficient statistics 充分統計量,通常有
- 是分佈正規化係數 coefficient,即確保概率和為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 的 概率密度函式) 如下:
我們將其變換到標準 exponential family 形式:
得到 natural parameter,也正是 GLM 使用的 link function,logit:
這裡推導一下其 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 形式如下:
上述表達缺少了一個約束:, 通常會改寫分佈形式來消除這個約束,即我們只確認 M−1 個 ,剩下 1 個 是一個確定的值。當然,我們其實還會有隱含的約束 和 ,這個 Bernoulli 也有。
下面是包含約束的改寫過程:
所以 natural parameter 正是:
這裡的 是一個向量,比 Bernoulli 要複雜,因為需要考慮 M 個不同分類。上述公式中的分母其實就是 M−1 以外的那一個分類的概率 ,所以其實也有點 odds 的意思;這裡可以理解為我們隨意選擇了一個分類作為base,然後用其他分類出現的概率對其求對數比例,把可能性的取值範圍擴充套件到了 。作為被選擇作base的分類,其 。
下面推導其 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 時的特殊形式。
相關文章
- AI一刻 | 廣義線性模型AI模型
- 1-線性模型模型
- 快速呼叫 GLM-4-9B-Chat 語言模型模型
- 一文帶你深入分析:線性迴歸模型的線性假設分析及其意義模型
- prml線性模型小結模型
- 多元線性迴歸模型模型
- 《機器學習_05_線性模型_最大熵模型》機器學習模型熵
- 基於TRE文章的非線性模型化線性方法模型
- PRML 迴歸的線性模型模型
- 廣義 SAM
- 機器學習 第6篇:線性模型概述機器學習模型
- 一元線性迴歸模型模型
- Spark 線性迴歸模型異常Spark模型
- 大模型應用開發:手把手教你部署並使用清華智譜GLM大模型大模型
- SAM & 廣義 SAM
- Python線性分類模型簡介Python模型
- 線性規劃模型複習總結模型
- 線性迴歸演算法模型與線性分類演算法模型聯絡與區別初探演算法模型
- 廣義智慧集基本定義公式公式
- 廣義資料庫資料庫
- 線性模型已退場,XGBoost時代早已來模型
- 利用TensorFlow實現線性迴歸模型模型
- ERP的核心——線性規劃模型(轉)模型
- 第四章 線性分類模型模型
- [BUG反饋]模型屬性自定義函式提交不了模型函式
- 關於分類的線性模型的討論模型
- 機器學習演算法筆記之3:線性模型機器學習演算法筆記模型
- 模式識別與機器學習——迴歸的線性模型模式機器學習模型
- [線性dp] 合唱隊形(最長上升子序列模型)模型
- [譯] TensorFlow 教程預告 & #01 - 簡單線性模型模型
- 一個Julia編寫的求解線性模型的包模型
- 線性迴歸模型公式推導完整簡潔版模型公式
- 廣義表的相關操作
- 中介軟體的廣義理解
- 廣義智慧集能做什麼?
- 廣義智慧集思路構建
- 如何入門線性代數?這裡有一份Python線性代數講義Python
- [DataAnalysis]機器學習演算法——線性模型(邏輯迴歸+LDA)機器學習演算法模型邏輯迴歸LDA