深度學習網絡大殺器之Dropout(II)——將丟棄學習視為集成學習之我見
更多深度文章,請關注雲計算頻道:https://yq.aliyun.com/cloud
關於dropout的分析,可以見博主的另外一篇文章:
《深度學習網絡大殺器之Dropout——深入解析Dropout》
1.引言
隨著2012年Hiton的文章《ImageNet classification with deep convolutional neural networks》[1]的問世,掀開了學術界深度學習快速發展的序幕;而阿法狗打敗世界頂級棋手李世石後,再次經過一年多的“深山老林修煉”,強化後完勝世界圍棋冠軍柯潔,讓人們感受到了人工智能的發展速度與工業化進程的到來。目前深度學習在很多領域的都吸引眾多研究者的注意,比如目標識別、語言識別、目標檢測、圖像分類等,深度學習在這些領域以自動提取特征的能力表現出優異的性能。
深度學習較傳統網絡而言,使用的是一個非常深層的神經網絡,並采用大數量的數據集。因此,在這個過程中會麵臨一個嚴峻的問題——過擬合。什麼是過擬合呢?打個比方,高考前各種刷題全部能做對但理解的不好,很多答案都是強行背下來的,但是一到考場,題目稍微變一點,整個人就懵了。這是因為對於機器而言,使用算法學習數據的特征時候,樣本數據的特征可以分為局部特征和全局特征,全局特征就是任何你想學習那個概念所對應的數據都具備的特征,而局部特征則是你用來訓練機器的樣本裏頭的數據專有的特征。機器在學習過程中是無法區別局部特征和全局特征的,於是機器在完成學習後,除了學習到了數據的全局特征,也可能學習得到一部分局部特征,而學習的局部特征比重越多,那麼新樣本中不具有這些局部特征但具有所有全局特征的樣本也越多,於是機器無法正確識別符合概念定義的“正確”樣本的幾率也會上升,也就是所謂的“泛化性”變差,這是過擬合會造成的最大問題。
那麼為了避免過擬合的出現,通用的做法是在算法中使用正則化,這也是Hinton在文獻[2]中提出的技巧“(dropout learning)”。“丟棄學習”包含兩個步驟:在學習階段,是以概率p忽略掉一些隱藏節點,這一操作減小了網絡的大小;而在測試階段,將學習的節點和那些沒有被學習的節點求和後並乘以丟棄概率p計算得到網絡的輸出。我們發現可以將學習到的節點與沒有學習的節點求和相乘概率p這一過程看作是集成學習。
集成學習(Ensemble Learning)是使用一係列學習器進行學習,並使用某種規則把各個學習結果進行整合從而獲得比單個學習器更好的學習效果的一種機器學習方法,相對於單個分類器作為決策者,集成學習的方法就相當於多個決策者共同進行一項決策。可以看到,這與分而治之地把問題分解成若幹個子問題,然後再想辦法從個別解綜合求得整體解是不同的。集成學習的處理過程是不是有點熟悉?是不是與丟棄學習類似?下麵將具體分析如何將丟棄學習看成是集成學習。
2.模型
從圖中可以看到,老師和學生都是一個具有N個輸入節點、多個隱藏節點及一個輸出節點組成的軟決策機。老師是由K個隱層節點組成,而學生是由K’個隱藏節點組成,每一個隱藏節點都是一個感知機,老師的第k個隱藏權重向量用 表示,學生的第k’個隱藏權重向量用
表示,其中m表示學習迭代次數。在軟決策機中,所有的隱藏節點到輸出節點的權重固定為+1,這種網絡計算得到的是隱藏層輸出的多數表決結果。另外假設老師和學生的輸入都是
、老師的輸出是
,學生的輸出是
。其中g(.)表示的是隱藏節點的輸出函數,
是老師模型中第k個隱藏節點通過
計算得到;同理,
是學生模型中第k’個隱藏節點通過
計算得到。
同時我們假設輸入向量中的第i個元素
是具有零均值和單位方差的獨立隨機變量,即輸入的第i個元素來自於概率分布
,並且由熱力學極限假設可知:
、
,其中<>表示求平均,||.||表示求向量的模;對於中間隱藏層而言,每一個元素Bki,k=1~K是來自於零均值和方差為1/N的概率分布。同樣地,由熱力學極限假設可知
,
,這也意味著任意兩個
,另外
服從零均值和單位方差的高斯分布。
基於以上分析,我們假設每個元素來自於零均值和方差為1/N的概率分布,統計學生的第k’個隱藏權重向量得到
、
,這意味著任意兩個
。學生網絡的隱藏節點輸出函數g(.)與老師網絡一樣,統計學生的第m次迭代的權重向量得到
,其中
,
服從零均值和方差為
的高斯分布。
接下來,引入隨機梯度下降算法(SGD),泛化誤差定義為下式:
其中η是學習步長大小,g’(x)是實際隱藏節點輸出函數g(x)的導數。
通過在線學習來訓練網絡,每次使用的是一個新輸入,因此不會發生過擬合現象。為了評估丟棄學習,預先選擇整個輸入經常是使用的在線方式。根據經驗,當輸入是N維時,如果預先選定10xN的輸入就會導致過擬合的現象。
3.丟棄學習和集成學習
其中是平均權重,
是學生數量。
圖2展示了計算機仿真的結果,老師和學生模型都包含兩個隱藏節點,輸出函數g(x)是誤差函數。從圖中可以看到,水平坐標軸是時間t=m/N,這裏m是迭代次數,N是輸入節點的維度,取N=10000,並且10xN輸入經常被使用;縱坐標是均方誤差(MSE),每個元素
都是零均值單位方差的獨立隨機變量。圖2中“single”是使用一個學生的實驗結果,“m2”是同時使用兩個學生的結果,同理可得,“m3”和“m4”分別是同時使用3個學生和4個學生的結果。正如圖2所示,同時使用4個學生的效果要優於其他兩種情況。
下麵我們將修改集成學習,將學生模型(K’個隱藏節點)劃分為Ken個網絡,如圖3所示(這裏K’=4,Ken=2),劃分後的網絡將單獨學習老師模型,並且通過將輸出平均得到整體輸出sen:
其中,是劃分後的網絡的輸出,
是第
個劃分網絡中的第l’個隱藏輸出;將等式3和等式4對比來看,當
和
,兩等式相等。
其中,表示隱藏節點的集合。在學習之後,學生們的輸出s(m)是通過將學習的隱藏節點輸出求和後並乘以丟棄概率p得到。
當丟棄概率p=0.5時,上式可以看成是一個學習網絡(第一項)與不學習網絡(第二項)的集成。當和
時,等式6對應於等式4。然而,
在每次迭代學習中是隨機挑選的,因此,丟棄學習可以看成是在每次迭代中不同隱藏節點集合的集成學習表現。
4.結果
在這一部分,我們將誤差函數用作輸出函數g(x),比較丟棄學習與集成學習。針對於集成學習,將隱藏節點設置為50;針對於丟棄學習,將隱藏節點設置為100,並設置丟棄概率p為0.5,即丟棄學習將選擇50個隱藏節點作為
及剩餘的50個節點不被選擇;輸入維度N=1000,學習率η=0.01。仿真結果如圖5所示,其中橫縱坐標跟圖4的含義相同,在圖5(a)中,“single”表示使用50個隱藏節點的軟決策機的結果,“ensemble”表示使用集成學習的結果;圖5(b)中,“test”表示測試數據的MSE,“learn”表示學習數據的MSE。
正如圖5(a)所示,集成學習實現的MSE要比單獨一個網絡的MSE更小,然而,丟棄學習實現的MSE比集成學習的MSE更小。因此,在每次迭代中,集成學習使用不同的隱藏節點集合比使用相同隱藏節點集合的性能更好。
其中,α是L2範數的係數,也稱為懲罰係數。
對比圖6和圖5(b)可以看到,丟棄學習與帶有L2範數的隨機梯度下降算法的結果幾乎相同。因此,丟棄學習的正則化效果與L2範數的相同。注意到,L2範數的隨機梯度下降算法中,我們在每次嚐試中必須選擇α參數,而丟棄學習不需要調節參數。
5.結論
[1]Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]// International Conference on Neural Information Processing Systems. Curran Associates Inc. 2012:1097-1105.
[2]Hinton G E, Srivastava N, Krizhevsky A, et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. Computer Science, 2012, 3(4):pages. 212-223.
Kazuyuki Hara,東京都理工大學教授,研究方向是機器學習與在線學習。
本文由北郵@愛可可-愛生活老師推薦,阿裏雲雲棲社區組織翻譯。
文章原標題《Analysis of dropout learning regarded as ensemble learning》,作者:Kazuyuki Hara,譯者:海棠,審閱:
文章為簡譯,更為詳細的內容,請查看原文
最後更新:2017-06-25 19:02:16
上一篇:
從入門型到企業型:雲服務器開放共享型到獨享型規格升級變配
下一篇:
退出VIM
'System.Data.DataRow.DataRow(System.Data.DataRowBuilder)' is inaccessible due to its protection leve
創新源於模仿之二:美化ListView的嚐試
微軟XP係統明日“退休” 中國用戶數超三億 其中有你麼?
由 Weex 談品牌經營心得
重新定位工作副本
【android】使用TabHost+Fragment(替換TabActivity,LocalActivityManager等deprecation類)
雲計算與大數據互利互進 加碼雲計算安全成破題關鍵
訪問被拒絕,必須是該遠程計算機的管理員才能使用此命令。請將您的用戶名添加到該遠程計算機的管理員本地組或者域管理員全局組中
android 自定義dialog,窗口動畫
MaxCompute 入門