機器學習入門學習筆記:(2.1)線性迴歸理論推導

EulerAndGauss發表於2019-02-15

理論推導
  機器學習所針對的問題有兩種:一種是迴歸,一種是分類。迴歸是解決連續資料的預測問題,而分類是解決離散資料的預測問題。線性迴歸是一個典型的迴歸問題。其實我們在中學時期就接觸過,叫最小二乘法。

  線性迴歸試圖學得一個線性模型以儘可能準確地預測輸出結果。 
  先從簡單的模型看起: 
  首先,我們只考慮單組變數的情況,有: 
 使得  
  假設有m個資料,我們希望通過x預測的結果f(x)來估計y。其中w和b都是線性迴歸模型的引數。 
  為了能更好地預測出結果,我們希望自己預測的結果f(x)與y的差值儘可能地小,所以我們可以寫出代價函式(cost function)如下: 
 
  接著代入f(x)的公式可以得到: 
 
  不難看出,這裡的代價函式表示的是預測值f(x)與實際值y之間的誤差的平方。它對應了常用的歐幾里得距離簡稱“歐氏距離”。基於均方誤差最小化來求解模型的方法我們叫做“最小二乘法”。線上性迴歸中,最小二乘法實質上就是找到一條直線,使所有樣本資料到該直線的歐式距離之和最小,即誤差最小。 
  我們希望這個代價函式能有最小值,那麼就分別對其求w和b的偏導,使其等於0,求解方程。 
  先求偏導,得到下面兩個式子: 


 
  很明顯,公式中的引數m,b,w都與i無關,簡化時可以直接提出來。 
  另這兩個偏導等於0: 
  求解方程組,解得: 


 
  這樣根據資料集中給出的x和y,我們可以求出w和b來構建簡單的線性模型來預測結果。

  接下來,推廣到更一般的情況: 
  我們假設資料集中共有m個樣本,每個樣本有n個特徵,用X矩陣表示樣本和特徵,是一個m×n的矩陣: 


  用Y矩陣表示標籤,是一個m×1的矩陣: 


  為了構建線性模型,我們還需要假設一些引數: 
 
(有時還要加一個偏差(bias)也就是, 為了推導方便沒加,實際上結果是一樣的)

  好了,我們可以表示出線性模型了: 
 
  h(x)表示假設,即hypothesis。通過矩陣乘法,我們知道結果是一個n×1的矩陣。 
  跟前面推導單變數的線性迴歸模型時一樣,列出代價函式: 
 
  這裡的1/2並無太大意義,只是為了求導時能將引數正好消掉而加上。 
  代價函式代表了誤差,我們希望它儘可能地小,所以要對它求偏導並令偏導數為0,求解方程。 
  在求偏導之前先展開一下: 
 


  接下來對 求導,先給出幾個矩陣求導的公式: 


  對代價函式 求關於 的偏導,並令其等於0。

  求偏導。 


  套用前面給出的矩陣求導公式。 


  最後化簡得到: 


  好了,另這個偏導數等於0: 


  解得: 


OK,推導完畢。 
把知識點梳理一遍發現清楚了很多。寫公式真的很累,明天再把線性迴歸的程式碼補上。 
--------------------- 
作者:hongbin_xu 
來源:CSDN 
原文:https://blog.csdn.net/hongbin_xu/article/details/77102810 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

相關文章