丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預覽,將在時失效
專欄 正文
發(fā)私信給Eric Jang
發(fā)送

0

深度 | 為什么隨機性對于深度學習如此重要?

本文作者: Eric Jang 2016-08-12 09:00
導語:你可能會覺得一大堆技術(shù)被一股腦地用在了訓練神經(jīng)網(wǎng)絡(luò)上,例如dropout正則化、擴增梯度噪聲、異步隨機下降。那這些技術(shù)有什么相同的呢?答案是他們都利用了隨機性!

雷鋒網(wǎng)按:本文作者Eric Jang,Google Brain研究工程師,譯者為任杰驥及徐君。已獲將門創(chuàng)業(yè)(thejiangmen)授權(quán)發(fā)布。

在一個怡人的午后,我開始嘗試著用通俗易懂的語言向我媽媽解釋隨機性對于深度學習的重要性。盡管我媽媽還是對于深度學習一知半解,但是我認為我的努力部分成功了,我迷上了這種方式并將它應(yīng)用在了我的實際工作中。

我想將這篇稍具技術(shù)性的小文章送給在深度學習領(lǐng)域的實踐者,希望大家能夠?qū)ι窠?jīng)網(wǎng)絡(luò)內(nèi)部的運行過程有更好的理解。

如果你是一個剛剛?cè)腴T的新手,那么你有可能會覺得一大堆技術(shù)被隨意一股腦地用在了訓練神經(jīng)網(wǎng)絡(luò)上,例如dropout正則化、擴增梯度噪聲、異步隨機下降。那這些技術(shù)有什么相同的呢?答案是他們都利用了隨機性!

深度 | 為什么隨機性對于深度學習如此重要?

隨機性是深度神經(jīng)網(wǎng)絡(luò)正常運行的關(guān)鍵:

隨機噪聲使得神經(jīng)網(wǎng)絡(luò)在單輸入的情況下產(chǎn)生多輸出的結(jié)果;

隨機噪音限制了信息在網(wǎng)絡(luò)中的流向,促使網(wǎng)絡(luò)學習數(shù)據(jù)中有意義的主要信息;

隨機噪聲在梯度下降的時候提供了“探索能量”,使得網(wǎng)絡(luò)可以尋找到更好的優(yōu)化結(jié)果。

單輸入多輸出(單進多出)

讓我們假設(shè)你正在訓練一個深度神經(jīng)網(wǎng)絡(luò)去實現(xiàn)分類。

深度 | 為什么隨機性對于深度學習如此重要?

對于圖中的每一個區(qū)域,網(wǎng)絡(luò)會學習將圖像映射到一系列的詞語標簽上,例如“狗”或者“人”。

這樣的分類表現(xiàn)很不錯,并且這樣的深度神經(jīng)網(wǎng)絡(luò)不需要在推理模型中加入隨機性。畢竟任何一張狗的圖片應(yīng)該被映射到“狗”這個詞語標簽上,這沒有任何的隨機性。

現(xiàn)在讓我們來假設(shè)你在訓練一個深度神經(jīng)網(wǎng)絡(luò)下圍棋,在下圖這樣的情況下,深度神經(jīng)網(wǎng)絡(luò)需要落下第一個棋子。如果我們還是使用確定不變的策略,那么將無法得出一個好的結(jié)果。你可能會問,為什么啊?因為在這樣的情況下最優(yōu)的“第一步”選擇不是唯一的,對于棋盤上的每一個位置來說,他們都和對面位置具有旋轉(zhuǎn)對稱性,所以具有相同的機會成為較優(yōu)的選擇。這是一個多元最優(yōu)問題。如果神經(jīng)網(wǎng)絡(luò)的策略是確定并且是單輸入單輸出的話,優(yōu)化過程會迫使網(wǎng)絡(luò)選擇移向所有最佳答案的平均位置,而這個結(jié)果不偏不倚的落在了棋盤的中心,這恰恰在圍棋里被認為是一個糟糕的先手。

深度 | 為什么隨機性對于深度學習如此重要?

所以,隨機性對于一個想輸出多元最優(yōu)估計的網(wǎng)絡(luò)十分重要,而不是一遍遍重復輸出相同的結(jié)果。當行動空間暗含對稱性的情況下,隨機性一個十分關(guān)鍵的因素,在隨機性的幫助下,我們可以打破夾雜中間不能自拔的對稱悖論。

同樣的,如果我們想訓練一個神經(jīng)網(wǎng)絡(luò)去作曲或者畫畫,我們當然不希望它總是演奏相同的音樂,描繪單調(diào)重復的場景。我們期待得到變化的韻律,驚喜的聲音和創(chuàng)造性的表現(xiàn)。在結(jié)合隨機性的深度神經(jīng)網(wǎng)絡(luò)中,一方面保持了網(wǎng)絡(luò)的確定性,但是另一方面將其輸出變成為概率分布的參數(shù),使得我們可以利用卷積采樣方法畫出具有隨機輸出特性的樣例圖片。

DeepMind的阿法狗采用了這樣的原則:基于一個給定的圍棋盤圖片,輸出每一種走棋方式的獲勝的概率。這種網(wǎng)絡(luò)輸出的分布建模被廣泛應(yīng)用與其他深度強化學習領(lǐng)域

隨機性與信息論

在剛剛接觸概率論與數(shù)理統(tǒng)計時,我十分糾結(jié)于理解隨機性的物理含義。拋一枚硬幣時,結(jié)果的隨機性來自哪里?隨機性是否僅僅是確定性混沌?是否可以做到絕對的隨機?

老實地說,我還是沒有完全弄明白這些問題。

深度 | 為什么隨機性對于深度學習如此重要?

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

深度 | 為什么隨機性對于深度學習如此重要?

上面的公式是π的一百萬個數(shù)據(jù)的壓縮表示。而更為精確的公式可以將π的前一百萬個數(shù)據(jù)表示為更少的比特。從這個角度去解釋的話,隨機性是不可以被壓縮的量。π的前一百萬個量可以被壓縮說明它們不是隨機的。經(jīng)驗證據(jù)表明π是一個正規(guī)數(shù)(normal number),π中編碼的信息是無窮的。

我們現(xiàn)在考慮用數(shù)字a表示π的前萬億個位數(shù),如a=3.141592656……如果我們在其中加上一個隨機數(shù)r屬于(-0.01,0.01),我們將會得到一個處于3.14059……和3.14259……之間的數(shù)。那么a+r里的有效信息只有三位數(shù),因為加性隨機噪聲破壞了百位小數(shù)以后數(shù)位攜帶的信息。

迫使深度神經(jīng)網(wǎng)絡(luò)學到簡潔表示

這個隨機性的定義(指“隨機性是不可以被壓縮的量”,譯者注)與隨機性有什么聯(lián)系呢?

隨機性嵌入到深度神經(jīng)網(wǎng)絡(luò)的另一種途徑是直接將噪聲嵌入到網(wǎng)絡(luò)本身,這與用深度神經(jīng)網(wǎng)絡(luò)去模擬一個分布不同。這種途徑使得學習任務(wù)變得更加困難,因為網(wǎng)絡(luò)需要克服這些內(nèi)在的“擾動”。

我們到底為什么想要在網(wǎng)絡(luò)中引入噪聲?一個基本的直覺是噪聲能夠限制數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)男畔⑷萘俊?/span>

我們可以參考自動編碼(auto-encoder)模型,這種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)嘗試通過“壓縮”輸入數(shù)據(jù)、在隱含層得到更低維度的表示來得到有效的編碼,并且在輸出層重構(gòu)原始數(shù)據(jù)。下面是一個示意圖:

深度 | 為什么隨機性對于深度學習如此重要?

在訓練過程中,輸入數(shù)據(jù)從左邊通過網(wǎng)絡(luò)的節(jié)點,在右邊出來,非常像一個管道。

假設(shè)我們有一個理論上存在的神經(jīng)網(wǎng)絡(luò),其可以在實數(shù)(而不是浮點數(shù))上訓練。如果該網(wǎng)絡(luò)中沒有噪聲,那么深度神經(jīng)網(wǎng)絡(luò)的每一層實際上都在處理無窮多的信息量。盡管自動編碼網(wǎng)絡(luò)可以把一個1000維的數(shù)據(jù)壓縮到1維,但是這個1維的數(shù)可以用實數(shù)去編碼任意一個無窮大維度的數(shù),如3.14159265……

因此網(wǎng)絡(luò)不需要壓縮任何數(shù)據(jù),也學不到任何有意義的特征。盡管計算機不會真的把數(shù)字以無窮維精度表示,但它傾向于給神經(jīng)網(wǎng)絡(luò)提供遠遠超過我們原本希望的數(shù)據(jù)量。

通過限制網(wǎng)絡(luò)中的信息容量,我們可以迫使網(wǎng)絡(luò)從輸入特征里學到簡潔的表示。現(xiàn)在已經(jīng)有幾種方法是這么做的:

變分自動編碼(VAE)——其在隱含層里加入高斯噪聲,這種噪聲會破壞“過剩信息”,迫使網(wǎng)絡(luò)學習到訓練數(shù)據(jù)的簡潔表示。


Dropout正則化與變分自動編碼的噪聲緊密相關(guān)(可能等價?)——其隨機將網(wǎng)絡(luò)中的部分單元置為0,使其不參與訓練。與變分自動編碼相似,dropout噪聲迫使網(wǎng)絡(luò)在有限的數(shù)據(jù)里學習到有用的信息。


隨機深度的深度網(wǎng)絡(luò)——思想與dropout類似,但不是在單元層面上隨機置0,而是隨機將訓練中的某些層刪除,使其不參與訓練。


有一篇非常有趣的文章是《二值化神經(jīng)網(wǎng)絡(luò)》(Binarized Neural Networks)。作者在前向傳播中使用二進制的權(quán)重和激活,但在后向傳播中使用實值的梯度。這里網(wǎng)絡(luò)中的噪聲來自于梯度—— 一種帶噪聲的二值化梯度。二進制網(wǎng)絡(luò)(BinaryNets)不需要比常規(guī)的深度神經(jīng)網(wǎng)絡(luò)更加強大,每個單元只能編碼一個比特的信息,這樣正則是為了防止兩個特征通過浮點編碼被壓縮在一個單元里。

更加有效的壓縮方案意味著測試階段的更好的泛化能力,這也解釋了為什么dropout對防止過擬合如此有效。如果你決定用常規(guī)的自動編碼而不是變分自動編碼,你必須用隨機正則化技巧,比如dropout,去控制壓縮后的特征的比特數(shù),不然你的網(wǎng)絡(luò)將非??赡苓^擬合。

客觀地說,我覺得變分自動編碼網(wǎng)絡(luò)(VAEs)更有優(yōu)勢,因為它們?nèi)菀讓崿F(xiàn),并且允許你精確指定每層網(wǎng)絡(luò)有多少比特的信息通過。

在訓練中避免局部最小值

訓練深度神經(jīng)網(wǎng)絡(luò)通常是通過梯度下降的變體來完成,基本意味著網(wǎng)絡(luò)是通過降低在整個訓練數(shù)據(jù)集上的平均損失誤差來迭代參數(shù)。這就像從山上向山下走,當你走到山谷最底部的時候,你會找到神經(jīng)網(wǎng)絡(luò)的最優(yōu)參數(shù)。

這種方法的問題是,神經(jīng)網(wǎng)絡(luò)的損失函數(shù)表面有很多個局部最小值和高原(因為網(wǎng)絡(luò)擬合的函數(shù)通常非凸,譯者注)。網(wǎng)絡(luò)的損失函數(shù)很容易陷入一個小坑里,或者陷入一個斜率幾乎為0的平坦區(qū)域(局部最小值),但你覺得此時還沒有得到滿意的結(jié)果。

深度 | 為什么隨機性對于深度學習如此重要?

隨機性到底如何幫助深度學習模型?我的第三點解釋是基于探索的想法。

因為用于訓練深度神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)集通常都非常大,如果我們在每次梯度下降中對上千兆的數(shù)據(jù)通通計算梯度,這個計算量實在是太大了!事實上,我們可以使用隨機梯度下降算法(SGD)。在這個算法里,我們只需要從數(shù)據(jù)集中隨機挑選小部分數(shù)據(jù),并且計算其平均梯度就可以了。

在進化中,如果物種的成功延續(xù)用隨機變量X模擬,那么隨機的突變或噪聲會增加X的方差,其子孫可能會遠遠變得更好(適應(yīng)性,防毒能力)或者遠遠變得更差(致命弱點,無法生育)。

在數(shù)值優(yōu)化中,這種“基因突變”被稱為“熱力學能量”或“溫度”,其允許參數(shù)的迭代軌跡并非總走“下山路”,而是偶爾地從局部最小值跳出來或者通過“穿山隧道”。

這些都與增強學習里的“探險——開采”平衡緊密相關(guān)。訓練一個純確定性的、沒有梯度噪聲的深度神經(jīng)網(wǎng)絡(luò),其“開采”能力為0、直接收斂到最近的局部最小點,而且網(wǎng)絡(luò)是淺層的。

使用隨機梯度(通過小批量樣本或在梯度本身加入噪聲)是一個允許優(yōu)化方法去做一些“搜索”和從局部最小值“跳出”的有效途徑。異步隨機梯度下降算法是另一個可能的噪聲源,其允許多個機器并行地計算梯度下降。

這種“熱力學能量”保證可以破壞訓練的早期階段中的對稱性,從而保證每層網(wǎng)絡(luò)中的所有梯度不同步到相同的值。噪聲不僅破壞神經(jīng)網(wǎng)絡(luò)在行為空間中的對稱性,而且破壞神經(jīng)網(wǎng)絡(luò)在參數(shù)空間里的對稱性。

最后的思考

我發(fā)現(xiàn)有個現(xiàn)象非常有趣,即隨機噪聲事實上在幫助人工智能算法避免過擬合,幫助這些算法在優(yōu)化或增強學習中找到解空間。這就提出了一個有趣的哲學問題:是否我們的神經(jīng)編碼中的固有噪聲是一種特征,而不是瑕疵(bug)。

有一個理論機器學習問題讓我很有興趣:是否所有的神經(jīng)網(wǎng)絡(luò)訓練技巧事實上是某些通用正則化定理的變形。也許壓縮領(lǐng)域的理論工作將會對理解這些問題真正有所幫助。

如果我們驗證不同神經(jīng)網(wǎng)絡(luò)的信息容量與手工設(shè)計的特征表示相比較,并觀察這些比較如何關(guān)系到過擬合的趨勢和梯度的質(zhì)量,這會是一件非常有趣的事情。度量一個帶有dropout或通過隨機梯度下降算法訓練的網(wǎng)絡(luò)的信息容量當然不是沒有價值的,而且我認為這是可以做到的。比如,構(gòu)建一個合成矢量的數(shù)據(jù)集,這些矢量的信息容量(以比特,千字節(jié)等為單位)是完全已知的,我們可以通過結(jié)合類似于dropout的技巧,觀察不同結(jié)構(gòu)的網(wǎng)絡(luò)如何在這個數(shù)據(jù)集上學到一個生成式模型。

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

深度 | 為什么隨機性對于深度學習如此重要?

分享:
相關(guān)文章

專欄作者

Google Brain研究工程師
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說