Deep learning

說明

論文Deep learning的機器翻譯。

  1. LeCun Y, Bengio Y, Hinton G. Deep learning[J]. nature, 2015, 521(7553): 436.
  2. https://creativecoding.soe.ucsc.edu/courses/cs523/slides/week3/DeepLearning_LeCun.pdf

摘要

深度學習允許由多個處理層組成的計算模型學習具有多個抽象級別的數據表示。 這些方法極大地改善了語音識別,視覺目標識別,目標檢測以及許多其他領域(例如藥物發現和基因組學)的最新技術。 深度學習通過使用反向傳播算法來指示機器應如何更改其內部參數(從上一層的表示形式計算每一層的表示形式)中,從而發現大數據集中的複雜結構。 深層卷積網絡在處理圖像,視頻,語音和音頻方面帶來了突破,而遞歸網絡則對諸如文本和語音之類的順序數據有所啓發。

引言

機器學習技術爲現代社會的各個方面提供了強大的動力:從網絡搜索到社交網絡上的內容過濾再到電子商務網站上的推薦,並且它在諸如相機和智能手機之類的消費產品中越來越多地出現。 機器學習系統用於識別圖像中的對象,將語音轉錄爲文本,使新聞項,帖子或具有用戶興趣的產品匹配,以及選擇相關的搜索結果。 這些應用程序越來越多地使用一類稱爲深度學習的技術。

常規的機器學習技術在處理原始格式的自然數據方面的能力受到限制。 幾十年來,構建模式識別或機器學習系統需要認真的工程設計和相當多的領域專業知識,才能設計特徵提取器,以將原始數據(例如圖像的像素值)轉換爲合適的內部表示或特徵向量, 學習子系統(通常是分類器)可以檢測或分類輸入中的模式。

表示學習是一組方法,這些方法允許向機器提供原始數據並自動發現檢測或分類所需的表示。深度學習方法是具有表示形式的多層次的表示學習方法,是通過組合簡單但非線性的模塊而獲得的,這些模塊各自將一個級別(從原始輸入開始)的表示轉換爲更高,更抽象的級別的表示。有了足夠多的此類轉換,就可以學習非常複雜的功能。對於分類任務,較高的表示層會放大輸入中對區分非常重要的方面,並抑制不相關的變化。例如,圖像以像素值陣列的形式出現,並且在表示的第一層中學習到的特徵通常表示圖像中特定方向和位置上是否存在邊緣。第二層通常通過發現邊緣的特定佈置來檢測圖案,而與邊緣位置的微小變化無關。第三層可以將圖案組裝成與熟悉的對象的各個部分相對應的較大組合,並且隨後的層將對象檢測爲這些部分的組合。深度學習的關鍵方面是這些層的功能不是由人類工程師設計的:它們是使用通用學習程序從數據中學習的。

我們認爲深度學習將在不久的將來取得更多的成功,因爲它只需要很少的手工操作,因此可以輕鬆地利用可用計算和數據量的增加。 目前正在爲深度神經網絡開發的新學習算法和體系結構只會加速這一進展。

Supervised learning

不論深度與否,最常見的機器學習形式都是監督學習。想象一下,我們想建立一個可以將圖像分類爲包含房屋,汽車,人或寵物的系統。我們首先收集大量的房屋,汽車,人和寵物的圖像數據集,每個圖像都標有類別。在訓練過程中,機器將顯示一張圖像,並以分數矢量的形式產生輸出,每個類別一個。我們希望所需的類別在所有類別中得分最高,但這不太可能在訓練之前發生。我們計算一個目標函數,該函數測量輸出得分與期望得分模式之間的誤差(或距離)。機器然後修改其內部可調參數以減少此錯誤。這些可調整的參數(通常稱爲權重)是實數,可以看作是定義機器輸入輸出功能的“旋鈕”。在典型的深度學習系統中,可能會有數以億計的這些可調節砝碼,以及數億個帶有標籤的示例來訓練機器。

爲了適當地調整權重向量,學習算法計算一個梯度向量,該梯度向量針對每個權重指示如果權重增加很小的量,誤差將增加或減少的量。 然後沿與梯度向量相反的方向調整權重向量。

在所有訓練示例中平均的目標函數可以看作是權重值高維空間中的一種丘陵景觀。 負梯度矢量指示此景觀中最陡下降的方向,使其更接近最小值,其中輸出誤差平均較低。

在實踐中,大多數從業者使用一種稱爲隨機梯度下降(SGD)的程序。 這包括顯示幾個示例的輸入向量,計算輸出和誤差,計算這些示例的平均梯度以及相應地調整權重。 對訓練集中的許多小樣本示例重複此過程,直到目標函數的平均值停止下降。 之所以稱爲隨機變量,是因爲每個小樣本示例都會對所有示例的平均梯度給出嘈雜的估計。 與更復雜的優化技術相比,這種簡單的過程通常會很快出乎意料地找到一組好的權重。 訓練後,系統的性能是在一組稱爲測試集的不同示例上進行衡量的。 這用於測試機器的泛化能力,即它對訓練期間從未見過的新輸入產生明智答案的能力。

機器學習的許多當前實際應用都在手工設計的特徵之上使用線性分類器。 兩類線性分類器計算特徵向量分量的加權和。 如果加權和大於閾值,則將輸入分類爲屬於特定類別。

自1960年代以來,我們就知道線性分類器只能將其輸入空間劃分爲非常簡單的區域,即由超平面分隔的半空間19。但是,諸如圖像和語音識別之類的問題要求輸入輸出功能對輸入的無關變化不敏感,例如對象的位置,方向或照明的變化,或語音的音高或口音的變化。對特定的細微變化敏感(例如,白狼與類似薩摩犬的類似狼的白狗之間的差異)。在像素級別,處於不同姿勢和不同環境中的兩個薩摩耶犬的圖像可能彼此非常不同,而在相同位置且背景相似的薩摩耶犬和狼的兩個圖像可能彼此非常相似。線性分類器或對原始像素進行操作的任何其他“淺”分類器都無法區分後兩個,而將前兩個分類爲同一類別。這就是爲什麼淺分類器需要一個好的特徵提取器來解決選擇性不變性難題的原因。提取器可以產生對圖像中對辨別重要的方面具有選擇性但對無關方面(例如姿勢)不變的表徵的表示。動物。爲了使分類器更強大,可以使用通用的非線性特徵,如核方法20,但是諸如高斯核所產生的那些一般特徵不允許學習者對訓練示例進行很好的概括。傳統的選擇是手工設計好的特徵提取器,這需要大量的工程技術和領域專業知識。但是,如果可以使用通用學習過程自動學習好的特徵,則可以避免所有這些情況。這是深度學習的關鍵優勢。

深度學習架構是簡單模塊的多層堆棧,所有模塊(或大多數模塊)都需要學習,並且其中許多模塊都計算非線性的輸入-輸出映射。 堆棧中的每個模塊都轉換其輸入以增加表示的選擇性和不變性。 系統具有多個非線性層(例如深度爲5到20),可以實現極爲複雜的輸入功能,這些功能同時對分鐘的細節敏感(區分薩摩耶犬與白狼),並且對背景等無關緊要的變化不敏感, 姿勢,燈光和周圍物體。

Backpropagation to train multilayer architectures

從模式識別的早期開始22,23,研究人員的目的一直是用可訓練的多層網絡代替手工設計的特徵,但是儘管其簡單性,但直到1980年代中期才廣泛瞭解該解決方案。 事實證明,可以通過簡單的隨機梯度下降來訓練多層體系結構。 只要模塊是其輸入及其內部權重的相對平滑函數,就可以使用反向傳播過程來計算梯度。 1970年代和1980年代,幾個不同的小組獨24-27立地發現了可以做到這一點並且起作用的想法。

反向傳播程序用於計算目標函數相對於模塊多層堆棧權重的梯度,無非是導數鏈規則的實際應用。 關鍵的見解是,可以通過相對於該模塊的輸出(或後續模塊的輸入)相對於該模塊的梯度進行反向運算來計算目標相對於該模塊的輸入的導數(或梯度)(圖 1)。 反向傳播方程式可以反覆應用,以通過所有模塊傳播梯度,從頂部的輸出(網絡產生其預測)一直到底部的輸出(饋入外部輸入)。 一旦計算出這些梯度,就可以相對於每個模塊的權重來計算梯度。

在這裏插入圖片描述

圖1 多層神經網絡和反向傳播。
a, 多層神經網絡(由連接的點顯示)可以扭曲輸入空間,以使數據類別(例如紅線和藍線)可線性分離。請注意,輸入空間中的常規網格(如左圖所示)也如何通過隱藏單元轉換(如中圖所示)。這是僅具有兩個輸入單元,兩個隱藏單元和一個輸出單元的說明性示例,但是用於對象識別或自然語言處理的網絡包含成千上萬個單元。經C. Olah(http://colah.github.io/)許可轉載。
b,導數的鏈式規則告訴我們如何構成兩個小的影響(xxyy的微小變化和yyzzyy微小變化)。 xx中的小變化δx\delta x通過乘以y/x∂y/∂x(即偏導數的定義)首先轉換爲yy中的小變化ΔyΔy。類似地,改變ΔyΔyzz中產生改變ΔzΔz。將一個方程式代入另一個方程式可得出導數的鏈式規則-如何通過乘以y/x∂y/∂xz/x∂z/∂x的乘積將ΔxΔx轉換爲ΔzΔz。當xxyyzz是向量(並且導數是Jacobian矩陣)時,它也適用。
c, 具有兩個隱藏層和一個輸出層的神經網絡中計算前向傳播的方程式,每個方程式構成一個模塊,通過該模塊可以反向傳播梯度。在每一層,我們首先計算每個單元的總輸入zz,它是下一層中這些單元的輸出的加權和。然後將非線性函數f()f(·)應用於zz,以獲取單位的輸出。爲了簡單起見,我們省略了偏差項。神經網絡中使用的非線性函數包括近年來常用的整流線性單位(ReLU)f(z)=max(0z)f(z)= max(0,z)以及更常規的S型曲線,例如雙曲線正切f(z)=(exp(z)exp(z))/(exp(z)+exp(z))f(z) =(exp(z)-exp(-z))/(exp(z)+exp(-z))和邏輯函數logistic,f(z)=1/(1+exp(z))f(z) = 1/(1 + exp(-z))
d,用於計算反向通過的方程式。在每個隱藏層,我們針對每個單元的輸出計算誤差導數,該誤差導數是相對於上一層中單元的總輸入的誤差導數的加權和。然後,通過將其乘以f(z)f(z)的梯度,將相對於輸出的誤差導數轉換爲相對於輸入的誤差導數。在輸出層,通過微分成本函數來計算相對於單元輸出的誤差導數。如果單位ll的成本函數爲0.5(yltl)20.5(y_l-t_l)^2,則給出yltly_l-t_l其中tlt_l是目標值。一旦獲知E/zk∂E/∂z_k,下一層中來自單元jj的連接上的權重wjkw_{jk}的誤差導數就是yjE/zky_j∂E/∂z_k

深度學習的許多應用都使用前饋神經網絡體系結構(圖1),該體系結構學會將固定大小的輸入(例如,圖像)映射到固定大小的輸出(例如,幾個類別中的每一個的概率) 。爲了從一層到下一層,一組單位計算它們來自上一層的輸入的加權總和,並將結果傳遞給非線性函數。當前,最流行的非線性函數是整流線性單元(ReLU),它就是半波整流器f(z)=max(0z)f(z)= max(0,z)。在過去的幾十年中,神經網絡使用了更平滑的非線性,例如tanh(z)tanh(z)1/(1+exp(z))1/(1 + exp(-z)),但是ReLU通常在具有多個層的網絡中學習得更快,從而可以訓練深度有監督的網絡,無需無監督的預培訓28。不在輸入或輸出層中的單元通常稱爲隱藏單元。可以將隱藏的層視爲非線性地使輸入失真,以使類別變得可以由最後一層線性分離(圖1)。

在1990年代後期,神經網絡和反向傳播在很大程度上被機器學習社區拋棄,而被計算機視覺和語音識別社區所忽視。 人們普遍認爲,在沒有先驗知識的情況下學習有用的多階段特徵提取器是不可行的。 特別是,通常認爲,簡單的梯度下降會陷入不良的局部極小值—權重配置,對其進行很小的變化將減少平均誤差。

實際上,大型網絡很少會出現差的局部最小值的問題。 不管初始條件如何,該系統幾乎總是能獲得質量非常相似的解決方案。 最近的理論和經驗結果強烈表明,局部極小值通常不是一個嚴重的問題。 取而代之的是,地形上充斥着大量的鞍點,其中梯度爲零,並且曲面在大多數維度上都向上彎曲,而在其餘部分上則向下彎曲29,30。 分析似乎表明,只有少數幾個向下彎曲方向的鞍點存在很多,但是幾乎所有鞍點的目標函數值都非常相似。 因此,算法卡在這些鞍點中的哪一個上都沒關係。

由加拿大高級研究所(CIFAR)召集的一組研究人員在2006年左右恢復了對深層前饋網絡的興趣(參考文獻31-34)。 研究人員介紹了無需監督的學習程序,這些程序可以創建特徵檢測器層,而無需標記數據。 學習特徵檢測器每一層的目的是能夠在下一層中重建或建模特徵檢測器(或原始輸入)的活動。 通過使用此重建目標對多層逐漸複雜的特徵檢測器進行“預訓練”,可以將深度網絡的權重初始化爲合理的值。 然後可以將輸出單元的最後一層添加到網絡的頂部,並且可以使用標準反向傳播33-35對整個深度系統進行微調。 這對於識別手寫數字或檢測行人非常有效,特別是在標記數據量非常有限的情況下36。

這種預訓練方法的第一個主要應用是語音識別,而快速圖形處理單元(GPU)的出現使編程成爲可能,並且使研究人員訓練網絡的速度提高了10或20倍,從而使之成爲可能。在2009年,該方法用於將從聲波提取的係數的短暫時間窗口映射到可能由窗口中心的幀表示的各種語音片段的一組概率。它在使用少量詞彙38的標準語音識別基準上取得了破紀錄的結果,並迅速發展爲在大型詞彙任務39上取得了破紀錄的結果。到2012年,許多主要的語音組織都在開發2009年以來的深網版本6,並且已經在Android手機中進行了部署。對於較小的數據集,無監督的預訓練有助於防止過度擬合40,從而在標記的示例數量很少時或在轉移設置中,對於一些“源”任務,我們有很多示例,而對於某些“源”任務,則沒有太多示例“目標”任務。恢復深度學習後,事實證明,僅對於小型數據集才需要預訓練階段。
但是,存在一種特定類型的深層前饋網絡,它比相鄰層之間具有完全連接的網絡更容易訓練和推廣。這就是卷積神經網絡(ConvNet)41,42。在神經網絡失寵期間,它取得了許多實際的成功,並且最近被計算機視覺界廣泛採用。

Convolutional neural networks

ConvNet設計用於處理以多個陣列形式出現的數據,例如,由三個二維通道組成的彩色圖像,其中三個二維通道在三個彩色通道中包含像素強度。 許多數據形式以多個數組的形式出現:一維用於信號和序列,包括語言; 2D用於圖像或音頻頻譜圖; 和3D視頻或體積圖像。 ConvNets背後有四個利用自然信號屬性的關鍵思想:本地連接,共享權重,池化和多層使用。

典型的ConvNet的架構(圖2)由一系列階段構成。前幾個階段由兩種類型的層組成:卷積層和池化層。卷積層中的單元被組織在特徵圖中,其中每個單元通過稱爲濾波器組的一組權重連接到上一層特徵圖中的局部補丁。然後,該局部加權和的結果將通過非線性(例如ReLU)傳遞。特徵圖中的所有單位共享相同的過濾器組。圖層中的不同要素圖使用不同的濾鏡庫。這種架構的原因有兩個。首先,在諸如圖像的陣列數據中,值的局部組通常高度相關,從而形成易於檢測的獨特局部圖案。其次,圖像和其他信號的局部統計量對於位置是不變的。換句話說,如果圖案可以出現在圖像的一部分中,則它可以出現在任何地方,因此,位於不同位置的單元在陣列的不同部分中具有相同的權重並檢測相同的圖案的想法。在數學上,由特徵圖執行的濾波操作是離散卷積,因此得名。

在這裏插入圖片描述

圖2 在卷積網絡內部。 典型卷積網絡體系結構的每個層的輸出(不是濾波器)(水平)應用於薩摩耶犬的圖像(左下; RGB(紅色,綠色,藍色)輸入,右下)。 每個矩形圖像都是一個特徵圖

儘管卷積層的作用是檢測上一層的要素的局部連詞,但池化層的作用是將語義相似的要素合併爲一個。 由於形成圖案的特徵的相對位置可能會略有變化,因此可以通過對每個特徵的位置進行粗粒度來可靠地檢測圖案。 典型的池化單元計算一個特徵圖中(或幾個特徵圖中)的局部局部補丁的最大值。 相鄰的合併單元從移動了不止一個行或一列的色塊中獲取輸入,從而減小了表示的尺寸,併爲小幅度的移位和失真創建了不變性。 卷積,非線性和合並的兩個或三個階段被堆疊,然後是更多卷積和完全連接的層。 通過ConvNet進行反向傳播的梯度與通過常規深度網絡一樣簡單,從而可以訓練所有濾波器組中的所有權重。

深度神經網絡利用了許多自然信號是成分層次結構的特性,其中通過組合較低層的特徵來獲得較高層的特徵。 在圖像中,邊緣的局部組合形成圖案,圖案組裝成零件,而零件形成對象。 從聲音到電話,音素,音節,單詞和句子,語音和文本中也存在類似的層次結構。 當上一層中的元素的位置和外觀變化時,池化使表示形式的變化很小。

ConvNets中的卷積和池化層直接受到視覺神經科學中簡單細胞和複雜細胞的經典概念的啓發43,整個架構讓人聯想到視覺皮層腹側通路中的LGN–V1–V2–V4–IT層次結構44。 當ConvNet模型和猴子顯示相同的圖片時,ConvNet中高級單元的激活可以解釋猴子下顳葉皮層中160個神經元的隨機集合的一半變化。 ConvNets的根源是新認知器,其結構有些相似,但沒有反向傳播等端到端監督學習算法。 稱爲時延神經網絡的原始一維ConvNet用於識別音素和簡單單詞47,48。

卷積網絡的應用可以追溯到1990年代初,首先是用於語音識別和文檔閱讀的時延神經網絡47。 該文檔閱讀系統使用了一個ConvNet,並與一個實現語言約束的概率模型一起進行了訓練。 到1990年代後期,該系統已讀取了美國所有支票的10%以上。 Microsoft49隨後部署了許多基於ConvNet的光學字符識別和手寫識別系統。 在1990年代初期,還對ConvNets進行了試驗,以檢測自然圖像中的物體,包括面部和手部50,51,以及面部識別52。

Image understanding with deep convolutional networks

自2000年代初以來,ConvNets已成功應用於檢測,分割和識別圖像中的對象和區域。 這些都是標記數據相對豐富的任務,例如交通標誌識別53,生物圖像分割54,特別是用於連接組學55,以及在自然圖像中檢測人臉,文字,行人和人體36、50、51、56-58 。 ConvNets最近在實踐上取得的主要成功是面部識別59。

重要的是,可以在像素級別標記圖像,這將在技術中得到應用,包括自動駕駛機器人和自動駕駛汽車60,61。 Mobileye和NVIDIA等公司正在其即將推出的汽車視覺系統中使用基於ConvNet的方法。 其他日益重要的應用包括自然語言理解14和語音識別7。

儘管取得了這些成功,但ConvNet在很大程度上被主流的計算機視覺和機器學習社區所拋棄,直到2012年ImageNet競賽。當深度卷積網絡應用於來自網絡的大約一百萬個圖像的數據集時,其中包含1,000個不同的類別, 他們取得了驕人的成績,幾乎使最佳競爭方法的錯誤率降低了一半。 成功的原因是有效利用了GPU,ReLU,一種稱爲dropout 62的新正則化技術,以及通過使現有示例變形而生成更多訓練示例的技術。 這一成功帶來了計算機視覺的一場革命。 現在,ConvNets是幾乎所有識別和檢測任務的主要方法4、58、59、63-65,並在某些任務上實現了人類績效。 最近的驚人演示結合了ConvNets和遞歸網絡模塊,用於生成圖像字幕(圖3)。

在這裏插入圖片描述

圖3 | 從圖像到文本。 由遞歸神經網絡(RNN)生成的字幕作爲額外的輸入,它是由深度卷積神經網絡(CNN)從測試圖像中提取的表示作爲訓練的,而RNN經過訓練可以將圖像的高級表示“翻譯”爲字幕( 最佳)。 經ref許可轉載。 102.當RNN能夠在生成每個單詞(粗體)時將注意力集中在輸入圖像中的不同位置(中間和底部;較淺的色塊得到更多的關注)時,我們發現86它將其利用到 更好地將圖片“翻譯”爲字幕。

最近的ConvNet架構具有10到20層ReLU,數億個權重以及單元之間的數十億個連接。 儘管培訓如此大型的網絡可能僅在兩年前才花了幾周的時間,但是硬件,軟件和算法並行化方面的進步已將培訓時間減少到幾個小時。

基於ConvNet的視覺系統的性能已引起大多數主要技術公司的發展,其中包括Google,Facebook,Microsoft,IBM,Yahoo!,Twitter和Adobe,以及數量迅速增長的初創公司開始進行研發項目,並部署基於ConvNet的圖像理解產品和服務。

卷積網絡很容易適應芯片或現場可編程門陣列中有效的硬件實現66,67。 NVIDIA,Mobileye,英特爾,高通和三星等多家公司正在開發ConvNet芯片,以支持智能手機,相機,機器人和自動駕駛汽車中的實時視覺應用。

Distributed representations and language processing

深度學習理論表明,與不使用分佈式表示的經典學習算法相比,深網具有兩個不同的指數優勢。這兩個優點都來自於組合的力量,並取決於具有適當組件結構的底層數據生成分佈。首先,學習分佈式表示可以將學習到的特徵值的新組合推廣到訓練期間看不到的那些新組合中(例如,n個二進制特徵可能有2n個組合)68,69。其次,在一個深層網絡中構成表示層會帶來另一個指數優勢70(深度指數)。

多層神經網絡的隱藏層學習以易於預測目標輸出的方式來表示網絡的輸入。通過訓練多層神經網絡從較早單詞的局部上下文中預測序列中的下一個單詞,可以很好地證明這一點。上下文中的每個單詞都以N個向量的形式呈現給網絡,也就是說,一個組成部分的值爲1,其餘均爲0。在第一層中,每個單詞都會創建不同的激活模式,或者單詞向量(圖4)。在語言模型中,網絡的其他層學習將輸入的單詞矢量轉換爲預測的下一個單詞的輸出單詞矢量,這可用於預測詞彙表中任何單詞出現爲下一個單詞的概率。網絡學習包含多個有效成分的單詞向量,每個成分都可以解釋爲單詞的一個獨立特徵,如在學習符號的分佈式表示的背景下首次證明的那樣。這些語義特徵未在輸入中明確顯示。通過學習過程可以發現它們,這是將輸入和輸出符號之間的結構化關係分解爲多個“微規則”的好方法。當單詞序列來自大量真實文本並且單個微規則不可靠時,學習單詞向量也可以很好地工作71。例如,在接受培訓以預測新聞故事中的下一個單詞時,週二和週三學到的單詞向量與瑞典和挪威的單詞向量非常相似。這樣的表示稱爲分佈式表示,因爲它們的元素(特徵)不是互斥的,並且它們的許多配置對應於在觀察到的數據中看到的變化。這些詞向量由專家事先未確定但由神經網絡自動發現的學習特徵組成。從文本中學到的單詞的矢量表示現在已在自然語言應用中得到了廣泛的應用14、17、72-76。

表示的問題是邏輯啓發和神經網絡啓發的認知範式之間爭論的核心。在邏輯啓發範式中,符號實例是某些事物,其唯一屬性是它與其他符號實例相同或不同。它沒有與其使用相關的內部結構;爲了用符號推理,必須將它們綁定到明智選擇的推理規則中的變量。相比之下,神經網絡僅使用較大的活動向量,較大的權重矩陣和標量非線性來執行快速的“直覺”推斷類型,從而支持毫不費力的常識推理。

在引入神經語言模型71之前,語言統計建模的標準方法並未利用分佈式表示形式:它是基於對長度不超過N(稱爲N元語法)的短符號序列的出現頻率進行計數。可能的N元語法的數量在VN的數量級上,其中V是詞彙量,因此考慮到幾個單詞以上的上下文,將需要非常大的訓練語料庫。 N-gram將每個單詞視爲一個原子單位,因此它們無法在語義相關的單詞序列中進行泛化,而神經語言模型則可以將它們與實值特徵向量關聯在一起,而語義相關的單詞最終彼此靠近在該向量空間中(圖4)。

在這裏插入圖片描述

圖4 可視化學習的單詞向量。 左側是爲建模語言而學習的單詞表示的圖示,使用t-SNE算法103將其非線性投影到2D以進行可視化。 右邊是英語到法語編碼器-解碼器遞歸神經網絡75學習的短語的二維表示。 可以觀察到語義相似的單詞或單詞序列已映射到附近的表示形式。 通過使用反向傳播共同學習每個單詞的表示以及預測目標數量的函數(例如序列中的下一個單詞(用於語言建模)或翻譯單詞的整個序列(用於機器翻譯)),可以獲得單詞的分佈式表示形式 )18,75。

Recurrent neural networks

首次引入反向傳播時,其最令人興奮的用途是訓練循環神經網絡(RNN)。 對於涉及順序輸入的任務,例如語音和語言,通常最好使用RNN(圖5)。 RNN一次處理一個輸入序列一個元素,並在其隱藏單元中維護一個“狀態向量”,該向量隱式包含有關該序列所有過去元素的歷史信息。 當我們將隱藏單元在不同離散時間步長的輸出視爲是深層多層網絡中不同神經元的輸出時(圖5,右),很清楚地知道如何應用反向傳播訓練RNN。

在這裏插入圖片描述

圖5 遞歸神經網絡及其正向計算涉及計算的時間展開。人工神經元(例如,在時間t處的節點s下隱藏的單元,其值st爲st)在先前的時間步長處從其他神經元獲得輸入(這在左側用黑色正方形表示,表示一個時間步長的延遲)。 。這樣,遞歸神經網絡可以將元素爲xt的輸入序列映射爲元素爲ot的輸出序列,每個ot都取決於所有先前的xtʹ(對於tʹ≤t)。每個時間步使用相同的參數(矩陣U,V,W)。許多其他架構也是可能的,包括一個變體,網絡可以在該變體中生成一系列輸出(例如,單詞),每個輸出都用作下一時間步驟的輸入。反向傳播算法(圖1)可以直接應用於右側展開網絡的計算圖,以計算總誤差的導數(例如,生成正確的輸出序列的對數概率)到所有狀態st和所有參數。他們每個人都爲結論提供了合理性84,85。

RNN是非常強大的動態系統,但是事實證明,訓練它們是有問題的,因爲反向傳播的梯度在每個時間步長都會增大或縮小,因此在許多時間步長上它們通常會爆炸或消失77,78。

得益於其體系結構79,80的進步以及對其進行培訓的方法81,82,人們發現RNN非常擅長預測文本中的下一個字符83或序列中的下一個單詞75,但它們也可以用於更復雜的任務。例如,一次閱讀一個英語句子後,可以訓練一個英語“編碼器”網絡,以使其隱藏單元的最終狀態向量很好地表示該句子表達的思想。然後,可以將此思想向量用作聯合訓練的法語“解碼器”網絡的初始隱藏狀態(或作爲其額外輸入),該網絡將輸出法語翻譯的第一個單詞的概率分佈。如果從該分佈中選擇了特定的第一個單詞並將其作爲輸入提供給解碼器網絡,則它將輸出翻譯的第二個單詞的概率分佈,依此類推,直到選擇了句號17、72、76。總體而言,此過程根據取決於英語句子的概率分佈生成法語單詞序列。這種相當幼稚的執行機器翻譯的方法已迅速與最新技術競爭,這引起了人們對理解句子是否需要諸如通過使用推理規則操縱的內部符號表達式之類的疑問。與日常推理涉及許多同時類比的觀點更加一致。

與其將法語句子的含義翻譯成英語句子,不如學習將圖像的含義“翻譯”成英語句子(圖3)。 這裏的編碼器是一個深層的ConvNet,可將像素轉換爲其最後一個隱藏層中的活動矢量。 解碼器是一種RNN,類似於用於機器翻譯和神經語言建模的RNN。 最近,對這種系統的興趣激增(參見參考文獻86中提到的示例)。

RNNs隨時間展開(圖5),可以看作是非常深的前饋網絡,其中所有層共享相同的權重。儘管它們的主要目的是學習長期依賴關係,但理論和經驗證據表明,很難長期存儲信息。

爲了解決這個問題,一個想法是用顯式內存擴展網絡。此類第一個建議是使用特殊隱藏單元的長短期記憶(LSTM)網絡,其自然行爲是長時間記住輸入79。稱爲存儲單元的特殊單元的作用類似於累加器或門控泄漏神經元:它在下一時間步與自身連接,權重爲1,因此它複製自己的實值狀態並累積外部信號,但是此自連接是由另一個單元乘法控制的,該單元學會確定何時清除內存內容。

LSTM網絡後來被證明比常規RNN更有效,尤其是當它們在每個時間步都有多層時,87使整個語音識別系統從聲學到轉錄中的字符序列都一路走來。 LSTM網絡或相關形式的門控單元目前也用於編碼器和解碼器網絡,它們在機器翻譯方面表現出色17、72、76。

在過去的一年中,幾位作者提出了不同的建議,以使用內存模塊擴展RNN。建議包括神經圖靈機,其中網絡由RNN可以選擇讀取或寫入的“像帶”存儲器來增強,以及存儲網絡,其中常規網絡由一種關聯性存儲器來增強89。內存網絡在標準問答基準方面已表現出出色的性能。存儲器用於記住故事,有關該故事後來被要求網絡回答問題。

除了簡單的記憶之外,神經圖靈機和存儲網絡還用於執行通常需要推理和符號操作的任務。神經圖靈機可以被稱爲“算法”。除其他事項外,當他們的輸入由未排序的序列組成時,他們可以學習輸出已排序的符號列表,其中每個符號都帶有一個實數值,該實數值指示其在列表中的優先級88。可以訓練記憶網絡,使其在類似於文字冒險遊戲的環境中跟蹤世界狀況,閱讀故事後,它們可以回答需要複雜推理的問題90。在一個測試示例中,該網絡顯示了15句的《指環王》,並正確回答了諸如“現在Frodo在哪裏?” 89之類的問題。

The future of deep learning

無監督學習91-98在重新激發人們對深度學習的興趣方面起到了催化作用,但此後被純粹的監督學習的成功所掩蓋。儘管我們在本評論中並未對此進行重點介紹,但我們希望從長遠來看,無監督學習將變得越來越重要。人類和動物的學習在很大程度上不受監督:我們通過觀察來發現世界的結構,而不是通過告知每個物體的名稱來發現世界的結構。
人類視覺是一個活躍的過程,它使用具有高分辨率,低分辨率的小中心凹,以智能的,針對特定任務的方式依次對光學陣列進行採樣。我們期望視覺的未來很多進步來自端到端訓練的系統,並將ConvNets與RNN結合使用,後者使用強化學習來決定在哪裏看。結合了深度學習和強化學習的系統尚處於起步階段,但是在分類任務上它們已經超過了被動視覺系統99,並且在學習玩許多不同的視頻遊戲方面產生了令人印象深刻的結果100。

自然語言理解是深度學習必將在未來幾年產生巨大影響的另一個領域。我們希望使用RNN來理解句子或整個文檔的系統在學習一次選擇性地關注一部分的策略時會變得更好76,86。

最終,人工智能的重大進步將通過將表示學習與複雜推理相結合的系統來實現。儘管長期以來,深度學習和簡單推理已用於語音和手寫識別,但仍需要新的範例來通過對大向量進行運算來代替基於規則的符號表達操縱。

發佈了87 篇原創文章 · 獲贊 124 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章