選單

機器愛學習02——代價函式

上一章,我們講解了機器學習的流程,即機器學習演算法(machine learning algorithm)從hypothesis set中挑選一個hypothesis function作為目標預測函式(target hypothesis function),來處理新的問題。Machine learning algorithm不能隨便的進行挑選,必須滿足一定的準則,那麼這個準則到底是什麼?

這個準則基本上包含兩方面

1:training set中的資料,在target hypothesis function上的表現是“完美”的

2:之後遇到新問題中的資料,在target hypothesis function上的表現是“完美”的

接下來,我們將講解機器學習演算法是如何實現這些準則的。

我們仍然以前面房價預測案例來進行說明。

機器愛學習02——代價函式

上圖中的直線,是我們選擇的target hypothesis function,但當時也沒說清楚,為什麼這條直線是“完美”的。“你不知道你想要什麼,但你肯定知道你不想要什麼”,既然我們不知道為什麼選這條直線,不妨先看看為什麼不選別的直線。

機器愛學習02——代價函式

上圖中,我們畫出了三條直線h1、h2、h3,對應三個hypothesis function。

如果讓大家從這三條直線中,選擇一條作為target hypothesis function,相信大家都會選擇h1,為什麼?因為其他兩條直線差太遠了

對,就是“差”太遠了。

在training set中,我們有一套房子47。45平,賣了70萬,我們來看下三個hypothesis function分別預測了多少:

* h1預測的是70萬,與實際值相等,just right

* h2預測了200萬,比實際70萬多了130萬,預測值比實際值“大太多”

* h3預測了10萬,比實際70萬少了60萬,預測值比實際值“小太多”

對於其他三個成交記錄,我們同樣發現:

* h1預測值與實際值“相差不大”

* h2預測值比實際值“大太多”

* h3預測值比實際值“小太多”

現在想想,我們為什麼沒有選擇h2、h3?

因為對於training set中的資料,h2、h3預測的值與實際值“差太多”。

我們透過畫座標系,可以很清楚的看出來,h2、h3不適合做target hypothesis function,那機器是怎麼知道的呢?

實際上,機器為了知道那條直線比較“完美”,會去做一個“減法”,即

* h1(47。45) - 70 = 0

* h2(47。45) - 70 = 130

* h3(47。45) - 70 = -60

減法的結果有正數,有負數,但其實我們不關心資料是正數還是負數,我們關心的是“差距”,因此,可以對減法的結果進行平方運算,即

* [ h1(47。45) - 70 ]2 = 0

* [ h2(47。45) - 70 ]2 = 16900

* [ h3(47。45) - 70 ]2 = 3600

考慮到,training set中有很多個數據,機器學習尋找target hypothesis function,不應該只關心某一個training data的表現,而是要保證,所有的training data都表現“完美”,因此機器學習需要找到一個平均值,即所有training data對應的“差距”的平均值。

上面描述了一大堆,其實就是為了引出這個平均值的概念,有了平均值的概念,機器學習演算法就可以透過數學的方式,來判斷哪條直線是“完美”的。

機器愛學習02——代價函式

上面的公式中,m表示training set中資料的個數,在房價預測案例中m=4,可以看到,J(θ)中多乘了1/2,這只是為了計算方便,對結果沒什麼影響。

機器學習就是透過上面的公式來進行判斷的,這個公式被稱為代價函式(cost function),現在我們再來解釋一下,機器學習演算法如何透過這個cost function找到“完美”的hypothesis的。

“完美”的hypothesis,即平均“差距”最小,即:

機器愛學習02——代價函式

在J(θ)==0時,我們可以求出一組θ,在房價預測案例中,也就是求出θ0、θ1,有了θ0、θ1,我們也就找到了這個“完美”的hypothesis,即target hypothesis function。

總結一下:

1:機器學習演算法透過cost function來判斷一個hypothesis function是否“完美”

2:機器學習透過計算J(θ)==0時的θ值,求得target hypothesis function

現在在思考一個問題,其實我們上面一直在考慮:如何保證hypothesis在training set中是“完美”的,即一直在考慮上面的準則1,那如何保證準則2的正確性?這個問題,我們暫時記下,後面章節再討論。當前只考慮如何滿足準則1。

好了,現在機器學習演算法可以愉快的去解方程了,這就需要用到一些機器學習演算法了,這些留在以後的章節進行講解。

本章最後,我們將房價預測案例中的cost function做一個展開,讓大家對cost function有一個更真實的認識:

我們的hypothesis為

機器愛學習02——代價函式

對應的training set為

機器愛學習02——代價函式

Cost function的展開過程如下:

機器愛學習02——代價函式

最近看到有面試題,會問到為什麼要選擇差的平方和作為cost function,上面的解答肯定是不夠的,後面會有專門的章節來講解原因