近年來,我們見證了深度學習技術在很多應用中的巨大成功。學習深度神經網路面臨著很多挑戰,包括但不限於梯度消失、逐漸減少的特徵重用、鞍點(以及區域性極小值)、大量的需要調節的引數、訓練過程中內部協變數的變化、選擇好的正則化方法的困難、選擇超引數,等等。儘管出現了一些很有希望的進展,但都是被設計用來解決最佳化深度神經網路時遇到的具體問題的,這些方法中絕大多數都假設深度神經網路是以批次學習的設定來訓練的,這種設定需要所有的訓練資料集在學習任務開始前準備好。這對於現實中很多資料是以流的形式先後到達的任務而言是不可能的,而且也可能沒有足夠的記憶體空間來儲存。此外,資料還可能表現出概念漂移(concept drift,Gama et al. 2014)。所以,一個更加理想的選擇就是以線上的形式去學習模型。
與批次學習不一樣,線上學習(Zinkevich 2003; Cesa-Bianchi and Lugosi 2006)指的是這樣一類學習演算法:它們在順序到達的資料流例項中學習最佳化預測模型。這種動態學習使得線上學習更具有可擴充套件性和更高的記憶體效用。然而,現存的絕大多數線上學習演算法都被設計成使用線上凸最佳化來學習淺層模型(例如,線性方法或者核方法,Crammer et al. 2006; Kivinen, Smola, and Williamson 2004; Hoi et al. 2013),它們並不能學習到複雜應用場景中的非線性函式。
線上深度學習的主要困難是模型的容量、複雜度等設定很不靈活,即模型是靜態的,而資料流是動態的。本論文提出了一種適應性的網路框架,結合 HBP 演算法,使網路結構能隨著資料的流入而逐漸擴充套件、複雜化。這使得模型同時擁有線上學習和深度學習的優點,並在多種線上學習模型和資料集的對比實驗中都取得了當前最佳結果。
近年來,我們見證了深度學習技術在很多應用中的巨大成功。學習深度神經網路面臨著很多挑戰,包括但不限於梯度消失、逐漸減少的特徵重用、鞍點(以及區域性極小值)、大量的需要調節的引數、訓練過程中內部協變數的變化、選擇好的正則化方法的困難、選擇超引數,等等。儘管出現了一些很有希望的進展,但都是被設計用來解決最佳化深度神經網路時遇到的具體問題的,這些方法中絕大多數都假設深度神經網路是以批次學習的設定來訓練的,這種設定需要所有的訓練資料集在學習任務開始前準備好。這對於現實中很多資料是以流的形式先後到達的任務而言是不可能的,而且也可能沒有足夠的記憶體空間來儲存。此外,資料還可能表現出概念漂移(concept drift,Gama et al. 2014)。所以,一個更加理想的選擇就是以線上的形式去學習模型。
與批次學習不一樣,線上學習(Zinkevich 2003; Cesa-Bianchi and Lugosi 2006)指的是這樣一類學習演算法:它們在順序到達的資料流例項中學習最佳化預測模型。這種動態學習使得線上學習更具有可擴充套件性和更高的記憶體效用。然而,現存的絕大多數線上學習演算法都被設計成使用線上凸最佳化來學習淺層模型(例如,線性方法或者核方法,Crammer et al. 2006; Kivinen, Smola, and Williamson 2004; Hoi et al. 2013),它們並不能學習到複雜應用場景中的非線性函式。
在本文的工作中,我們嘗試透過解決一些「線上深度學習,ODL」中的開放性問題,例如如何從線上設定中的資料流中學習深度神經網路(DNN),希望以此彌補線上學習和深度學習之間的鴻溝。一種可能的線上深度學習的方式就是,在每一輪線上訓練中僅在一個單獨的資料樣本上直接應用標準的反向傳播訓練。這個方法雖然簡單,但是由於某些關鍵的原因,它會很快失效。一個關鍵挑戰是如何在開始線上深度學習之前選擇合適的模型容量(例如,網路的深度)。如果模型太複雜(例如,非常深的網路),那麼學習過程會收斂的很慢(梯度消失和逐漸減少的特徵重用),因此就會損失線上學習的優勢。另一個極端是,如果模型太簡單,那麼學習的能力又會特別侷限,並且,缺少深度的話很難學習複雜的模式。在關於批次學習的文獻中,通常用來解決這個問題的方式是在驗證資料中做模型選擇。不幸的是,在線上設定中設定驗證資料是不太現實的,所以在線上學習的場景中使用傳統的模型選擇方法是不太現實的。在本文的工作中,我們提出了一種新型的用於線上學習的框架,它能夠從順序到達的資料流中學習深度神經網路模型,更重要的是,隨著時間的推移,它能夠適應性地將模型容量從簡單擴充套件到複雜,很好地結合了線上學習和深度學習的優點。
我們的目標是設計一種線上學習演算法,它能夠以一個淺層網路開始,這時候具有快速收斂的優點;然後隨著更多的資料到達,逐漸地自動轉換成更深的模型(同時還能共享淺層網路學到的知識),以學習更加複雜的假設,透過深度神經網路容量的自適應特性有效地提升線上預測效能。為了達到這個目標,我們需要解決這些問題:什麼時候改變網路的容量?如何改變網路的容量?如何在線上學習中同時做到這兩點?我們在統一的框架中以一種資料驅動的方式,設計了一個優雅的解決方案來完成這一切。首先,我們修改已有的深度神經網路,即將每一個隱藏層與輸出分類器連在一起。然後,不使用標準的反向傳播演算法,我們提出了新的對沖反向傳播(Hedge Backpropagation)方法,它在每一輪的線上學習中都會評估每一個分類器的效能,並且能夠透過使用對沖演算法 (Freund and Schapire 1997) 中具有不同深度的分類器去擴充套件反向傳播演算法,以便線上地訓練深度神經網路。這允許我們訓練具有適應能力的深度神經網路,同時在淺層網路和深層網路之間共享知識。
圖 1:使用對沖反向傳播(HBP)的線上深度學習框架。藍色線代表計算隱藏層特徵時的前饋資訊流。橙色線表示經過對沖組合之後的 softmax 輸出(表示預測)。綠色線表示使用對沖反向傳播演算法時的更新資訊流。
演算法 1:使用對沖反向傳播的線上深度學習。
表 3:各種演算法的最終線上累積錯誤率,加粗的是最佳效能。
圖 2:線上設定的深度神經網路在穩定場景和概念漂移場景中的收斂表現。
圖 3:在 HIGGS 資料集上使用 HBP 演算法,分類器的權重分佈隨時間的變化。
論文:Online Deep Learning: Learning Deep Neural Networks on the Fly
論文連結:https://arxiv.org/abs/1711.03705
摘要:深度神經網路(DNN)通常是透過反向傳播演算法以批次化的學習設定來訓練的,它需要在學習任務之前就準備好所有的訓練資料。這在現實中的很多場景中是不可擴充套件的,因為現實中的新資料都是以資料流的形式先後到達的。我們的目標是解決在高速資料流中進行線上引數設定的「線上深度學習」的一些開放性問題。與經常在淺層神經網路中最最佳化一些凸性目標函式的傳統線上學習(例如,線性的/基於核的假設)不一樣的是,線上深度學習(ODL)更加具有挑戰性,因為深度神經網路中的目標函式的最佳化是非凸的,而且常規的反向傳播在實際過程中也不能很好地奏效,尤其是線上學習的設定中。在這篇論文中,我們提出了一種新的線上深度學習框架,透過線上學習設定中使用一連串的訓練資料,學習 DNN 模型的適應性深度,以解決這些挑戰。實際上,為了高效地更新 DNN 中的引數,我們提出了一個新型的對沖反向傳播(Hedge Backpropagation,HBP)方法,並在大規模的資料集上驗證了我們的方法,包括穩定的場景和概念漂移的場景。