最小二乘法

8 人贊了文章

以下內容來自劉建平Pinard-博客園的學習筆記,總結如下:

最小二乘法是用來做函數擬合或者求函數極值的方法。在機器學習,尤其是回歸模型中,最常用的就是最小二乘回歸求解模型參數。

1 最小二乘的原理與要解決的問題

最小二乘法是由勒讓德在19世紀發現的,原理的一般形式很簡單,發現的過程是非常艱難的。形式如下式:

目標函數=sum_{}^{}{(觀測值-理論值)^{2}}

觀測值就是我們的多組樣本,理論值就是我們的假設擬合函數。

目標函數也就是在機器學習中常說的損失函數.

我們的目標是得到使目標函數最小化時候的擬合函數的模型。

比如有m個只有一個特徵的樣本:

2 最小二乘法的代數法求解

3 最小二乘法的矩陣法解法

矩陣法比代數法要簡潔,且矩陣運算可以取代循環,所以現在很多書和機器學習庫都是用的矩陣法來做最小二乘法。這裡用上面的多元線性回歸例子來描述矩陣法解法。

4 最小二乘法的局限性和適用場景

從上面可以看出,最小二乘法適用簡潔高效,比梯度下降這樣的迭代演算法似乎方便很多,下面討論最小二乘法的局限性。

首先,最小二乘法需要計算 X^{T}X 的逆矩陣,有可能它的逆矩陣不存在,這樣就沒有辦法直接用最小二乘法了,此時梯度下降法仍然可以使用。可以通過對樣本數據進行整理,去掉冗餘特徵,讓 X^{T}X 的行列式不為0,然後繼續使用最小二乘法。

第二,當樣本特徵 n 非常大的時候,計算 X^{T}X 的逆矩陣是一個非常耗時的工作,甚至不可行。此時以梯度下降為代表的迭代法仍然可以使用。那這個n到底多大就不適合最小二乘法呢?如果你沒有很多的分散式大數據計算資源,建議超過10000個特徵就用迭代法吧。或者通過主成分分析降低特徵的維度後再用最小二乘法。

第三,如果擬合函數不是線性的,這時無法使用最小二乘法,需要通過一些技巧轉化為線性才能使用,此時梯度下降仍然可以用。

第四,講一些特殊情況。當樣本量 m 很少,小於特徵數 n 的時候,這時擬合方程是欠定的,常用的優化方法都無法去擬合數據。當樣本量 m 等於特徵數 n 的時候,用方程組求解就可以了。當 m 大於 n 時,擬合方程是超定的,也就是我們常用與最小二乘法的場景了。


推薦閱讀:
相关文章