到目前為止,我們講了回歸和分類的例子,在回歸例子中:
在分類例子中:
可以看出,μ 和 Φ 是作為 x 和 θ 的函數來定義的。
在本文會看到,這兩個模型其實都只是一個廣大模型家族的特例,廣義線性模型。我們也將演示廣義線性模型家族的其它模型如何推導,並如何應用到分類和回歸問題中的。
在討論廣義線性模型之前,我們先來定義指數分布簇。當一個分布能寫成以下形式時,我們就說它屬於指數分布簇。
η 是分布的自然參數;
T(y) 是充分統計量,通常 T(y)=y;
a(η) 被稱為 log partition function;
e-a(η) 起着歸一化常數的作用,保證分布 p(y;η) 積分從 y 到 1。
當參數 a、b、T 固定后,就定義了一個以 η 為參數的分布簇。改變 η,就得到這個分布簇的一個不同分布。
伯努利和高斯分布其實也是指數簇分布的特例。
伯努利分布均值為 Φ,y 只有 0 和 1 兩個值。
改變 Φ,就得到不同均值的伯努利分布。
通過選擇 T、a 和 b,指數分布簇通用公式能變成伯努利分布。先來把伯努利分布變成指數分布簇的形式。
跟指數分布簇公式相比對:
可得:
其中 η=log(Φ/(1-Φ)),那么 Φ=1/(1+e-η),這就是熟悉的 simoid 函數,這就是說我們把 Logistic 回歸當做廣義線性回歸來推導的話也能推出 sigmoid 函數。
接下來看高斯分布,記得在線性回歸的推導時,方差 σ2 的值對我們最后的 θ 和 hθ(x) 值沒有任何影響。所以,我們給 σ2 隨便選個值就行,方便起見,令 σ2=1,得:
其中:
可見,高斯也屬於指數分布簇。
還有其它的很多分布也屬於指數分布簇,如多項式分布、泊松分布、伽馬分布、指數分布、貝塔分布和 Dirichlet 分布等。
下面講廣義線性模型。
假定你想要建一個模型來估計在某個時刻到商店的顧客個數,或者估計你的網頁的瀏覽量,基於一些特征,如促銷活動、最近的廣告、天氣、星期幾等。我們知道泊松分布通常是這種好模型。怎么才能針對我們的問題建模呢?泊松分布是個指數分布簇,所以我們可以使用廣義線性模型。
考慮下分類和回歸問題,把隨機變量 y 作為 x 的函數,來預測 y 值。在這個問題上,我們要推導廣義線性模型,關於 y 對 x 的條件分布,我們將做一下三種假設:
1、y|x;θ~ExponetialFamily(η)。即給定 x 和 θ,y 符合以 η 為參數的指數簇分布。
2、給定 x,目標是要預測 T(y),在大部分例子中,我們有 T(y)=y,這意味着我們學習到的 h(x) 滿足 h(x)=E[y|x]。(Logistic 回歸和線性回歸中的 hθ(x) 是滿足這個假設的,如 Logistic 回歸中,hθ(x)=p(y=1|x;θ)=1·p(y=1|x;θ)+0·p(y=0|x;θ)=E[y|x;θ])
3、自然參數 η 和輸入 x 成線性關系:η=θTx。
這三個假設使我們可以導出一個非常優雅的學習算法類,稱作 GLMs,有很多屬性如易學習。而且,模型對於建模關於 y 的不同分布是很有效的,如 Logistic 回歸和最小二乘模型就可以由 GLMs 導出。
先來演示 GLM 簇模型的一個特例,最小二乘。目標變量 y 是連續的,我們把 y 對於 x 的條件分布建模為高斯分布 Ν(μ,σ2),這里 μ 依賴於 x。所以,我們讓這里的 ExponetialFamily(η) 分布為高斯分布,高斯作為指數簇分布的形式中,μ=η。有
第一個等式符合上面的假設 2,第二個等式符合事實 y|x;θ~Ν(μ,σ2),所以期望值是 μ,第三個等式符合假設 1(我們早先的求導顯示高斯分布作為指數分布簇 μ=η),最后一個等式符合假設 3。
再來看 Logistic 回歸,y€{0,1},,y 是二值的,所以看起來選擇伯努利分布來建模 y 對於 x 的條件分布是很自然的。伯努利分布屬於指數分布簇,Φ=1/(1+e-η)。y|x;θ~Bernoulli(Φ),所以 E[y|x;θ]=Φ。
假設函數 hθ(x)=1/(1+e-θTx) ,之前我們想知道為什么使用 Logistic 函數 1/(1+e-z),這就是答案:一旦我們假定基於 x 的 y 的條件分布是伯努利,那么它就是GLMs 和指數分布簇的定義的結果。
多介紹一些術語,函數 g,作為自然參數的函數給定的分布均值,被稱為正則響應函數(canonical response function),它的反函數 g 是正則關聯函數(canonical link function)。所以,正則響應函數對於高斯家族只是 identity 函數,對於伯努利是 logistic 函數。
我們證實了 Logistic 回歸和線性回歸都屬於廣義線性模型,那么這個廣義線性模型 GLM 有什么用呢?我們能通過 GLM 解決更多的問題嗎?如何解決?下面就來舉個例子。
考慮一個分類問題,響應變量 y 能取 k 個值,所以 y€{1,2,...,k}。例如,我們不僅想把郵件分為垃圾郵件和非垃圾郵件,可建成二分類問題,還想把郵件分為垃圾郵件、私人郵件和工作郵件。響應變量依然是離散的,但能取多個值。我們將把它建模成多項式分布。
為對這類多項式數據建模,我們先來推導 GLM。我們先把多項式表示為一個指數分布簇。
k 個參數 Φ1,Φ2,...,Φk 指定了每個輸出的概率。事實上,這些參數是有冗余的,因為 Φ1+Φ2+...+Φk=1,所以,我們可以參數化多項式為 k-1 個參數 Φ1,Φ2,...,Φk-1,其中 Φi=p(y=i;Φ),p(y=k;Φ)=1-(Φ1+Φ2+...+Φk-1)。為表示方便,我們也可以讓 Φk=1-(Φ1+Φ2+...+Φk-1),但應知道這不是個參數。
將多項式表示成一個指數分布簇,我們定義 T(y)€Rk-1 如下:
跟之前的例子不一樣,這里不是 T(y)=y, T(y)現在是一個 k-1 維的向量,而不是一個實數。我們用 (T(y))i 表示向量 T(y) 的第 i 個元素。
這里介紹一個有用的符號。指示函數 1{·},1{True}=1,1{False}=0。例如,1{2=3}=0,1{3=5-2}=1。所以,我們可以把 T(y) 和 y 的關系寫成 (T(y))i=1{y=i}},更進一步,E[(T(y))i]=p(y=i)=Φi。
現在我們將演示,多項式是指數分布簇:
其中:
這就完成了多項式作為指數分布簇的形式化。
關於 η 可以跟伯努利分布 η=log(Φ/(1-Φ)) 和高斯分布 η=µ 作個對比。
連接函數為:
方便起見,定義 ηk=log(Φk/Φk)=0。 為轉化連接函數,導出響應函數,我們有
這表示 Φk=1/(eη1+eη2+...+eηk),響應函數:
這個從 η 映射到 Φ 的函數稱作 softmax 函數。
繼續完善我們的模型,使用 GLM 的假設 3,ηi 跟 x 的線性相關。所以,ηi=θiTx(i=1,...,k-1),其中 θ1,...θk-1 €Rk+1 是我們模型的參數。方便表示起見,我們也定義 θk=0,所以 ηk=θkTx=0。所以,我們的模型假定給定 x 后 y 的條件分布為:
這種模型,應用到分類問題,y€{1,...,k},被稱為 softmax 回歸。這是 Logistic 回歸的歸納。
我們的假設將有:
換句話說,我們的假設將輸出 p(y=i|x;θ) 的概率估計,對於每個 i=1,...,k。
上面 hθ(x) 的公式可跟線性回歸和 Logistic 回歸的 hθ(x) 作對比:
最后討論尋找最佳參數。跟最小二乘和 Logistic 回歸的原始求導類似,如果我們有 m 個例子的訓練集 {(x(i),y(i));i=1,...,m},想要學習這個模型的參數 θi,log 似然函數為:
現在我們可以通過最大化 l(θ) 的 θ 來最大化似然估計,使用梯度下降或者牛頓方法。
關於 l(θ) 依然可以跟線性回歸和 Logistic 回歸做對比。
參考資料:
1、http://cs229.stanford.edu/notes/cs229-notes1.pdf
2、http://blog.csdn.net/stdcoutzyx/article/details/9207047