機器學習 最小二乘

2021-09-13 00:10:19 字數 1971 閱讀 3210

大家可以隨意搜尋一下,相關的文章很多。長篇大論的不少,剛入門的朋友一看到那些公式可能就看不下去了。比如下面的解釋:

毫無疑問,這樣的解釋是專業的,嚴謹的。事實上,這是深度學習聖經裡的解釋。我並沒有詆毀大師的意思,只是覺得用乙個具體的例子來說明,可能會讓讀者更加容易理解。

小明是跑運輸的,跑1公里需要6塊,跑2公里需要5塊(那段時間剛好油價跌了),跑3公里需要7塊,跑4公里需要10塊,請問跑5公里需要多少塊?如果我們有初中數學基礎,應該會自然而然地想到用線性方程組來做:

這裡假定x是公里數,y是運輸成本(β1和β2是要求的係數)。我們把上面的一組資料代入得到這麼幾個方程:

如果存在這樣的β1和β2,讓所有的資料(x,y)=(1,6),(2,5),(3,7),(4,10)都能滿足的話,那麼解答就很簡單了,β1+5β2就是5公里的成本,對吧。

但遺憾的是,這樣的β1和β2是不存在的,上面的方程組很容易,你可以把前面兩個解出來得到一組β1和β2,後面兩個也解出來同樣得到一組β1和β2。這兩組β1和β2是不一樣的。

形象地說,就是你找不到一條直線,穿過所有的點,因為他們不在一條直線上。如下圖:

可是現實生活中,我們就希望能找到一條直線,雖然不能滿足所有條件,但能近似地表示這個趨勢,或者說,能近似地知道5公里的運輸成本,這也是有意義的。

其實最小二乘法也是這樣,要盡全力讓這條直線最接近這些點,那麼問題來了,怎麼才叫做最接近呢?直覺告訴我們,這條直線在所有資料點中間穿過,讓這些點到這條直線的誤差之和越小越好。這裡我們用方差來算更客觀。也就是說,把每個點到直線的誤差平方加起來:

如果上面的四個方程都能滿足,那麼s的值顯然為0,這是最完美的,但如果做不到完美,我們就讓這個s越小越好)

接下來的問題就是,如何讓這個s變得最小。這裡有乙個概念,就是求偏導數。這裡我想提一下,在培訓的過程中,我發現機器學習的數學基礎課程當中,微積分是大家印象最深刻的,而且也最容易理解:比如導數就是求變化率,而偏導數則是當變數超過乙個的時候,對其中乙個變數求變化率。如果這個概念也忘了,可以參考我在深度學習回答裡那個王小二賣豬的例子。這裡就不細講了:深度學習如何入門?

要讓s取得最小值(或最大值,但顯然這個函式沒有最大值,自己琢磨一下),那麼s對於β1和β2分別求偏導結果為0,用乙個直觀的圖來表示:

我們看到這條曲線,前半部分是呈下降的趨勢,也就是變化率(導數)為負的,後半部分呈上公升的趨勢,也就是變化率(導數)為正,那麼分界點的導數為0,也就是取得最小值的地方。這是乙個變數的情況,對於多個變數的情況,要讓s取得最小值,那最好是對β1和β2分別求導(對β1求導的時候,把β2當常量所以叫求偏導),值為0:

看到這個我們就熟悉了,兩個變數,剛好有兩個方程式,初中學過,那麼很容易得出:

其實也就意味著:

這個函式也就是我們要的直線,這條直線雖然不能把那些點串起來,但它能最大程度上接近這些點。也就是說5公里的時候,成本為3.5+1.4x5=10.5塊,雖然不完美,但是很接近實際情況。這就是最小二乘法。

最小二乘 加權最小二乘 matlab實現

最小二乘 最小二乘法 又稱最小平方法 是一種數學優化技術。它通過最小化誤差的平方和尋找資料的最佳函式匹配。利用最小二乘法可以簡便地求得未知的資料,並使得這些求得的資料與實際資料之間誤差的平方和為最小 最小二乘法還可用於曲線擬合,其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。加權最小...

最小二乘擬合 6 7 最小二乘擬合問題

資料擬合問題的一般形式 任給一組離散資料 注 這裡的擬合函式不一定為多項式函式 記殘量的平方和為 求使得殘量平方和最小得一組係數就是線性最小二乘問題,為最小二乘問題得基函式,求得的擬合函式為資料的最小二乘擬合。求解 利用偏導數為零得到極值點的原理可以得到最小二乘問題滿足的方程組,求解方程組中未知係數...

說說最小二乘

最小二乘是用於根據取樣結果計算 最佳引數 的常用方法。本文簡要描述最小二乘的原理和計算方法。假設我們有乙個系統,我們知道這個系統的響應函式f是某組自變數的線性方程。不失一般性,我們以三個自變數的系統為例,對於自變數x,y,z,系統輸出f滿足f f x,y,z ax by cz d,而a,b,c,d的...