背景
機(jī)器學(xué)習(xí)(Machine Learning)是一門專門研究計(jì)算機(jī)怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,以獲取新的知識(shí)或技能,重新組織已有的知識(shí)結(jié)構(gòu)使之不斷改善自身的性能的學(xué)科。機(jī)器能否像人類一樣能具有學(xué)習(xí)能力呢?1959年美國(guó)的塞繆爾(Samuel)設(shè)計(jì)了一個(gè)下棋程序,這個(gè)程序具有學(xué)習(xí)能力,它可以在不斷的對(duì)弈中改善自己的棋藝。4年后,這個(gè)程序戰(zhàn)勝了設(shè)計(jì)者本人。又過(guò)了3年,這個(gè)程序戰(zhàn)勝了美國(guó)一個(gè)保持8年之久的常勝不敗的冠軍。這個(gè)程序向人們展示了機(jī)器學(xué)習(xí)的能力,提出了許多令人深思的社會(huì)問(wèn)題與哲學(xué)問(wèn)題。3
基礎(chǔ)概念深度從一個(gè)輸入中產(chǎn)生一個(gè)輸出所涉及的計(jì)算可以通過(guò)一個(gè)流向圖(flow graph)來(lái)表示:流向圖是一種能夠表示計(jì)算的圖,在這種圖中每一個(gè)節(jié)點(diǎn)表示一個(gè)基本的計(jì)算以及一個(gè)計(jì)算的值,計(jì)算的結(jié)果被應(yīng)用到這個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)的值。考慮這樣一個(gè)計(jì)算集合,它可以被允許在每一個(gè)節(jié)點(diǎn)和可能的圖結(jié)構(gòu)中,并定義了一個(gè)函數(shù)族。輸入節(jié)點(diǎn)沒(méi)有父節(jié)點(diǎn),輸出節(jié)點(diǎn)沒(méi)有子節(jié)點(diǎn)。
這種流向圖的一個(gè)特別屬性是深度(depth):從一個(gè)輸入到一個(gè)輸出的最長(zhǎng)路徑的長(zhǎng)度。
傳統(tǒng)的前饋神經(jīng)網(wǎng)絡(luò)能夠被看做擁有等于層數(shù)的深度(比如對(duì)于輸出層為隱層數(shù)加1)。SVMs有深度2(一個(gè)對(duì)應(yīng)于核輸出或者特征空間,另一個(gè)對(duì)應(yīng)于所產(chǎn)生輸出的線性混合)。4
人工智能研究的方向之一,是以所謂 “專家系統(tǒng)” 為代表的,用大量 “如果-就” (If - Then) 規(guī)則定義的,自上而下的思路。人工神經(jīng)網(wǎng)絡(luò) ( Artifical Neural Network),標(biāo)志著另外一種自下而上的思路。神經(jīng)網(wǎng)絡(luò)沒(méi)有一個(gè)嚴(yán)格的正式定義。它的基本特點(diǎn),是試圖模仿大腦的神經(jīng)元之間傳遞,處理信息的模式。5
解決問(wèn)題需要使用深度學(xué)習(xí)解決的問(wèn)題有以下的特征:
深度不足會(huì)出現(xiàn)問(wèn)題。
人腦具有一個(gè)深度結(jié)構(gòu)。
認(rèn)知過(guò)程逐層進(jìn)行,逐步抽象。
深度不足會(huì)出現(xiàn)問(wèn)題在許多情形中深度2就足夠表示任何一個(gè)帶有給定目標(biāo)精度的函數(shù)。但是其代價(jià)是:圖中所需要的節(jié)點(diǎn)數(shù)(比如計(jì)算和參數(shù)數(shù)量)可能變的非常大。理論結(jié)果證實(shí)那些事實(shí)上所需要的節(jié)點(diǎn)數(shù)隨著輸入的大小指數(shù)增長(zhǎng)的函數(shù)族是存在的。
我們可以將深度架構(gòu)看做一種因子分解。大部分隨機(jī)選擇的函數(shù)不能被有效地表示,無(wú)論是用深的或者淺的架構(gòu)。但是許多能夠有效地被深度架構(gòu)表示的卻不能被用淺的架構(gòu)高效表示。一個(gè)緊的和深度的表示的存在意味著在潛在的可被表示的函數(shù)中存在某種結(jié)構(gòu)。如果不存在任何結(jié)構(gòu),那將不可能很好地泛化。
大腦有一個(gè)深度架構(gòu)
例如,視覺(jué)皮質(zhì)得到了很好的研究,并顯示出一系列的區(qū)域,在每一個(gè)這種區(qū)域中包含一個(gè)輸入的表示和從一個(gè)到另一個(gè)的信號(hào)流(這里忽略了在一些層次并行路徑上的關(guān)聯(lián),因此更復(fù)雜)。這個(gè)特征層次的每一層表示在一個(gè)不同的抽象層上的輸入,并在層次的更上層有著更多的抽象特征,他們根據(jù)低層特征定義。
需要注意的是大腦中的表示是在中間緊密分布并且純局部:他們是稀疏的:1%的神經(jīng)元是同時(shí)活動(dòng)的。給定大量的神經(jīng)元,仍然有一個(gè)非常高效地(指數(shù)級(jí)高效)表示。
認(rèn)知過(guò)程逐層進(jìn)行,逐步抽象
人類層次化地組織思想和概念;
人類首先學(xué)習(xí)簡(jiǎn)單的概念,然后用他們?nèi)ケ硎靖橄蟮模?/p>
工程師將任務(wù)分解成多個(gè)抽象層次去處理;
學(xué)習(xí)/發(fā)現(xiàn)這些概念(知識(shí)工程由于沒(méi)有反省而失敗?)是很美好的。對(duì)語(yǔ)言可表達(dá)的概念的反省也建議我們一個(gè)稀疏的表示:僅所有可能單詞/概念中的一個(gè)小的部分是可被應(yīng)用到一個(gè)特別的輸入(一個(gè)視覺(jué)場(chǎng)景)。64
基本思想
假設(shè)我們有一個(gè)系統(tǒng)S,它有n層(S1,…Sn),它的輸入是I,輸出是O,形象地表示為: I =>S1=>S2=>…..=>Sn => O,如果輸出O等于輸入I,即輸入I經(jīng)過(guò)這個(gè)系統(tǒng)變化之后沒(méi)有任何的信息損失,設(shè)處理a信息得到b,再對(duì)b處理得到c,那么可以證明:a和c的互信息不會(huì)超過(guò)a和b的互信息。這表明信息處理不會(huì)增加信息,大部分處理會(huì)丟失信息。保持了不變,這意味著輸入I經(jīng)過(guò)每一層Si都沒(méi)有任何的信息損失,即在任何一層Si,它都是原有信息(即輸入I)的另外一種表示?,F(xiàn)在回到主題Deep Learning,需要自動(dòng)地學(xué)習(xí)特征,假設(shè)我們有一堆輸入I(如一堆圖像或者文本),假設(shè)設(shè)計(jì)了一個(gè)系統(tǒng)S(有n層),通過(guò)調(diào)整系統(tǒng)中參數(shù),使得它的輸出仍然是輸入I,那么就可以自動(dòng)地獲取得到輸入I的一系列層次特征,即S1,…, Sn。3
對(duì)于深度學(xué)習(xí)來(lái)說(shuō),其思想就是對(duì)堆疊多個(gè)層,也就是說(shuō)這一層的輸出作為下一層的輸入。通過(guò)這種方式,就可以實(shí)現(xiàn)對(duì)輸入信息進(jìn)行分級(jí)表達(dá)了。3
另外,前面是假設(shè)輸出嚴(yán)格地等于輸入,這個(gè)限制太嚴(yán)格,可以略微地放松這個(gè)限制,例如只要使得輸入與輸出的差別盡可能地小即可,這個(gè)放松會(huì)導(dǎo)致另外一類不同的Deep Learning方法。上述就是Deep Learning的基本思想。3
把學(xué)習(xí)結(jié)構(gòu)看作一個(gè)網(wǎng)絡(luò),則深度學(xué)習(xí)的核心思路如下:
①無(wú)監(jiān)督學(xué)習(xí)用于每一層網(wǎng)絡(luò)的pre-train;
②每次用無(wú)監(jiān)督學(xué)習(xí)只訓(xùn)練一層,將其訓(xùn)練結(jié)果作為其高一層的輸入;
③用自頂而下的監(jiān)督算法去調(diào)整所有層
主要技術(shù)線性代數(shù)、概率和信息論
欠擬合、過(guò)擬合、正則化
最大似然估計(jì)和貝葉斯統(tǒng)計(jì)
隨機(jī)梯度下降
監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí)
深度前饋網(wǎng)絡(luò)、代價(jià)函數(shù)和反向傳播
正則化、稀疏編碼和dropout
自適應(yīng)學(xué)習(xí)算法
卷積神經(jīng)網(wǎng)絡(luò)
循環(huán)神經(jīng)網(wǎng)絡(luò)
遞歸神經(jīng)網(wǎng)絡(luò)
深度神經(jīng)網(wǎng)絡(luò)和深度堆疊網(wǎng)絡(luò)
LSTM長(zhǎng)短時(shí)記憶
主成分分析
正則自動(dòng)編碼器
表征學(xué)習(xí)
蒙特卡洛
受限波茲曼機(jī)
深度置信網(wǎng)絡(luò)
softmax回歸、決策樹和聚類算法
KNN和SVM
生成對(duì)抗網(wǎng)絡(luò)和有向生成網(wǎng)絡(luò)
機(jī)器視覺(jué)和圖像識(shí)別
自然語(yǔ)言處理
語(yǔ)音識(shí)別和機(jī)器翻譯
有限馬爾科夫
動(dòng)態(tài)規(guī)劃
梯度策略算法
增強(qiáng)學(xué)習(xí)(Q-learning)
轉(zhuǎn)折點(diǎn)
2006年前,嘗試訓(xùn)練深度架構(gòu)都失敗了:訓(xùn)練一個(gè)深度有監(jiān)督前饋神經(jīng)網(wǎng)絡(luò)趨向于產(chǎn)生壞的結(jié)果(同時(shí)在訓(xùn)練和測(cè)試誤差中),然后將其變淺為1(1或者2個(gè)隱層)。
2006年的3篇論文改變了這種狀況,由Hinton的革命性的在深度信念網(wǎng)(Deep Belief Networks, DBNs)上的工作所引領(lǐng):
Hinton, G. E., Osindero, S. and Teh, Y.,A fast learning algorithm for deep belief nets.Neural Computation 18:1527-1554, 2006
Yoshua Bengio, Pascal Lamblin, Dan Popovici and Hugo Larochelle,Greedy LayerWise Training of Deep Networks, in J. Platt et al. (Eds), Advances in Neural Information Processing Systems 19 (NIPS 2006), pp. 153-160, MIT Press, 2007
Marc’Aurelio Ranzato, Christopher Poultney, Sumit Chopra and Yann LeCun Efficient Learning of Sparse Representations with an Energy-Based Model, in J. Platt et al. (Eds), Advances in Neural Information Processing Systems (NIPS 2006), MIT Press, 2007
在這三篇論文中以下主要原理被發(fā)現(xiàn):
表示的無(wú)監(jiān)督學(xué)習(xí)被用于(預(yù))訓(xùn)練每一層;
在一個(gè)時(shí)間里的一個(gè)層次的無(wú)監(jiān)督訓(xùn)練,接著之前訓(xùn)練的層次。在每一層學(xué)習(xí)到的表示作為下一層的輸入;
用有監(jiān)督訓(xùn)練來(lái)調(diào)整所有層(加上一個(gè)或者更多的用于產(chǎn)生預(yù)測(cè)的附加層);
DBNs在每一層中利用用于表示的無(wú)監(jiān)督學(xué)習(xí)RBMs。Bengio et al paper 探討和對(duì)比了RBMs和auto-encoders(通過(guò)一個(gè)表示的瓶頸內(nèi)在層預(yù)測(cè)輸入的神經(jīng)網(wǎng)絡(luò))。Ranzato et al paper在一個(gè)convolutional架構(gòu)的上下文中使用稀疏auto-encoders(類似于稀疏編碼)。Auto-encoders和convolutional架構(gòu)將在以后的課程中講解。
從2006年以來(lái),大量的關(guān)于深度學(xué)習(xí)的論文被發(fā)表。
成功應(yīng)用1、計(jì)算機(jī)視覺(jué)
ImageNet Classification with Deep Convolutional Neural Networks, Alex Krizhevsky, Ilya Sutskever, Geoffrey E Hinton, NIPS 2012.
Learning Hierarchical Features for Scene Labeling, Clement Farabet, Camille Couprie, Laurent Najman and Yann LeCun, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013.
Learning Convolutional Feature Hierarchies for Visual Recognition, Koray Kavukcuoglu, Pierre Sermanet, Y-Lan Boureau, Karol Gregor, Micha?l Mathieu and Yann LeCun, Advances in Neural Information Processing Systems (NIPS 2010), 23, 2010.
2、語(yǔ)音識(shí)別
微軟研究人員通過(guò)與hinton合作,首先將RBM和DBN引入到語(yǔ)音識(shí)別聲學(xué)模型訓(xùn)練中,并且在大詞匯量語(yǔ)音識(shí)別系統(tǒng)中獲得巨大成功,使得語(yǔ)音識(shí)別的錯(cuò)誤率相對(duì)減低30%。但是,DNN還沒(méi)有有效的并行快速算法,很多研究機(jī)構(gòu)都是在利用大規(guī)模數(shù)據(jù)語(yǔ)料通過(guò)GPU平臺(tái)提高DNN聲學(xué)模型的訓(xùn)練效率。
在國(guó)際上,IBM、google等公司都快速進(jìn)行了DNN語(yǔ)音識(shí)別的研究,并且速度飛快。
國(guó)內(nèi)方面,阿里巴巴,科大訊飛、百度、中科院自動(dòng)化所等公司或研究單位,也在進(jìn)行深度學(xué)習(xí)在語(yǔ)音識(shí)別上的研究。
3、自然語(yǔ)言處理等其他領(lǐng)域
很多機(jī)構(gòu)在開展研究,2013年Tomas Mikolov,Kai Chen,Greg Corrado,Jeffrey Dean發(fā)表論文Efficient Estimation of Word Representations in Vector Space建立word2vector模型,與傳統(tǒng)的詞袋模型(bag of words)相比,word2vector能夠更好地表達(dá)語(yǔ)法信息。7深度學(xué)習(xí)在自然語(yǔ)言處理等領(lǐng)域主要應(yīng)用于機(jī)器翻譯以及語(yǔ)義挖掘等方面。