Nature重磅:Hinton、LeCun、Bengio三巨頭權威科普深度學習

2015-7-16 22:55| 發佈者: 煉數成金_小數來自: 機器之心html

 
摘要: 藉助深度學習,多處理層組成的計算模型可經過多層抽象來學習數據表徵。這些方法顯著推進了語音識別、視覺識別、目標檢測以及許多其餘領域的技術發展。機器學習爲現代生活諸多方面帶來巨大動力:從網頁搜索到社交網絡 ...
 
 
藉助深度學習,多處理層組成的計算模型可經過多層抽象來學習數據表徵( representations)。這些方法顯著推進了語音識別、視覺識別、目標檢測以及許多其餘領域(好比,藥物發現以及基因組學)的技術發展。利用反向傳播算法(backpropagation algorithm)來顯示機器將會如何根據前一層的表徵改變用以計算每層表徵的內部參數,深度學習發現了大數據集的複雜結構。深層卷積網絡(deep convolutional nets)爲圖像、視頻和音頻等數據處理上帶來突破性進展,而遞歸網絡(recurrent nets )也給序列數據(諸如文本、語言)的處理帶來曙光。
 
機器學習爲現代生活諸多方面帶來巨大動力:從網頁搜索到社交網絡內容過濾再到電商網商推薦,在相機、智能手機等消費品中也愈來愈多見。機器學習系統被用來識別圖像中的物體、將語音轉爲文本,根據用戶興趣自動匹配新聞、消息或產品,挑選相關搜索結果。這類被應用程序愈來愈多地採用的技術,叫作深度學習。
 
傳統機器學習技術在處理原始輸入的天然數據方面能力有限。幾十年來,建構模式識別或機器學習系統須要利用嚴謹的工程學和至關豐富的專業知識設計出一個特徵提取器,它能將原始數據(例如圖像像素值)轉化成適於內部描述或表徵的向量( vector ),在提取器中,學習子系統(一般是一個分類器)能夠檢測或分類輸入模式。
 
表徵學習(representation learning)是這樣一套學習方法:輸入原始數據後,機器可以自動發現檢測或分類所需的表徵信息。深度學習是一種多層描述的表徵學習,經過組合簡單、非線性模塊來實現,每一個模塊都會將最簡單的描述(從原始輸入開始)轉變成較高層、較爲抽象的描述。經過積累足夠多的上述表徵轉化,機器能學習很是複雜的函數。就分類任務來講,更高層的表徵會放大輸入信號的特徵,而這對區分和控制不相關變量很是關鍵。好比,圖片最初以像素值的方式出現,第一特徵層級中,機器習得的特徵主要是圖像中特定方位、位置邊沿之有無。第二特徵層級中,主要是經過發現特定安排的邊緣來檢測圖案,此時機器並不考慮邊沿位置的微小變化。第三層中會將局部圖像與物體相應部分匹配,後續的層級將會經過把這些局部組合起來從而識別出整個物體。深度學習的關鍵之處在於:這些特徵層級並不是出自人類工程師之手;而是機器經過一個通用(general-purpose)學習程序,從大量數據中自學得出。
 
某些根深蒂固的問題困擾了人工智能從業者許多年,以致於人們最出色的嘗試都無功而返。而深度學習的出現,讓這些問題的解決邁出了相當重要的步伐。深度學習善於在高維度的數據中摸索出錯綜複雜的結構,所以能應用在許多不一樣的領域,好比科學、商業和政府。此外,除了圖像識別和語音識別,它還在許多方面擊敗了其餘機器學習技術,好比預測潛在藥物分子的活性、分析粒子加速器的數據、重構大腦回路、預測非編碼DNA的突變對基因表達和疾病有何影響等。也許,最讓人驚訝的是,在天然語言理解方面,特別是話題分類、情感分析、問答系統和語言翻譯等不一樣的任務上,深度學習都展示出了無限光明的前景。
 
在不久的未來,咱們認爲深度學習將取得更多成就,由於它只須要極少的人工參與,因此它能垂手可得地從計算能力提高和數據量增加中得到裨益。目前正在開發的用於深層神經網絡的新型學習算法和體系結構必將加速這一進程。
 
監督式學習
無論深度與否,機器學習最廣泛的形式都是監督式學習(supervised learning)。好比說,咱們想構造一個系統,它能根據特定元素對圖片進行分類,例如包含一棟房子、一輛車、一我的或一隻寵物。首先,咱們要收集大量包含有房子、車、人或寵物的圖片,組成一個數據集(data set),每張圖片都標記有它的類別。在訓練時,每當咱們向機器展現一張圖片,機器就會輸出一個相應類別的向量。咱們但願的結果是:指定類別的分數最高,高於其餘全部類別。然而,若是不通過訓練,這將是不可能完成的任務。爲此,咱們經過一個目標函數來計算實際輸出與指望輸出之間的偏差或距離。接下來,爲了減少偏差,機器會對其內部可調參數進行調整。這些可調參數常被稱爲「權重」(weight),是實數,可看作定義機器輸入-輸出功能的「門把手」。在一個典型的深度學習系統中,可能存在着成千上億的可調權重及用以訓練機器的標記樣本。
 
爲了正確地調整權重矢量( weight vector),學習算法會計算出一個梯度矢量( gradient vector)。對每個權重,這個梯度矢量都能指示出,當權重略微增減一點點時,偏差會隨之增減多少許。接着,權重矢量就會往梯度矢量的反方向進行調整。
 
從全部訓練範例之上,平均看來,目標函數( objective function)可被視爲一片崎嶇的山地,坐落於由權重組成的高維空間。梯度矢量爲負值的地方,意味着山地中最陡峭的下坡方向,一路接近最小值。這個最小值,也就是平均輸出偏差最小之處。
 
在實踐中,大多數業內人士都是用一種被稱爲「隨機梯度降低」(SGD - Stochastic Gradient Descent)的算法(梯度降低Grident Descent 是「最小化風險函數」以及「損失函數」的一種經常使用方法,「隨機梯度降低」是此類下的一種經過迭代求解的思路——譯者注)。每一次迭代包括如下幾個步驟:獲取一些樣本的輸入矢量( input vector),計算輸出結果和偏差,計算這些樣本的平均梯度,根據平均梯度調整相應權重。這個過程在各個從整個訓練集中抽取的小子集之上重複,直到目標函數的平均值中止降低。它被稱作隨機(Stochastic)是由於每一個樣本組都會給出一個對於整個訓練集( training set)的平均梯度(average gradient)的噪音估值(noisy estimate)。較於更加精確的組合優化技術,這個簡單的方法一般能夠神奇地快速地找出一個權重適當的樣本子集。訓練事後,系統的性能將在另一組不一樣樣本(即測試集)上進行驗證,以期測試機器的泛化能力( generalization ability) ——面對訓練中從未遇過的新輸入,機器可以給出合理答案。
 
不少當今機器學習的實際應用都在人工設定的特徵上使用「線性分類」(linear classifiers)。一個「二元線性分類器」(two-class linear classifier)能夠計算出特徵向量的「加權和」(weighted sum)。若是「加權和」高於閾值,該輸入樣本就被歸類於某個特定的類別。
 
二十世紀六十年代以來,咱們就知道線性分類只能將輸入樣本劃分到很是簡單的區域中,即被超平面切分的半空間。可是,對於相似圖像及語音識別等問題,要求「輸入-輸出函數」(input–output function)必須對輸入樣本的無關變化不敏感,好比,圖片中物體的位置,方向或者物體上的裝飾圖案,又好比,聲音的音調或者口音;與此同時「輸入-輸出函數」又須要對某些細微差別特別敏感(好比,一匹白色的狼和一種長得很像狼的被稱做薩摩耶的狗)。兩隻薩摩耶在不一樣的環境裏擺着不一樣姿式的照片從像素級別來講極可能會很是地不同,然而在相似背景下襬着一樣姿式的一隻薩摩耶和一隻狼的照片在像素級別來講極可能會很是相像。一個「線性分類器」(linear classifier),或者其餘基於原始像素操做的「淺層(shallow)」分類操做是不管如何也沒法將後者中的兩隻區分開,也沒法將前者中的兩隻分到一樣的類別裏的。這也就是爲何「淺層」「分類器(classifiers)」須要一個能夠出色地解決「選擇性-恆常性困境」( selectivity–invariance dilemma)的「特徵提取器」(feature extractor)—— 提取出對於辨別圖片內容有意義的信息,同時忽略不相關的信息,好比,動物的姿式。咱們能夠用一些常規的非線性特徵來加強「分類器」(classifiers)的效果,好比「核方法」(kernel methods),可是,這些常規特徵,好比「高斯核」(Gaussian Kernel)所找出來的那些,很難泛化( generalize )到與訓練集差異別較大的輸入上。傳統的方法是人工設計好的「特徵提取器」,這須要至關的工程技巧和問題領域的專業知識。可是,若是好的「特徵提取器」能夠經過「通用學習程序(General-Purpose learning procedure)」完成自學習,那麼這些麻煩事兒就能夠被避免了。這就是深度學習的重要優點。
圖1| 多層神經網路和反向傳播。
 
a. 一個多層神經網絡(如圖所示相互鏈接的點)可以整合(distort)輸入空間(圖中以紅線與藍線爲例)讓數據變得線性可分。注意輸入空間的規則網格(左側)如何轉被隱藏單元(中間)轉換的。例子只有兩個輸入單元、兩個隱藏單元和一個輸出單元,但事實上,用於對象識別和天然語言處理的網絡一般包含了數十或成千上萬個單元。(本節引用改寫自 C. Olah (http://colah.github.io/).)  
 
b. 導數的鏈式法則告訴咱們,兩個微小增量(即x關於y的增量,以及y關於z的增量)是如何構成的。x的增量Δx致使了y的增量Δy,這是經過乘以∂y/∂x來實現的(即偏導數的定義)。一樣,Δy的變化也會引發Δz的變化。用一個方程代替另外一個方程引出了導數的鏈式法則( the chain rule of derivatives),即增量Δx如何經過與∂y/∂x及 ∂z/∂x相乘使得z也發生增量Δz。當x,y 和 z都是向量時這一規律也一樣適用(使用雅克比矩陣)。
 
c. 這個公式用於計算在包含着兩個隱層和一個輸出層的神經網絡中的前向傳輸,每一個層面的逆向傳遞梯度都構成了一個模組。在每一層,咱們首先計算面向每一個單元的總輸入值z,即上一層的輸出單元的加權和;而後,經過將一個非線性函數f(.)應用於z來得出這個單元的輸出。爲了簡化流程,咱們忽略掉一些閾值項(bias terms)。在神經網絡中使用的非線性函數包含了近些年較爲經常使用的校訂線性單元(ReLU) f(z) = max(0,z),以及更傳統的 sigmoid函數,好比,雙曲線正切函數, f(z) = (exp(z) − exp(−z))/(exp(z) + exp(−z)) 和 邏輯函數f(z) = 1/(1 + exp(−z)).
 
d. 該公式用於計算反向傳遞。在每個隱藏層中,咱們都會計算每一個單元輸出的導數偏差,即上述層中上一層全部單元輸入的導數偏差的加權總和。 而後,將關於輸出的導數偏差乘以函數f(z)的梯度(gradient),獲得關於輸入的導數偏差。 在輸出層中,經過對成本函數進行微分計算,求得關於輸出單元的偏差導數。所以咱們得出結論 yl - tl 若是對應於單元l的成本函數是 0.5(yl - tl) 2  (注意tl是目標值)。一旦∂E/∂zk已知,那麼,就能經過yj ∂E/∂zk調整單元j的內星權向量wjk。
圖2 | 卷積網絡的內部。一個典型的卷積網絡架構的每一層(水平)輸出(不是過濾器)應用到一個薩摩耶犬的圖像(圖2左下方,RGB輸入(紅綠藍),下方右側)。 每個長方形圖片都是一張對應於學習到的輸出特徵的特徵地圖,這些特徵能夠在圖片的各個位置被偵測到。信息流是從下往上的,低級的特徵充做導向性邊際檢測因子( edge detectors),每一個輸出圖像類都會被計算出一個分值。ReLU,整流線性單元。
 
深度學習架構由簡單模組多層堆疊而成,所有(或絕大部分)模組都從事學習,大部分會計算非線性的輸入輸出映射。堆疊架構中的每一個模組都會轉換它的輸入,同時加強可選擇性和所呈現狀態的一致性。 經過多個非線性層面(例如,深度5-20層),系統能夠實現對於輸入數據的極其微小細節的敏感性功能 --- 例如,區別開白色的狼和薩摩耶犬 --- 而且對於較大的無關變量會不敏感(例如,主體周圍的環境、姿式、光照條件和周圍物體。)
 
訓練多層架構的反向傳播算法
從最先的模式識別開始,研究者們就一直試圖用可訓練的多層網絡代替人工設計特徵,儘管這種解決方案很簡單,直到20世紀80年代中期,它才獲得人們的普遍承認。事實證實,多層架構能夠經過簡單的隨機梯度降低法得以訓練。只要模組是由它們的輸入值及其內部權重構成的相對平滑的函數(relatively smooth functions),人們就可使用反向傳播算法來計算梯度。20世紀70至80年代,幾個不一樣的研究小組分別發現這一方法確實可行、有用。
 
計算一個目標函數關於一個多層堆疊模組的權重梯度的反向傳播過程,只不過是導數鏈式法則的一個實際應用。其中關鍵之處在於,關於模組輸入值的函數的導數(或梯度),能夠藉助關於該模組的輸出值(或序列模組的輸入值)的梯度反向計算出來(圖1)。反向傳播方程可在全部模組中傳播梯度時被反覆應用,從頂部(top)(神經網絡產生預測的那一層)輸出開始,一直到底部(bottom)(被接收外部輸入的那一層)。這些梯度一經計算,就可直接計算出關於每一個模組權重的梯度。
 
深度學習的許多應用,都會使用前饋神經網絡架構( feedforward neural network architectures)(圖1)——該架構可學習將一個固定大小的輸入映射到(例如,一幅圖像)到一個固定大小的輸出上(例如,每種分類的機率)。從一層到下一層,單元組計算其前一層輸入的加權總和,並經過一個非線性函數輸出結果。目前,最受歡迎的非線性函數是整流線性單元(ReLU),一個簡單的半波整流器f(z) = max(z, 0)。在過去的幾十年裏,神經網絡使用的是更平滑的非線性,好比,tanh(z)或1 /(1 + exp(−z)),但ReLU在多層網絡中的學習速度一般更快,可容許在沒有無監督預訓練(without unsupervised pre-training)的狀況下進行深度監督網絡訓練。不在輸入或輸出層中的單元一般被稱爲隱層單元(hidden units)。隱層可被看做是以非線性方式變換輸入,從而使全部類別在最後一層變得線性可分( linearly separable by the last layer)(圖1)。
 
20世紀90年代末,神經網絡和反向傳播被機器學習社區大量遺棄,同時也被計算機視覺和語音識別領域忽略。人們廣泛認爲,學習有用的、多層級的、幾乎不靠先驗知識的特徵提取器並不現實可行。尤爲是,人們一般認爲簡單的梯度降低法會深陷局部極小的泥潭——在這種權重配置當中,除非進行大的改動,不然很難下降平均偏差。
 
實踐中,對大型網絡而言,局部極小幾乎不構成問題。不管初始條件如何,系統基本總能獲得質量很是類似的解決方案。最近的理論和實證研究結果均有力地代表,總的來講,局部極小不是一個嚴重問題。相反,解空間( landscape)充滿了大量梯度爲0的鞍點( saddle points ),且在多數維度中表面向上彎曲,少數維度中表面向下彎曲。分析結果彷佛代表,向下彎曲的鞍點在總體中佔比相對較小,但這些鞍點的目標函數值大多相近。所以,算法陷入這些鞍點(不能繼續尋優),可有可無。
 
2006年先後,加拿大高級研究所(CIFAR)彙集了一批研究人員,他們重燃了人們對深度前饋網絡的興趣。這些研究人員引入無監督學習程序——無需標記數據即可建立特徵檢測器層。各層特徵檢測器的學習目標即是在下一層重構或模擬特徵檢測器(或原始輸入)的活動。利用這種重構學習目標來「預訓練(pre-training)」幾層複雜度遞增的特徵檢測器,深層網絡的權重能夠被初始化爲合理值。接着,最終層的輸出單元可被添加到網絡頂端,整個深度系統可被微調至使用標準的反向傳播。在識別手寫數字或檢測行人時,特別是當標記的數據量很是有限的時候,這一程序很是有效。
 
這種預訓練的方法的首次重要應用是在語音識別上,這之因此可行歸功於便於編程的GPUs的誕生,它讓研究人員能夠用10到20倍的速度訓練神經網絡。2009年,這個方法被用來計算一段聲音採樣中提取短時係數窗口對應的一系列機率值,這些機率值反映出由窗口中幀表示語音各個段落的可能性。在小詞彙表的標準語音識別測試上,這種方法的訓練效果打破紀錄,很快它又發展到打破大詞彙表的標準語音測試紀錄。
 
到2012年,2009年以來的各類深度網絡一直的獲得多個主要語音研究小組持續開發並被佈局在安卓手機上。對於較小數據集來講,無監督預訓練有助於防止過擬合( overfitting), 當標註數據樣本小( number of labelled examples is small)或須要遷移( in a transfer setting )——有不少源領域的標註數據樣本但缺乏目標領域的標註數據樣本——的時候,深度網絡的泛化( generalization)效果顯著提高。深度學習從新得到認識,人們發現,預訓練階段只是小規模數據集的必需品。
 
然而,還有一種特殊類型的深度前饋網絡( deep feedforward network),不只更易訓練並且泛化能力要比那些相鄰兩層徹底相連的神經網絡強大不少。這就是卷積神經網絡 (ConvNet)。 在神經網絡「失寵 」的日子裏,卷積神經網絡在實踐運用中得到許多成功,最近已被計算機視覺領域普遍採用。
 
卷積神經網絡
卷積神經網絡最初是用來處理多維數組數據,好比,一張由三個2D數組組成、包含三個彩色通道像素強度的彩色圖像。大量的數據模式都是多個數組形式:1D用來表示信號和序列信號包括人類語言;2D用來表示圖片或聲音;3D表明視頻或有聲音的圖像。卷積神經網絡利用天然信號特徵的核心理念是:局部鏈接(local connections),權重共享,池化(pooling)和多網絡層的使用。
 
典型的卷積神經網絡的架構(圖二)包括一系列階段:最初的幾個階段由卷積層和池化層組成,卷積層的單元被組織到特徵圖(feature map)中,每一個單元經過一組被稱做濾波器(filter bank)的權值被鏈接到前一層的特徵圖的局部數據塊。接下來,獲得的局部加權和會傳遞至一個非線性函數,例如ReLU。同一個特徵圖中的全部單元共享相同的濾波器,不一樣特徵圖使用不一樣濾波器。採用這種架構有兩方面的緣由。首先,在諸如圖像這樣的數組數據中,數值與附近數值之間一般是高度相關的,容易生成易被探測到的局部特徵(motif)。其次,圖像和其餘相似信號的局部統計特徵一般又與位置無關,易言之,出如今某處的某個特徵也可能出如今其餘任何地方,所以,不一樣位置的單元會共享一樣的權值而且能夠探測相同模式。數學上,由一個特徵圖完成的過濾操做是一個離線的卷積,卷積神經網絡由此得名。
 
和卷積層用來探測前一層中特徵之間的局部鏈接不一樣,池化層的做用則是對語義類似的特徵進行合併。因爲構成局部主題的特徵之間的相對位置關係不是一成不變的,能夠經過粗粒度檢測每一個特徵的位置來實現較可靠的主題識別。一個池化層單元一般會計算一個或幾個特徵圖中一個局部塊的最大值,相鄰的池化單元則會移動一列或一行從小塊讀取輸入,這種設計不只減小了數據表徵須要的維數,並且也能對數據小規模的偏移、扭曲保持不變。兩到三個卷積層,非線性層和池化層被疊加起來,後面再加上更多的卷積和全鏈接層。在卷積神經網絡的反向傳播算法和在通常深度網絡上同樣簡單,能讓全部濾波器中的權值獲得訓練。
 
多數天然信號都是分級組合而成,經過對較低層信號組合可以得到較高層的信號特徵,而深度神經網絡充分利用了上述特性。在圖像中,線條組合造成圖案,圖案造成部件,部件組成物體。相似的層次結構存在於由聲音到電話中的語音及文本造成過程,音素組成音節,音節組成單詞,單詞組成句子。當輸入數據在前一層中的位置有變化的時候,池化操做讓這些特徵表示對變化具備魯棒性。
 
卷積神經網絡中的層次的卷積和匯聚的靈感直接來源於視覺神經科學中的簡單細胞和複雜細胞的經典概念,而且其總體架構讓人想起視覺皮層腹側通路的LGN-V1-V2-V4-IT層次結構。當向卷積神經網絡模型和猴子同時展現相同的畫面時,卷積神經網絡的高級單元被激活,解釋了猴子顳下皮層隨機設置的160個神經元的變化。卷積神經網絡有着神經認知機的基礎,二者的體系結構有些相似,可是,卷積神經網絡沒有諸如反向傳播的那種端對端的監督學習算法。原始的1D卷積神經網絡被稱爲「延時神經網絡(time-delay neural net )」,用於識別語音和簡單的單詞。
 
早在20世紀90年代初,卷積網絡就已有很是普遍的應用 ,最開始延時神經網絡被用在語音識別和文檔閱讀上。文本閱讀系統使用了受過訓練的延時神經網絡以及一個實現了語言約束的機率模型。到20世紀90年代末,該系統可以讀取美國超過十分之一的支票。隨後,微軟發明了許多基於卷積神經網絡的光學字符識別和手寫識別系統。卷積神經網絡在20世紀90年代初就被嘗試用於包括臉、手、面部識別的天然圖像目標檢測中。
 
使用深層卷積網絡進行圖像識別
從21世紀初開始,卷積神經網絡就被成功用於檢測、分割和物體識別以及圖像各區域。這些應用都使用了豐富的標籤數據,好比,交通標誌識別、生物圖像(特別是神經連接組學方面)分割、面部探測、文本、行人和天然圖像中的人體的檢測。近些年來,卷積神經網絡的一項重要成功應用就是人臉識別。
 
值得注意的是,圖像能夠在像素級別上被標記,這樣就能被用於諸如自主移動機器人(autonomous mobile robots)和無人駕駛汽車等技術中。像Mobileye和NVIDIA 這些公司正在將這些基於卷積神經網絡的方法應用於即將面世的汽車視覺系統中。其餘重要的應用程序涉及到天然語言理解和語音識別。
 
儘管取得了這些成就,但在2012年ImageNet競爭以前,卷積神經網絡在很大程度上並未得到主流計算機視覺和機器學習團體的青睞。當深層卷積網絡被應用於來源於包含1000個不一樣類型約100萬個圖像的數據集中,它們取得了驚人的成果,錯誤率僅是當時最佳方法的一半。該成功源於高效利用了GPUs和ReLUs、一項新的被稱爲「dropout 」的正規化技術( regularization technique )以及分解現有樣本產生更多訓練樣本的技術。成功給計算機視覺領域帶來一場革命。現在,卷積神經網絡幾乎覆蓋全部識別和探測任務,在有些任務中,其表現接近人類水平。最近一個使人震驚的例子,利用卷積神經網絡結合遞歸網絡模塊來生成圖像標題( image captions )(如圖3)。
圖3 |從圖像到文本。將遞歸神經網絡(RNN)生成的標題做爲額外輸入,深度卷積神經網絡(CNN)會從測試圖片中提取表徵,再利用訓練好的RNN將圖像中高級( high-level )表徵「翻譯成 」標題(上圖)。當RNN一邊生成單詞(黑體所示),一邊能將注意力集中在輸入圖像的不一樣位置(中間和底部;塊狀越亮,給予的注意力越多)的時候,咱們發現,它能更好地將圖像「翻譯成」標題。
 
當前的卷積神經網絡由10~20層ReLUs,數百萬個權值及數十億個鏈接組成。兩年前,訓練如此龐大的網絡可能須要數週時間,而隨着硬件、軟件和算法並行化(algorithm parallelization)的進步,訓練時間已經縮短至幾個小時。
 
卷積神經網絡的視覺系統良好表現促使包括谷歌、Facebook、微軟、IBM、雅虎、推特和Adobe在內的多數主要科技公司以及數量激增的創業公司開始啓動研發項目,部署基於卷積神經網絡的圖像識別產品和服務。
 
卷積神經網絡易於在芯片或現場可編程門列陣(FPGA)中得以高效實現。爲了實現智能手機、相機、機器人和無人駕駛汽車上的實時視覺應用,NVIDIA、Mobileye、因特爾、高通和三星等許多公司都正在開發卷積神經網絡芯片。
 
分佈式表徵和語言處理
深度學習理論顯示,與不適用分佈式表徵的經典學習算法相比,深度網絡有兩處異常明顯的優點。這些優點源於節點權重(the power of composition)以及底層數據生成分佈具備適當的組成結構。第一,學習分佈式表徵可以將經過訓練而學習得到的特性值泛化爲新的組合(例如,n元特徵有2n 組合可能)。第二,深度網絡中的表徵層相互組合帶來了另外一個指數級優點的潛力(指數性的深度)。
 
多層神經網絡的隱藏層學會以一種易於預測目標輸出的方式來再現網絡輸入。一個很好的示範就是訓練多層神經網絡根據局部文本中的前述語句預測下一個詞。文本的每一個詞表示成網絡中的N分之一貫量,也就是說,每一個成分的值爲1,餘下的爲0。在第一層中,每一個字建立一個不一樣模式的激活或單詞向量(如圖4所示)。在語言模型中,網絡中的其餘層學習如何將輸入的單詞向量轉化成輸出單詞向量來預測下一個單詞,也能用來預測詞彙表中單詞做爲文本中下一個單詞出現的機率。正如學習分佈表徵符號文本最初展現的那樣,網絡學習了包含許多激活節點(active components )、且每個節點均可被解釋成一個單詞獨立特徵的單詞向量。這些語義學特徵並無在輸入時被清晰表現出來。而是在學習過程當中被發現的,並被做爲將輸入與輸出符號結構化關係分解爲微規則(micro-rules)的好方法。當詞序列來自一個大的真實文本語料庫,單個微規則並不可靠時,學習單詞向量也同樣表現良好。當網絡被訓練用於預測新文本中的下一個詞時,一些單詞向量很是類似,好比Tuesday和Wednesday,Sweden和Norway 。這種表徵被稱爲分佈式表徵,由於它們的元素(特性)並不是相互排斥,且它們構造信息與觀測到的數據變化相對應。這些單詞向量由所習得的特性組成,這些特性並不是由科學家們事先決定而是由神經網絡自動發現。如今,從文本中習得的單詞向量表徵被很是普遍地使用於天然語言應用。
 
表徵問題是邏輯啓發與神經網絡啓發認知範式爭論的核心問題。在邏輯啓發範式中,一個符號實體表示某一事物,由於其惟一的屬性與其餘符號實體相同或者不一樣。它並不包含與使用相關的內部結構,並且爲理解符號含義,就必須與審慎選取的推理規則的變化相聯繫。相比之下,神經網絡使用大量活動載體( big activity vectors)、權重矩陣和標量非線性,實現一種快速「直覺 」推斷,它是輕鬆常識推理的基礎。
 
在介紹神經語言模型前,語言統計模型的標準方法並無使用分佈式表徵:它是基於計算短符號序列長度N(稱爲N-grams,N元文法)出現的頻率。N-grams可能出現的次數與VN一致,這裏的V指的是詞彙量的大小,考慮到詞彙量大的文本,所以須要更龐大的一個語料庫。N-grams把每個詞做爲一個原子單位,所以它不能在語義緊密相關的單詞序列中,一律而論,可是,神經語言模型能夠實現上述功能,由於它們將每一個單詞與真實特徵值的向量關聯起來,而且語義相關的單詞在該向量空間中更爲貼近。(如圖4)。
圖4|已完成學習的單詞向量的可視化展示。左邊介紹了爲了建模語言而習得的詞彙表徵,經過使用 t-SNE算法[103]非線性映射至二維空間中以便於觀察。右邊是一個由實現英-法互翻的遞歸神經網絡學習短語的二維空間表示。由圖可知,語義或排序類似的單詞表徵映射較爲接近 。詞彙的分佈式表徵經過使用反向傳播得到,以此來學習每一個單詞的表徵形式及預測目標數量的功能,好比序列中的後續單詞(如語言建模)或者翻譯文字的所有序列(機器翻譯)。
 
遞歸神經網絡
最初引入反向傳播時,最使人激動的應用即是訓練遞歸神經網絡(簡稱RNNs)。對於那些須要序列連續輸入的任務(好比,語音和語言),RNNs是上乘之選(圖5)。RNNs一次處理一個輸入序列元素,同時維護隱式單元中隱含着該序列過去全部元素的歷史信息的「狀態向量」。當咱們考慮隱式單元在不一樣的離散時間步長的輸出,就好像它們是在多層網絡深處的不一樣神經元的輸出(圖五,右)如何利用反向傳播訓練RNNs,一目瞭然。
 
RNNs是很是強大的動力系統,但訓練它們也被證明存在一些問題,由於反向傳播梯度在每一個時間間隔內或增加或降低,所以,一段時間以後一般會致使結果激增或者降爲零。
 
因先進的架構和訓練的方式,RNNs不只被證明擅長預測文本中下一個字符或句子中下一個單詞,還可應用於更加複雜的任務。例如,某時刻閱讀英文句子中的單詞後,一個英語的「編碼器」網絡將被生成,從而幫助隱式單元的最終狀態向量很好地表徵句子所傳達的思想。這種「思想向量(thought vector)」能夠做爲一個集大成的法語「編碼器」網絡的初始化隱式狀態(或額外的輸入),其輸出爲法語翻譯首單詞的機率分佈。若是從機率分佈中選擇一個特定首單詞做爲編碼網絡的輸入,將會輸出翻譯句子中第二個單詞的機率分佈,依此類推,直到中止選擇爲止。整體而言,這一過程是根據英語句子的機率分佈而生成的法語單詞序列。這種近乎直接的機器翻譯方法的表現很快和最早進(state-of-the-art)的方法不相上下,同時引起人們對於理解句子是否須要使用推理髮掘內部符號表示質疑。這與平常推理中涉及到根據合理結論類推的觀點是匹配的。
 
除了將法語句子翻譯成英語句子,還能夠學習將圖片內容「翻譯」爲英語句子(如圖3)。編碼器是一種在最後隱層將像素轉換爲活動向量的深度卷積網絡。解碼器是一種相似機器翻譯和神經網絡語言模型的遞歸神經網絡。近年來,引起了人們對深度學習該領域的熱議。RNNs一旦展開(如圖5),可被視做是全部層共享一樣權值的深度前饋神經網絡。雖然它們的主要目的是長期學習的依賴性,但有關理論和經驗的例證代表很難學習並長期儲存信息。
 
爲了解決這一問題,一個擴展網絡存儲的想法出現。第一種方案是採用了特殊隱式單元的LSTM,該天然行爲即是長期的保存輸入。一種相似累加器和門控神經元的稱做記憶細胞的特殊單元:它經過在下一個時間步長擁有一個權值並聯接到自身,從而拷貝自身狀態的真實值和累積外部信號,但這種自聯接是另外一個學習並決定什麼時候清除記憶內容的單元的乘法門所操控。
 
LSTM網絡最終被證實比傳統的遞歸神經網絡(RNNs)更爲有效,尤爲是,每個時間步長內有若干層時,整個語音識別系統可以徹底一致地將聲學轉錄爲字符序列。目前,LSTM網絡及其相關形式的門控單元一樣也用於編碼與解碼網絡,並在機器翻譯中表現良好。
 
過去幾年裏,幾位學者提出一些不一樣的方案來加強RNNs存儲器模塊。這些建議包括,神經圖靈機——經過加入RNNs可讀可寫的「相似磁帶」的存儲來加強網絡,而記憶網絡中的常規網絡經過聯想記憶來加強。記憶網絡在標準的問答基準測試中表現良好,記憶是用來記住稍後要求回答問題的事例。
 
除了簡單記憶化、神經圖靈機和記憶網絡被用於一般須要推理和符號操做的任務之外,還能夠教神經圖靈機「算法」。除此之外,他們能夠從未排序的輸入符號序列(其中每一個符號都有與其在列表中對應的代表優先級的真實值)中,學習輸出一個排序的符號序列。能夠訓練記憶網絡用來追蹤一個設定與文字冒險遊戲和故事的世界的狀態,回答一些須要複雜推理的問題。在一個測試例子中,網絡可以正確回答15句版的《指環王》中諸如「Frodo如今在哪?」的問題。
圖5 |一個遞歸神經網絡在時間中展開的計算和涉及的相關計算。人工神經元(例如,隱式樣單元分組節點在時間t的標準值下)得到其餘神經元的輸入——在以前的步驟中(黑色區域呈現,表明一步延遲,如左)。這樣,一個遞歸神經網絡可由xt的輸入序列元素,映射到一個輸出序列與元素ot,每次ot值取決於全部前面的xtʹ(tʹ≤t)。相同的參數(U,V矩陣W)在每步中使用。許多其餘結構是可行的,包括一個變體的網絡能夠生成的輸出序列(例如,詞語),每個都做爲下次的輸入步驟。反向傳播算法(圖1)能夠直接應用於計算機圖形展開網絡,並對全部的標準陳述和參數,計算其總偏差的導數(例如,生成正確的輸出序列的對數機率)。
 
深度學習的將來
無監督學習促進了人們重燃對深度學習的興趣,可是,有監督學習的成功蓋過了無監督學習。雖然咱們沒有關注這方面的評論,可是,從長遠來看,咱們仍是指望無監督學習可以變得更加劇要。(由於)人類和動物的學習方式大多爲無監督學習:咱們經過觀察世界來發現它的結果,而不是被告知每一個對象的名稱。
 
人類視覺是一個智能的、基於特定方式的利用小或大分辨率的視網膜中央窩與周圍環繞區域對光線採集成像的活躍的過程。咱們但願機器視覺可以在將來得到巨大進步,這些進步來自於那些端對端的訓練系統,並集合卷積神經網絡(ConvNets)和遞歸神經網絡(RNNs),利用強化學習來決定走向。結合了深度學習和強化學習的系統尚處在嬰兒期,可是,在分類任務上,它們已經超越了被動視覺系統,並在嘗試學習操做視頻遊戲方面,產生了使人印象深入的結果。
 
將來幾年,理解天然語言會是深度學習產生巨大影響的另外一個領域。咱們預測,當它們學習了某時刻選擇性地加入某部分的策略,那些使用遞歸神經網絡(RNNs)的系統將會更好地理解句子或整個文檔。
 
最終,人工智能的重大進步未來自將表徵學習與複雜推理結合起來的系統。儘管深度學習和簡單推理已經用於語音和手寫識別很長一段時間了,咱們仍須要經過大量向量操做的新範式替換基於規則的字符表達操做。
相關文章
相關標籤/搜索