河南工業貿易職業學院信息工程系 邱俊玲
大數據時代下深度學習理論綜述
河南工業貿易職業學院信息工程系 邱俊玲
據Domo公司在2016年統計數據顯示,全球每分鐘在亞馬遜上產生222283美元的交易,YouTuBe上有400小時的視頻共享資源,谷歌翻譯出69500000個字符,氣象頻道收到13888889次預報請求,Dropbox上傳833333個新文件等。面對如此海量的數據,如何處理這些日益膨脹的數據,如何挑選出適合自己的數據,如何利用這些數據更好地服務客觀世界,找出規律進行分類,實現對大數據的合理利用是研究者應考慮和解決的當務之急,在此條件下,深度學習應運而生。
深度學習的基本思路是通過算法的設置,訓練機器能從大量的歷史數據中找出規律,從而對新的樣本進行智能識別或預測未來。這是傳統的機器學習方法,利用樣本中的特征向量來訓練數據進而建立模型。但隨著大數據時代的到來,為深度學習創造了條件,無監督學習方法成為研究人員更為熱衷的方向。
深度學習的研究起源于人工神經網絡,是由輸入層、隱藏層、輸出層組成的三層模型。一個神經網絡由節點和有向邊表示,每個神經元節點的輸出作為連入的下一個節點的輸入。每次輸出前,每個神經元的自運算是運用了一個非線性激活函數,正因此神經網絡的模型具有非線性的特征。深度學習的發展經歷了漫長的歷史時期。早在1943年,McCulloch和Pitts建立了第一個神經網絡計算模型,稱為MP模型。1949年,Donald利用心理學知識,提出了自組織學習的規則Hebbian Learning,此后Wesley等人用計算機仿真了Hebbian網絡。隨后的1958年,Frank將MP模型進行推廣,提出了第一個人工神經網絡模型——感知機模型,這是一種單層神經網絡模型,并從理論上證明了這一模型處理線性可分類問題的收斂性。1962年Rosenblatt總結了這一研究成果,并出版了《神經動力學原理:感知機和大腦機制的理論》,自此機器學習的研究進入了第一個高潮時期。然而在1969年,Minsky和Paper從感知器的局限性入手,以一個邏輯異或運算的例子推翻了感知機模型,證明了不包含隱層單元的感知器無法處理異或這種非線性分類問題,自此神經網絡的研究墜入低谷。
1982年美國生物物理學家Hopfield采用了新型的全互連神經網絡,利用所定義的計算能量函數成功給出了TSP問題的近似解,這一理論給了神經網絡新的春天。1986年David E.Rumelhart發明了反向傳播BP算法,但由于其梯度彌散的問題導致該算法的應用有其局限性,在神經神經網絡初始參數完全隨機的情況下,BP算法被論證出在淺層神經網絡中的是有效的,然而在深層網絡中它的處理效果并不理想。
2006年,Hinton等人提出通過非監督學習方法對原始數據進行逐級訓練,再采用監督方法精調整個網絡。非監督學習進行的訓練為神經網絡提供了較好的初始參數,降低了網絡的優化難度。2008年,Vincent等人提出了降噪自編碼器,2011年Rafir等人提出了收縮自編碼器,2012年微軟公司建立了深度神經網絡——隱馬爾科夫混合模型,并將其應用于語音識別;同年,Ng在“GoogleBrain”項目中使用無監督深度學習方法。2015年Xu提出了集合注意力的場景識別方法,同年He等人提出了擁有152層的深度殘差網絡模型。深度學習理論的探索在曲折中前進。
傳統的機器學習需要對數據進行預處理,然后對處理的數據進行特征提取和選擇,以達到學習的目的,實現推理、預測的功能。但該方法的準確性依賴于特征提取和特征選擇的好壞,而人類的學習往往是自動的,為了使機器也能實現自動學習,模擬人腦進行分層分析學習的神經網絡延伸出了深度學習的概念。
深度學習沿用了神經網絡分層結構,但與神經網絡又有不同。神經網絡采用BP迭代算法來訓練整個網絡,隨機設定初值計算當前網絡的輸出,利用該輸出與真實樣本的差值來改變前面各層的參數,直到收斂。該訓練方法適合層數不多的情況,且隨機的初值對系統也有一定的影響。深度學習含多層隱層,單純采用傳統的BP算法會導致模型時間復雜度很高,層層訓練也會出現過擬合的情況,因此深度學習采用的是由上而下的監督訓練方法,由下而上的非監督學習,常用的模型包括:自動編碼器(Auto Encoder)、稀疏編碼(Sparse Coding)、限制波爾茲曼機(Restricted Boltzmann Machine)、深度信任網絡(Deep Belief Networks)和卷積神經網絡(Convolutional Neural Networks),本文重點闡述卷積神經網絡的原理及優勢。
卷積神經網絡是由Hubel和Wiesel根據視覺神經科學對動物大腦視覺皮層簡單細胞核復雜細胞的反應設計而來的,是第一個真正成功訓練多層網絡結構的算法,主要應用于二維圖像的識別或人臉識別。
一般而言,卷積神經網絡包括兩層結構,第一層是卷積層,通過多卷積濾波器組對輸入圖像的各種特征進行卷積操作,從而生成特征圖。假設一個卷積核只提取一種特征,要得到圖像的多個特征,就需要多個卷積核來提取不同的特征,每一層對應多張特征圖。第二層是池化層,通過對圖像某一個區域的特征取平均值實現聚合操作。首先為實現主體的可靠性先粗粒化各個特征的位置,然后計算某個特征圖內局部塊的最大值,通過平移行或列的塊來獲取相鄰單元的輸入數據,最后根據實際需要串聯多個卷積、非線性變換和池化有監督地訓練所有過濾器中的權值參數。
卷積神經網絡的權值分享使得其結構與生物神經網絡更類似,分層結構降低了模型的復雜度,并減少了權值的數量。其優點在于多維圖像的輸入可以直接作為網絡的輸入,與網絡的拓撲結構能夠很好地吻合,且特征提取和模式分類同時進行,避免了傳統算法中復雜的特征提取和數據重建過程,從訓練數據中進行學習,它可以直接處理灰度圖片,能夠直接用于處理基于圖像的分類。
目前,深度學習的主流框架主要包括Caffe、TensorFlow、MXNet、Torch和Theano。
(1)Caffe。Caffe于2013年由Yangqing Jia基于卷積神經網絡編寫和維護,是第一個主流的工業級深度學習工具,其開發語言是C++,速度快,在計算機視覺領域很流行,但其缺點在于靈活性一般,而且對遞歸網絡和語言建模的支持度較差。
(2)TensorFlow。TensorFlow是由谷歌公司開發的第二代深度學習工具,它使用了向量運算的符號圖方法,支持快速開發,且因其開源性和靈活性,深受開發人員喜愛。它的局限性在于速度較慢,內存占用相對較大,而且只能在Linux和MAC OS系統上開發。
(3)MXNet。MXNet是另一款開源的深度學習工具,重在靈活性和高效性,同時強調提高內存使用率,其主要的開發語言也是C++,是一款非常好用的國產開源工具。
(4)Torch。Torch是Facebook力推的深度學習框架,具有較好的靈活性和高效性,主要的開發語言是C和Lua,其核心的單元都已經過優化,使用者不需要花多余的時間在計算機優化方面,可以專注于實現算法。
(5)Theano。Theano是2008年由蒙特利爾理工學院研發,其最大的特點就是靈活性很高,適合學術研究,對遞歸網絡和語言建模都有很好的支持,同時基于開發語言Python派生了大量的深度學習軟件包,而且是可以在Windows系統上運行的深度學習框架,唯一的缺點就是其速度不高。
語音處理方面,2012年,微軟公司研究人員建立深度神經網絡與隱馬爾科夫結合的混合模型,并將其應用于語音識別系統,大大降低了語音識別的錯誤率。2013年,Graves將長短時遞歸算法應用于語音處理,相較于傳統算法更高效。在圖像識別方面,Krizhevsky等人提出了應用于ImageNet 的AlexNet方法,基于大數據集將深度卷積神經網絡應用于圖像識別,將錯誤率降至37.5%。2016年,谷歌公司的AlphaGo通過人機對弈擊敗了人類所配置的視覺組成部分。其他方面,谷歌的Ground Truth團隊使用深度神經網絡從多國收集到的街景圖中讀取街道名,在FSNS數據集中達到了84.2%的準確率。
深度學習的概念自被提出以來,其理論及學習架構都有很大的發展,并取得了很顯著的成果,以谷歌公司為代表的一系列國內外研究人員做了大量的工作,比如在圖像、語音和視頻等方面的發展,甚至在自動駕駛、智能機器人等領域取得的成績。基于深度學習的非監督理論學習方法也被廣大研究人員不斷改進。然而目前深度學習領域還有很多待解決的問題,比如理論支撐薄弱、無監督學習能力還有待提高等問題,要想機器學習真正做到像人類一樣學習還有很長的路要走。
深度學習是機器學習的一個分支,是人工智能的一部分。深度學習通過模擬人的學習活動,達到獲取新知識或技能的目的。本文首先論述了深度學習的理論及實現框架,重點介紹了卷積神經網絡,然后分析了深度學習現階段的應用,最后提出深度學習尚待解決的問題,以期該理論有更長遠的發展。