[機器學習] 線性回歸中的最小二乘法和梯度下降法比較
為什麼要比較這兩種方法呢?很多人可能不知道,我先簡單的介紹一下
機器學習有兩種,一種是監督學習,另一種是非監督學習。監督學習就是我告訴計算機你把班上同學分個類,分類標準是按照性別,男生和女生;非監督分類就是告訴計算機你自己去把班上同學分個類吧,我不告訴你分類標準。
在監督學習中,如果我們面對的變數是連續型的變數就要用到回歸
回歸其實是非常容易理解,也非常實用的一種方法,很多經濟類的學生在寫論文的時候都會用到回歸的方法。比方說,距離市中心的距離越近(距離為x),房價就越高(房價是y),可以得到一個y=kx+b的式子來大概的表示x和y之間的關係
不過,大部分的情況下是很多條件一起制約y的,不僅有離市中心的距離x?,還有房子的新舊程度x?等等條件,那麼可以用到多元回歸,一般式如下:
其中 是預測值
是係數
是自變數
我們想要讓這個方程擬合的非常好,那麼就要使誤差盡量小,評價誤差小的方法就是所有誤差的平方和最小
計算誤差平方和最小的方法最常見的就是最小二乘法和梯度下降法
最小二乘法
最小二乘法是所有有數學思維的人面對這個問題第一想到的方法,最直接最不拐彎抹角的方法。就是求多元函數極值,這就是最小二乘法的思想!其實根本不用把最小二乘法想的多麼高大上,不就是求極值嘛~
學過大學高等數學的人應該都知道求極值的方法:就是求偏導,然後使偏導為0,這就是最小二乘法整個的方法了,so easy啊~
最後使所有的偏導等於0
然後解這個方程組就可以得到各個係數的值了
梯度下降法
我們注意到最小二乘法最後一步要求p個方程組,是非常大的計算量,其實計算起來很難,因此我們就有了一種新的計算方法,就是梯度下降法,梯度下降法可以看作是 更簡單的一種 求最小二乘法最後一步解方程 的方法
雖然只是針對最後一步的改變,不過為了計算簡便,仍然要對前面的步驟做出一些改變:
recall上面的最小二乘法,我們有一個這樣子的式子,就是所有誤差的平方和:
假設有m個數據,2個係數(θ?和θ?),我們要對最小二乘法的Q稍加改變,變成代價函數J,雖然用不同的字母表示了,但是他們的含義是一模一樣的啦~
前面的1/2m係數只是為了後面求導的時候,那個平方一求導不是要乘一個2嘛,然後和1/2m的2抵消就沒了,變成如下:
然後θ?和θ?分別是這樣子被計算出來的(其中:=為賦值的意思):
這個計算方法其實理解起來比較難,那麼我們先來看看這個J函數的圖像吧,J函數是關於θ?和θ?的函數,因此是三維的,為了使J的值最小,也就是高度最。相當於一個人要下山,下到海平面最低的地方,在圖中就是藍色部分,那就是最低的地方
再想像這個人,要下到海平面最低的地方有很多條路啊,他可以繞著山頭一圈一圈的下,像盤山公路一樣(但沒有人這樣下山的,要走的距離也太長了8),最省力的方法就是按照梯度的方向下山,如圖所示:
梯度:梯度是一個向量,梯度的方向就是最快下山,或者說沿著變化率最大的那個方向
我們再來看一下
這個一個反覆迭代的式子,就是初始的時候,先找一個點(θ?,θ?)(可以隨便找),然後在這個點沿著梯度下降的方向,即這個向量的方向
然後α的意思就是下山的跨步,比方說我知道了我接下來哪個方下是最快下山的方向了,我一步子跨多大,跨的小容易娘炮,跨的大容易扯著蛋(開玩笑),跨的小容易走了很多步纔到山腳下,跨的大容易把最地點那個坑??給一下子跨過去,因此要確定合適的α
每跨一步,就到了一個新的點,然後在這個點的基礎上繼續跨步,直到下到最低點(此時再想走的話就是上坡了,即偏導為正了),這就是一個反覆迭代的過程
完畢
如果你覺得寫的很好不要吝惜贊哦??
更多內容請看本專欄目錄
任妍Carol:機器學習小白筆記目錄推薦閱讀: