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