Machine Learning/Introducing Logistic Function


打算寫點關於Machine Learning的東西, 正好也在cnBlogs上新開了這個博客, 也就更新在這里吧。

這里主要想討論的是統計學習, 涵蓋SVM, Linear Regression等經典的學習方法。 而最近流行的基於神經網略的學習方法並不在討論范圍之內。 不過以后有時間我會以Deep Learning為label新開一個系列, 大概寫寫我的理解。 總之Machine Learning的label下都是和一些數學上比較清晰的東西, 不會像deep learning一樣要等着Brain Science那群人做實驗, 找出新東西才能確定方向。

第一篇本來覺得從Linear Regression開始比較好, 引入問題后導入MP一般逆就能解決。 最后還是不打算這么寫。 我們先從Logistic Regression開始, 最后再倒回Linear Regression。

最后, 剛剛設置了latex的代碼, 不知能不能用, 不行的話事后再修改。

  • Logistic Classification

首先來考慮一個問題, 我們有一組數據$X$, 現在打算將它分類成$k$個類$C$, 那么應該怎么辦?

我們這么考慮, 對於每一個數據$x$, 顯然都有$P(C_i|x)$, 代表了每個數據屬於這個類的分布, 我們的目的就是找出一個最好的分界線, 讓每個數據能有最大概率屬於某個類。 (說句閑話, 當然我們也有$P(x)$, 並且有聯合分布$P(C_i,x)$, 我們會在今后用這個結合bayesian的想法去做些更有意思的事情。 不過因為不是這次的主題, 下面不再提及。) 解決這個問題雖然有很多方法, 為了導出logistic, 這里我們用log-odds來解決這個問題。

$log(\frac{P(C_i|x)}{P(C_k|x)}) = \beta x + \alpha$

在這里, 對於每個類$C_i$, 我們都選擇一個固定的類$C_k$作為參考, 同時只用linear model。 最終顯然會有$k-1$個分界。現在我們來求每個$P(C_i|x)$:

$P(C_i|x) = \frac{e^{\beta x + \alpha}P(C_k|x)}{Z(\theta)}$

這里憑空多了個$Z$, 這是歸一化項, 它是所有$P$的總和$Z(\theta)=P(C_k|x)+\sum_i{e^{\beta x + \alpha}P(C_i|x)}$, 注意到因為$C_k$我們已經單獨拿了出來, 所以單獨加上。

現在試着將$Z(\theta)$帶進去, 看看發生了什么? $P(C_k|x)$消失了, 我們得到了一個新的式子:

$P(C_i|x) = \frac{e^{\beta x + \alpha}}{1+\sum_i{e^{\beta x + \alpha}}}$

看起來是不是很眼熟? 這個其實就是multi-class下面的logistic的形式。 當然, 在neural network里面, 他有個很唬人的名字, 叫做SoftMax Layer。 但值得注意的是這里我為了簡單, 省略了$\beta$和$\alpha$的下標, 顯然對不同的clas需要不同的曲線。

當然, 如果$k=2$, 他自然會回到我們熟悉的形式:

$P(C_i|x) = \frac{e^{\beta x + \alpha}}{1+e^{\beta x + alpha}}$

這就是我們熟悉的logistic function。 雖然導出的過程多少有點不太令人滿意, 但最終還是得到了這個結果。實際上完全不必拘泥於這個方法, 隨着深入, 我們會看到各種各樣的方法里都能夠自然地導出logistic function, 比如在RBM里, 我們就能發現$P(1|x)$是logistic function。 這也是為什么很多方法都傾向於選擇這個非線性方程。

 

  • 在最開始我提到了linear regression, 在logistic function的推到過程里也不加說明的用了線性邊界, 這里應該有必要簡單的介紹下這個問題。

首先是問題設定, 我們依然有一組數據$X,Y$, 我們想找出這組數據的特征。 所謂特征, 你可以想象有一堆點, 它們排成直線, 那顯然我們如果有$\beta x + \alpha$的話, 特征就是兩個參數$\beta$和$\alpha$, 有時我們也會稱這個為數據的結構, 它們表達的意義差別不太大。

簡單的說, 我們就是想用直線擬合這組數據, 如果沒記錯, 中學生都學過如何用最小二乘法擬合一組數據, 並且給出誤差。 不過中學生的知識水平還很難把這個問題寫成簡單的形式, 我們這里當然不會出現$\sum_{ij}\|x_i-x_j\|^2$這種形式。

當然, linear regression的應用范圍很廣, 分類問題也可以處理。比如我們將每個類都設置為$e_i$, 然后自然就可以用linear model去找一個平面進行分類。 過程跟這里是完全一樣的。

為了后面更容易解釋, 我們稍微換個方向看這個問題, 我們有一組數據$x$, 如果它有什么結構, 那么一定就有這么一個函數能生成它, $f(x)=y$, {x,y}就是現在我們看到的。 因此我們的目標自然就是嘗試找到$f$.

對於linear model, 這個問題非常簡單

$Bx=Y$

只要有$B$, 一切就解決了。 不過這個事情沒有想象中那么簡單, 因為很多時候這個等式是無解的, 直接去求顯然不合適。 因此我們轉而去嘗試最小化下面這個式子:

$f=\|Bx-Y\|^2$

這里我們加了L-2范數來保證能夠最小化。 或許你會懷疑為什么沒有偏移項, 這是因為為了簡單, 我們把偏移項放進了B和x里, 從而不再需要求兩次導數了。

到這里一切就顯得很清晰了, 雖然很多時候不能保證誤差為0(實際上是所有情況下, 因為實際問題的觀測數據總和真值有偏移, 我們需要$E(Y)$才能推測真值), 但總是可以最小化這個誤差。取導數, 令$f’ = 0$, 我們可以得到:

$B=(x’x)^{-1}x’Y$

這個結果很容易推導, 我也不給出詳細的過程。 但這個結果很有意思。你可能已經注意到了, 這個形式滿足M-P逆的四個條件, 也就是說這是M-P逆的表達形式。

雖然我們並沒有引入vec算符, 也沒有引入固有向量分界后空間的意義, 從數學上講可能很難。 不過可以想像一下這個函數干了什么。 首先, 如果我們能夠找到一個完美的$f$, 顯然這個曲線會和點完全重合。 但首先我們的模型可能太過簡單, 那么我們就用了直線上距離觀測點最近的地方作為預測結果, 相當於一個投影過程, 這也是MP逆的定義所導出的東西。

當然, linear regression也會有很多變形和優化方法。 不過今天就到此為止, 今后我們會講講LASSO, 局域權重等一些實際中常用的東西。 或許還會補補數學上的一些東西。 總之, 以后有機會再見。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM