最小二乘法,是機器學習中的一個基礎概念——卻絲毫不影響它的重要性,本文將對其作一個詳細的講解,以便更好地掌握和利用。


1、最小二乘

最小二乘,廣義上來說其實是機器學習中的平方損失函數:

L(Y,f(X))=(Y-f(X))^2

對應於模型 f 的線性和非線性之分,最小二乘也相應地分為線性最小二乘和非線性最小二乘。

我們通常所講的「最小二乘法」,其實是狹義上的「最小二乘」,指的是在線性回歸下採用平方損失函數,進行線性擬合參數求解的、矩陣形式的公式方法。

線性最小二乘有閉式解,可用最小二乘法求解,也可採用迭代法(如梯度下降)求解;非線性最小二乘沒有閉式解,只能採用迭代法求解。

關於模型 f 的線性和非線性,讀者可前往閱讀參考文獻[2]和[3],這裡我們只強調,有些所謂的非線性模型可以通過適當的變換將其化為標準的線性模型,但並非所有的非線性模型都可以線性化。

2、最小二乘法

前面做完了鋪墊,這一節我們進入主題,講一講最小二乘法。

考慮超定方程組(超定指未知數小於方程個數):

sum_{j=1}^{n}X_{ij}eta_j=y_i,i=1,2,3,dots,m

其中, m 代表樣本數, n 代表參數維度,將上式向量化得到:

Xeta=y

X=egin{bmatrix} X_{11}&X_{12}&cdots & X_{1n}      \ X_{21}&X_{22}&cdots & X_{2n}      \ vdots & vdots & &vdots \ X_{m1}&X_{m2}&cdots & X_{mn}  end{bmatrix},eta=egin{bmatrix} eta_1 \ eta_2 \ vdots \ eta_n end{bmatrix},y=egin{bmatrix} y_1 \ y_2 \ vdots \ y_m end{bmatrix}

為了求解 eta 的最佳估計值 hat eta ,可採用最小二乘法,問題轉化如下:

S(eta)=||Xeta-y||

hat eta = arg min(S(eta))

通過對 S(eta) 進行微分求最值,可得:

X^{T}Xeta=X^{T}y

如果矩陣 X^{T}X 非奇異,則 eta 有唯一解:

hat eta=(X^{T}X)^{-1}X^{T}y


參考文獻

[1] 最小二乘法和梯度下降法有哪些區別?

[2] 非線性最小二乘法_百度百科

[3] 非線性模型_百度百科

[4] 最小二乘法_百度百科

[5] https://zh.wikipedia.org/wiki/最小二乘法

以上為本文的全部參考文獻,對原作者表示感謝。


我的足跡

  • CSDN
  • GitHub

推薦閱讀:

相关文章