一文帶你瞭解機器學習基礎:梯度下降和最小二乘法
一文帶你瞭解機器學習基礎:梯度下降和最小二乘法
兩者的區別
最小二乘法跟梯度下降法都是通過求導來求損失函式的最小值,那它們有什麼區別呢。
相同
- 本質相同:兩種方法都是在給定已知資料(independent & dependent variables)的前提下對dependent variables算出出一個一般性的估值函式。然後對給定新資料的dependent variables進行估算。
-
目標相同:都是在已知資料的框架內,使得估算值與實際值的總平方差儘量更小(事實上未必一定要使用平方),估算值與實際值的總平方差的公式為:
image
其中\bar{x_{i} }為第i組資料的independent variable,y_{i}為第i組資料的dependent variable,\beta為係數向量。
不同
實現方法和結果不同:最小二乘法是直接對\Delta求導找出全域性最小,是非迭代法。而梯度下降法是一種迭代法,先給定一個\beta,然後向\Delta下降最快的方向調整\beta,在若干次迭代之後找到區域性最小。梯度下降法的缺點是到最小點的時候收斂速度變慢,並且對初始點的選擇極為敏感,其改進大多是在這兩方面下功夫。
問題
那麼問題來了,為什麼梯度下降應用的更多呢?理論上計算就能得出全域性最優,當然比區域性最優要好呀,而且是直接求出來,不需要迭代算。
參考答案:
對複雜的的模型而言,隨機初始化然後梯度下降一步步探索比直接數學求解全域性最優解有更好的可行性。 好比做積分,如果直接代數方法積出母函式那肯定棒啊,但是公式太複雜了,積分就做不出來了,所以要用蒙特卡洛之類的數值方法去逼近。線性模型最小二乘的解是closed-form(閉式解:帶引數的解),而非線性最小二乘沒有closed-form(閉式解),通常用迭代法求解。其中有很多比較有名的迭代法,如梯度下降法(又分為批梯度下降、隨機梯度下降)、牛頓法、擬牛頓法等,它們的應用條件更為廣泛(無約束),都是通過迭代更新來逐步進行的引數優化方法,最終結果為區域性最優。如果函式為凸函式的話
最小二乘法的侷限性

image
最小二乘法
最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找資料的最佳函式匹配。利用最小二乘法可以簡便地求得未知的資料,並使得這些求得的資料與實際資料之間誤差的平方和為最小。最小二乘法還可用於曲線擬合。其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。
通過這段描述可以看出來,最小二乘法也是一種優化方法,求得目標函式的最優值。並且也可以用於曲線擬合,來解決迴歸問題。難怪《統計學習方法》中提到,迴歸學習最常用的損失函式是平方損失函式,在此情況下,迴歸問題可以著名的最小二乘法來解決。(來源於 https://www.cnblogs.com/armysheng/p/3422923.html )
什麼是最小二乘法
我們以最簡單的一元線性模型來解釋最小二乘法。什麼是一元線性模型呢? 監督學習中,如果預測的變數是離散的(如分成1,2,3,4,5五類,我是帥哥和不是帥哥就是離散的,屬於分類問題),我們稱其為分類(如決策樹,支援向量機等),如果預測的變數是連續的,我們稱其為迴歸。迴歸分析中,如果只包括一個自變數和一個因變數,且二者的關係可用一條直線近似表示,這種迴歸分析稱為一元線性迴歸分析。如果迴歸分析中包括兩個或兩個以上的自變數,且因變數和自變數之間是線性關係,則稱為多元線性迴歸分析。對於二維空間線性是一條直線;對於三維空間線性是一個平面,對於多維空間線性是一個超平面...
對於一元線性迴歸模型, 假設從總體中獲取了n組觀察值(X1,Y1),(X2,Y2), …,(Xn,Yn)。對於平面中的這n個點,可以使用無數條曲線來擬合。要求樣本回歸函式儘可能好地擬合這組值。綜合起來看,這條直線處於樣本資料的中心位置最合理。 選擇最佳擬合曲線的標準可以確定為:使總的擬合誤差(即總殘差)達到最小。有以下三個標準可以選擇:
(1)用“殘差和最小”確定直線位置是一個途徑。但很快發現計算“殘差和”存在相互抵消的問題。 (2)用“殘差絕對值和最小”確定直線位置也是一個途徑。但絕對值的計算比較麻煩。 (3)最小二乘法的原則是以“殘差平方和最小”確定直線位置。用最小二乘法除了計算比較方便外,得到的估計量還具有優良特性。這種方法對異常值非常敏感。
最常用的是普通最小二乘法( Ordinary Least Square,OLS):所選擇的迴歸模型應該使所有觀察值的殘差平方和達到最小。(Q為殘差平方和)- 即採用平方損失函式。

image

image
關於最小二乘法結合參考,下面在矩陣證明上,沒有上面的連線詳細。由於涉及到線性代數矩陣內容。
https://www.cnblogs.com/pinard/p/5976811.html梯度下降
上面的連結文章可以帶你瞭解最基礎的梯度下降。非常詳細,容易理解。
下面這個連結,從巨集觀的基礎上了解梯度下降,畢竟我們不能只知道最簡單的。也要知道優化過後的,還有在實際情況證明用到這個。
https://blog.csdn.net/u013709270/article/details/78667531/
大神太多,本菜雞隻能整理他們的資料。畢竟重複造輪子就是在浪費資源。
下面又是一個大神寫的,我這個菜雞看的明明白白。不足的內容,上面有些連結也涉及到。畢竟每個人的側重點不一樣。
https://www.jianshu.com/p/c7e642877b0e
image