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