損失函數
總損失定義為:
-
yi為第i個訓練樣本的真實值
-
h(xi)為第i個訓練樣本特征值組合預測函數
-
又稱最小二乘法
-
正規方程
理解:X為特征值矩陣,y為目標值矩陣。直接求到最好的結果
缺點:當特征過多過復雜時,求解速度太慢並且得不到結果
其中y是真實值矩陣,X是特征值矩陣,w是權重矩陣
對其求解關於w的最小值,起止y,X 均已知二次函數直接求導,導數為零的位置,即為最小值。
求導:
注:式(1)到式(2)推導過程中, X是一個m行n列的矩陣,並不能保證其有逆矩陣,但是右乘XT把其變成一個方陣,保證其有逆矩陣。
式(5)到式(6)推導過程中,和上類似。
梯度下降(Gradient Descent)
梯度下降法的基本思想可以類比為一個下山的過程。
假設這樣一個場景:一個人被困在山上,需要從山上下來(i.e. 找到山的最低點,也就是山谷)。但此時山上的濃霧很大,導致可視度很低。因此,下山的路徑就無法確定,他必須利用自己周圍的信息去找到下山的路徑。這個時候,他就可以利用梯度下降算法來幫助自己下山。具體來說就是,以他當前的所處的位置為基准,尋找這個位置最陡峭的地方,然后朝着山的高度下降的地方走,(同理,如果我們的目標是上山,也就是爬到山頂,那么此時應該是朝着最陡峭的方向往上走)。然后每走一段距離,都反復采用同一個方法,最后就能成功的抵達山谷。
梯度下降的基本過程就和下山的場景很類似。
首先,我們有一個可微分的函數。這個函數就代表着一座山。
我們的目標就是找到這個函數的最小值,也就是山底。
根據之前的場景假設,最快的下山的方式就是找到當前位置最陡峭的方向,然后沿着此方向向下走,對應到函數中,就是找到給定點的梯度 ,然后朝着梯度相反的方向,就能讓函數值下降的最快!因為梯度的方向就是函數之變化最快的方向。 所以,我們重復利用這個方法,反復求取梯度,最后就能到達局部的最小值,這就類似於我們下山的過程。而求取梯度就確定了最陡峭的方向,也就是場景中測量方向的手段。
有了梯度下降這樣一個優化算法,回歸就有了"自動學習"的能力
梯度下降和正規方程的對比
梯度下降 | 正規方程 |
---|---|
需要選擇學習率 | 不需要 |
需要迭代求解 | 一次運算得出 |
特征數量較大可以使用 | 需要計算方程,時間復雜度高O(n3) |