深度學習講稿(28)

5.6 批量梯度下降法

5.6.1 PCA降維的意義

在很多時候,我們需要綜合使用隨機梯度下降法和瀑布下降法的長處。這時往往數據量很大,一次計算所有的數據是非常耗費內存的。而一個一個的隨機梯度下降的計算又耗費時間。如果把耗費內存的瀑布下降法看作是空間法,而把隨機梯度下降則看作是時間法,那么批量梯度下降法就可以看作是時空法。這有點類似物理上的靜力學,運動學到相對論的感覺。所以批量梯度下降法就是機器學習中的相對論算法。

那么問題來了。我們有沒有可能耗費很小的計算資源,就能夠得到很精確的學習結果呢?

答案當然是有的。從算法的本質來看,如果處理的數據都非常類似,那么對于算法來說,這些數據就沒有必要處理很多次。這相當于說如果兩條數據的相關性接近1,那么就把它們看作是一條數據。這個過程叫數據的降維。目前最好的數據降維的辦法是矩陣PCA算法。我們先不討論這個算法本身。只要記住它的核心功能就是讓數據集瘦下來。實際上這個算法對于瀑布下降法也是適用的,但當我們選擇用瀑布下降法的時候,實際上表明我們碰到的數據集完全可以用內存來處理,這時候在學習之前用PCA的意義并不大。因為這種小型的數據集可以簡單粗暴對待。但是當數據量變得很大時,PCA的意義就十分突出了。它甚至可以在不丟失泛性的情況下,將數據集瘦身好幾個數量級,這對于算法來說,就是快了好幾個數量級。這種情形下,就可以將算法的性能提升到極致。

上面講的PCA降維實際上還有更強的意義。由于它只取一部分特征數據來進行計算,所以在這個數據集下進行的深度學習,將不會陷入到局部最優(yōu)解去。這是非常非常重要的性質。因為局部最優(yōu)解的存在本身就反映了數據集中有數據分布聚集的現象存在。這種聚集在一起的數據,相關性一般比較大。當我們用PCA降維后,這些相關性很大的數據集,就之有一個代表會被抽取出來。這樣就自動跳出了這個局部聚集的數據集。因此也不會陷入局部最優(yōu)解。

我們將在算法優(yōu)化的章節(jié)中,再來討論這個問題。

說個題外話。如果你有相對論的數學基礎,你會發(fā)現這里處理問題的方式和相對論很相似。只不過在相對論里討論的是洛倫茲不變性。這也是為什么我將批量梯度下降法叫做時空法的原因。

我們現在回到批量梯度下降法。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容