簡單多元線性回歸(梯度下降算法與矩陣法)


多元線性回歸是最簡單的機器學習模型,通過給定的訓練數據集,擬合出一個線性模型,進而對新數據做出預測。

對應的模型如下:

n: 特征數量。

一般選取殘差平方和最小化作為損失函數,對應為:

M:訓練樣本數量。

通過最小化代價損失函數,來求得 值,一般優化的方法有兩種,第一是梯度下降算法(Gradient Descent),第二種是矩陣法(The normal equations)。

梯度下降算法

一個初始值,然后逐步的迭代改變的值,是代價損失函數逐次變小,使每次都往梯度下降的方向改變:

表示下降速度。

為了求偏導數,當只有一個樣本時,即

即:

當有多個訓練樣本時,下降梯度算法即為:

由於每次迭代都需要計算所有樣本的殘差並加和,因此此方法也叫做批下降梯度法(batch

gradient descent),當有大規模數據時,此方法不太適合,可采取它得一個變種,即每次更新權重時,不是計算所有的樣本,而是選取其中一個樣本進行計算梯度,這個方法叫做隨機下降梯度法(stochastic gradient descent):

隨機下降梯度法與下降梯度法對比可能收斂更快,但是可能找不到最優點而在最優點附近徘徊。

 

矩陣求解法

由於梯度下降算法需要多次迭代,並且需要指定下降速率,如果下降速度過快則可能錯過最優點,如果過慢則需要迭代多次,因此還可選用矩陣法求解。

首先,需要定義一些用到的線性代數知識:

對於一個函數,表示一個輸入mxn的矩陣,輸入為一個實數,即輸入x為矩陣,則對此函數求導數為:

即對矩陣中每個元素求導,結果也為一個m*n的矩陣。

另外,定義矩陣的跡trace,為矩陣主對角線元素之和:

如果A為實數a,則 tr a=a。

以下是關於矩陣跡的一些性質:

對於多元線性回歸,將訓練數據的特征作為一個矩陣:

同時將其對應的y值也作為一個矩陣:

因此,

求導數,且:

則:

令上式為0,則

以上即為矩陣法的推導,其中涉及到線性代數的知識沒有證明,只要將給定的公式帶入求導即可得出此結論。

矩陣法與下降梯度法對比好處是不需要多次迭代,一次計算即可得出精確結果,但當數據量過大時,即設計矩陣X過大時,對矩陣的乘法即求逆有很大計算復雜度,因此此方法適用於小規模數據。另外,用矩陣法時不需要對輸入特征數據中心化。

 

 

總結

以上就是簡單多元線性回歸,及其對應的下降梯度算法與矩陣算法,雖然簡單,但是其他一些復雜算法的基礎。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM