通過線性迴歸理解機器學習

想必大家在入門學習機器學習的時候,總是去找各大論壇的入門掃盲貼,一開始只帶著一個問題去看這篇帖子,看完之後突然有3個問題還沒想明白,再咬牙去看了三篇帖子,最終問題數變成了9個。“我是誰?我在哪?我在幹什麼?”

通過線性迴歸理解機器學習


“模型是什麼?機器學習算法和優化算法有什麼區別?什麼是損失函數?”

上述這些問題你有在自己心裡問過自己嗎?今天小編將通過線性迴歸來全方位解答上述的這些問題,從而真正理解機器學習是什麼以及它為什麼要這麼做。(文章中會涉及些許baby math,高能預警)

通過線性迴歸理解機器學習


首先我們來回顧一下線性迴歸的基本思路,假設我們在二維平面當中隨機分佈著一些樣本點,這些樣本點直接存在一些關係和規律,線性迴歸所做的事情就是使用一根直線來描述概括了這些關係和規律。如圖:

通過線性迴歸理解機器學習


左圖為我們已經有的樣本點,這些樣本點是一份房價數據,橫座標是房屋面積,縱座標是房價。而右圖比左圖多出來的那條直線就是通過線性迴歸產生的一條直線

,可以從肉眼中看到這條直線“差不多”描述了所有樣本橫縱座標的關係和規律,這條直線就是線性迴歸的意義所在。

不要小看了這條直線,這個問題是一個最簡單最基礎也是最典型的一個機器學習問題,其中這條直線稱為“機器學習模型”,得出這個模型的過程就稱為機器學習。

接下來咱慢慢來討論,這跟直線到底是如何確定的。為什麼描述這些樣本點規律的直線必須是這一根,而不是與他平行但向上平移0.0000000001的那一根?為什麼不是向右旋轉0.00000001度的那一根?就偏偏是圖中所畫的這一根,這一切都要從機器學習的過程說起。

通過線性迴歸理解機器學習


首先我們的目的需要得到一個可以通過房屋面積來預測房價的這麼一個模型,那麼我們首先要根據已有的數據,來“總結經驗”得出這個模型。“總結經驗”的過程主要分為兩步走:定義損失函數、最小化損失函數。

通過線性迴歸理解機器學習


怎樣來確定一個一條直線最能描述這些樣本點之間的關係,我們可以通過得到最小距離來確定,最小距離直線就是如果有一條直線,所有樣本點到它的距離之和最短,那麼我就認為這條直線最能夠描述這些樣本點的關係,直線使用函數表示為 y = wx + b。因為我們今天討論的是一元函數,通常多元函數的話,直線可以表示為:

通過線性迴歸理解機器學習


這個公式表示圖形中的那條直線,可以看出公式中唯一要求的值就是θ。現在直線方程已經寫好,怎樣去求出這條最小距離直線呢?我們可以列出損失函數,如下:

通過線性迴歸理解機器學習


其中hθ(x^(i))代表每個樣本通過我們模型的預測值,y^(i)代表每個樣本標籤的真實值。損失函數表明了預測的點到真實點之間的距離之和,如果我們將損失函數最小化就得到了最小距離直線。

我們將所有的樣本點,依次帶入公式1和2中,最終可以得到一個關於θ的二次方程。舉個栗子,我有三個樣本點(1,2),(2,3),(3,4),首先將第一個樣本點代入公式,x的值代入到公式1此時得到hθ(x) = θ,y的值代入到公式2此時得到(θ-2)^2,同理將第二個樣本點代入得到(2θ-3)^2。最終再將它們相加。所以我們會得到一個關於θ的二次函數,二次函數優化到最小,就是一個二次函數求極值的問題,只需要對θ求導令導數等於0即可求出最終θ的值,而將θ的確切值代入公式1中,就得到了最終的機器學習模型。優化求解方法如下公式:

通過線性迴歸理解機器學習


通過線性迴歸的講解總結一下:

1.機器學習模型就是通過已有樣本點,通過特定的機器學習算法來學習總結樣本中的“經驗”,得到一個可以歸納樣本關係的一個模型,使用該模型可以達到通過x值來預測y的效果,也就是線性迴歸中的那條直線。

2.機器學習算法與優化算法的區別:機器學習算法包含了整個機器學習過程,如線性迴歸中,公式 1、2、3都同屬於機器學習算法,而優化算法僅僅指的是優化最小化損失函數過程中使用的算法,線性迴歸中我們使用的是令導數等於零(最小二乘法),實際常用的優化算法還有:梯度下降算法、牛頓法等。

3.損失函數就是構建機器學習求解過程的函數,最小化損失函數是構建機器學習模型的依據,就如線性迴歸當中,為什麼我們得出的直線就單單是那一條?因為我們有充足的“理由”來說服自己,如果存在一條直線,所有的樣本點到它的距離之和最小,那麼我當然可以認為這條直線就是最能夠描述這些樣本點關係的直線。那麼將這個問題數學抽象化,就能夠寫出公式二這個損失函數,最終我們將這個損失函數優化到最小得出機器學習模型。



分享到:


相關文章: