學習過程主要順着 周志華《機器學習》第三章線性模型 內容,本次線性迴歸模型總結按照 “模型 + 策略 + 算法 ” 的統計學習三要素整理。
0. 數據集和目標
訓練集假設m個樣本,每個樣本n個特徵/屬性,每個樣本包含一個標記y。
表示爲:
D=⎣⎢⎢⎢⎡X1(1)X1(2)...X1(m)X2(1)X2(2)...X2(m)............Xn(1)Xn(2)...Xn(m)y1y2...ym⎦⎥⎥⎥⎤其中,Xj(i)代表第 i 個樣本的第 j 個特徵
模型的目標爲:對於一個新的樣本,給定特徵(X1(k),X2(k),...,Xn(k)),可以給出它對應的 yk(在迴歸模型中,yk是一個連續值)。
1. 模型
針對每個樣本:
f(x)=w1x1+w2x2+...+wnxn+b其中,wi,b爲模型參數,xi爲每個樣本的特徵值。
線性模型試圖學得一個通過特徵的線性組合來進行預測的函數
爲了方面操作,簡化爲矩陣形式:
f(X)=Xθ其中
X=⎣⎢⎢⎢⎡X1(1)X1(2)...X1(m)X2(1)X2(2)...X2(m)............Xn(1)Xn(2)...Xn(m)11...1⎦⎥⎥⎥⎤維度m∗(n+1),θ=⎣⎢⎢⎢⎢⎡w1w2...wnb⎦⎥⎥⎥⎥⎤維度(n+1)∗1所以
Xθ=⎣⎢⎢⎡f(X1)f(X2)...f(Xm)⎦⎥⎥⎤維度m∗1,即爲針對m個輸入樣本的預測值
2. 策略
最小二乘法,均方誤差作爲損失函數
J(w,b)=i=1∑m(f(xi)−yi))2矩陣形式:
J(θ)=(Xθ−y)T(Xθ−y)
最小二乘法:選擇未知參數,使得理論值與觀測值之差的平方和達到最小
所以,最優參數 θ∗:
(θ∗)=argminJ(θ)=argmin(Xθ−y)T(Xθ−y)
3. 算法(模型求解)
算法是指學習模型參數的具體計算方法
求解最小二乘問題,可以採用 正規方程法和迭代法(梯度下降法是迭代法的一種,可以用於求解線性和非線性最小二乘問題。高斯-牛頓法是另一種經常用於求解非線性最小二乘的迭代法)
(TODO1:進一步學習數值優化算法,迭代法)
3.1 正規方程法
因爲 J(θ) 是關於 θ 的凸函數
所以 J(θ)求導爲0時,得到最小值,此時的 θ即爲最優解
何爲凸函數:
對區間 [a, b] 上定義的函數f,若它對區間中任意兩點x1,x2均有 f(2x1+x2)⩽2f(x1)+f(x2),則稱f爲區間[a, b] 上的凸函數。
對實數集上的函數,可通過求二階導數來判別:若二階導數在區間上非負,則稱爲凸函數。
J(θ)對θ向量求導取0,如下:
∂θ∂J(θ)=2(XTXθ−XTy)=0
求導過程:(其中一些矩陣求導公式參考:矩陣求導與轉置運算 或 向量,標量對向量求導數 )
∂θ∂J(θ)=∂θ∂(Xθ−y)T(Xθ−y)=∂θ∂[(θTXT−yT)(Xθ−y)]=∂θ∂(θTXTXθ−θTXTy−yTXθ+yTy)=2XTXθ−XTy−XTy=2(XTXθ−XTy)
得:
θ=(XTX)−1XTy
3.2 梯度下降法
針對損失函數:J(θ)=(Xθ−y)T(Xθ−y),設定初始值 θ、步長 α
計算損失函數梯度:
▽=∂θ∂J(θ)=2XT(Xθ−y)
更新參數:
θ=θ−α▽
不斷更新參數,直到梯度▽ 小於設定閾值 ε
得到最優參數 θ。
4. 廣義線性模型
考慮單調可微函數 g(.) ,令
y=g−1(Xθ)
也就是:
g(y)=Xθ
這樣得到的模型稱爲“廣義線性模型”。
這裏做一下擴展,對數線性函數是g(.)=ln(.)的情況,而邏輯迴歸是g−1(.)=sigmoid(.)的情況。
參考:
1.《機器學習》周志華
2.《統計學習方法》李航
3. ML模型2:線性迴歸模型
4. 第二週(多變量線性迴歸 +Matlab使用)-【機器學習-Coursera Machine Learning-吳恩達】