版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、深度學習及其應用,目錄,1. 機器學習概述,2.深度學習,概述,什么是機器學習計算機程序如何隨著經(jīng)驗積累自動提高性能系統(tǒng)自我改進的過程成功應用學習識別人類講話學習駕駛車輛學習分類新的天文結構學習對弈西洋雙陸棋涉及的相關學科人工智能計算復雜性理論控制論信息論統(tǒng)計學,4,學習問題的標準描述,定義如果一個計算機針對某類任務T的用P衡量的性能根據(jù)經(jīng)驗E來自我完善,那么我們稱這個計算機程序在從經(jīng)驗E中學習,針對某類任務T
2、,它的性能用P來衡量。西洋跳棋學習問題的解釋T,參與比賽E,和自己下棋P,比賽成績(或贏棋能力,擊敗對手的百分比),具體學習方法,基于符號和邏輯表示的概念學習決策樹人工神經(jīng)網(wǎng)絡統(tǒng)計和估計理論的基礎概念貝葉斯理論計算學習基于實例的學習遺傳算法規(guī)則學習基于解釋的學習近似知識與現(xiàn)有數(shù)據(jù)的結合增強學習支持向量機,深度學習,1. 概述、背景,2.人腦視覺機理、關于特征,3. Deep Learning 基本思想、淺
3、層學習,4.深度學習與神經(jīng)網(wǎng)絡(Neural Network),5. DP的常用模型與方法,6.Dp的總結,7. Dp的未來,8.DP的問題,概述,Artificial Intelligence(人工智能)是人類最美好的夢想之一。圖靈(計算機和人工智能的鼻祖)在 1950 年的論文里,提出圖靈試驗的設想,即,隔墻對話,你將不知道與你談話的,是人還是電腦。這無疑給計算機,尤其是人工智能,預設了一個很高的期望值。半個世紀過去了,人工智能
4、的進展,遠遠沒有達到圖靈試驗的標準。這不僅讓多年翹首以待的人們,心灰意冷,認為人工智能是忽悠,相關領域是“偽科學”。自 2006 年以來,機器學習領域,取得了突破性的進展。圖靈試驗,至少不是那么可望而不可及了。至于技術手段,不僅僅依賴于云計算對大數(shù)據(jù)的并行處理能力,而且依賴于算法。這個算法就是,Deep Learning。借助于 Deep Learning 算法,人類終于找到了如何處理“抽象概念”這個亙古難題的方法。,概述,2006年
5、的3篇關于深度學習的突破性論文:Hinton, G. E., Osindero, S. and Teh, Y.,A fast learning algorithm for deep belief nets.Neural Computation 18:1527-1554, 2006Yoshua Bengio, Pascal Lamblin, Dan Popovici and Hugo Larochelle,Greedy LayerWi
6、se Training of Deep Networks, in J. Platt et al. (Eds), Advances in Neural Information Processing Systems 19 (NIPS 2006), pp. 153-160, MIT Press, 2007Marc’Aurelio Ranzato, Christopher Poultney, Sumit Chopra and Yann LeC
7、un 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,概述,2012年6月,《紐約時報》披露了Google Brain項目,吸引了公
8、眾的廣泛關注。這個項目是由著名的斯坦福大學的機器學習教授Andrew Ng和在大規(guī)模計算機系統(tǒng)方面的世界頂尖專家JeffDean共同主導,用16000個CPU Core的并行計算平臺訓練一種稱為“深度神經(jīng)網(wǎng)絡”(DNN,Deep Neural Networks)的機器學習模型(內(nèi)部共有10億個節(jié)點。這一網(wǎng)絡自然是不能跟人類的神經(jīng)網(wǎng)絡相提并論的。要知道,人腦中可是有150多億個神經(jīng)元,互相連接的節(jié)點也就是突觸數(shù)更是如銀河沙數(shù)。曾經(jīng)有人估算
9、過,如果將一個人的大腦中所有神經(jīng)細胞的軸突和樹突依次連接起來,并拉成一根直線,可從地球連到月亮,再從月亮返回地球),在語音識別和圖像識別等領域獲得了巨大的成功。,概述,2012年11月,微軟在中國天津的一次活動上公開演示了一個全自動的同聲傳譯系統(tǒng),講演者用英文演講,后臺的計算機一氣呵成自動完成語音識別、英中機器翻譯和中文語音合成,效果非常流暢。據(jù)報道,后面支撐的關鍵技術也是深度學習。2013年1月,在百度年會上,創(chuàng)始人兼CEO李彥宏高
10、調(diào)宣布要成立百度研究院,其中第一個成立的就是“深度學習研究所” 。2013年3月谷歌收購了加拿大神經(jīng)網(wǎng)絡方面的創(chuàng)業(yè)公司DNNresearch,DNNresearch公司是由多倫多大學教授Geoffrey Hinton與他的兩個研究生Alex Krizhevsky和Ilya Sutskever于去年成立,由于谷歌在本次收購中沒有獲得任何實際的產(chǎn)品或服務,所以本次收購實質(zhì)上屬于人才性收購,收購的主體實為了這三人團隊。,概述,為什么擁有大數(shù)
11、據(jù)的互聯(lián)網(wǎng)公司爭相投入大量資源研發(fā)深度學習技術。聽起來感覺deep learning很牛那樣。那什么是deep learning?為什么有deep learning?它是怎么來的?又能干什么呢?目前存在哪些困難呢?這些問題的簡答都需要慢慢來。咱們先來了解下機器學習(人工智能的核心)的背景。,背景,機器學習(Machine Learning)是一門專門研究計算機怎樣模擬或?qū)崿F(xiàn)人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之
12、不斷改善自身的性能的學科。機器能否像人類一樣能具有學習能力呢?1959年美國的塞繆爾(Samuel)設計了一個下棋程序,這個程序具有學習能力,它可以在不斷的對弈中改善自己的棋藝。4年后,這個程序戰(zhàn)勝了設計者本人。又過了3年,這個程序戰(zhàn)勝了美國一個保持8年之久的常勝不敗的冠軍。這個程序向人們展示了機器學習的能力,提出了許多令人深思的社會問題與哲學問題,背景,在圖像識別、語音識別、天氣預測、基因表達等方面。目前我們通過機器學習去解決這些問
13、題的思路都是這樣的:,從開始的通過傳感器來獲得數(shù)據(jù)。然后經(jīng)過預處理、特征提取、特征選擇,再到推理、預測或者識別。最后一個部分,也就是機器學習的部分,絕大部分的工作是在這方面做的。中間的三部分,概括起來就是特征表達。良好的特征表達,對最終算法的準確性起了非常關鍵的作用,而且系統(tǒng)主要的計算和測試工作都耗在這一大部分。但這塊實際中一般都是人工完成的。,背景,截止現(xiàn)在,也出現(xiàn)了不少NB的特征(好的特征應具有不變性(大小、尺度和旋轉(zhuǎn)等)和可區(qū)分
14、性):例如Sift的出現(xiàn),是局部圖像特征描述子研究領域一項里程碑式的工作。由于SIFT對尺度、旋轉(zhuǎn)以及一定視角和光照變化等圖像變化都具有不變性,并且SIFT具有很強的可區(qū)分性。但它也不是萬能的。,背景,手工地選取特征是一件非常費力、啟發(fā)式(需要專業(yè)知識)的方法,而且它的調(diào)節(jié)需要大量的時間。既然手工選取特征不太好,那么能不能自動地學習一些特征呢?答案是能!Deep Learning就是用來干這個事情的,看它的一個別名Unsupervise
15、d Feature Learning,就可以顧名思義了,Unsupervised的意思就是不要人參與特征的選取過程。那它是怎么學習的呢?怎么知道哪些特征好哪些不好呢?我們說機器學習是一門專門研究計算機怎樣模擬或?qū)崿F(xiàn)人類的學習行為的學科。好,那我們?nèi)说囊曈X系統(tǒng)是怎么工作的呢?,人腦視覺機理,1981 年的諾貝爾醫(yī)學獎,頒發(fā)給了 David Hubel(出生于加拿大的美國神經(jīng)生物學家) 和TorstenWiesel,以及 Roger Sp
16、erry。前兩位的主要貢獻,是“發(fā)現(xiàn)了視覺系統(tǒng)的信息處理”:可視皮層是分級的:,人腦視覺機理,1958 年,David Hubel 等,研究瞳孔區(qū)域與大腦皮層神經(jīng)元的對應關系。他們在貓的后腦頭骨上,開了一個3 毫米的小洞,向洞里插入電極,測量神經(jīng)元的活躍程度。他們在小貓的眼前,展現(xiàn)各種形狀、各種亮度的物體。并且,在展現(xiàn)每一件物體時,還改變物體放置的位置和角度。他們期望通過這個辦法,讓小貓瞳孔感受不同類型、不同強弱的刺激。目的是去證明一
17、個猜測。位于后腦皮層的不同視覺神經(jīng)元,與瞳孔所受刺激之間,存在某種對應關系。一旦瞳孔受到某一種刺激,后腦皮層的某一部分神經(jīng)元就會活躍。經(jīng)歷了很多天反復的枯燥的試驗,同時犧牲了若干只可憐的小貓,David Hubel 發(fā)現(xiàn)了一種被稱為“方向選擇性細胞”的神經(jīng)元細胞。當瞳孔發(fā)現(xiàn)了眼前的物體的邊緣,而且這個邊緣指向某個方向時,這種神經(jīng)元細胞就會活躍。,人腦視覺機理,這個發(fā)現(xiàn)激發(fā)了人們對于神經(jīng)系統(tǒng)的進一步思考。神經(jīng)-中樞-大腦的工作過程,或許
18、是一個不斷迭代、不斷抽象的過程。這里的關鍵詞有兩個,一個是抽象,一個是迭代。從原始信號,做低級抽象,逐漸向高級抽象迭代。人類的邏輯思維,經(jīng)常使用高度抽象的概念。,人腦視覺機理,例如,從原始信號攝入開始(瞳孔攝入像素 Pixels),接著做初步處理(大腦皮層某些細胞發(fā)現(xiàn)邊緣和方向),然后抽象(大腦判定,眼前的物體的形狀,是圓形的),然后進一步抽象(大腦進一步判定該物體是只氣球)。,人腦視覺機理,這個生理學的發(fā)現(xiàn),促成了計算機人工智能,在
19、四十年后的突破性發(fā)展??偟膩碚f,人的視覺系統(tǒng)的信息處理是分級的。從低級的V1區(qū)提取邊緣特征,再到V2區(qū)的形狀或者目標的部分等,再到更高層,整個目標、目標的行為等。也就是說高層的特征是低層特征的組合,從低層到高層的特征表示越來越抽象,越來越能表現(xiàn)語義或者意圖。而抽象層面越高,存在的可能猜測就越少,就越利于分類。,人腦視覺機理,提到了關鍵詞:分層。而Deep learning的deep是不是就表示我存在多少層,也就是多深呢?沒錯。那Dee
20、p learning是如何借鑒這個過程的呢?畢竟是歸于計算機來處理,面對的一個問題就是怎么對這個過程建模?因為我們要學習的是特征的表達,那么關于特征,或者說關于這個層級特征,我們需要了解地更深入點。所以在說Deep Learning之前,我們有必要再啰嗦下特征,關于特征,特征是機器學習系統(tǒng)的原材料,對最終模型的影響是毋庸置疑的。如果數(shù)據(jù)被很好的表達成了特征,通常線性模型就能達到滿意的精度。那對于特征,我們需要考慮什么呢?,1、特征表示
21、的粒度,學習算法在一個什么粒度上的特征表示,才有能發(fā)揮作用?就一個圖片來說,像素級的特征根本沒有價值。例如下面的摩托車,從像素級別,根本得不到任何信息,其無法進行摩托車和非摩托車的區(qū)分。而如果特征是一個具有結構性的時候,比如是否具有車把手(handle),是否具有車輪(wheel),就很容易把摩托車和非摩托車區(qū)分,學習算法才能發(fā)揮作用。,2、初級(淺層)特征表示,既然像素級的特征表示方法沒有作用,那怎樣的表示才有用呢?1995 年前后
22、,David Field 試圖同時用生理學和計算機的手段,雙管齊下,研究視覺問題。 他們收集了很多黑白風景照片,從這些照片中,提取出400個小碎片,每個照片碎片的尺寸均為 16x16 像素,不妨把這400個碎片標記為 S[i], i = 0,.. 399。接下來,再從這些黑白風景照片中,隨機提取另一個碎片,尺寸也是 16x16 像素,不妨把這個碎片標記為 T。他們提出的問題是,如何從這400個碎片中,選取一組碎
23、片,S[k], 通過疊加的辦法,合成出一個新的碎片,而這個新的碎片,應當與隨機選擇的目標碎片 T,盡可能相似,同時,S[k] 的數(shù)量盡可能少。用數(shù)學的語言來描述,就是: Sum_k (a[k] * S[k]) --> T, 其中 a[k] 是在疊加碎片 S[k] 時的權重系數(shù)。,2、初級(淺層)特征表示,為解決這個問題,David Field 發(fā)明了一個算法,稀疏編碼(S
24、parse Coding)。稀疏編碼是一個重復迭代的過程,每次迭代分兩步:1)選擇一組 S[k],然后調(diào)整 a[k],使得Sum_k (a[k] * S[k]) 最接近 T。2)固定住 a[k],在 400 個碎片中,選擇其它更合適的碎片S’[k],替代原先的 S[k],使得Sum_k (a[k] * S’[k]) 最接近 T。經(jīng)過幾次迭代后,最佳的 S[k] 組合,被遴選出來了。令人驚奇的是,被選中的 S[k],基本上都是照片
25、上不同物體的邊緣線,這些線段形狀相似,區(qū)別在于方向。David Field 的算法結果,與 殺貓者David Hubel 的生理發(fā)現(xiàn),不謀而合!,2、初級(淺層)特征表示,也就是說,復雜圖形,往往由一些基本結構組成。比如下圖:一個圖可以通過用64種正交的edges(可以理解成正交的基本結構)來線性表示。比如樣例的x可以用1-64個edges中的三個按照0.8,0.3,0.5的權重調(diào)和而成。而其他基本edge沒有貢獻,因此均為0,2、初
26、級(淺層)特征表示,另外,大牛們還發(fā)現(xiàn),不僅圖像存在這個規(guī)律,聲音也存在。他們從未標注的聲音中發(fā)現(xiàn)了20種基本的聲音結構,其余的聲音可以由這20種基本結構合成。(同聲傳譯的秘訣之一),3、結構性特征表示,小塊的圖形可以由基本edge構成,更結構化,更復雜的,具有概念性的圖形如何表示呢?這就需要更高層次的特征表示,比如V2,V4。因此V1看像素級是像素級。V2看V1是像素級,這個是層次遞進的,高層表達由底層表達的組合而成。專業(yè)點說就是基
27、basis。V1取提出的basis是邊緣,然后V2層是V1層這些basis的組合,這時候V2區(qū)得到的又是高一層的basis。即上一層的basis組合的結果,上上層又是上一層的組合basis……(HHT有類似之處),3、結構性特征表示,直觀上說,就是找到make sense的小patch再將其進行combine,就得到了上一層的feature,遞歸地向上learning feature。,3、結構性特征表示,在不同object上做trai
28、ning時,所得的edge basis 是非常相似的,但object parts和models 就會completely different了(那咱們分辨car或者face是不是容易多了):,3、結構性特征表示,一個人在看一個doc的時候,眼睛看到的是word,由這些word在大腦里自動切詞形成term,在按照概念組織的方式,先驗的學習,得到topic,然后再進行高層次的learning。,研表究明,漢字的序順并不定一能影閱響讀,比如當
29、你看完這句話后,才發(fā)這現(xiàn)里的天驚大秘密。,下面用5秒種看一段文字。,4、需要有多少個特征?,我們知道需要層次的特征構建,由淺入深,但每一層該有多少個特征呢?任何一種方法,特征越多,給出的參考信息就越多,準確性會得到提升。但特征多意味著計算復雜,探索的空間大,可以用來訓練的數(shù)據(jù)在每個特征上就會稀疏,都會帶來各種問題,并不一定特征越多越好,好了,到了這一步,終于可以聊到Deep learning了。上面我們聊到為什么會有Deep lear
30、ning(讓機器自動學習良好的特征,而免去人工選取過程。還有參考人的分層視覺處理系統(tǒng)),我們得到一個結論就是Deep learning需要多層來獲得更抽象的特征表達。那么多少層才合適呢?用什么架構來建模呢?怎么進行非監(jiān)督訓練呢?,Deep Learning 基本思想,假設我們有一個系統(tǒng)S,它有n層(S1,…Sn),它的輸入是I,輸出是O,形象地表示為: I =>S1=>S2=>…..=>Sn => O,如果
31、輸出O等于輸入I,即輸入I經(jīng)過這個系統(tǒng)變化之后沒有任何的信息損失(呵呵,大牛說,這是不可能的。信息論中有個“信息逐層丟失”的說法(信息處理不等式),,Deep Learning 基本思想,設處理a信息得到b,再對b處理得到c,那么可以證明:a和c的互信息不會超過a和b的互信息。這表明信息處理不會增加信息,大部分處理會丟失信息。當然了,如果丟掉的是沒用的信息那多好?。?,保持了不變,這意味著輸入I經(jīng)過每一層Si都沒有任何的信息損失,即在任何
32、一層Si,它都是原有信息(即輸入I)的另外一種表示?,F(xiàn)在回到我們的主題Deep Learning,我們需要自動地學習特征,假設我們有一堆輸入I(如一堆圖像或者文本),假設我們設計了一個系統(tǒng)S(有n層),我們通過調(diào)整系統(tǒng)中參數(shù),使得它的輸出仍然是輸入I,那么我們就可以自動地獲取得到輸入I的一系列層次特征,即S1,…, Sn。,Deep Learning 基本思想,對于深度學習來說,其思想就是對堆疊多個層,也就是說這一層的輸出作為下一層的
33、輸入。通過這種方式,就可以實現(xiàn)對輸入信息進行分級表達了。另外,前面是假設輸出嚴格地等于輸入,這個限制太嚴格,我們可以略微地放松這個限制,例如我們只要使得輸入與輸出的差別盡可能地小即可,這個放松會導致另外一類不同的Deep Learning方法。上述就是Deep Learning的基本思想,淺層學習(Shallow Learning)和深度學習(Deep Learning),淺層學習是機器學習的第一次浪潮。20世紀80年代末期,用于人
34、工神經(jīng)網(wǎng)絡的反向傳播算法(也叫Back Propagation算法或者BP算法)的發(fā)明,給機器學習帶來了希望,掀起了基于統(tǒng)計模型的機器學習熱潮。這個熱潮一直持續(xù)到今天。人們發(fā)現(xiàn),利用BP算法可以讓一個人工神經(jīng)網(wǎng)絡模型從大量訓練樣本中學習統(tǒng)計規(guī)律,從而對未知事件做預測。這種基于統(tǒng)計的機器學習方法比起過去基于人工規(guī)則的系統(tǒng),在很多方面顯出優(yōu)越性。這個時候的人工神經(jīng)網(wǎng)絡,雖也被稱作多層感知機(Multi-layer Perceptron),但
35、實際是種只含有一層隱層節(jié)點的淺層模型。,淺層學習(Shallow Learning)和深度學習(Deep Learning),淺層學習是機器學習的第一次浪潮。 20世紀90年代,各種各樣的淺層機器學習模型相繼被提出,例如支撐向量機(SVM,Support Vector Machines)、 Boosting、最大熵方法(如LR,Logistic Regression)等。這些模型的結構基本上可以看成帶有一層隱層節(jié)點(如SVM
36、、Boosting),或沒有隱層節(jié)點(如LR)。這些模型無論是在理論分析還是應用中都獲得了巨大的成功。相比之下,由于理論分析的難度大,訓練方法又需要很多經(jīng)驗和技巧,這個時期淺層人工神經(jīng)網(wǎng)絡反而相對沉寂。,淺層學習(Shallow Learning)和深度學習(Deep Learning),深度學習是機器學習的第二次浪潮。2006年,加拿大多倫多大學教授、機器學習領域的泰斗Geoffrey Hinton和他的學生RuslanSalakh
37、utdinov在《科學》上發(fā)表了一篇文章,開啟了深度學習在學術界和工業(yè)界的浪潮。這篇文章有兩個主要觀點:1)多隱層的人工神經(jīng)網(wǎng)絡具有優(yōu)異的特征學習能力,學習得到的特征對數(shù)據(jù)有更本質(zhì)的刻畫,從而有利于可視化或分類;2)深度神經(jīng)網(wǎng)絡在訓練上的難度,可以通過“逐層初始化”(layer-wise pre-training)來有效克服,在這篇文章中,逐層初始化是通過無監(jiān)督學習實現(xiàn)的。,淺層學習(Shallow Learning)和深度學習(D
38、eep Learning),深度學習是機器學習的第二次浪潮。當前多數(shù)分類、回歸等學習方法為淺層結構算法,其局限性在于有限樣本和計算單元情況下對復雜函數(shù)的表示能力有限,針對復雜分類問題其泛化能力受到一定制約。深度學習可通過學習一種深層非線性網(wǎng)絡結構,實現(xiàn)復雜函數(shù)逼近,表征輸入數(shù)據(jù)分布式表示,并展現(xiàn)了強大的從少數(shù)樣本集中學習數(shù)據(jù)集本質(zhì)特征的能力。(多層的好處是可以用較少的參數(shù)表示復雜的函數(shù)),淺層學習(Shallow Learning)和
39、深度學習(Deep Learning),深度學習的實質(zhì),是通過構建具有很多隱層的機器學習模型和海量的訓練數(shù)據(jù),來學習更有用的特征,從而最終提升分類或預測的準確性。因此,“深度模型”是手段,“特征學習”是目的。區(qū)別于傳統(tǒng)的淺層學習,深度學習的不同在于:1)強調(diào)了模型結構的深度,通常有5層、6層,甚至10多層的隱層節(jié)點;2)明確突出了特征學習的重要性,也就是說,通過逐層特征變換,將樣本在原空間的特征表示變換到一個新特征空間,從而使分類或
40、預測更加容易。與人工規(guī)則構造特征的方法相比,利用大數(shù)據(jù)來學習特征,更能夠刻畫數(shù)據(jù)的豐富內(nèi)在信息。,Deep learning與Neural Network,深度學習是機器學習研究中的一個新的領域,其動機在于建立、模擬人腦進行分析學習的神經(jīng)網(wǎng)絡,它模仿人腦的機制來解釋數(shù)據(jù),例如圖像,聲音和文本。深度學習是無監(jiān)督學習的一種。深度學習的概念源于人工神經(jīng)網(wǎng)絡的研究。含多隱層的多層感知器就是一種深度學習結構。深度學習通過組合低層特征形成更加抽
41、象的高層表示屬性類別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。,Deep learning與Neural Network,Deep learning本身算是machine learning的一個分支,簡單可以理解為neural network的發(fā)展。大約二三十年前,neural network曾經(jīng)是ML領域特別火熱的一個方向,但是后來確慢慢淡出了,原因包括以下幾個方面:1)比較容易過擬合,參數(shù)比較難tune,而且需要不少trick;2)訓
42、練速度比較慢,在層次比較少(小于等于3)的情況下效果并不比其它方法更優(yōu);所以中間有大約20多年的時間,神經(jīng)網(wǎng)絡被關注很少,這段時間基本上是SVM和boosting算法的天下。但是,一個癡心的老先生Hinton,他堅持了下來,并最終(和其它人一起B(yǎng)engio、Yann.lecun等)提成了一個實際可行的deep learning框架。,Deep learning與Neural Network,Deep learning與傳統(tǒng)的神經(jīng)網(wǎng)絡之
43、間有相同的地方也有很多不同。二者的相同在于deep learning采用了神經(jīng)網(wǎng)絡相似的分層結構,系統(tǒng)由包括輸入層、隱層(多層)、輸出層組成的多層網(wǎng)絡,只有相鄰層節(jié)點之間有連接,同一層以及跨層節(jié)點之間相互無連接;這種分層結構,是比較接近人類大腦的結構的。,Deep learning與Neural Network,為了克服神經(jīng)網(wǎng)絡訓練中的問題,DL采用了與神經(jīng)網(wǎng)絡很不同的訓練機制。傳統(tǒng)神經(jīng)網(wǎng)絡中,采用的是back propagation
44、的方式進行,簡單來講就是采用迭代的算法來訓練整個網(wǎng)絡,隨機設定初值,計算當前網(wǎng)絡的輸出,然后根據(jù)當前輸出和label之間的差去改變前面各層的參數(shù),直到收斂(整體是一個梯度下降法)。deep learning整體上是一個layer-wise(分層計算)的訓練機制。這樣做的原因是因為,如果采用back propagation的機制,對于一個deep network(7層以上),殘差傳播到最前面的層已經(jīng)變得太小,出現(xiàn)所謂的gradient
45、diffusion(梯度擴散)。這個問題我們接下來討論。,Deep learning訓練過程,如果對所有層同時訓練,時間復雜度會太高;如果每次訓練一層,偏差就會逐層傳遞。這會面臨跟上面監(jiān)督學習中相反的問題,會嚴重欠擬合(因為深度網(wǎng)絡的神經(jīng)元和參數(shù)太多了)。2006年,hinton提出了在非監(jiān)督數(shù)據(jù)上建立多層神經(jīng)網(wǎng)絡的一個有效方法,簡單的說,分為兩步,一是每次訓練一層網(wǎng)絡,二是調(diào)優(yōu),Deep learning訓練過程,deep lear
46、ning訓練過程具體如下:1)使用自下上升非監(jiān)督學習(就是從底層開始,一層一層的往頂層訓練):采用無標定數(shù)據(jù)(有標定數(shù)據(jù)也可)分層訓練各層參數(shù),這一步可以看作是一個無監(jiān)督訓練過程,是和傳統(tǒng)神經(jīng)網(wǎng)絡區(qū)別最大的部分(這個過程可以看作是feature learning過程):具體的,先用無標定數(shù)據(jù)訓練第一層,訓練時先學習第一層的參數(shù)(這一層可以看作是得到一個使得輸出和輸入差別最小的三層神經(jīng)網(wǎng)絡的隱層),由于模型capacity的限制以及
47、稀疏性約束,使得得到的模型能夠?qū)W習到數(shù)據(jù)本身的結構,從而得到比輸入更具有表示能力的特征;在學習得到第n-1層后,將n-1層的輸出作為第n層的輸入,訓練第n層,由此分別得到各層的參數(shù);,Deep learning訓練過程,deep learning訓練過程具體如下:2)自頂向下的監(jiān)督學習(就是通過帶標簽的數(shù)據(jù)去訓練,誤差自頂向下傳輸,對網(wǎng)絡進行微調(diào)):基于第一步得到的各層參數(shù)進一步fine-tune整個多層模型的參數(shù),這一步是一個有監(jiān)
48、督訓練過程;第一步類似神經(jīng)網(wǎng)絡的隨機初始化初值過程,由于DL的第一步不是隨機初始化,而是通過學習輸入數(shù)據(jù)的結構得到的,因而這個初值更接近全局最優(yōu),從而能夠取得更好的效果;所以deep learning效果好很大程度上歸功于第一步的feature learning過程。,Deep Learning的常用模型,AutoEncoder自動編碼器Deep Learning最簡單的一種方法是利用人工神經(jīng)網(wǎng)絡的特點,人工神經(jīng)網(wǎng)絡(ANN)本身就是
49、具有層次結構的系統(tǒng),如果給定一個神經(jīng)網(wǎng)絡,我們假設其輸出與輸入是相同的,然后訓練調(diào)整其參數(shù),得到每一層中的權重。自然地,我們就得到了輸入I的幾種不同表示(每一層代表一種表示),這些表示就是特征。自動編碼器就是一種盡可能復現(xiàn)輸入信號的神經(jīng)網(wǎng)絡。為了實現(xiàn)這種復現(xiàn),自動編碼器就必須捕捉可以代表輸入數(shù)據(jù)的最重要的因素,就像PCA那樣,找到可以代表原信息的主要成分。,AutoEncoder自動編碼器,具體過程簡單的說明如下:1)給定無標簽數(shù)據(jù)
50、,用非監(jiān)督學習學習特征:,在我們之前的神經(jīng)網(wǎng)絡中,如第一個圖,我們輸入的樣本是有標簽的,即(input, target),這樣我們根據(jù)當前輸出和target(label)之間的差去改變前面各層的參數(shù),直到收斂。但現(xiàn)在我們只有無標簽數(shù)據(jù),也就是右邊的圖。那么這個誤差怎么得到呢?,AutoEncoder自動編碼器,我們將input輸入一個encoder編碼器,就會得到一個code,這個code也就是輸入的一個表示,那么我們怎么知道這個cod
51、e表示的就是input呢?我們加一個decoder解碼器,這時候decoder就會輸出一個信息,那么如果輸出的這個信息和一開始的輸入信號input是很像的(理想情況下就是一樣的),那很明顯,我們就有理由相信這個code是靠譜的。所以,我們就通過調(diào)整encoder和decoder的參數(shù),使得重構誤差最小,這時候我們就得到了輸入input信號的第一個表示了,也就是編碼code了。因為是無標簽數(shù)據(jù),所以誤差的來源就是直接重構后與原輸入相比得到
52、。,AutoEncoder自動編碼器,2)通過編碼器產(chǎn)生特征,然后訓練下一層。這樣逐層訓練: 那上面我們就得到第一層的code,我們的重構誤差最小讓我們相信這個code就是原輸入信號的良好表達了,或者牽強點說,它和原信號是一模一樣的(表達不一樣,反映的是一個東西)。那第二層和第一層的訓練方式就沒有差別了,我們將第一層輸出的code當成第二層的輸入信號,同樣最小化重
53、構誤差,就會得到第二層的參數(shù),并且得到第二層輸入的code,也就是原輸入信息的第二個表達了。其他層就同樣的方法炮制就行了。,AutoEncoder自動編碼器,3)有監(jiān)督微調(diào):經(jīng)過上面的方法,我們就可以得到很多層了。至于需要多少層需要自己試驗調(diào)了。每一層都會得到原始輸入的不同的表達。當然了,我們覺得它是越抽象越好了,就像人的視覺系統(tǒng)一樣。到這里,這個AutoEncoder還不能用來分類數(shù)據(jù),因為它還沒有學習如何去連結一個輸入和一個類。
54、它只是學會了如何去重構或者復現(xiàn)它的輸入而已?;蛘哒f,它只是學習獲得了一個可以良好代表輸入的特征,這個特征可以最大程度上代表原輸入信號。那么,為了實現(xiàn)分類,我們就可以在AutoEncoder的最頂?shù)木幋a層添加一個分類器(例如羅杰斯特回歸、SVM等),然后通過標準的多層神經(jīng)網(wǎng)絡的監(jiān)督訓練方法(梯度下降法)去訓練。,AutoEncoder自動編碼器,我們需要將最后層的特征code輸入到最后的分類器,通過有標簽樣本,通過監(jiān)督學習進行微調(diào),這也分
55、兩種,一個是只調(diào)整分類器(黑色部分):,AutoEncoder自動編碼器,另一種:通過有標簽樣本,微調(diào)整個系統(tǒng):(如果有足夠多的數(shù)據(jù),這個是最好的。end-to-end learning端對端學習),在研究中可以發(fā)現(xiàn),如果在原有的特征中加入這些自動學習得到的特征可以大大提高精確度,甚至在分類問題中比目前最好的分類算法效果還要好!,AutoEncoder存在一些變體,Sparse AutoEncoder稀疏自動編碼器:繼續(xù)加上一些約束條
56、件得到新的Deep Learning方法,如:如果在AutoEncoder的基礎上加上L1的Regularity限制(L1主要是約束每一層中的節(jié)點中大部分都要為0,只有少數(shù)不為0,這就是Sparse名字的來源),我們就可以得到Sparse AutoEncoder法。,人腦好像也是這樣的,某個輸入只是刺激某些神經(jīng)元,其他的大部分的神經(jīng)元是受到抑制的,AutoEncoder存在一些變體,Denoising AutoEncoders降噪自動編
57、碼器 降噪自動編碼器DA是在自動編碼器的基礎上,訓練數(shù)據(jù)加入噪聲,所以自動編碼器必須學習去去除這種噪聲而獲得真正的沒有被噪聲污染過的輸入。因此,這就迫使編碼器去學習輸入信號的更加魯棒的表達。DA可以通過梯度下降算法去訓練。,Convolutional Neural Networks卷積神經(jīng)網(wǎng)絡,卷積神經(jīng)網(wǎng)絡是人工神經(jīng)網(wǎng)絡的一種,已成為當前語音分析和圖像識別領域的研究熱點。它的權值共享網(wǎng)絡結構使之更類似于生物神經(jīng)網(wǎng)絡,降低了網(wǎng)
58、絡模型的復雜度,減少了權值的數(shù)量。該優(yōu)點在網(wǎng)絡的輸入是多維圖像時表現(xiàn)的更為明顯,使圖像可以直接作為網(wǎng)絡的輸入,避免了傳統(tǒng)識別算法中復雜的特征提取和數(shù)據(jù)重建過程。卷積網(wǎng)絡是為識別二維形狀而特殊設計的一個多層感知器,這種網(wǎng)絡結構對平移、比例縮放、傾斜或者共他形式的變形具有高度不變性。,CNN,卷積神經(jīng)網(wǎng)絡的網(wǎng)絡結構卷積神經(jīng)網(wǎng)絡是一個多層的神經(jīng)網(wǎng)絡,每層由多個二維平面組成,而每個平面由多個獨立神經(jīng)元組成。,輸入圖像通過和三個可訓練的濾波器
59、和可加偏置進行卷積,卷積后在C1層產(chǎn)生三個特征映射圖,然后特征映射圖中每組的四個像素再進行求和,加權值,加偏置,得到三個S2層的特征映射圖。這些映射圖再進過濾波得到C3層。這個層級結構再和S2一樣產(chǎn)生S4。最終,這些像素值被光柵化,并連接成一個向量輸入到傳統(tǒng)的神經(jīng)網(wǎng)絡,得到輸出。,CNN,C層為特征提取層,每個神經(jīng)元的輸入與前一層的局部感受野相連,并提取該局部的特征;S層是特征映射層,網(wǎng)絡的每個計算層由多個特征映射組成,每個特征映射為
60、一個平面,平面上所有神經(jīng)元的權值相等。 卷積神經(jīng)網(wǎng)絡中的每一個特征提取層(C-層)都緊跟著一個用來求局部平均與二次提取的計算層(S-層),這種特有的兩次特征提取結構使網(wǎng)絡在識別時對輸入樣本有較高的畸變?nèi)萑棠芰Α?關于參數(shù)減少與權值共享,CNN一個優(yōu)勢在于通過感受野和權值共享減少了神經(jīng)網(wǎng)絡需要訓練的參數(shù)的個數(shù)。那究竟是啥的呢?如果我們有1000x1000像素的圖像,有1百萬個隱層神經(jīng)元,那么他們?nèi)B接的話(每個隱層神經(jīng)元都連
61、接圖像的每一個像素點),就有1000x1000x1000000=10^12個連接,也就是10^12個權值參數(shù)。,關于參數(shù)減少與權值共享,圖像的空間聯(lián)系是局部的,就像人是通過一個局部的感受野去感受外界圖像一樣,每一個神經(jīng)元都不需要對全局圖像做感受,每個神經(jīng)元只感受局部的圖像區(qū)域,然后在更高層,將這些感受不同局部的神經(jīng)元綜合起來就可以得到全局的信息了。這樣,我們就可以減少連接的數(shù)目,也就是減少神經(jīng)網(wǎng)絡需要訓練的權值參數(shù)的個數(shù)了。如下圖右:假
62、如局部感受野是10x10,隱層每個感受野只需要和這10x10的局部圖像相連接,所以1百萬個隱層神經(jīng)元就只有一億個連接,即10^8個參數(shù)。比原來減少了四個0(數(shù)量級),這樣訓練起來就沒那么費力了,但還是感覺很多的啊,那還有啥辦法沒?,關于參數(shù)減少與權值共享,我們知道,隱含層的每一個神經(jīng)元都連接10x10個圖像區(qū)域,也就是說每一個神經(jīng)元存在10x10=100個連接權值參數(shù)。那如果我們每個神經(jīng)元這100個參數(shù)是相同的呢?也就是說每個神經(jīng)元用的
63、是同一個卷積核去卷積圖像。這樣我們就只有100個參數(shù)啊!不管你隱層的神經(jīng)元個數(shù)有多少,兩層間的連接我只有100個參數(shù)??!這就是權值共享??!這就是卷積神經(jīng)網(wǎng)絡的主打優(yōu)點啊!也許你會問這樣做靠譜嗎?為什么可行呢?這個……往下看,關于參數(shù)減少與權值共享,假如一種濾波器,也就是一種卷積核就是提出圖像的一種特征,例如某個方向的邊緣。那么我們需要提取不同的特征,怎么辦,加多幾種濾波器不就行了嗎?對了。所以假設我們加到100種濾波器,每種濾波器的參數(shù)
64、不一樣,表示它提出輸入圖像的不同特征,例如不同的邊緣。這樣每種濾波器去卷積圖像就得到對圖像的不同特征的放映,我們稱之為Feature Map。所以100種卷積核就有100個Feature Map。,關于參數(shù)減少與權值共享,這100個Feature Map就組成了一層神經(jīng)元。到這個時候明了了吧。我們這一層有多少個參數(shù)了?100種卷積核x每種卷積核共享100個參數(shù)=100x100=10K,也就是1萬個參數(shù)。見下圖右:不同的顏色表達不同的濾波
65、器。,關于參數(shù)減少與權值共享,神經(jīng)元個數(shù)如何確定剛才說隱層的參數(shù)個數(shù)和隱層的神經(jīng)元個數(shù)無關,只和濾波器的大小和濾波器種類的多少有關。那么隱層的神經(jīng)元個數(shù)怎么確定呢?它和原圖像,也就是輸入的大?。ㄉ窠?jīng)元個數(shù))、濾波器的大小和濾波器在圖像中的滑動步長都有關!,關于參數(shù)減少與權值共享,例如,我的圖像是1000x1000像素,而濾波器大小是10x10,假設濾波器沒有重疊,也就是步長為10,這樣隱層的神經(jīng)元個數(shù)就是(1000x1000 )/ (
66、10x10)=100x100個神經(jīng)元了,這只是一種濾波器,也就是一個Feature Map的神經(jīng)元個數(shù)哦,如果100個Feature Map就是100倍了。由此可見,圖像越大,神經(jīng)元個數(shù)和需要訓練的權值參數(shù)個數(shù)的貧富差距就越大。,關于參數(shù)減少與權值共享,上面的討論都沒有考慮每個神經(jīng)元的偏置部分。所以權值個數(shù)需要加1 。這個也是同一種濾波器共享的。卷積網(wǎng)絡的核心思想是將:局部感受野、權值共享(或者權值復制)以及時間或空間亞采樣這三種結構
67、思想結合起來獲得了某種程度的位移、尺度、形變不變性。,一個典型的例子說明,一種典型的用來識別數(shù)字的卷積網(wǎng)絡是LeNet-5。當年美國大多數(shù)銀行就是用它來識別支票上面的手寫數(shù)字的。能夠達到這種商用的地步,它的準確性可想而知。,一個典型的例子說明,LeNet-5共有7層,不包含輸入,每層都包含可訓練參數(shù)(連接權重)。輸入圖像為32*32大小。這樣做的原因是希望潛在的明顯特征如筆畫斷電或角點能夠出現(xiàn)在最高層特征監(jiān)測子感受野的中心。,一個典型的
68、例子說明,C1層是一個卷積層(通過卷積運算,可以使原信號特征增強,并且降低噪音),由6個特征圖Feature Map構成。特征圖中每個神經(jīng)元與輸入中5*5的鄰域相連。特征圖的大小為28*28,這樣能防止輸入的連接掉到邊界之外。C1有156個可訓練參數(shù)(每個濾波器5*5=25個unit參數(shù)和一個bias參數(shù),一共6個濾波器,共(5*5+1)*6=156個參數(shù)),共156*(28*28)=122,304個連接。,一個典型的例子說明,S2層是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論