【Andrew Ng 機器學習】Week 1(二):代價函式和梯度下降

木東居士的茶水間發表於2019-03-02

0x00 前言

本篇是第一週關於線性迴歸的代價函式和梯度下降演算法的筆記。

0x01 模型和代價函式

一、模型表示

  • x^i:輸入特徵
  • y^i:輸出結果,或者是想要預測的結果
  • (x^i , y^i):訓練樣本
  • h:代表學習演算法的解決方案或函式,也稱為假設(hypothesis)

下圖是一個監督學習工作方式。

title

要解決房價預測問題,我們實際上是要將訓練集“喂”給我們的學習演算法,進而學習得到一個假設h,然後將我們要預測的房屋的尺寸作為輸入變數輸入,預測出該房屋的交易價格作為y作為輸出為結果。

那麼線性迴歸的假設函式如下:

【Andrew Ng 機器學習】Week 1(二):代價函式和梯度下降

二、代價函式

代價函式(cost function)是用來衡量假設函式(hypothesis function )的準確度的。

直觀上理解,代價函式越小,說明我們預測的結果和真實值越接近,因此最小化代價函式,就相當於最優化我們的模型。

如下是代價函式的表示,這個函式也叫均方誤差函式,其中最前面的1/2m,是為了方便計算梯度下降。

【Andrew Ng 機器學習】Week 1(二):代價函式和梯度下降

以線性迴歸為例,我們訓練模型,就是選擇合適的引數值theta,使得h最小。如下圖是當theta1=0.5時,假設函式h和代價函式的關係:

【Andrew Ng 機器學習】Week 1(二):代價函式和梯度下降

當theta1=1,是模型效果最好的取值,此時所有的預測值和真實值都相同,即代價函式值最小。

【Andrew Ng 機器學習】Week 1(二):代價函式和梯度下降

如下,是不同theta1取值,代價函式的變化:

【Andrew Ng 機器學習】Week 1(二):代價函式和梯度下降

當我們從單個 theta1 變數變為兩個變數theta0和theta1時,代價函式J(theta0, theta1) 就變成下圖所示,三維空間中的最小值,即theta0 和theta1的最佳取值。

【Andrew Ng 機器學習】Week 1(二):代價函式和梯度下降

0x02 梯度下降(Gradient Descent)

一、基本概念

我們有了假設函式h(x),也有了刻畫模型訓練好壞的代價函式J(theta0, theta1) ,那麼該如何找到最優的引數使得J(theta0, theta1) 最小?梯度下降來了。

梯度下降是一個用來求函式最小值的演算法,我們將使用梯度下降演算法來求出代價函式J(theta0, theta1)的最小值。

梯度下降背後的思想是:開始時我們隨機選擇一個引數的組合,計算代價函式,然後我們尋找下一個能讓代價函式值下降最多的引數組合。持續這麼做直到到到一個區域性最小值(local minimum),因為我們並沒有嘗試完所有的引數組合,所以不能確定我們得到的區域性最小值是否便是全域性最小值(global minimum),選擇不同的初始引數組合,可能會找到不同的區域性最小值。

【Andrew Ng 機器學習】Week 1(二):代價函式和梯度下降

二、求解

梯度下降(gradient descent)演算法的公式為:

【Andrew Ng 機器學習】Week 1(二):代價函式和梯度下降

其中是學習率(learning rate),它決定了我們沿著能讓代價函式下降程度最大的方向向下邁出的步子有多大,在批量梯度下降中,我們每一次都同時讓所有的引數減去學習速率乘以代價函式的導數。

計算方式圖左側的方式,右側錯誤。更新的時候,需要對theta0和theta1同時更新。

【Andrew Ng 機器學習】Week 1(二):代價函式和梯度下降

三、學習速率

在梯度下降演算法中,有一個學習速率alpha,它的大小取值對演算法的影響如下:

如果alpha太小了,即我的學習速率太小,結果就是隻能這樣像小寶寶一樣一點點地挪動,去努力接近最低點,這樣就需要很多步才能到達最低點,所以如果太小的話,可能會很慢。

如果alpha太大,那麼梯度下降法可能會越過最低點,甚至可能無法收斂,下一次迭代又移動了一大步,越過一次,又越過一次,一次次越過最低點,直到你發現實際上離最低點越來越遠,所以,如果太大,它會導致無法收斂,甚至發散。

0xFF 總結

NG很貼心,專門補一下線代。

第一章的Cost Function和Gradient Descent主要以單變數線性迴歸為基礎講解的。後續每章都逐漸引入複雜的模型。


作者:木東居士 |簡書 | CSDN | GITHUB

個人主頁:http://www.mdjs.info
也可以關注我:木東居士。另外,歡迎加入QQ群一起學習交流:778381613

【Andrew Ng 機器學習】Week 1(二):代價函式和梯度下降

文章可以轉載, 但必須以超連結形式標明文章原始出處和作者資訊

相關文章