coursera-斯坦福-機器學習-吳恩達-是否要大規模機器學習

十七、大規模機器學習(Large Scale Machine Learning)

17.1 大型數據集的學習

參考視頻: 17 - 1 - Learning With Large Datasets (6 min).mkv

如果我們有一個低方差的模型,增加數據集的規模可以幫助你獲得更好的結果。我們應該怎樣應對一個有100萬條記錄的訓練集?

以線性迴歸模型爲例,每一次梯度下降迭代,我們都需要計算訓練集的誤差的平方和,如果我們的學習算法需要有20次迭代,這便已經是非常大的計算代價。

首先應該做的事是去檢查一個這麼大規模的訓練集是否真的必要,也許我們只用1000個訓練集也能獲得較好的效果,我們可以繪製學習曲線來幫助判斷。

                       

17.2 隨機梯度下降法

參考視頻: 17 - 2 - Stochastic Gradient Descent (13 min).mkv

如果我們一定需要一個大規模的訓練集,我們可以嘗試使用隨機梯度下降法來代替批量梯度下降法。

在隨機梯度下降法中,我們定義代價函數爲一個單一訓練實例的代價:

                                                          ​

隨機梯度下降算法爲:首先對訓練集隨機“洗牌”,然後:

                                            

隨機梯度下降算法在每一次計算之後便更新參數 ,而不需要首先將所有的訓練集求和,在梯度下降算法還沒有完成一次迭代時,隨機梯度下降算法便已經走出了很遠。但是這樣的算法存在的問題是,不是每一步都是朝着”正確”的方向邁出的。因此算法雖然會逐漸走向全局最小值的位置,但是可能無法站到那個最小值的那一點,而是在最小值點附近徘徊。

                                                             

17.3 小批量梯度下降

參考視頻: 17 - 3 - Mini-Batch Gradient Descent (6 min).mkv

小批量梯度下降算法是介於批量梯度下降算法和隨機梯度下降算法之間的算法,每計算常數b次訓練實例,便更新一次參數 。 

 

                               

通常我們會令 b在 2-100 之間。這樣做的好處在於,我們可以用向量化的方式來循環 b個訓練實例,如果我們用的線性代數函數庫比較好,能夠支持平行處理,那麼算法的總體表現將不受影響(與隨機梯度下降相同)。

17.4 隨機梯度下降收斂

參考視頻: 17 - 4 - Stochastic Gradient Descent Convergence (12 min). mkv

現在我們介紹隨機梯度下降算法的調試,以及學習率 α 的選取。

在批量梯度下降中,我們可以令代價函數J爲迭代次數的函數,繪製圖表,根據圖表來判斷梯度下降是否收斂。但是,在大規模的訓練集的情況下,這是不現實的,因爲計算代價太大了。

在隨機梯度下降中,我們在每一次更新 之前都計算一次代價,然後每x次迭代後,求出這x次對訓練實例計算代價的平均值,然後繪製這些平均值與x次迭代的次數之間的函數圖表。

                                 

當我們繪製這樣的圖表時,可能會得到一個顛簸不平但是不會明顯減少的函數圖像(如上面左下圖中藍線所示)。我們可以增加α來使得函數更加平緩,也許便能看出下降的趨勢了(如上面左下圖中紅線所示);或者可能函數圖表仍然是顛簸不平且不下降的(如洋紅色線所示),那麼我們的模型本身可能存在一些錯誤。

如果我們得到的曲線如上面右下方所示,不斷地上升,那麼我們可能會需要選擇一個較小的學習率$α$。

我們也可以令學習率隨着迭代次數的增加而減小,例如令:

                                                   ​

隨着我們不斷地靠近全局最小值,通過減小學習率,我們迫使算法收斂而非在最小值附近徘徊。 但是通常我們不需要這樣做便能有非常好的效果了,對α進行調整所耗費的計算通常不值得

                                                       

總結下,這段視頻中,我們介紹了一種方法,近似地監測出隨機梯度下降算法在最優化代價函數中的表現,這種方法不需要定時地掃描整個訓練集,來算出整個樣本集的代價函數,而是只需要每次對最後1000個,或者多少個樣本,求一下平均值。應用這種方法,你既可以保證隨機梯度下降法正在正常運轉和收斂,也可以用它來調整學習速率α的大小。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章