最小二乘法 牛頓法和隨機梯度下降法

2021-08-21 06:26:06 字數 1839 閱讀 7351

首先最小二乘法是用來幹什麼的,他的目的是最小化誤差平方之和,從而找到最優訓練模型,這個模型可以用來更好的擬合訓練的樣本資料。

一、隨機梯度下降:

再放一張隨機梯度下降法的求解過程,以用來最後於牛頓法做一些對比:

二、牛頓法:

牛頓法的核心思想利用的是:泰勒展開

(其實泰勒展開式僅是另一種表達等式方式而已,沒必要深究,其實原理也很簡單不在贅述)

泰勒展開式:

1、guass-newton:一階泰勒展開求零點

在這裡主要看的是解x k+1與x k的關係表示;

2、最優化求解(最小二乘法:newton):二階泰勒展開求最優點

其實如上已經解釋的很詳細了,二階泰勒展開後對其求最優值(在模型當中最優值就是平方差和最小的值),如何求乙個函式的最優值那就是求導為0的點,也就是對上面min函式內部求導使其值為0即式6如上,最後同樣求出了x k+1與x k的關係;

最後並給出了利用牛頓法求解最優問題的迭代統一形式

3、了解了牛頓法之後,現在我們將其應用於模型當中的具體實踐中:

首先單個樣本損失函式表示如下、並對其求

一、二階導:

這裡注意一點,前面的求和式轉變成了後面的表示式是:矩陣乘法的轉換(矩陣!!)

然後我們這裡有了有了一階導數、二階導數,對比牛頓法我們可以寫出此時的引數1與引數0之間的關係如下:

在這裡的h就是二階導數的簡化表示,後面的j()就是對引數一階求導數的表示;注意這裡的引數及大寫的x與y都是表示的矩陣(所有樣本係數、未知數x及值yi共同組成的矩陣!其中二階導數矩陣h就是hessian矩陣)

到這裡牛頓法應用於求解模型最優解引數就算是介紹完了(注意:模型優化的過程就是一步步的更新引數,上面已經表示出了後乙個引數與前乙個引數的關係式)

其實看其兩式之間的差異已經非常明顯了,乙個是迴圈迭代(隨機梯度下降法)求最後值,乙個是一步出結果(牛頓法);是不是感覺有些不可思議,其實仔細一想、一看兩者的區別也沒有那麼明顯了;

為什麼牛頓法可以一步出結果,因為他一步就把所有的xi、yi及引數全部以矩陣的形式計算進去了!所有這麼來看兩者也沒有什麼區別可言了!

但是在真正執行的工程當中,矩陣乘是有其獨特優勢的,因為大部分框架都已經將矩陣乘計算進行了封裝優化(如python中numpy到pytorch中的variable等等),不論是看起來還是操作起來都是十分方便快捷的!

最小二乘法,牛頓法,梯度下降法以及比較

以下引用了一些網上的資源 1.最小二乘法 最小二乘法的目標 求誤差的最小平方和,對應有兩種 線性和非線性。線性最小二乘的解是closed form即 迭代法,即在每一步update未知量逐漸逼近解,可以用於各種各樣的問題 包括最小二乘 比如求的不是誤差的最小平方和而是最小立方和。1.1梯度下降是迭代...

最小二乘法和梯度下降法

通過這段描述可以看出來,最小二乘法也是一種優化方法,求得目標函式的最優值。並且也可以用於曲線擬合,來解決回歸問題。難怪 統計學習方法 中提到,回歸學習最常用的損失函式是平方損失函式,在此情況下,回歸問題可以著名的最小二乘法來解決。看來最小二乘法果然是機器學習領域做有名和有效的演算法之一。二.最小二乘...

最小二乘法 梯度下降演算法

普通最小二乘法 ordinary least square,ols 最小二乘的思想就是要使得觀測點和估計點的距離的平方和達到最小。設擬合曲線 y a x b 離散點在擬合曲線附近 且任一點 i 距擬合曲線的距離 誤差 為 ui yi y 最小二乘即可寫成 d ui 2 且是d取最小值 具有最小值。那...