Yann LeCun開懟谷歌研究:目標傳播早就有了,你們創新在哪里?
?日前,學術圈圖靈獎得主Yann LeCun對谷歌的一項研究發起了質疑。
前段時間,谷歌 AI在其新研究《LocoProp: Enhancing BackProp via Local Loss Optimization》中提出了一種用于多層神經網絡的通用層級損失構造框架LocoProp,該框架在僅使用一階優化器的同時實現了接近二階方法的性能。
更具體來講,該框架將一個神經網絡重新構想為多層的模塊化組合,其中每個層都使用自己的權重正則化器、目標輸出和損失函數,最終同時實現了性能和效率。
谷歌在基準模型和數據集上實驗驗證了其方法的有效性,縮小了一階和二階優化器之間的差距。此外,谷歌研究者表示他們的局部損失構造方法是首次將平方損失用作局部損失。
圖源:@Google AI
對于谷歌的這項研究,一些人的評價是棒極了、有趣。不過,也有一些人表達出了不同的看法,其中包括圖靈獎得主Yann LeCun。
他認為,我們現在稱為目標傳播(target prop)的版本有很多,有些可以追溯至1986年。所以,谷歌的這個LocoProp與它們有什么區別呢?
圖源:@Yann LeCun
對于LeCun的這種疑問,即將成為UIUC助理教授的Haohan Wang表示贊同。他表示,有時真的驚訝為什么有些作者認為這么簡單的想法是歷史首創。或許他們做出了一些與眾不同的事情,但宣傳團隊卻迫不及待地出來聲稱一切……
圖源:@HaohanWang
不過,有人對 LeCun「不感冒」,認為他是出于競爭的考慮提出疑問,甚至「引戰」。LeCun 對此進行了回復,聲稱自已的疑問無關競爭,并舉例自己實驗室的前成員Marc'Aurelio Ranzato、Karol Gregor、koray kavukcuoglu等都曾使用過一些版本的目標傳播,如今他們都在谷歌DeepMind工作。
圖源:@Gabriel Jimenez@Yann LeCun
更有人調侃起了Yann LeCun,「當無法擊敗Jürgen Schmidhuber,就成為他吧。」
Yann LeCun到底說的對不對呢?我們先來看谷歌這項研究到底講了啥,有沒有突出創新呢?
谷歌LocoProp:用局部損失優化增強反向傳播
這項研究由來自谷歌的 Ehsan Amid 、 Rohan Anil、 Manfred K. Warmuth 三位研究者合作完成。
論文地址:https://proceedings.mlr.press/v151/amid22a/amid22a.pdf
本文認為,深度神經網絡(DNN)成功的關鍵因素有兩個:模型設計和訓練數據,但很少有研究者討論更新模型參數的優化方法。我們在訓練訓練DNN時涉及最小化損失函數,該函數用來預測真實值和模型預測值之間的差異,并用反向傳播進行參數更新。
最簡單的權值更新方法是隨機梯度下降,即在每一個step中,權值相對于梯度負方向移動。此外,還有高級的優化方法,如動量優化器、AdaGrad等。這些優化器通常被稱為一階方法,因為它們通常只使用一階導數的信息來修改更新方向。
還有更高級的優化方法如Shampoo 、K-FAC等已被證明可以提高收斂性,減少迭代次數,這些方法能夠捕獲梯度的變化。利用這些額外的信息,高階優化器可以通過考慮不同參數組之間的相關性來發現訓練模型更有效的更新方向。缺點是,計算高階更新方向比一階更新在計算上更昂貴。
谷歌在論文中引入了一個訓練DNN模型的框架:LocoProp,其將神經網絡構想為層的模塊化組合。一般來說,神經網絡的每一層對輸入進行線性變換,然后是非線性的激活函數。在該研究中,網絡每一層被分配了自己的權重正則化器、輸出目標和損失函數。每一層的損失函數被設計成與該層的激活函數相匹配。使用這種形式,訓練給定的小batch局部損失可以降到最低,在各層之間迭代并行地進行。
谷歌使用這種一階優化器進行參數更新,從而避免了高階優化器所需的計算成本。
研究表明 LocoProp 在深度自動編碼器基準測試中優于一階方法,并且在沒有高內存和計算要求的情況下與高階優化器(如 Shampoo 和 K-FAC)性能相當。
LocoProp:通過局部損失優化增強反向傳播
通常神經網絡被視為復合函數,其將每一層的輸入轉換為輸出表示。LocoProp 在將網絡分解為層時采用了這種觀點。特別是,LocoProp 不是更新層的權重以最小化輸出的損失函數,而是應用特定于每一層的預定義局部損失函數。對于給定的層,選擇損失函數以匹配激活函數,例如,將為具有 tanh 激活的層選擇 tanh 損失。此外,正則化項確保更新后的權重不會偏離當前值太遠。
與反向傳播類似,LocoProp應用前向傳遞來計算激活。在反向傳遞中,LocoProp為每一層的的神經元設置目標。最后,LocoProp將模型訓練分解為跨層的獨立問題,其中多個局部更新可以并行應用于每層的權值。
谷歌在深度自動編碼器模型中進行了實驗,這是評估優化算法性能的常用基準。他們對多個常用的一階優化器進行廣泛的優化,包括 SGD、具有動量的SGD 、AdaGrad、RMSProp、Adam,以及高階優化器,包括Shampoo 、K-FAC,并將結果與LocoProp比較。研究結果表明,LocoProp方法的性能明顯優于一階優化器,與高階優化器相當,同時在單個GPU上運行時速度明顯更快。