0
| 本文作者: Eric Jang | 2016-08-12 09:00 |
雷鋒網按:本文作者Eric Jang,Google Brain研究工程師,譯者為任杰驥及徐君。已獲將門創業(thejiangmen)授權發布。
在一個怡人的午后,我開始嘗試著用通俗易懂的語言向我媽媽解釋隨機性對于深度學習的重要性。盡管我媽媽還是對于深度學習一知半解,但是我認為我的努力部分成功了,我迷上了這種方式并將它應用在了我的實際工作中。
我想將這篇稍具技術性的小文章送給在深度學習領域的實踐者,希望大家能夠對神經網絡內部的運行過程有更好的理解。
如果你是一個剛剛入門的新手,那么你有可能會覺得一大堆技術被隨意一股腦地用在了訓練神經網絡上,例如dropout正則化、擴增梯度噪聲、異步隨機下降。那這些技術有什么相同的呢?答案是他們都利用了隨機性!

隨機性是深度神經網絡正常運行的關鍵:
隨機噪聲使得神經網絡在單輸入的情況下產生多輸出的結果;
隨機噪音限制了信息在網絡中的流向,促使網絡學習數據中有意義的主要信息;
隨機噪聲在梯度下降的時候提供了“探索能量”,使得網絡可以尋找到更好的優化結果。
讓我們假設你正在訓練一個深度神經網絡去實現分類。

對于圖中的每一個區域,網絡會學習將圖像映射到一系列的詞語標簽上,例如“狗”或者“人”。
這樣的分類表現很不錯,并且這樣的深度神經網絡不需要在推理模型中加入隨機性。畢竟任何一張狗的圖片應該被映射到“狗”這個詞語標簽上,這沒有任何的隨機性。
現在讓我們來假設你在訓練一個深度神經網絡下圍棋,在下圖這樣的情況下,深度神經網絡需要落下第一個棋子。如果我們還是使用確定不變的策略,那么將無法得出一個好的結果。你可能會問,為什么啊?因為在這樣的情況下最優的“第一步”選擇不是唯一的,對于棋盤上的每一個位置來說,他們都和對面位置具有旋轉對稱性,所以具有相同的機會成為較優的選擇。這是一個多元最優問題。如果神經網絡的策略是確定并且是單輸入單輸出的話,優化過程會迫使網絡選擇移向所有最佳答案的平均位置,而這個結果不偏不倚的落在了棋盤的中心,這恰恰在圍棋里被認為是一個糟糕的先手。

所以,隨機性對于一個想輸出多元最優估計的網絡十分重要,而不是一遍遍重復輸出相同的結果。當行動空間暗含對稱性的情況下,隨機性一個十分關鍵的因素,在隨機性的幫助下,我們可以打破夾雜中間不能自拔的對稱悖論。
同樣的,如果我們想訓練一個神經網絡去作曲或者畫畫,我們當然不希望它總是演奏相同的音樂,描繪單調重復的場景。我們期待得到變化的韻律,驚喜的聲音和創造性的表現。在結合隨機性的深度神經網絡中,一方面保持了網絡的確定性,但是另一方面將其輸出變成為概率分布的參數,使得我們可以利用卷積采樣方法畫出具有隨機輸出特性的樣例圖片。
DeepMind的阿法狗采用了這樣的原則:基于一個給定的圍棋盤圖片,輸出每一種走棋方式的獲勝的概率。這種網絡輸出的分布建模被廣泛應用與其他深度強化學習領域。
在剛剛接觸概率論與數理統計時,我十分糾結于理解隨機性的物理含義。拋一枚硬幣時,結果的隨機性來自哪里?隨機性是否僅僅是確定性混沌?是否可以做到絕對的隨機?
老實地說,我還是沒有完全弄明白這些問題。

信息論中將隨機性定義為信息的缺失。具體來說一個物體的信息便是在計算機程序里能確定描述它的最小字節數。例如π的前一百萬個字節可以被表示為字節長度為1,000,002個字符,但是同樣也可以被完整的用70個字符表示出來,如下用萊布尼茨公式所示:

上面的公式是π的一百萬個數據的壓縮表示。而更為精確的公式可以將π的前一百萬個數據表示為更少的比特。從這個角度去解釋的話,隨機性是不可以被壓縮的量。π的前一百萬個量可以被壓縮說明它們不是隨機的。經驗證據表明π是一個正規數(normal number),π中編碼的信息是無窮的。
我們現在考慮用數字a表示π的前萬億個位數,如a=3.141592656……如果我們在其中加上一個隨機數r屬于(-0.01,0.01),我們將會得到一個處于3.14059……和3.14259……之間的數。那么a+r里的有效信息只有三位數,因為加性隨機噪聲破壞了百位小數以后數位攜帶的信息。
這個隨機性的定義(指“隨機性是不可以被壓縮的量”,譯者注)與隨機性有什么聯系呢?
隨機性嵌入到深度神經網絡的另一種途徑是直接將噪聲嵌入到網絡本身,這與用深度神經網絡去模擬一個分布不同。這種途徑使得學習任務變得更加困難,因為網絡需要克服這些內在的“擾動”。
我們到底為什么想要在網絡中引入噪聲?一個基本的直覺是噪聲能夠限制數據通過網絡傳輸的信息容量。
我們可以參考自動編碼(auto-encoder)模型,這種神經網絡結構嘗試通過“壓縮”輸入數據、在隱含層得到更低維度的表示來得到有效的編碼,并且在輸出層重構原始數據。下面是一個示意圖:

在訓練過程中,輸入數據從左邊通過網絡的節點,在右邊出來,非常像一個管道。
假設我們有一個理論上存在的神經網絡,其可以在實數(而不是浮點數)上訓練。如果該網絡中沒有噪聲,那么深度神經網絡的每一層實際上都在處理無窮多的信息量。盡管自動編碼網絡可以把一個1000維的數據壓縮到1維,但是這個1維的數可以用實數去編碼任意一個無窮大維度的數,如3.14159265……
因此網絡不需要壓縮任何數據,也學不到任何有意義的特征。盡管計算機不會真的把數字以無窮維精度表示,但它傾向于給神經網絡提供遠遠超過我們原本希望的數據量。
通過限制網絡中的信息容量,我們可以迫使網絡從輸入特征里學到簡潔的表示。現在已經有幾種方法是這么做的:
變分自動編碼(VAE)——其在隱含層里加入高斯噪聲,這種噪聲會破壞“過剩信息”,迫使網絡學習到訓練數據的簡潔表示。
Dropout正則化與變分自動編碼的噪聲緊密相關(可能等價?)——其隨機將網絡中的部分單元置為0,使其不參與訓練。與變分自動編碼相似,dropout噪聲迫使網絡在有限的數據里學習到有用的信息。
隨機深度的深度網絡——思想與dropout類似,但不是在單元層面上隨機置0,而是隨機將訓練中的某些層刪除,使其不參與訓練。
有一篇非常有趣的文章是《二值化神經網絡》(Binarized Neural Networks)。作者在前向傳播中使用二進制的權重和激活,但在后向傳播中使用實值的梯度。這里網絡中的噪聲來自于梯度—— 一種帶噪聲的二值化梯度。二進制網絡(BinaryNets)不需要比常規的深度神經網絡更加強大,每個單元只能編碼一個比特的信息,這樣正則是為了防止兩個特征通過浮點編碼被壓縮在一個單元里。
更加有效的壓縮方案意味著測試階段的更好的泛化能力,這也解釋了為什么dropout對防止過擬合如此有效。如果你決定用常規的自動編碼而不是變分自動編碼,你必須用隨機正則化技巧,比如dropout,去控制壓縮后的特征的比特數,不然你的網絡將非常可能過擬合。
客觀地說,我覺得變分自動編碼網絡(VAEs)更有優勢,因為它們容易實現,并且允許你精確指定每層網絡有多少比特的信息通過。
訓練深度神經網絡通常是通過梯度下降的變體來完成,基本意味著網絡是通過降低在整個訓練數據集上的平均損失誤差來迭代參數。這就像從山上向山下走,當你走到山谷最底部的時候,你會找到神經網絡的最優參數。
這種方法的問題是,神經網絡的損失函數表面有很多個局部最小值和高原(因為網絡擬合的函數通常非凸,譯者注)。網絡的損失函數很容易陷入一個小坑里,或者陷入一個斜率幾乎為0的平坦區域(局部最小值),但你覺得此時還沒有得到滿意的結果。

隨機性到底如何幫助深度學習模型?我的第三點解釋是基于探索的想法。
因為用于訓練深度神經網絡的數據集通常都非常大,如果我們在每次梯度下降中對上千兆的數據通通計算梯度,這個計算量實在是太大了!事實上,我們可以使用隨機梯度下降算法(SGD)。在這個算法里,我們只需要從數據集中隨機挑選小部分數據,并且計算其平均梯度就可以了。
在進化中,如果物種的成功延續用隨機變量X模擬,那么隨機的突變或噪聲會增加X的方差,其子孫可能會遠遠變得更好(適應性,防毒能力)或者遠遠變得更差(致命弱點,無法生育)。
在數值優化中,這種“基因突變”被稱為“熱力學能量”或“溫度”,其允許參數的迭代軌跡并非總走“下山路”,而是偶爾地從局部最小值跳出來或者通過“穿山隧道”。
這些都與增強學習里的“探險——開采”平衡緊密相關。訓練一個純確定性的、沒有梯度噪聲的深度神經網絡,其“開采”能力為0、直接收斂到最近的局部最小點,而且網絡是淺層的。
使用隨機梯度(通過小批量樣本或在梯度本身加入噪聲)是一個允許優化方法去做一些“搜索”和從局部最小值“跳出”的有效途徑。異步隨機梯度下降算法是另一個可能的噪聲源,其允許多個機器并行地計算梯度下降。
這種“熱力學能量”保證可以破壞訓練的早期階段中的對稱性,從而保證每層網絡中的所有梯度不同步到相同的值。噪聲不僅破壞神經網絡在行為空間中的對稱性,而且破壞神經網絡在參數空間里的對稱性。
我發現有個現象非常有趣,即隨機噪聲事實上在幫助人工智能算法避免過擬合,幫助這些算法在優化或增強學習中找到解空間。這就提出了一個有趣的哲學問題:是否我們的神經編碼中的固有噪聲是一種特征,而不是瑕疵(bug)。
有一個理論機器學習問題讓我很有興趣:是否所有的神經網絡訓練技巧事實上是某些通用正則化定理的變形。也許壓縮領域的理論工作將會對理解這些問題真正有所幫助。
如果我們驗證不同神經網絡的信息容量與手工設計的特征表示相比較,并觀察這些比較如何關系到過擬合的趨勢和梯度的質量,這會是一件非常有趣的事情。度量一個帶有dropout或通過隨機梯度下降算法訓練的網絡的信息容量當然不是沒有價值的,而且我認為這是可以做到的。比如,構建一個合成矢量的數據集,這些矢量的信息容量(以比特,千字節等為單位)是完全已知的,我們可以通過結合類似于dropout的技巧,觀察不同結構的網絡如何在這個數據集上學到一個生成式模型。
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。