5.6 批量梯度下降法
5.6.1 PCA降維的意義
在很多時候,我們需要綜合使用隨機梯度下降法和瀑布下降法的長處郁稍。這時往往數(shù)據(jù)量很大,一次計算所有的數(shù)據(jù)是非常耗費內(nèi)存的。而一個一個的隨機梯度下降的計算又耗費時間选泻。如果把耗費內(nèi)存的瀑布下降法看作是空間法,而把隨機梯度下降則看作是時間法,那么批量梯度下降法就可以看作是時空法页眯。這有點類似物理上的靜力學(xué)梯捕,運動學(xué)到相對論的感覺。所以批量梯度下降法就是機器學(xué)習中的相對論算法窝撵。
那么問題來了傀顾。我們有沒有可能耗費很小的計算資源,就能夠得到很精確的學(xué)習結(jié)果呢碌奉?
答案當然是有的短曾。從算法的本質(zhì)來看,如果處理的數(shù)據(jù)都非常類似赐劣,那么對于算法來說嫉拐,這些數(shù)據(jù)就沒有必要處理很多次。這相當于說如果兩條數(shù)據(jù)的相關(guān)性接近1魁兼,那么就把它們看作是一條數(shù)據(jù)婉徘。這個過程叫數(shù)據(jù)的降維。目前最好的數(shù)據(jù)降維的辦法是矩陣PCA算法咐汞。我們先不討論這個算法本身盖呼。只要記住它的核心功能就是讓數(shù)據(jù)集瘦下來。實際上這個算法對于瀑布下降法也是適用的化撕,但當我們選擇用瀑布下降法的時候塌计,實際上表明我們碰到的數(shù)據(jù)集完全可以用內(nèi)存來處理,這時候在學(xué)習之前用PCA的意義并不大侯谁。因為這種小型的數(shù)據(jù)集可以簡單粗暴對待锌仅。但是當數(shù)據(jù)量變得很大時,PCA的意義就十分突出了墙贱。它甚至可以在不丟失泛性的情況下热芹,將數(shù)據(jù)集瘦身好幾個數(shù)量級,這對于算法來說惨撇,就是快了好幾個數(shù)量級伊脓。這種情形下,就可以將算法的性能提升到極致魁衙。
上面講的PCA降維實際上還有更強的意義报腔。由于它只取一部分特征數(shù)據(jù)來進行計算,所以在這個數(shù)據(jù)集下進行的深度學(xué)習剖淀,將不會陷入到局部最優(yōu)解去纯蛾。這是非常非常重要的性質(zhì)。因為局部最優(yōu)解的存在本身就反映了數(shù)據(jù)集中有數(shù)據(jù)分布聚集的現(xiàn)象存在纵隔。這種聚集在一起的數(shù)據(jù)翻诉,相關(guān)性一般比較大炮姨。當我們用PCA降維后,這些相關(guān)性很大的數(shù)據(jù)集碰煌,就之有一個代表會被抽取出來钱烟。這樣就自動跳出了這個局部聚集的數(shù)據(jù)集验夯。因此也不會陷入局部最優(yōu)解营曼。
我們將在算法優(yōu)化的章節(jié)中帝牡,再來討論這個問題。
說個題外話个少。如果你有相對論的數(shù)學(xué)基礎(chǔ)洪乍,你會發(fā)現(xiàn)這里處理問題的方式和相對論很相似。只不過在相對論里討論的是洛倫茲不變性稍算。這也是為什么我將批量梯度下降法叫做時空法的原因典尾。
我們現(xiàn)在回到批量梯度下降法役拴。