天天看點

機器學習線性回歸優化損失函數

目錄

  • ​​1 損失函數​​
  • ​​2 優化算法​​
  • ​​2.1 正規方程​​
  • ​​2.1.1 什麼是正規方程​​
  • ​​2.1.2 正規方程求解舉例​​
  • ​​2.1.3 正規方程的推導​​
  • ​​2.2 梯度下降​​
  • ​​2.2.1 什麼是梯度下降​​
  • ​​2.2.2 梯度的概念​​
  • ​​2.2.3 梯度下降舉例​​
  • ​​2.2.4 梯度下降公式​​
  • ​​3 梯度下降和正規方程的對比​​
  • ​​3.1 兩種方法對比​​
  • ​​3.2 算法選擇依據​​
  • ​​4 小結​​

1 損失函數

假設剛才的房子例子,真實的資料之間存在這樣的關系:

真實關系:
真實房子價格 = 0.02×中心區域的距離 + 0.04×城市一氧化氮濃度 + (-0.12×自住房平均房價) + 0.254×城鎮犯罪率      

那麼現在呢,我們随意指定一個關系(猜測)

随機指定關系:
預測房子價格 = 0.25×中心區域的距離 + 0.14×城市一氧化氮濃度 + 0.42×自住房平均房價 + 0.34×城鎮犯罪率      

請問這樣的話,會發生什麼?真實結果與我們預測的結果之間是不是存在一定的誤差呢?類似這樣樣子

機器學習線性回歸優化損失函數

既然存在這個誤差,那我們就将這個誤差給衡量出來

總損失定義為:

機器學習線性回歸優化損失函數
  • yi為第i個訓練樣本的真實值
  • h(xi)為第i個訓練樣本特征值組合預測函數
  • 又稱最小二乘法

如何去減少這個損失,使我們預測的更加準确些?既然存在了這個損失,我們一直說機器學習有自動學習的功能,線上性回歸這裡更是能夠展現。這裡可以通過一些優化方法去優化(其實是數學當中的求導功能)回歸的總損失!!!

2 優化算法

如何去求模型當中的W,使得損失最小?(目的是找到最小損失對應的W值)

  • 線性回歸經常使用的兩種優化算法
  • 正規方程
  • 梯度下降法

2.1 正規方程

2.1.1 什麼是正規方程

機器學習線性回歸優化損失函數

了解:X為特征值矩陣,y為目标值矩陣。直接求到最好的結果

缺點:當特征過多過複雜時,求解速度太慢并且得不到結果

機器學習線性回歸優化損失函數

2.1.2 正規方程求解舉例

以下表示資料為例:

機器學習線性回歸優化損失函數

即:

機器學習線性回歸優化損失函數

運用正規方程方法求解參數:

機器學習線性回歸優化損失函數

2.1.3 正規方程的推導

  • 推導方式:

把該損失函數轉換成矩陣寫法:

機器學習線性回歸優化損失函數

其中y是真實值矩陣,X是特征值矩陣,w是權重矩陣

把損失函數分開書寫:(Xw-y)2=(Xw-y)T(Xw-y)(X**w−y)2=(X**w−y)T(X**w−y)對展開上式進行求導:

機器學習線性回歸優化損失函數

需要求得求導函數的極小值,即上式求導結果為0,經過化解,得結果為:XTXw=XTyXTX**w=XTy經過化解為:w=(XTX){-1}X^Tyw=(XTX)−1XTy

補充:需要用到的矩陣求導公式:

\frac{dx^TA}{dx}=AdxdxT**A=A

\frac{dAx}{dx}=A^TdxdAx=A**T

機器學習線性回歸優化損失函數

2.2 梯度下降

2.2.1 什麼是梯度下降

梯度下降法(Gradient Descent)的基本思想可以類比為一個下山的過程。

假設這樣一個場景:

一個人被困在山上,需要從山上下來(i.e. 找到山的最低點,也就是山谷)。但此時山上的濃霧很大,導緻可視度很低。

是以,下山的路徑就無法确定,他必須利用自己周圍的資訊去找到下山的路徑。這個時候,他就可以利用梯度下降算法來幫助自己下山。

具體來說就是,以他目前的所處的位置為基準,尋找這個位置最陡峭的地方,然後朝着山的高度下降的地方走,(同理,如果我們的目标是上山,也就是爬到山頂,那麼此時應該是朝着最陡峭的方向往上走)。然後每走一段距離,都反複采用同一個方法,最後就能成功的抵達山谷。

機器學習線性回歸優化損失函數

梯度下降的基本過程就和下山的場景很類似。

首先,我們有一個可微分的函數。這個函數就代表着一座山。

我們的目标就是找到這個函數的最小值,也就是山底。

根據之前的場景假設,最快的下山的方式就是找到目前位置最陡峭的方向,然後沿着此方向向下走,對應到函數中,就是找到給定點的梯度 ,然後朝着梯度相反的方向,就能讓函數值下降的最快!因為梯度的方向就是函數值變化最快的方向。 是以,我們重複利用這個方法,反複求取梯度,最後就能到達局部的最小值,這就類似于我們下山的過程。而求取梯度就确定了最陡峭的方向,也就是場景中測量方向的手段。

2.2.2 梯度的概念

梯度是微積分中一個很重要的概念

  • 在單變量的函數中,梯度其實就是函數的微分,代表着函數在某個給定點的切線的斜率;
  • 在多變量函數中,梯度是一個向量,向量有方向,梯度的方向就指出了函數在給定點的上升最快的方向;
在微積分裡面,對多元函數的參數求∂偏導數,把求得的各個參數的偏導數以向量的形式寫出來,就是梯度。

這也就說明了為什麼我們需要千方百計的求取梯度!我們需要到達山底,就需要在每一步觀測到此時最陡峭的地方,梯度就恰巧告訴了我們這個方向。梯度的方向是函數在給定點上升最快的方向,那麼梯度的反方向就是函數在給定點下降最快的方向,這正是我們所需要的。是以我們隻要沿着梯度的反方向一直走,就能走到局部的最低點!

2.2.3 梯度下降舉例

  • 1. 單變量函數的梯度下降

我們假設有一個單變量的函數 :J(θ) = θ2

函數的微分:J、(θ) = 2θ

初始化,起點為: θ0 = 1

學習率:α = 0.4

我們開始進行梯度下降的疊代計算過程:

機器學習線性回歸優化損失函數

如圖,經過四次的運算,也就是走了四步,基本就抵達了函數的最低點,也就是山底

機器學習線性回歸優化損失函數
  • 2.多變量函數的梯度下降

我們假設有一個目标函數 ::J(θ) = θ12 + θ22

現在要通過梯度下降法計算這個函數的最小值。我們通過觀察就能發現最小值其實就是 (0,0)點。但是接下 來,我們會從梯度下降算法開始一步步計算到這個最小值! 我們假設初始的起點為: θ0 = (1, 3)

初始的學習率為:α = 0.1

函數的梯度為:▽:J(θ) =< 2θ1 ,2θ2>

進行多次疊代:

機器學習線性回歸優化損失函數

我們發現,已經基本靠近函數的最小值點

機器學習線性回歸優化損失函數

2.2.4 梯度下降公式

機器學習線性回歸優化損失函數
  • 1) α是什麼含義?

    α在梯度下降算法中被稱作為學習率或者步長,意味着我們可以通過α來控制每一步走的距離,以保證不要步子跨的太大扯着蛋,哈哈,其實就是不要走太快,錯過了最低點。同時也要保證不要走的太慢,導緻太陽下山了,還沒有走到山下。是以α的選擇在梯度下降法中往往是很重要的!α不能太大也不能太小,太小的話,可能導緻遲遲走不到最低點,太大的話,會導緻錯過最低點!

機器學習線性回歸優化損失函數
  • 2) 為什麼梯度要乘以一個負号?

梯度前加一個負号,就意味着朝着梯度相反的方向前進!我們在前文提到,梯度的方向實際就是函數在此點上升最快的方向!而我們需要朝着下降最快的方向走,自然就是負的梯度的方向,是以此處需要加上負号

我們通過兩個圖更好了解梯度下降的過程

機器學習線性回歸優化損失函數
機器學習線性回歸優化損失函數

是以有了梯度下降這樣一個優化算法,回歸就有了"自動學習"的能力

  • 優化動态圖示範
機器學習線性回歸優化損失函數

3 梯度下降和正規方程的對比

3.1 兩種方法對比

梯度下降 正規方程
需要選擇學習率 不需要
需要疊代求解 一次運算得出
特征數量較大可以使用 需要計算方程,時間複雜度高O(n3)
  • 首先,最小二乘法需要計算X

    T

    X的逆矩陣,

    有可能它的逆矩陣不存在

    ,這樣就沒有辦法直接用最小二乘法了。

  • 此時就需要使用梯度下降法。當然,我們可以通過對樣本資料進行整理,去掉備援特征。讓XTX的行列式不為0,然後繼續使用最小二乘法。
  • 第二,當樣本特征n非常的大的時候,計算X

    T

    X的逆矩陣是一個非常耗時的工作(n x n的矩陣求逆),甚至不可行。

  • 此時以梯度下降為代表的疊代法仍然可以使用。
  • 那這個n到底多大就不适合最小二乘法呢?如果你沒有很多的分布式大資料計算資源,建議超過10000個特征就用疊代法吧。或者通過主成分分析降低特征的次元後再用最小二乘法。
  • 第三,如果拟合函數不是線性的,這時無法使用最小二乘法,需要通過一些技巧轉化為線性才能使用,此時梯度下降仍然可以用。
  • 第四,以下特殊情況,。
  • 當樣本量m很少,小于特征數n的時候,這時拟合方程是欠定的,常用的優化方法都無法去拟合資料。
  • 當樣本量m等于特征數n的時候,用方程組求解就可以了。
  • 當m大于n時,拟合方程是超定的,也就是我們常用與最小二乘法的場景了。

3.2 算法選擇依據

  • 小規模資料:
  • 正規方程:LinearRegression(不能解決拟合問題)
  • 嶺回歸
  • 大規模資料:
  • 梯度下降法:SGDRegressor

4 小結

  • 損失函數
  • 最小二乘法
  • 線性回歸優化方法
  • 正規方程
  • 梯度下降法
  • 正規方程 – 一蹴而就
  • 利用矩陣的逆,轉置進行一步求解
  • 隻是适合樣本和特征比較少的情況
  • 梯度下降法 — 循序漸進
  • 梯度的概念
  • 單變量 – 切線
  • 多變量 – 向量
  • 梯度下降法中關注的兩個參數
  • α – 就是步長
  • 步長太小 – 下山太慢
  • 步長太大 – 容易跳過極小值點(*****)
  • 為什麼梯度要加一個負号
  • 梯度方向是上升最快方向,負号就是下降最快方向
  • 梯度下降法和正規方程選擇依據【知道】
  • 小規模資料:
  • 正規方程:LinearRegression(不能解決拟合問題)
  • 嶺回歸
  • 大規模資料:
  • 梯度下降法:SGDRegressor

繼續閱讀