摘要:機器學習系統被用來識別圖像中的物體將語音轉為文本,根據用戶興趣自動匹配新聞消息或產品,挑選相關搜索結果。而深度學習的出現,讓這些問題的解決邁出了至關重要的步伐。這就是深度學習的重要優勢。
借助深度學習,多處理層組成的計算模型可通過多層抽象來學習數據表征( 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)的系統將會更好地理解句子或整個文檔。
最終,人工智能的重大進步將來自將表征學習與復雜推理結合起來的系統。盡管深度學習和簡單推理已經用于語音和手寫識別很長一段時間了,我們仍需要通過大量向量操作的新范式替換基于規則的字符表達操作。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/4306.html
摘要:人工智能的主流算法深度學習的歷史,堪稱也是深度學習三劍客和共同走過的年艱難而輝煌的不悔人生。之后使用一種稱為監督學習的方法來訓練感知器,以正確區分不同形狀。表示,多層次神經網絡的結構并不會使感知器強大到有實用價值。 人工智能的主流算法Deep Learning深度學習的歷史,堪稱Deep History, 也是深度學習三劍客Geoff Hinton, Yann LeCun 和Yoshua B...
摘要:毫無疑問,現在深度學習是主流。所以科技巨頭們包括百度等紛紛通過收購深度學習領域的初創公司來招攬人才。這項基于深度學習的計算機視覺技術已經開發完成,正在測試。 在過去的三十年,深度學習運動一度被認為是學術界的一個異類,但是現在,?Geoff Hinton(如圖1)和他的深度學習同事,包括紐約大學Yann LeCun和蒙特利爾大學的Yoshua Bengio,在互聯網世界受到前所未有的關注...
摘要:沒有過年,年后在年后的年打敗了圍棋高手李世石,這下人工智能引起了全世界的關注。隨后的十多年,人工智能轉入第一次低潮,而也在他生日時,因海事喪生,遺憾未能見到神經網絡后期的復興。算力的進步再次加速了人工智能的快速發展。 showImg(https://segmentfault.com/img/remote/1460000019409315); 小西:小迪小迪,我發現人工智能發展史上很多事...
摘要:今年月日收購了基于深度學習的計算機視覺創業公司。這項基于深度學習的計算機視覺技術已經開發完成,正在測試。深度學習的誤區及產品化浪潮百度首席科學家表示目前圍繞存在著某種程度的夸大,它不單出現于媒體的字里行間,也存在于一些研究者之中。 在過去的三十年,深度學習運動一度被認為是學術界的一個異類,但是現在, Geoff Hinton(如圖1)和他的深度學習同事,包括紐約大學Yann LeCun和蒙特...
摘要:的研究興趣涵蓋大多數深度學習主題,特別是生成模型以及機器學習的安全和隱私。與以及教授一起造就了年始的深度學習復興。目前他是僅存的幾個仍然全身心投入在學術界的深度學習教授之一。 Andrej Karpathy特斯拉 AI 主管Andrej Karpathy 擁有斯坦福大學計算機視覺博士學位,讀博期間師從現任 Google AI 首席科學家李飛飛,研究卷積神經網絡在計算機視覺、自然語言處理上的應...
閱讀 885·2021-10-27 14:19
閱讀 1101·2021-10-15 09:42
閱讀 1525·2021-09-14 18:02
閱讀 737·2019-08-30 13:09
閱讀 2981·2019-08-29 15:08
閱讀 2081·2019-08-28 18:05
閱讀 948·2019-08-26 10:25
閱讀 2777·2019-08-23 16:28