lecture 5 : Gaussian Discriminant Analysis and Naive Bayes
前面我們學習的都是 discriminant learning algorthm, 直接對 \(p(y|x)\) 進行建模,或直接學習 \(X \to Y\) 的對映。GDA 和 naive bayes 是 generative learning algorithm, 對 \(p(x |y)\) 建模,再通過貝葉斯公式計算 \(p(y|x) = \frac{p(x|y)p(y)}{p(x)}\)
Gaussian Discriminant Analysis
對於輸入,這裡我們不再延續 \(x_0 = 1\) 的傳統,\(x \in \mathbb{R}^n\)
assumption: \(x|y\)
multivariate gaussian recap
如果隨機變數 Z 服從高斯分佈,即 \(Z\) ~ \(N(\mu, \Sigma)\), \(Z\in \mathbb{R}^n, \mu \in \mathbb{R}^n, \Sigma \in \mathbb{R}^{n\times n}\)
\[EZ = \mu\\ Cov(Z) = E((Z-\mu)(Z-\mu)^T)\\ p(x;\mu, \Sigma) = \frac{1}{(2\pi)^{\frac{n}{2}}|\Sigma|^{\frac{1}{2}}}exp(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)) \]對於二分類問題:
GDA model:
\(x|y = 0\) ~ \(N(\mu_0, \Sigma)\)
\(x|y=1\) ~ \(N(\mu_1, \Sigma)\)
\(y\) ~ \(Ber(\phi)\)
共有 \(\mu_0, \mu_1, \Sigma, \phi\) 這幾個引數。
對於資料集 \(\{(x^{(i)},y^{(i)})\}_{i=1}^m\)
可以計算聯合概率
\[L(\phi, \mu_0, \mu_1, \Sigma) = \prod_{i=1}^m p(x^{(i)},y^{(i)};\phi, \mu_0, \mu_1, \Sigma) \\ = \prod_{i=1}^m p(x^{(i)}|y^{(i)})p(y^{(i)})\\ l(\phi, \mu_0, \mu_1, \Sigma) = log(L(\phi, \mu_0, \mu_1, \Sigma)) \]最優化目標即為 \(l(\phi, \mu_0, \mu_1, \Sigma)\)
在最後做預測時,預測的標籤為:
\(\underset{y} argmax \quad p(y|x) = \underset{y} argmax\quad \frac{p(x|y)p(y)}{p(x)} = \underset{y} argmax \quad p(x|y)p(y)\)
即找出後驗概率最大的類別。
與邏輯迴歸的聯絡和比較
可以證明,
\[p(y = 1|x;\phi, \mu_0, \mu_1, \Sigma) = \frac{1}{1+exp(-\theta^T x)}, \theta = f(\phi, \mu_0, \mu_1,\Sigma) \]這就是 sigmoid 函式,可見 GDA 和 邏輯迴歸有某種聯絡。
下面分別看一下這兩種模型:
- GDA
assumption :
\(x|y = i\) ~ \(N(\mu_i, \Sigma)\)
\(y\) ~ \(Ber(\phi)\)
- Logistic Regression
\(p(y=1|x) = \frac{1}{1+exp(-\theta^T x)}\)
可以證明 GDA's assumption implies LR's assumption, but LR's assumption does not implies GDA's assumption. 可見 GDA 做了一個更強的假設。
這使得我們在應用時應該合理地選擇模型,如果我們能確定資料來源符合 GDA 的假設或者近似符合,那麼 GDA 的效果往往會比邏輯迴歸好,即使資料集不大,這是因為更強的假設意味著我們告訴了模型更多的資訊。(模型的資訊來源:資料,假設)但是如果資料不符合 GDA 的假設,我們卻採用 GDA 模型,那麼效果的好壞就難以確定了,可能剛好還不錯,也有可能很差,相比而言邏輯迴歸更加 robust。
Naive Bayes
用一個例子來講解樸素貝葉斯模型 : spam Email filter
首先考慮如何標識 input feature vector:
建立一個詞典,將特徵詞放入詞典,假設詞典大小為 n,那麼輸入就是一個 n 維向量,如果第 i 個詞出現,那麼第 i 個分量為 1,否則為 0.
即 \(x \in \{0,1\}^n, x_i = 1\{\text{word i appears in email}\}\)
want to model: \(p(x|y), p(y)\)
如果 n = 10,000, 那麼 x 有 \(2^{10,000}\) 種可能取值,那麼 parameter vector 就有 \(2^{10,000} - 1\) 維,這是無法忍受的。
在樸素貝葉斯模型中,假設:
\(x_i\) s is conditionally independent given y.
在這個例子中,就是說,知道這個郵件是 spam email 這件事之後,知道 \(x_i\) 是否為 1 對知道 \(x_j\) 是否為 1 沒有影響。
\[p(x_1, ...,x_n|y) = p(x_1|y)p(x2|x1, y) ....p(x_n|x1, ...,y)\\ = p(x_1|y) ... p(x_n|y) \]其中第一步不依賴於任何假設,第二步使用了樸素貝葉斯假設。
樸素貝葉斯模型有這些引數
\[\phi_{j|y=1} = p(x_j = 1|y=1)\\ \phi_{j|y=0} = p(x_j = 1| y = 0)\\ \phi = p(y = 1) \]和 GDA 類似,要求得這些引數,只要使聯合概率最大化:
\[L(\phi_y, \phi_{j|y}) = \prod_{i=1}^mp(x^{(i)},y^{(i)};\phi_y, \phi_{j|y}) \]通過求偏導數求得:
\[\phi_y = \frac{\sum_{i=1}^m 1\{y^{(i)} = 1\}}{m}\\ \phi_{j|y} = \frac{\sum_{i=1}^m 1\{x_{j}^{(i)} = 1,y^{(i)} = 1\}}{\sum_{i=1}^m 1\{y^{(i)} = 1\}} \]在預測的時候,
\[p(y=1|x) = p(x|y=1)p(y=1)/p(x) \\= \prod_{i=1}^n p(x_i|y=1) p(y=1)/(\prod_{i=1}^n p(x_i|y=1)p(y=1) + \prod_{i=1}^n p(x_i|y=0)p(y=0)) \]後驗概率最大的那一組即為預測的標籤。