1. 程式人生 > >廣義線性模型的理解

廣義線性模型的理解

選擇 現象 one 世界 logistic 是什麽 times 自己 取值

世界中(大部分的)各種現象背後,都存在著可以解釋這些現象的規律。機器學習要做的,就是通過訓練模型,發現數據背後隱藏的規律,從而對新的數據做出合理的判斷。

雖然機器學習能夠自動地幫我們完成很多事情(比如訓練模型的參數),但有一些基本的事情還是需要我們自己完成的,例如概率分布模型的選擇。比如我們需要判斷一封郵件是否為垃圾郵件,由於這是一個二分類問題,在眾多概率分布模型之中,伯努利分布($P(y=1)=\phi$,$P(y=0)=1-\phi$ 的分布)似乎是一個較好的選擇。

但還有一個問題需要解決:$\phi$ 和特征 $X$ 以及模型參數 $\theta$ 之間的關系是什麽。我們可以取 $\phi = X^T\theta$ (雖然這樣看起來就非常不合理,因為 $\phi$ 的取值可能會超出 0 ~ 1),可以取 $\phi = \begin{cases} 1 & (X^T\theta \ge 0) \\ 0 & (X^T\theta < 0) \end{cases}$ ,還可以有很多很多種選擇。

廣義線性模型就是眾多選擇中的一種,它為 $\phi$、$X$ 與 $\theta$ 之間的關系問題提供了一個合理(?)的解決方案(雖然我並不知道廣義線性模型比起其它模型有哪些優勢- -)。廣義線性模型為各個變量之間的關系做出了以下三個限定:

1. 問題的概率模型屬於指數族分布;

(exponential family,該分布要求給定參數 $\eta$ 的情況下,$y$ 的概率分布 $p(y;\eta) = b(y)\text{exp}(\eta^TT(y)-a(\eta))$)

2. 指數族分布公式中的 $\eta = X^T\theta$;

3. 模型需要輸出給定 $X$ 和 $\theta$ 的情況下,$T(y)$ 的期望。

這樣,我們只需要將我們選擇的概率分布寫成指數族分布的形式,就能求出 $T(y)$ 的期望與 $\eta$ 的關系,再由第 2 個限定就能得出模型的輸出值與 $X$ 和 $\theta$ 的關系。

我們將伯努利分布寫成指數族分布的形式,看看能發現什麽。首先,伯努利分布的概率分布:$$p(y) = \phi^y(1-\phi)^{1-y}$$ 為了得到 exp 的形式,我們對式子取對數再取指數:$$p(y) = \text{exp}(y\text{log}(\phi) + (1-y)\text{log}(1-\phi)) = \text{exp}(y\text{log}(\frac{\phi}{1-\phi})+\text{log}(1-\phi))$$ 我們就能發現指數族分布的形式 $$T(y)=y$$ $$b(y)=1$$ $$\eta = \text{log}(\frac{\phi}{1-\phi})$$ $$a(\eta)=-\text{log}(1-\phi)$$ 移項有 $$\phi=\frac{e^\eta}{1+e^\eta}=\frac{1}{1+e^{-\eta}}$$ 根據伯努利分布的定義,我們有 $$E(T(y)) = E(y) = 0\times P(y=0) + 1\times P(y=1)$$ $$= \phi = \frac{1}{1+e^{-\eta}}$$ 再利用第 2 條限定有 $$E(y) = \frac{1}{1+e^{-X^T\theta}}$$ 我們發現,這個模型要輸出的結果,就是 sigmoid 函數。這也是 logistic regression 中 sigmoid 函數的推導過程。也就是說,使用了 logistic regression,我們就需要假定數據符合屬於指數族分布的伯努利分布。

廣義線性模型的理解