1. 程式人生 > >Andrew Ng 機器學習筆記(二)

Andrew Ng 機器學習筆記(二)

監督學習的應用:梯度下降

梯度下降演算法思想:


先選取一個初始點,他可能是0向量,也可能是個隨機點。在這裡選擇圖中這個+點吧。

然後請想象一下:如果把這個三點陣圖當成一個小山公園,而你整站在這個+的位置,這時你想下山,並且要用最快的速度下山,於是你環視了一圈周圍的地形,找了個坡度最大的位置走了一步。隨後繼續環視一圈,再走你認為能最快下山的一步,以此類推,路線如下圖所示:

可以看到我們走到了最下面的一個點。然而我們換一個起始點會產生另一種路線:

這是梯度下降的一個性質,不同的輸入,梯度下降的路線有可能不同。

(然後老師講了一堆看不太懂的公式,大致思路明白就不細說了,反正是不會求~)

實際上我們現有的資料的模型不會像那個彩色小山圖那麼複雜,應該會像一個下凹的碗狀圖,從邊緣走到碗的地步一般也只需要迭代六七次就行了。

看一下房屋面積和房價的關係通過梯度下降是如何推導的:

經過幾次迭代後,通過訓練集找到了房價和房屋面積的一次函式關係。

但是,這種傳統的梯度下降演算法每執行一次的時候都會遍歷一次與那時資料集並求和(這樣做應該是梯度下降公式導致的),如果遇到100w這麼多的資料集,每次計算機都要遍歷一遍,時間複雜度可想而知。因此當訓練集太大的時候,我們需要更新我們的演算法,他叫隨機梯度下http://offlintab.firefoxchina.cn/private.html?cachebust=20150714降。

隨機梯度下降:

開始低度下降的時候只需要檢視第一個訓練樣本,並且利用第一個訓練樣本進行更新;之後使用第二個樣本,進行第二次更新,而不用遍歷整個資料庫。

對於大量資料而言,隨機梯度下降確實會大大降低時間複雜度,但是他不會精確的收斂到全域性最小值,有可能會在全域性最小值附近持續徘徊。用精度換時間的辦法。