機器學習 線性迴歸原理詳解

線性迴歸

線性迴歸是機器學習最基礎的,也是最經典的算法,下面就來介紹這個算法。

假如我們要去銀行貸款,那麼銀行會貸給我們多少錢,我們可以通過特徵來計算出來。

  • 數據:工資和年齡(2個特徵)
  • 目標:預測銀行會貸款給我多少錢 (標籤)
  • 考慮:工資和年齡都會影響銀行貸款的結果,那麼它們各自有多大的影響呢?(參數)
工資 年齡 額度
4000 25 20000
8000 30 70000
5000 28 35000
7500 33 50000
12000 40 85000

在以前數學課中,線性方程就是要在座標軸找出一條直線來擬合我們的數據,那當我們的x變成兩個特徵,那我們就要和下圖一樣找出一個最合適的平面,來擬合我們的數據了。
在這裏插入圖片描述
現在,爲了求出平面,我們要引入參數了,我們假設年齡對最終的結果造成了θ1的影響,工資對最終的結果造成了θ2的影響,我們把參數和特徵結合在一起,那麼這個平面的方程爲θ0+θ1x1+θ2x2(θ0是偏置項,和特徵沒有關係),(θ1θ2是權重參數,對結果造成較大的影響,θ0是偏置參數,對結果造成較小的影響)
在這裏插入圖片描述
我們擬合的平面看起來有點長,我們把他整合成上面的形式,可能有人會問,如果是上面那樣,那平面不就變成θ0x0+θ1x1+θ2x2了嗎,x0是什麼呢,在這裏,我們爲了方便,我們加入一列x0,每一列都是1,1乘任何數都等於這個數本身,所以我們最後把平面整合成了一個簡單的式子(這樣是爲了矩陣的運算)。

誤差

上面的我們求出的平面是我們的預測值,那麼,預測值和真實值之間肯定有差異(我們用ε來表示該誤差)。
所以對於每個樣本,
y代表的是真實值,i表示的是第i個樣本,真實值=預測值+誤差。

高斯分佈(正態分佈)

對於誤差ε來說,ε符合高斯分佈的條件,獨立並且具有相同的分佈。
高斯分佈的意思是,大多數情況下,誤差都在對稱軸左右浮動,並且浮動不會太大,極小情況下浮動比較大。
在這裏插入圖片描述
我們知道了誤差是服從高斯分佈的,那我們把誤差代進高斯分佈的表達式裏(exp(x)代表的是e的x次方)
在這裏插入圖片描述

似然函數

關於似然函數,https://blog.csdn.net/caimouse/article/details/60142085 這篇博文我覺得還不錯,大家可以參考一下,簡單來說,似然函數就是求出什麼參數跟我們的數據組合後恰好是真實值。
而極大似然估計,講的是,什麼樣的概率使得我們的結果越大越好呢,我們要做的就是使他成爲真實值的概率越大越好。下面是最大似然估計(m表示有m個樣本):
l80MzE3MjY2MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
上面的式子是累乘,我們要把它變成對數似然函數,因爲logAB=logA+logB,加法問題比乘法問題好求太多了。
在這裏插入圖片描述
因爲logAB=logA+logB,式子從累成變成累加的了,接着進一步求解mNzZG4ubmV0L3dlaXhpbl80MzE3MjY2MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
在這裏插入圖片描述

目標

現在我們的目標轉換成,讓似然函數(對數變換後也一樣)越大越好。
那麼對於上面的式子,左邊的是常數,右邊的我們就希望他越小越好,這樣整個函數纔會越大。
在這裏插入圖片描述
現在目標函數就變成了上面這個式子,我們希望這個式子越小越好。求這個目標函數,我們有兩種方法,第一種方法是矩陣法,第二個方法是梯度下降。

矩陣法求解

我們可以把式子進一步化簡,化簡成矩陣計算的形式,這裏的(X是m行x列,θ是x行1列)
在這裏插入圖片描述 對於這個式子,我們可以用矩陣法來求解,通過對θ求偏導的方式,求得θ。
https://blog.csdn.net/u012421852/article/details/79562125 這個博文很詳細的講到了求導的過程。
最終,我們可以得到θ的值,就是下面的式子。

梯度下降求解

對於矩陣法,有時候並不能夠直接求解,我們就需要用到梯度下降法,是機器學習很重要的一個優化策略。

梯度下降法是最早最簡單,也是最爲常用的最優化方法。梯度下降法實現簡單,當目標函數是凸函數時,梯度下降法的解是全局解。一般情況下,其解不保證是全局最優解,梯度下降法的速度也未必是最快的。梯度下降法的優化思想是用當前位置負梯度方向作爲搜索方向,因爲該方向爲當前位置的最快下降方向,所以也被稱爲是”最速下降法“。最速下降法越接近目標值,步長越小,前進越慢。

梯度下降講的是,對於一個求極值的問題,我們可以沿着各個參數導數爲0的方向前進。
這就是我們目標函數的圖像(對於線性迴歸的目標函數,圖像是一個碗狀,也是凸函數)(2個參數,θ0和θ1),要想走到最低點,我們需要一步一步來。
在這裏插入圖片描述
我們新構建一個目標函數(平方誤差函數,m代表m個樣本,我們需要對損失函數求均值,右邊括號表示預測值減去真實值的誤差的平方):
80MzE3MjY2MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
我們的目標函數求參數求導得到的是(紅圈圈起來的表示第i個樣本第j個特徵的x值):
在這裏插入圖片描述
接着我們要更新參數了,更新後的參數爲原來的參數減去α乘以上面的式子,這裏的α代表的是學習率。

學習率值的是你更新權重的快慢,當設置過大,你可以就會錯過最低點還會使函數不能收斂甚至發散,所以不能設置過大。
在這裏插入圖片描述
我們注意到了式子有個m,我們進行梯度下降的時候,可以對m進行設置。

  • 批量梯度下降法
    m=全部樣本時,我們可以稱爲批量梯度下降法,意思是一次迭代所有樣本 ,容易得到最優解 ,缺點是,如果面對數量巨大的樣本量(如40萬個),採取這種訓練方式,所耗費的時間會非常長
  • 隨機梯度下降
    m=1,每次找一個樣本,每訓練一組樣本就把梯度更新一次。缺點是容易造成過擬合
  • 小批量梯度下降
    每次取一小批樣本,不容易造成過擬合速度也快,實用。

總結

我們通過對實際問題的轉化求出線性迴歸的目標函數,通過矩陣法求解或者用梯度下降法求參數進行求解,線性迴歸函還是比較容易掌握的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章