【ML模型詳細推導1】- 線性迴歸


學習過程主要順着 周志華《機器學習》第三章線性模型 內容,本次線性迴歸模型總結按照 “模型 + 策略 + 算法 ” 的統計學習三要素整理。


0. 數據集和目標

訓練集假設m個樣本,每個樣本n個特徵/屬性,每個樣本包含一個標記y。
表示爲:
D=[X1(1)X2(1)...Xn(1)y1X1(2)X2(2)...Xn(2)y2...............X1(m)X2(m)...Xn(m)ym] D=\begin{bmatrix} X^{(1)}_1& X^{(1)}_2& ...& X^{(1)}_n& y_1& \\ X^{(2)}_1& X^{(2)}_2& ...& X^{(2)}_n& y_2& \\ ...& ...& ...& ...& ...& \\ X^{(m)}_1& X^{(m)}_2& ...& X^{(m)}_n& y_m& \\ \end{bmatrix} 其中,Xj(i)X^{(i)}_j代表第 i 個樣本的第 j 個特徵

模型的目標爲:對於一個新的樣本,給定特徵(X1(k),X2(k),...,Xn(k))(X^{(k)}_1, X^{(k)}_2, ... , X^{(k)}_n),可以給出它對應的 yky_k(在迴歸模型中,yky_k是一個連續值)。

1. 模型

針對每個樣本:
f(x)=w1x1+w2x2+...+wnxn+b f(x) = w_1x_1+ w_2x_2+ ...+ w_nx_n +b 其中,wi,bw_i,b爲模型參數,xix_i爲每個樣本的特徵值。

線性模型試圖學得一個通過特徵的線性組合來進行預測的函數

爲了方面操作,簡化爲矩陣形式:
f(X)=Xθ f(X) = X \theta 其中
X=[X1(1)X2(1)...Xn(1)1X1(2)X2(2)...Xn(2)1...............X1(m)X2(m)...Xn(m)1]m(n+1), θ=[w1w2...wnb](n+1)1 X=\begin{bmatrix} X^{(1)}_1& X^{(1)}_2& ...& X^{(1)}_n& 1& \\ X^{(2)}_1& X^{(2)}_2& ...& X^{(2)}_n& 1& \\ ...& ...& ...& ...& ...& \\ X^{(m)}_1& X^{(m)}_2& ...& X^{(m)}_n& 1& \\ \end{bmatrix}_{維度m*(n+1)} , \, \theta=\begin{bmatrix} w_1 \\ w_2 \\ ... \\ w_n \\ b \end{bmatrix}_{維度(n+1)*1} 所以
Xθ=[f(X1)f(X2)...f(Xm)]m1,m X\theta = \begin{bmatrix} f(X_1) \\ f(X_2) \\ ... \\ f(X_m) \end{bmatrix}_{維度m*1} ,即爲針對m個輸入樣本的預測值

2. 策略

最小二乘法,均方誤差作爲損失函數
J(w,b)=i=1m(f(xi)yi))2 J(w,b) = \sum_{i=1}^{m}(f(x_i)-y_i))^2 矩陣形式:
J(θ)=(Xθy)T(Xθy) J(\theta) = (X\theta-y)^T(X\theta-y)

最小二乘法:選擇未知參數,使得理論值與觀測值之差的平方和達到最小

所以,最優參數 θ\theta^*
(θ)=arg minJ(θ)=arg min(Xθy)T(Xθy) (\theta^*) = arg \,minJ(\theta) = arg \,min (X\theta-y)^T(X\theta-y)

3. 算法(模型求解)

算法是指學習模型參數的具體計算方法

求解最小二乘問題,可以採用 正規方程法和迭代法(梯度下降法是迭代法的一種,可以用於求解線性和非線性最小二乘問題。高斯-牛頓法是另一種經常用於求解非線性最小二乘的迭代法)

(TODO1:進一步學習數值優化算法,迭代法)

3.1 正規方程法

因爲 J(θ)J(\theta) 是關於 θ\theta 的凸函數
所以 J(θ)J(\theta)求導爲0時,得到最小值,此時的 θ\theta即爲最優解

何爲凸函數:
對區間 [a, b] 上定義的函數ff,若它對區間中任意兩點x1,x2x_1, x_2均有 f(x1+x22)f(x1)+f(x2)2f(\frac{x_1+x_2}{2})\leqslant \frac{f(x_1)+f(x_2)}{2},則稱ff爲區間[a, b] 上的凸函數。
對實數集上的函數,可通過求二階導數來判別:若二階導數在區間上非負,則稱爲凸函數。

J(θ)J(\theta)對θ向量求導取0,如下:
θJ(θ)=2(XTXθXTy)=0 \frac{\partial }{\partial \theta}J(\theta) = 2(X^TX\theta-X^Ty)=0

求導過程:(其中一些矩陣求導公式參考:矩陣求導與轉置運算向量,標量對向量求導數

θJ(θ)=θ(Xθy)T(Xθy)=θ[(θTXTyT)(Xθy)]=θ(θTXTXθθTXTyyTXθ+yTy)=2XTXθXTyXTy=2(XTXθXTy)\begin{aligned} \frac{\partial }{\partial \theta}J(\theta) &=\frac{\partial }{\partial \theta} (X\theta-y)^T(X\theta-y)\\ &=\frac{\partial }{\partial \theta} [(\theta^TX^T-y^T)(X\theta-y)]\\ &=\frac{\partial }{\partial \theta} (\theta^TX^TX\theta - \theta^TX^Ty - y^TX\theta + y^Ty)\\ &=2X^TX\theta-X^Ty-X^Ty\\ &=2(X^TX\theta-X^Ty) \end{aligned}

得:
θ=(XTX)1XTy \theta = (X^TX)^{-1}X^Ty

3.2 梯度下降法

針對損失函數:J(θ)=(Xθy)T(Xθy)J(\theta) = (X\theta-y)^T(X\theta-y),設定初始值 θ\theta、步長 α\alpha
計算損失函數梯度:
=θJ(θ)=2XT(Xθy) \triangledown = \frac{\partial }{\partial \theta}J(\theta) = 2X^T(X\theta-y)
更新參數:
θ=θα \theta = \theta - \alpha \triangledown

不斷更新參數,直到梯度\triangledown 小於設定閾值 ε\varepsilon

得到最優參數 θ\theta

4. 廣義線性模型

考慮單調可微函數 g(.)g(.) ,令
y=g1(Xθ) y = g^{-1}(X\theta)
也就是:
g(y)=Xθ g(y) = X\theta
這樣得到的模型稱爲“廣義線性模型”。

這裏做一下擴展,對數線性函數是g(.)=ln(.)g(.) = ln(.)的情況,而邏輯迴歸是g1(.)=sigmoid(.)g^{-1}(.) = sigmoid(.)的情況。


參考:
1.《機器學習》周志華
2.《統計學習方法》李航
3. ML模型2:線性迴歸模型
4. 第二週(多變量線性迴歸 +Matlab使用)-【機器學習-Coursera Machine Learning-吳恩達】

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