數學模型之最小二乘法

前言廢話

    前面講了線性迴歸分析,從觀測數據中確定線性迴歸的模型的方法就是最小二乘法。即
在這裏插入圖片描述

使得上面的均方誤差和最小。(關於爲什麼,請參照以下博客)
如何理解最小二乘法?
本文將主要分析最小二乘法的具體解法。

關於最小二乘法的解法,一般由以下解法:
1、多元函數求最值(也有的說法把這當成最小二乘法)
2、利用線代的幾何意義
3、梯度下降法

一、多元函數求最值

從本質上來說,上述均方誤差和就是一個關於參數(a,b)的多元函數。如下圖所示:
在這裏插入圖片描述

這裏的f(xi)是線性迴歸模型ax+b。
對於多元函數來說,求其最小值,我們可以利用高等數學中多元函數求偏導的方式。即

在這裏插入圖片描述

解上述方程,就可以得到最終的β0,β1解。如下所示。(有凸函數理論可以證明,對於線性迴歸來說,其均方誤差是有最小值,此處求得的β0,β1解就是其全局最優解,但是這條理論對其他迴歸模型可能不成立)。
在這裏插入圖片描述

多元線性迴歸模型求解同理。

二、利用線代的幾何意義

對於線性迴歸問題,我們可以換一個思路。即觀測到一系列數據點,而這些數據點需要都在一條直線方程上。我們利用線性代數中解線性方程組的方式來解釋最小二乘法。
爲了簡單敘述,
以y=cX1+dX2這個二元線性方程爲例。(其中c、d是參數,X1,X2爲自變量)

如題:觀測到數據點(4 -1 5)、(2 2 10)、(0 0 1). 其中前兩個是自變量X1、X2,最後一個是因變量y。
需要是上述數據點符合二元線性方程。即
在這裏插入圖片描述
成立。
上述方程稱爲超定方程組,這種方程組並沒有精確解(c、d)。我們需要需要求得一個近似解。

由線性代數的知識可以知道,上述方程組問題可以看成以下兩個向量w、v的線性組合是否可以組合成b向量(此處應該是更好的寫法應該是轉置,但是比較難打,敬請見諒)
在這裏插入圖片描述
在這裏插入圖片描述

此時,向量w和v都在xy平面上,所以w、v的線性組合決不能跑到xy平面。而由於向量b的第三個值爲1,它脫離了xy平面,所以此此w、v的線性組合是無法成爲b向量的。這也驗證了上述線性方程組無解的情況。如下圖所示。
在這裏插入圖片描述

我們現在不要求w、v的合成向量
在這裏插入圖片描述
準確等於b,只希望使bb儘可能的接近b。我們知道,bb的可取範圍是整個xy平面(w和v所有線性組合的平面),其中哪一點與向量b的矢量端最接近呢?應該是從b端向wv平面做垂線的垂足。此時兩者的誤差e就是垂線的長度,它也是平面上所有可能的bb中與b最小的誤差。
那麼如何確定e呢?很簡單,確定向量e的條件就是它與v和w都正交,即
在這裏插入圖片描述
(好吧,我承認這是《使用大衆線性代數》裏面的內容,我不想手打了。我還沒吃飯呢。┭┮﹏┭┮)

這裏要說明一點,利用多元函數求最值和這裏線代的幾何意義求得的最值本質上是相同的。只需把前者的過程化成矩陣的形式即可。

三、梯度下降法

所謂梯度下降法,是迭代法計算最值的一種形式。是通過不斷求導改變待求參數的值,來達到不斷求得最值的過程。

在這裏插入圖片描述
如上圖所示,可以把這裏的J(x,y)當成我們討論的均方誤差和。(其實這裏J(x,y)是機器學習中的代價函數)
α是下降速度,可以根據現實情況選擇(機器學習中時也叫做學習速率)。
對於一元線性迴歸來說就是下面這張圖。
在這裏插入圖片描述
一般來說,梯度下降法可能會下降到局部最優點,但是對於線性迴歸來說其均方差函數大概是下面這個樣子。
在這裏插入圖片描述
所以局部最優就是全局最優了。
這種算法不是這裏的重點,值簡要介紹到這兒。具體的其他性質,請自行查閱。

四、一個小實驗

最後上一個用matlab做的一個小實驗,進行線性迴歸的實驗。

clear;
clc;

data_mat  = load('ex0.txt');%從ex0.txt文本文件中讀取數據
x = data_mat(:,2);  %獲取第二列數據,作爲輸入
y = data_mat(:,3);  %獲取第三列數據,作爲輸出
X = [data_mat(:,1:2)];%取出m行2列的係數矩陣,其中第一列全爲1

w = pinv(A)*y;%計算獲得迴歸參數a,b。其中pinv爲僞逆函數

%構造數據,畫出散點圖和擬合圖像
x1 = linspace(0,1,20);
y1 = w(1)*x1+w(2);
scatter(x,y),hold on, plot(x1,y1)

效果如下圖所示:
在這裏插入圖片描述

具體的數據和代碼已經上傳到對應的資源頁了。

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