1、第一次浪潮
在1943年,科學家WarrenMcCulloch和WalterPitts提出了神經網絡作為一個計算模型的理論。1957年,康內爾大學教授FrankRosenblatt提出了“感知器”(perceptron)模型。感知器是第一個用算法來精確定義的神經網絡,第一個具有自組織自學習能力的數學模型,是日后許多新的神經網絡模型的始祖。感知器的技術在20世紀60年代帶來人工智能的第一個高潮。
1969年,MarvinMinsky和SeymourPapert在出版的《感知器:計算幾何簡介》一書中強烈地批判了感知器模型:首先,單層的神經網絡無法解決不可線性分割的問題,典型例子如異或門;其次,當時的計算能力低下無法支持神經網絡模型所需的計算量。此后的十幾年,以神經網絡為基礎的人工智能研究進入低潮。
2、第二次浪潮
Minsky提出的尖銳問題后來被逐步解決。傳統的感知器用所謂“梯度下降”的算法糾錯時,其運算量和神經元數目的平方成正比,因而計算量巨大。1986年7月,Hinton和DavidRumelhart合作在《自然》發表論文,系統地提出了應用反向傳播算法,把糾錯的運算量下降到只和神經元數目成正比。同時,通過在神經網絡里增加一個所謂隱層(hiddenlayer),反向傳播算法同時也解決了感知器無法解決的異或門難題。
Hinton的博士后YannLecun于1989年發表了論文《反向傳播算法在手寫郵政編碼上的應用》。他用美國郵政系統提供的近萬個手寫數字的樣本來訓練神經網絡系統,在獨立的測試樣本中錯誤率低至5%,達到實用水準。他進一步運用“卷積神經網絡”(convolutedneuralnetworks)的技術,開發出商業軟件,用于讀取銀行支票上的手寫數字,這個支票識別系統在20世紀90年代末占據了美國接近20%的市場。
貝爾實驗室的VladmirVapnik在1963年提出了支持向量機(supportvectormachine,SVM)的算法。在數據樣本線性不可分的時候,支持向量機使用所謂“核機制”(kerneltrick)的非線性映射算法,將線性不可分的樣本轉化到高維特征空間(high-dimensionalfeaturespace),使其線性可分。作為一種分類算法,從20世紀90年代初開始,SVM在圖像和語音識別上找到了廣泛的用途。在手寫郵政編碼的識別問題上,SVM技術在1998年錯誤率降至0.8%,2002年最低達到了0.56%,遠遠超越同期的傳統神經網絡。
這時,傳統神經網絡的反向傳播算法遇到了本質難題——梯度消失(vanishinggradientproblem)。這個問題在1991年被德國學者SeppHochreiter第一次清晰提出并闡明原因。簡單地說,就是成本函數(costfunction)從輸出層反向傳播時,每經過一層,梯度衰減速度極快,學習速度變得極慢,神經網絡很容易停滯于局部最優解而無法自拔。同時,算法訓練時間過長會出現過度擬合(overfit),把噪音當成有效信號。SVM理論完備、機理簡單、容易重復,從而得到主流的追捧。SVM技術在圖像和語音識別方面的成功使得神經網絡的研究重新陷入低潮。
3、第三次浪潮
(1)改進算法
2006年,Hinton和合作者發表論文《深信度網絡的一種快速算法》。在這篇論文里,Hinton在算法上的核心是借用了統計力學里的“玻爾茲曼分布”的概念,使用所謂的“限制玻爾茲曼機”(RBM)來學習(圖5)。
圖5波爾茲曼機與限制波爾茲曼機
RBM相當于一個兩層網絡,可以對神經網絡實現“沒有監督的訓練”(unsupervisedtraining)。深信度網絡就是幾層RBM疊加在一起,RBM可以從輸入數據中進行預先訓練,自行發現重要特征,對神經網絡連接的權重進行有效的初始化。經過RBM預先訓練初始化后的神經網絡,再用反向傳播算法微調,效果得到大幅度提升。
2011年,加拿大的蒙特利爾大學學者XavierGlorot和YoshuaBengio發表論文《深而稀疏的修正神經網絡》。論文的算法中使用一種稱為“修正線性單元”(rectifiedlinearunit,RELU)的激勵函數。和使用別的激勵函數的模型相比,RELU識別錯誤率更低,而且其有效性對于神經網絡是否進行“預先訓練”并不敏感。RELU的導數是常數,非零即一,不存在傳統激勵函數在反向傳播計算中的“梯度消失問題”。由于統計上約一半的神經元在計算過程中輸出為零,使用RELU的模型計算效率更高,而且自然而然地形成了所謂“稀疏表征”(sparserepresentation),用少量的神經元可以高效、靈活、穩健地表達抽象復雜的概念。
2012年7月,Hinton發表論文《通過阻止特征檢測器的共同作用來改進神經網絡》。為了解決過度擬合的問題,論文中采用了一種新的被稱為“丟棄”(dropout)的算法。丟棄算法的具體實施是在每次培訓中給每個神經元一定的幾率(比如50%),假裝它不存在,計算中忽略不計。使用丟棄算法的神經網絡被強迫用不同的、獨立的神經元的子集來接受學習訓練。這樣網絡更強健,避免了過度擬合,不會因為外在輸入的很小噪音導致輸出質量的很大差異(圖6)。
圖6標準神經網絡(a)與使用丟棄算法后的神經網絡(b)
(2)使用GPU提高計算能力
2009年6月,斯坦福大學的RajatRaina和吳恩達(AndrewNg)合作發表論文《用GPU大規模無監督深度學習》,論文模型里的參數總數(就是各層不同神經元之間鏈接的總數)達到1億。與之相比,Hinton在2006年的論文里用到的參數數目只有170萬。論文結果顯示,使用GPU的運行速度和用傳統雙核CPU相比,最快時要快近70倍。在一個四層、1億個參數的深信度網絡上,使用GPU把程序運行時間從幾周降到一天。
2010年瑞士學者DanCiresan和合作者發表論文《Deepbigsimpleneuralnetsexcelonhandwrittendigitrecognition》,其中使用的還是20世紀80年代的反向傳播計算方法,但是計算搬移到GPU上實現,在反向傳播計算時速度比傳統CPU快了40倍。
2012年還在斯坦福大學做研究生的黎越國(QuocVietLe)領銜,和他的導師吳恩達,以及眾多谷歌的科學家聯合發表論文《用大規模無監督學習建造高層次特征》。黎越國的文章中使用了九層神經網絡,網絡的參數數量高達10億,是Ciresan2010年論文中的模型的100倍,是2009年Raina論文模型的10倍。
(3)海量的訓練數據
在黎越國文章中,用于訓練這個神經網絡的圖像都是從谷歌的錄像網站youtube上截屏獲得。1000萬個原始錄像,每個錄像只截取一張圖片,每張圖片有4萬個像素。與之相比,先前大部分論文使用的訓練圖像,原始圖像的數目大多在10萬以下,圖片的像素大多不到1000。黎越國的計算模型分布式地在1000臺機器(每臺機器有16個CPU內核)上運行,花了三天三夜才完成培訓。互聯網的大規模普及,智能手機的廣泛使用,使得規模龐大的圖像數據集能夠被采集,并在云端集中存儲處理。大數據的積累為深度學習提供了數據保障。
責任編輯人:CC
評論
查看更多