機器愛學習03——最小二乘法

在前面房價預測案例中,我們提出瞭如下的hypothesis function:

機器愛學習03——最小二乘法

為了確保hypothesis function足夠“完美”,我們又引入了cost function:

機器愛學習03——最小二乘法

通過前面的講解,我們知道,hypothesis function足夠“完美”,需要滿足如下條件:

機器愛學習03——最小二乘法

前面章節中,hypothesis function中的變量θ0、θ1,是我們手動算出來的,那麼機器學習算法又是如何計算這些參數的呢?

接下來,介紹一種最基本的機器學習算法:最小二乘法(Least Squares Algorithm),並介紹最小二乘法如何得到這些參數,從而使hypothesis function足夠“完美”。

介紹算法之前,我們先了解一下這個算法的歷史,加深下印象。

1801年,意大利天文學家朱賽普·皮亞齊發現了第一顆小行星穀神星。經過40天的跟蹤觀測後,由於穀神星運行至太陽背後,使得皮亞齊失去了穀神星的位置。隨後全世界的科學家利用皮亞齊的觀測數據開始尋找穀神星,但是根據大多數人計算的結果來尋找穀神星都沒有結果。時年24歲的高斯也計算了穀神星的軌道。

奧地利天文學家海因裡希·奧爾伯斯根據高斯計算出來的軌道重新發現了穀神星。 高斯使用的最小二乘法的方法發表於1809年他的著作《天體運動論》中。 法國科學家勒讓德於1806年獨立發明“最小二乘法”,但因不為世人所知而默默無聞。 勒讓德曾與高斯為誰最早創立最小二乘法原理髮生爭執。 1829年,高斯提供了最小二乘法的優化效果強於其他方法的證明,因此被稱為高斯-馬爾可夫定理。(來自於wikipedia)

1801年?你沒看錯,前人就是這麼厲害!

在這裡說一些題外話,我們可以一股腦的把所有的機器學習算法都學一遍,但是如果對這些算法理解不夠深入,遇到實際問題時,就會不知所措,不知道該用什麼方法來解決。這顯然不是我們願意看到的,因此在學習每一種算法時,大家可以先將算法理解一遍,之後去搜索各種描述這些算法的文章,或許每個人看待算法的角度不同,又或許理解算法的深度不同,總之,多看一些文章,實際運用時,就不會不知所措。另外,大家可以用自己熟悉的語言,將算法實現一遍,加深理解。

言歸正傳,學過高數的同學應該知道,求一個函數f(x)的極值,可以對函數f(x)求導,令導數等於0,求出x即可。

最小二乘法(Least Square Algorithm),就是通過求導的方式,直接求出θ0、θ1。只不過自變量不是x,而是θ0、θ1。因此需要分別對θ0、θ1求偏導數。

作為小白教程,我們還是回顧下高數中求導的知識吧!

1:常數的導數為0;

2:假設y等於x的n次方;則

機器愛學習03——最小二乘法

3:函數和/差的導數為:

機器愛學習03——最小二乘法

4:函數積的導數為:

機器愛學習03——最小二乘法

5:函數商的導數為:

機器愛學習03——最小二乘法

下面分別對求θ0、θ1偏導數:

對θ0求偏導數(此時θ0作為自變量,θ1和x都作為常數處理):

機器愛學習03——最小二乘法

對θ1求偏導數(此時θ1作為自變量,θ0和x都作為常數處理):

機器愛學習03——最小二乘法

從偏導數的求解結果來看,兩個偏導數函數構成一個二元一次方程組,其中自變量為θ0和θ1,x(i)和y(i)都是常數,求解二元一次方程組對計算機來說,so easy!

最小二乘法內容基本就這些,下一章我們再介紹下feature比較多時,最小二乘法的變種:正規方程。

最後,為了方便大家理解,我們還是training set中的數據,代入偏導數方程,具體求解過程就不再講解。

這裡再列一下我們的training set:

機器愛學習03——最小二乘法

機器愛學習03——最小二乘法


分享到:


相關文章: