吳恩達機器學習筆記 —— 18 大規模機器學習

xingoo發表於2018-08-04

本章講了梯度下降的幾種方式:batch梯度下降、mini-batch梯度下降、隨機梯度下降。也講解了如何利用mapreduce或者多cpu的思想加速模型的訓練。

更多內容參考 機器學習&深度學習

有的時候資料量會影響演算法的結果,如果樣本資料量很大,使用梯度下降優化引數時,一次調整引數需要計算全量的樣本,非常耗時。
吳恩達機器學習筆記 —— 18 大規模機器學習
如果訓練集和驗證集的誤差像左邊的圖形這樣,就可以證明隨著資料量的增加,將會提高模型的準確度。而如果像右邊的圖,那麼增加樣本的數量就沒有什麼意義了。

因此可以考慮縮小m的使用量,可以使用隨機梯度下降。隨機梯度下降的過程是:隨機打散所有的樣本,然後從第一個樣本開始計算誤差值,優化引數;遍歷所有的樣本。這樣雖然優化的方向比較散亂,但是最終還是會趨於最優解。
吳恩達機器學習筆記 —— 18 大規模機器學習
還有一種方式叫做小批量梯度下降,每次使用一小部分的資料進行驗證。比批量梯度下降更快,但是比隨機梯度下降更穩定。
吳恩達機器學習筆記 —— 18 大規模機器學習

針對損失函式和batch的數量,可以畫出下面的圖:圖1的震盪曲線可以忽略,此時的震盪可能是由於區域性最小值造成的;圖2如果增加數量能使得曲線更平滑,那麼可以考慮增加batch的數量。圖3 可能是模型根本沒有在學習,可以考慮修改一下其他的引數。圖4可能是因為學習太高,可以使用更小的學習率。
吳恩達機器學習筆記 —— 18 大規模機器學習
線上學習就是隨著資料的獲取,增量的來當做每個batch進行訓練。

如果資料的樣本很大,其實也可以通過map reduce的方式來進行並行處理,比如把資料切分成很多塊,每個map執行完,統一在reduce端進行引數梯度下降學習。多CPU的情況下,也是同樣的道理。

吳恩達機器學習筆記 —— 18 大規模機器學習

相關文章