從最大似然再看線性迴歸
1. 線性迴歸的回顧
上一節我們嘗試解決“房價與房子大小”之間關係的時候,使用了線性迴歸去擬合一個線性的方程,使得這個線性方程與所獲得的房價與房大小數據最大限度地吻合。
所以,我們的問題的解決思路是,
-
把數據當成事實
-
用一個特定的模型(e.g.線性方程或非線性方程)去匹配數據
這些數據被當成了上帝,而讓我們用模型去匹配他們。數據就是事實,當誤差很大時,只能說明模型不夠好,仍需努力來匹配我們的數據。
2. 換個角度看線性迴歸
剛纔是數據是事實,換個角度來看,數據應該是事實的一個表現。也就是”房價數據”應該是“房價與房子大小關係”的一個表現。現在假設北京某地房價和房子大小之間關係已經確定了
房價=房子大小*500,
但是我們不知道,現在拿到了5個數據,
(500, 1), (502, 1), (1510, 3), (1120, 2), (1500, 2). 會發現這5個數據並不符合關係。這是爲什麼,這是因爲這些數據裏面並不僅僅包含了"房價”與"房子大小”之間的關係,還很可能包含了, "房價”與“新舊”,“房屋”與“朝向”,“房屋”與“小區環境”...等等各種因素,而且這些因素很可能是可以觀察到,也有可能是觀察不到的。
所以說想完美準確的預測房價與房子大小的關係是有可能的!! 只要找出所有影響房價的因素.
找到所有影響房價的因素這是不可能的!! 所以我們可能勉爲其難,只需要一個最近似的關係就好了,所以只要把其他因素都看成是一些與房子大小無關的小噪聲就好了。於是,
y就是我們的房價,f(x)就是房價與房子大小之間的關係,\epsilon就是一些與房子大小無關的小噪聲,當然,因爲\epsilon是一個隨機的東西,我們可以用隨機變量E來表示它,
3.最大似然
無論如何, 現在我們有了一串X,Y,就可以嘗試地找出一個最有可能的f(x)去擬合數據了。
什麼叫最有可能?
假如有M個f(x), 那麼我們需要評估哪個模型最有可能產生這一串數據D (Y, X). 可能性應該用概率來表示,
是f(x)的參數, 如果這些數據與數據之間是獨立的,就有
下面這個方程,表示了模型產生數據X,Y的可能性
因爲X,Y已經確定了,現在要使得可能性最大,我們只能通過調整的值了。
對任意一個數據,(xi, yi),我們可以計算
現在要計算一個模型產生數據的可能性,我們只要知道這個模型預測值與實際值之間的誤差,和這個噪聲隨機變量E的分佈就可以了。
解決最大似然問題的流程
到這,問題已經可以解決了,也就是,對於已有的數據D(X,Y)和任意一個參數爲的f(x),找到最好的參數我們需要,
-
選擇一個模型f(x), 和初始化其參數
-
估測噪聲隨機變量E的分佈情況(e.g. 均勻分佈,高斯分佈...), 得到Likelihood表達式
-
計算Likelihood函數, 並調整使得Likelihood達到最大
調整的方法可以使用像前一章中介紹的“導數下降法”,當然也可以直接找極值點(導數爲0)來得到其極大極小值。
Likelihood 函數會隨着模型f(x)的選擇和噪聲隨機變量E的選擇出現不同的情況。下面就由我展示一下,最大似然怎麼與前面兩位迴歸(線性迴歸(Linear Regression)和分類迴歸(Logistic Regression))聯繫起來的吧!
4. 最大似然變身線性迴歸
這時候,模型我選 f(x) = ax + b, 噪聲隨機變量 E一個正態分佈N(0,2).
要讓Likelihood最大,只需要把最小化就好了。啊啊啊!這個公式熟悉麼?
這正是前面線性迴歸的cost函數嗎?原來線性迴歸只是最大似然的一種特殊情況!
5. 最大似然與分類
這時候,模型我選f(x)=,
這時隨機噪聲變量的分佈就不再是高斯分佈了,是一個極其複雜的分佈。但是幸運的是,我們可以得到Likelihood的表達式, 因爲
統一一下這個式子,
於是有,
最後可以看到,這個Likelihood函數變成了,分類迴歸中的cost函數的取負。所以最大化Likelihood就等同於最小化分類迴歸中的cost函數。
以上兩類問題,線性迴歸和分類迴歸,都可以由最大似然估計法推導而來,說明了最大似然估計法是一種更普適的描述模型匹配的方法。