為什麼要比較這兩種方法呢?很多人可能不知道,我先簡單的介紹一下

機器學習有兩種,一種是監督學習,另一種是非監督學習。監督學習就是我告訴計算機你把班上同學分個類,分類標準是按照性別,男生和女生;非監督分類就是告訴計算機你自己去把班上同學分個類吧,我不告訴你分類標準。

在監督學習中,如果我們面對的變數是連續型的變數就要用到回歸

回歸其實是非常容易理解,也非常實用的一種方法,很多經濟類的學生在寫論文的時候都會用到回歸的方法。比方說,距離市中心的距離越近(距離為x),房價就越高(房價是y),可以得到一個y=kx+b的式子來大概的表示x和y之間的關係

不過,大部分的情況下是很多條件一起制約y的,不僅有離市中心的距離x?,還有房子的新舊程度x?等等條件,那麼可以用到多元回歸,一般式如下:

hat{y}(	heta, x) = 	heta_0 + 	heta_1 x_1 + ... + 	heta_p x_p

其中 hat{y} 是預測值

	heta_0  	heta_1 ...  	heta_p 是係數

x_0  x_1 ...  x_p 是自變數

我們想要讓這個方程擬合的非常好,那麼就要使誤差盡量小,評價誤差小的方法就是所有誤差的平方和最小

計算誤差平方和最小的方法最常見的就是最小二乘法和梯度下降法


最小二乘法

最小二乘法是所有有數學思維的人面對這個問題第一想到的方法,最直接最不拐彎抹角的方法。就是求多元函數極值,這就是最小二乘法的思想!其實根本不用把最小二乘法想的多麼高大上,不就是求極值嘛~

學過大學高等數學的人應該都知道求極值的方法:就是求偏導,然後使偏導為0,這就是最小二乘法整個的方法了,so easy啊~

∵e_i=y_i-hat{y}\ hat{y}=(	heta, x) = 	heta_0 + 	heta_1 x_1 + ... + 	heta_p x_p\ ∴e_i=y_i-(hat{	heta_0} + hat{	heta_1} x_1 + ... + hat{	heta_p} x_p)\ Q=Sigma_{i=1}^ne_i^2=Sigma_{i=1}^n(y_i-(hat{	heta_0} + hat{	heta_1} x_1 + ... + hat{	heta_p} x_p))^2\

最後使所有的偏導等於0

frac{partial{Q}}{partial{hat{	heta_0}}}=0\ frac{partial{Q}}{partial{hat{	heta_1}}}=0\ frac{partial{Q}}{partial{hat{	heta_2}}}=0\......

然後解這個方程組就可以得到各個係數的值了


梯度下降法

我們注意到最小二乘法最後一步要求p個方程組,是非常大的計算量,其實計算起來很難,因此我們就有了一種新的計算方法,就是梯度下降法,梯度下降法可以看作是 更簡單的一種 求最小二乘法最後一步解方程 的方法

雖然只是針對最後一步的改變,不過為了計算簡便,仍然要對前面的步驟做出一些改變:

recall上面的最小二乘法,我們有一個這樣子的式子,就是所有誤差的平方和:

Q=Sigma_{i=1}^ne_i^2=Sigma_{i=1}^n(y_i-hat{ y }_i)^2

假設有m個數據,2個係數(θ?和θ?),我們要對最小二乘法的Q稍加改變,變成代價函數J,雖然用不同的字母表示了,但是他們的含義是一模一樣的啦~

前面的1/2m係數只是為了後面求導的時候,那個平方一求導不是要乘一個2嘛,然後和1/2m的2抵消就沒了,變成如下:

J(	heta_0, 	heta_1) = frac{ 1 }{ 2m } displaystyle sum_{ i = 1 }^{ m } (hat{ y }_i - y_i)^2

然後θ?和θ?分別是這樣子被計算出來的(其中:=為賦值的意思):

	heta_0:=	heta_0-alphafrac{partial{J(	heta_0, 	heta_1) }}{partial{	heta_0}}\  	heta_1:=	heta_1-alphafrac{partial{J(	heta_0, 	heta_1) }}{partial{	heta_1}}

這個計算方法其實理解起來比較難,那麼我們先來看看這個J函數的圖像吧,J函數是關於θ?和θ?的函數,因此是三維的,為了使J的值最小,也就是高度最。相當於一個人要下山,下到海平面最低的地方,在圖中就是藍色部分,那就是最低的地方

再想像這個人,要下到海平面最低的地方有很多條路啊,他可以繞著山頭一圈一圈的下,像盤山公路一樣(但沒有人這樣下山的,要走的距離也太長了8),最省力的方法就是按照梯度的方向下山,如圖所示:

梯度:梯度是一個向量,梯度的方向就是最快下山,或者說沿著變化率最大的那個方向

我們再來看一下

	heta_0:=	heta_0-alphafrac{partial{J(	heta_0, 	heta_1) }}{partial{	heta_0}}\  	heta_1:=	heta_1-alphafrac{partial{J(	heta_0, 	heta_1) }}{partial{	heta_1}}

這個一個反覆迭代的式子,就是初始的時候,先找一個點(θ?,θ?)(可以隨便找),然後在這個點沿著梯度下降的方向,即這個向量的方向

(frac{partial{J(	heta_0, 	heta_1) }}{partial{	heta_0}},frac{partial{J(	heta_0, 	heta_1) }}{partial{	heta_1}})

然後α的意思就是下山的跨步,比方說我知道了我接下來哪個方下是最快下山的方向了,我一步子跨多大,跨的小容易娘炮,跨的大容易扯著蛋(開玩笑),跨的小容易走了很多步纔到山腳下,跨的大容易把最地點那個坑??給一下子跨過去,因此要確定合適的α

每跨一步,就到了一個新的點,然後在這個點的基礎上繼續跨步,直到下到最低點(此時再想走的話就是上坡了,即偏導為正了),這就是一個反覆迭代的過程

完畢

如果你覺得寫的很好不要吝惜哦??

更多內容請看本專欄目錄

任妍Carol:機器學習小白筆記目錄?

zhuanlan.zhihu.com
圖標

推薦閱讀:
相關文章