課程鏈接:
https://www.coursera.org/learn/machine-learning/home/week/1
今天學習1個重要概念,代價函數(Cost Function)。
之前學習了線性迴歸(Linear Regression)。在單變量的情況下,可以通過房屋的面積,預測房子的價格。把房屋面積看作x,房子價格看作y,建立函數關係即可。下圖表示了監督式學習中的一般性解決問題的流程:
Training set指的是一系列已知的房屋面積和房價的數據,通過Learning algorithm,建立合適的算法模型(model),就可以預測房價。這裏僅涉及了房屋面積這一因變量。
實際應用中,模型建立得好不好,主要看預測是否準確。準確度,是要用數學來衡量的。概率統計中學過方差(variance)。方差可用於評價2組平均值相等的數據的優劣,方差越小,表示數據的波動小,數據更好。
代價函數
機器學習中有類似於方差的概念,即代價函數(Cost Function)。代價函數形式,與方差表達式,極爲接近。
如果學習過方差,這個方程不難理解。這裏的hθ(xi)即爲構建的算法模型。
hθ(xi)=θ0 + θ1*xi;
如之前學習的房價例子,這裏的xi是某一組數據房屋面積,yi爲對應的房屋面積,而hθ(xi)是算法模型中的預測值。這裏的算法模型是線性的,因此θ0和θ1也就比較好理解。
有了代價函數J(θ0, θ1),不同的研究者對同一問題提出的算法模型就可以進行PK了,J越小,表示算法模型越精確。
下面來看,如何求J。爲了簡化問題,可以令θ0=0。
圖的右邊的版本即爲簡化後的代價函數。
先舉一個理想化的例子,即所有的預測值和實際值相等。
如果例子都這麼愉快,建模就毫無必要性啦。下面來看一個有偏差的例子。
該例中的4個數據,一個都不準(這種算法程序員是要被炒的),求得的J也就比較大。
如果有多組數據集,可以得到不同的J(θ1),可以PK一下,J最小的勝出。
圖中的J(θ1)有最小值,在θ1=1處是取得。