李開菊 鄭波盡
摘要:深度學習是機器學習研究中一個新的領域,它是機器學習中神經(jīng)網(wǎng)絡的發(fā)展。深度學習的主要目的在于模擬人腦進行分析與學習,希望計算機也能像人腦一樣會學習。本文首先介紹深度學習產(chǎn)生的原因,然后分析深度學習產(chǎn)生的理論依據(jù)。之后簡單介紹深度學習訓練深層神經(jīng)網(wǎng)絡的基本過程,最后總結當前存在的問題以及發(fā)展的方向。
關鍵詞:深度學習;神經(jīng)網(wǎng)絡;機器學習
中圖分類號:TP181 文獻標識碼:A DOI:10.3969/j.issn.1003 6970.2016.05.020
本文著錄格式:李開菊,鄭波盡.淺談深度學習[J].軟件,2016,37(5):81-83
0.引言
現(xiàn)在大多數(shù)分類和回歸學習方法都為淺層結構算法,其局限性在于有限樣本和計算單元情況下對復雜函數(shù)的表示能力有限,針對復雜分類問題其泛化能力受到了一定制約。深度學習模型采用了與神經(jīng)網(wǎng)絡相類似的分層結構,其模型由輸入層、隱藏層(含多層)、輸出層組成的多層神經(jīng)網(wǎng)絡構成,在模型中只有相鄰層節(jié)點之間相互連接,位于同一層的節(jié)點之間相互沒有連接,模型中的每一層都可以看做是一個邏輯回歸模型。深度學習可通過學習一種深層非線性網(wǎng)絡結構,實現(xiàn)復雜函數(shù)逼近,表征輸入數(shù)據(jù)分布式表示,并且具有從少數(shù)樣本中學習到數(shù)據(jù)本質特征的能力。從早期的淺層結構模型到現(xiàn)在的深度學習模型經(jīng)過了將近十幾年的發(fā)展。所以,本文將簡單的介紹深度學習產(chǎn)生的原因以及產(chǎn)生的理論依據(jù),然后介紹深度學習模型的基本訓練過程,最后進行總結以及分析未來的發(fā)展方向。
1.深度學習產(chǎn)生的原因
1.1為了更好的特征提取
機器學習的研究主旨是使用計算機模擬人類的學習活動,它是研究計算機識別現(xiàn)有知識、獲取新知識、不斷改善性能和實現(xiàn)自身完善的方法。雖然機器學習這一領域已經(jīng)發(fā)展了將近幾十年的時間,但是到目前為止仍然存在許多尚未解決的問題。到目前為止,機器學習解決問題的一般思路都是通過傳感器獲取數(shù)據(jù),然后通過對獲取的數(shù)據(jù)進行預處理、特征提取、特征選擇等幾個步驟,最后的部分就是機器學習,其中中間部分也可以概括得稱為特征表達。對一個機器學習算法的準確性有重要影響的是特征表達,當然系統(tǒng)主要的測試和計算工作都耗在這一大部分,但是在實際中這一部分主要靠人工完成,也就是通過人工進行特征的提取。但是,人工特征提取往往需要大量的人力,同時也需要提取者有較強的專業(yè)知識,特征選取的好壞往往與運氣有很大關系,并且需要大量的時間去調節(jié)。就在人們?yōu)榱巳斯ぬ卣魈崛淼牟槐愣鵁罆r,深度學習模型產(chǎn)生了。深度學習能夠克服人工特征選取的困難,它可以實現(xiàn)自動學習特征。由于是自動學習特征,所以深度學習是一種無監(jiān)督學習。
1.2參考人的分層視覺處理系統(tǒng)
1981年諾貝爾醫(yī)學獎的獲得者David Hubel、TorstenWiesel以及Roger Sperry,前兩位科學家通過在貓的后腦上開一個微小的小洞,與此同時向洞里面插入電極,然后將各種各樣而且亮度不同的物體展現(xiàn)在小貓的眼前,而且在展示每個物體時會以不同的角度與位置。通過這種讓小貓瞳孔接受不同類型、不同強弱的刺激來測量神經(jīng)元的活躍程度。通過這個實驗我們了解到當小貓的瞳孔掃描到某物體的邊緣時,被邊緣指向的那個方向的神經(jīng)元狀態(tài)就會被激活,沒有被指向的神經(jīng)元仍然處于抑制狀態(tài)。這個結論為后來發(fā)現(xiàn)人的視覺信息處理系統(tǒng)是分級的起到了激發(fā)作用。同時還得出結論:高層的特征表達是低層特征的不斷抽象組合的結果。那么深度學習模型就參考了人的視覺信息處理系統(tǒng)是分層的這一特點,將原來的淺層模型擴展為現(xiàn)在的深層模型。
2.深度學習產(chǎn)生的理論依據(jù)
2.1淺層結構函數(shù)表示能力的局限性
20世紀80年代末期,人工神經(jīng)網(wǎng)絡的反向傳播算法的出現(xiàn)給機器學習的研究帶來了新的希望,同時也掀起了基于統(tǒng)計模型的機器學習熱浪。經(jīng)過試驗發(fā)現(xiàn),利用BP算法可以讓一個神經(jīng)網(wǎng)絡模型通過大量的訓練樣本學習出規(guī)律,從而可以通過學習到的規(guī)律對未知的數(shù)據(jù)進行分類或者預測。這種通過學習規(guī)律的機器學習方法與原始的人工規(guī)則系統(tǒng)相比表現(xiàn)出了強大的優(yōu)越性。需要注意的是,這時的人工神經(jīng)網(wǎng)絡是一種僅含有一層隱藏層的淺層神經(jīng)網(wǎng)絡。
BP算法簡單的講就是采用迭代的方式訓練整個網(wǎng)絡,由最開始的對模型的參數(shù)隨機設置初始值,對訓練數(shù)據(jù)計算模型的輸出值,然后計算這個輸出值與給定的訓練數(shù)據(jù)的輸出值之間的差值,這個差值的平方的1/2稱為損失函數(shù),我們的目的就是通過梯度下降法去改變前面各層的參數(shù)使得損失函數(shù)最小。雖然BP算法是一種金典的訓練多層網(wǎng)絡的學習算法,但是對僅含有幾層的神經(jīng)網(wǎng)絡就表現(xiàn)的很不理想了。最致命的問題是,BP算法有可能出現(xiàn)局部最小問題??偟膩碚fBP算法存在的問題:
(1)該算法只針對有標簽數(shù)據(jù)訓練,而實際中很多數(shù)據(jù)都是無標簽的,例如大腦就可以通過無標簽數(shù)據(jù)進行學習:
(2)由于梯度越來越小,當達到“0”時,也就意味著參數(shù)的迭代更新將停止,若誤差函數(shù)僅有一個局部最小,那么找到的局部最小就是全局最?。喝粽`差函數(shù)具有多個局部最小值,則不能保證找到的解就是全局最小。
2.2深層結構函數(shù)較淺層結構函數(shù)具有優(yōu)勢
2006年,Geoffrey Hinton教授和他的學生在《科學》上發(fā)表了一篇文章,正是這篇文章的發(fā)表使得深度學習在整個學術界甚至工業(yè)界都成為了關注的焦點。這篇文章主要有兩個觀點:
(1)含有多個隱藏層的神經(jīng)網(wǎng)絡模型與比早期的淺層模型相比具有更優(yōu)異的特征學習能力,同時學習到的特征更能刻畫數(shù)據(jù)的本質,也更有利于數(shù)據(jù)分類以及可視化;
(2)含有多層影藏層的神經(jīng)網(wǎng)絡在訓練上雖有難度,但是可以通過“逐層初始化”的方式來克服。
那么,深度學習的本質就是通過構建一個模型,這個模型包含多個隱藏層,大量的訓練樣本通過這個深層模型,學習一個更有利于分類的特征。與淺層的學習模型相比,深層模型強調的是模型的深度,這里的深度一般指的是隱藏層的深度。同時,深層模型更看重特征學習的重要性。
3.基本訓練過程
對含有多層隱藏層的網(wǎng)絡的所有層進行訓練會得到較高的復雜度。倘若每次只訓練網(wǎng)絡中的一層,那么誤差就會琢層傳遞。由于深度網(wǎng)絡的神經(jīng)元和參數(shù)太多,就會出現(xiàn)嚴重的欠擬合現(xiàn)象。在2006年,hinton提出了一個利用無標簽數(shù)據(jù)建立多層神經(jīng)網(wǎng)絡模型的有效方法,算法的核心思想簡單首先每次只訓練一層網(wǎng)絡,然后對整個網(wǎng)絡進行參數(shù)微調,算法的具體思想如下:
(1)首先每次只訓練一層網(wǎng)絡,從而琢層構建網(wǎng)絡;
(2)直至所有層網(wǎng)絡訓練完以后,對整個網(wǎng)絡進行參數(shù)調優(yōu);
4.總結
深度學習算法自動的提取分類需要低層次或者高層次特征組合。從原始圖像去學習得到它的一個低層次表達,然后在這些低層次表達的基礎上組合構建高層次的表達,然后不斷重復迭代這個過程,最后得到一個比較完整的高層次特征表達。深度學習比傳統(tǒng)的機器學習能夠獲得更優(yōu)的特征表達。由于模型的層次數(shù)量較大,所以模型對大規(guī)模的數(shù)據(jù)也同樣適用。因此對于圖像以及語音具有不明顯特征的問題,深度學習也可以通過大量的訓練數(shù)據(jù)取得更好的效果。當然,深度目前仍有大量工作需要研究。比如,在工程實現(xiàn)上,由于深層神經(jīng)網(wǎng)絡的訓練時間相對較長,那么容易出現(xiàn)過擬合現(xiàn)象。從而使得模型的建模以及推廣能力相對較差,那么如何優(yōu)化訓練算法使得可以在很短的時間內(nèi)達到最優(yōu)解,同時保證模型的推廣性能良好,是目前需要解決的重要問題。另一個值得思考的問題,目前的深度模型要求層內(nèi)無連接,層間有鏈接,那么如果層內(nèi)有鏈接是否會使得模型更容易訓練呢?