監督學習的主要任務是預測目標變量的值,而且一般已經已知一些目標變量y。所以通常假設函數會根據訓練集(x,y)設爲:
基於已知的訓練集,我們應該如何確定θ的值。一般我們認爲h(x)與y值的越接近,θ的值越好。因此定義了代價函數:
所以θ的值可以通過最小化代價函數來確定。
1、LMS(Least Mean Square)算法
爲了讓J(θ)最小,我們可以選擇梯度下降函數,它的核心思想就是要找到某函數的最小值,最好的方法就是沿着該函數的梯度方向尋找。所以可以假設:
其中α爲學習速率。
針對單變量的學習情況,我們可以這樣計算:
所以單變量的解爲LMS算法:
2、梯度下降算法
針對多變量的時候,會採用梯度下降算法。假設訓練集的個數是m,則算法如下:
這個算法的缺點就是每一次都要計算整個訓練集的梯度。當訓練集的個數m非常大的時候,梯度下降算法通常吃不消。
3、隨機梯度下降算法
爲了克服梯度下降算法的缺點,我們選擇隨機抽取一個訓練集,然後計算梯度,更新θ的值,依次抽完整個訓練集。這樣每次只需計算當前訓練集的梯度。但是這樣的算法也可能不會讓J(θ)的值最小,只會在最小值附近波動。然而從實踐來看,效果通常不錯。所以如果訓練集特別大,隨機梯度下降算法比梯度下降算法好一些。