為什么要深度學(xué)習(xí)饲做?
整個邏輯:首先從人工智能存在的挑戰(zhàn)出發(fā)易核,講到我們需要用機(jī)器學(xué)習(xí)來解決這些問題,其中涉及到表示學(xué)習(xí)的概念和理解贿衍,深入表示學(xué)習(xí)就發(fā)現(xiàn)其中存在的核心問題,這時就需要深度學(xué)習(xí)來解決救恨!
人工智能的挑戰(zhàn):
在人工智能的早期贸辈,那些對人類智力非常困難,但對計算機(jī)來說相對簡單的問題得到迅速解決,比如擎淤,那些可以通過一些列形式化的數(shù)學(xué)規(guī)則來描述的問題奢啥。人工智能的真正挑戰(zhàn)在于解決那些對人來說很容易執(zhí)行、但很難形式化描述的任務(wù)嘴拢,如識別人們所說的話或圖像中的臉桩盲。對于這些問題,我們?nèi)祟愅梢?strong>憑借直覺輕易的解決席吴。
針對這些比較直觀的問題赌结,我們主要討論一種方案,該方案可以讓計算機(jī)從經(jīng)驗中學(xué)習(xí)孝冒,并根據(jù)層次化的概念體系來理解世界柬姚,而每個概念則通過與某些相對簡單的概念之間的關(guān)系來定義。層次化的概念讓計算機(jī)構(gòu)建較簡單的概念來學(xué)習(xí)復(fù)雜概念庄涡。
機(jī)器學(xué)習(xí):
AI系統(tǒng)需要具備自己獲取知識的能力量承,即從原始數(shù)據(jù)中提取模式的能力。這種能力稱為機(jī)器學(xué)習(xí)穴店。算法的性能在很大程度上依賴于給定數(shù)據(jù)的表示撕捍。表示一詞也可通俗的理解為通常所說的特征,機(jī)器學(xué)習(xí)算法主要是學(xué)習(xí)這些特征如何與各種結(jié)果相關(guān)聯(lián)泣洞。
許多人工智能任務(wù)都可以通過以下方式解決:
- 提取一個合適的特征集
- 將這些特征提供給簡單的機(jī)器學(xué)習(xí)算法
假設(shè)我們想在該散點(diǎn)圖中畫一條直線來分隔兩類數(shù)據(jù)忧风。在左圖中我們使用笛卡爾坐標(biāo)來表示數(shù)據(jù),這個任務(wù)是不可能的斜棚。在右圖中我們用極坐標(biāo)表示數(shù)據(jù)阀蒂,可以用垂直線簡單地解決這個任務(wù)。因此我們可以看出弟蚀,如果我們數(shù)據(jù)的特征提取的足夠好蚤霞,甚至我們可以用簡單的機(jī)器學(xué)習(xí)算法(這里的“畫一條直線來分隔”就可以理解為使用最簡單的分隔方法)就可以起到很好的作用。其實(shí)那些大型網(wǎng)絡(luò)的最后分類層也就是簡單的Softmax义钉,之所以效果很好就是因為前面的很多層已經(jīng)將提取了足夠好的特征昧绣!
表示學(xué)習(xí):
然而對于許多任務(wù)來說,我們很難知道應(yīng)該提取哪些特征捶闸。解決這個問題的途徑之一是使用機(jī)器學(xué)習(xí)來發(fā)掘表示本身夜畴,而不僅僅把表示映射輸出。這種方法我們稱之為表示學(xué)習(xí)删壮。學(xué)習(xí)到的表示往往比手動設(shè)計的表示表現(xiàn)得更好贪绘。
表示學(xué)習(xí)算法的典型例子是自編瑪器。自編碼器由一個編碼器函數(shù)和一個解碼器函組合而成央碟。編碼器函數(shù)將輸入數(shù)據(jù)轉(zhuǎn)換為一種不同的表示税灌,而解碼器函數(shù)則將這個新的表示轉(zhuǎn)換為原來的形式。我們期望當(dāng)輸入數(shù)據(jù)經(jīng)過編碼器和解碼器之后盡可能的多保留信息,同時希望新的表示有各種好的特性菱涤。
表示學(xué)習(xí)的核心問題:
當(dāng)設(shè)計特征或設(shè)計用于學(xué)習(xí)特征的算法時苞也,我們的目標(biāo)通常是分離出能解釋觀察數(shù)據(jù)的變差因素。這些因素通常是不能被直接觀察到的量粘秆。當(dāng)分析汽車的圖像時如迟,變差因素包括汽車的位置、顏色攻走、太陽的角度和亮度殷勘。在許多現(xiàn)實(shí)的人工智能應(yīng)用中,困難主要源于多個變差因素同時影響著我們能夠觀察到的每一個數(shù)據(jù)陋气。顯然劳吠,從原始數(shù)據(jù)中提取如此高層次、抽象的特征是非常困難的(可以理解為“通過機(jī)器學(xué)習(xí)來發(fā)掘表示本身”的想法是美好的巩趁,但是并不容易去實(shí)現(xiàn))痒玩。深度學(xué)習(xí)通過其他較簡單的表示來表達(dá)復(fù)雜表示,解決了上述表示學(xué)習(xí)中的核心問題议慰。
深度學(xué)習(xí)干了什么蠢古?
深度學(xué)習(xí)讓計算機(jī)通過較簡單的概念構(gòu)建復(fù)雜的概念。
深度學(xué)習(xí)模型的典型例子就是前饋深度網(wǎng)絡(luò)或多層感知機(jī)别凹。多層感知機(jī)僅僅是一個將一組輸入值映射到輸出值的數(shù)學(xué)函數(shù)草讶。該函數(shù)有許多較簡單的函數(shù)復(fù)合而成。我們可以認(rèn)為不同數(shù)學(xué)函數(shù)的每一次應(yīng)用都是為輸入提供了新的表示炉菲。
上述深度學(xué)習(xí)模型的輸入是圖片三個通道的像素值堕战,而計算機(jī)難以理解原始感官輸入數(shù)據(jù)的含義。由于模型學(xué)習(xí)的是將一組像素映射到對象標(biāo)識的函數(shù)拍霜,如此復(fù)雜的函數(shù)如果直接處理嘱丢,且因為計算機(jī)難以理解像素的概念,所以這個任務(wù)是幾乎不可能的祠饺。
深度學(xué)習(xí)將所需的復(fù)雜映射分解為一些列嵌套的簡單映射(其中每個由模型的不同層描述)來解決這一問題越驻。給定輸入像素,模型所做的工作:第1隱藏層可以輕易地通過比較相鄰像素的亮度來識別邊緣道偷;有了第1層描述的邊緣缀旁,第2隱藏層可以容易地搜索可識別為角和擴(kuò)展輪廓的邊集合;給定第2層中關(guān)于角和輪廓的圖像描述勺鸦,第3隱藏層可以找到輪廓和角的特定集合來檢測特定對象的整個部分并巍。最后,根據(jù)圖像描述中包含的對象部分换途,可以識別圖像中存在的對象懊渡。概括起來嘶窄,整個過程模型必須確定哪些概念有利于解釋觀察數(shù)據(jù)中的關(guān)系。
深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的關(guān)系
從上圖中可以看出距贷,深度學(xué)習(xí)既是一種表示學(xué)習(xí),也源于機(jī)器學(xué)習(xí)吻谋。第一部分我們也介紹過忠蝗,我們使用一種統(tǒng)稱為機(jī)器學(xué)習(xí)的解決方案企圖來處理人工智能所存在的挑戰(zhàn);但由于機(jī)器學(xué)習(xí)對于特征提取的依賴性很強(qiáng)漓拾,而我們很難知道該提取哪些特征阁最,所以企圖使用機(jī)器學(xué)習(xí)來自我發(fā)掘特征,也即是表示學(xué)習(xí)骇两;表示學(xué)習(xí)存在的核心問題是很難從原始數(shù)據(jù)中提取那些高層次的速种、高抽象度的特征,這時深度學(xué)習(xí)應(yīng)運(yùn)而生低千,它可以將高級特征逐步分解為嵌套的簡單特征配阵,很好的解決了這個問題。當(dāng)然這些統(tǒng)屬于實(shí)現(xiàn)人工智能的途徑之一...
右圖的陰影框表示能從數(shù)據(jù)中學(xué)習(xí)的組件示血。經(jīng)典的機(jī)器學(xué)習(xí)算法仍需要手動的提取特征棋傍,如早期圖像處理經(jīng)典算法所提取的HoG特征,SIFT特征等难审,然后通過設(shè)計一個映射函數(shù)將這些特征集合映射到對應(yīng)的輸出中瘫拣。表示學(xué)習(xí)則先通過機(jī)器學(xué)習(xí)算法自己去學(xué)習(xí)特征,有了這部分效果較好的特征告喊,表示學(xué)習(xí)算法的性能將優(yōu)于傳統(tǒng)的機(jī)器學(xué)習(xí)算法麸拄。而深度學(xué)習(xí)則通過逐層組合簡單特征的方式去構(gòu)建更復(fù)雜、更抽象黔姜、更有利于作為最后映射函數(shù)初始輸入的高級特征拢切,因此深度學(xué)習(xí)的性能可以達(dá)到最優(yōu)!
深度學(xué)習(xí)的歷史
這里就不詳細(xì)介紹歷史了地淀,有興趣的可以詳細(xì)的去看花書失球。當(dāng)然古語說“讀史使人明智”嘛,想學(xué)好深度學(xué)習(xí)帮毁,該掌握的必要?dú)v史知識還是需要去仔細(xì)看看的实苞。
深度學(xué)習(xí)界公認(rèn)的三次發(fā)展浪潮
-
20世紀(jì)40年代到60年代,深度學(xué)習(xí)的雛形出現(xiàn)在控制論中烈疚;
- 1943年的McCulloch-Pitts神經(jīng)元是最早期的模型黔牵。該線性模型通過檢驗函數(shù)f(x, w)的正負(fù)來識別兩種不同類別的輸入。這些權(quán)重是人為設(shè)定的(不可以學(xué)習(xí))爷肝。
- 20世紀(jì)50年代猾浦,感知機(jī)成為第一個能根據(jù)每個類別的輸入樣本來學(xué)習(xí)權(quán)重的模型陆错。
- 20世紀(jì)50年代后期,自適應(yīng)線性單元簡單地返回函數(shù)f(x)本身的值來預(yù)測一個實(shí)數(shù)金赦,并學(xué)習(xí)從數(shù)據(jù)預(yù)測這些數(shù)音瓷。其調(diào)節(jié)權(quán)重的訓(xùn)練算法可以看做隨機(jī)梯度下降的一種特例。
上述幾種模型仍還是線性模型夹抗,但要注意后兩種模型已經(jīng)可以簡單的從數(shù)據(jù)中學(xué)習(xí)權(quán)重绳慎。但是線性模型最大的局限性在于,其不能學(xué)習(xí)異或(XOR)函數(shù)漠烧,如下圖所示杏愤,你無法通過一條直線將黑白的點(diǎn)完全分開,這也導(dǎo)致了神經(jīng)網(wǎng)絡(luò)的第一次退潮已脓。
-
20世紀(jì)80年代到90年代珊楼,深度學(xué)習(xí)變現(xiàn)為聯(lián)結(jié)主義;
- 分布式表示概念的提出度液。其思想是:系統(tǒng)的每一個輸入都應(yīng)該由多個特征表示厕宗,并且每一個特征都應(yīng)該參與到多個可能輸入的表示。
- 20世紀(jì)80年代中期恨诱,反向傳播在訓(xùn)練具有內(nèi)部表示的深度神經(jīng)網(wǎng)絡(luò)中的成功使用及普及媳瞪。
- 20世界90年代,研究人員在使用神經(jīng)網(wǎng)絡(luò)進(jìn)行序列建模的方面取得了重要進(jìn)展照宝,并出現(xiàn)了LSTM網(wǎng)絡(luò)蛇受。
分布式表示是一個很核心的概念,深度學(xué)習(xí)也基于此重要思想厕鹃。書上舉的例子可以幫胡理解分布式表示的含義及優(yōu)點(diǎn)兢仰。
聯(lián)結(jié)主義的中心思想是,當(dāng)網(wǎng)絡(luò)將大量間的計算單元連接在一起時可以實(shí)現(xiàn)智能行為剂碴,可以認(rèn)為開始研究真正基于神經(jīng)系統(tǒng)實(shí)現(xiàn)的認(rèn)知模型把将。但是由于當(dāng)時計算能力的嚴(yán)重欠缺,同時一些傳統(tǒng)的機(jī)器學(xué)習(xí)算法(如SVM忆矛,圖模型等)的性能也很優(yōu)異察蹲,兩者導(dǎo)致了神經(jīng)網(wǎng)絡(luò)熱潮的第二次衰退。
-
2006年起催训,通過Hinton等人的研究洽议,以深度學(xué)習(xí)之名復(fù)興。
- Hinton表明“深度信念網(wǎng)絡(luò)DBN”的神經(jīng)網(wǎng)絡(luò)可以使用一種稱為“貪婪逐層預(yù)訓(xùn)練”的策略來有效地訓(xùn)練漫拭,同時該策略也被證實(shí)可以有效訓(xùn)練其它深度網(wǎng)絡(luò)亚兄。
第三次浪潮已經(jīng)著眼于新的無監(jiān)督學(xué)習(xí)技術(shù)和深度模型在小數(shù)據(jù)集的泛化能力。
- Hinton表明“深度信念網(wǎng)絡(luò)DBN”的神經(jīng)網(wǎng)絡(luò)可以使用一種稱為“貪婪逐層預(yù)訓(xùn)練”的策略來有效地訓(xùn)練漫拭,同時該策略也被證實(shí)可以有效訓(xùn)練其它深度網(wǎng)絡(luò)亚兄。
上圖(來源https://www.leiphone.com/news/201708/LEBNjZzvm0Q3Ipp0.html)中可以看出線性模型(線性激活函數(shù))確實(shí)解決不了異或問題采驻,而且在解決復(fù)雜問題的時候审胚,同樣表現(xiàn)很差匈勋!當(dāng)網(wǎng)絡(luò)不再是線性模型時,且層數(shù)增加模型變大時膳叨,網(wǎng)絡(luò)可以很好的解決異或問題甚至是復(fù)雜問題洽洁。
文章《The Power of Depth for Feedforward Neural Networks》從理論上證明了加深網(wǎng)絡(luò)比加寬網(wǎng)絡(luò)更有用!7谱臁诡挂!
一個兩層的非線性模型,只要模型足夠?qū)挘ㄒ布词敲恳粚拥纳窠?jīng)元足夠多)临谱,理論上可以模擬任何復(fù)雜函數(shù)。但是如果采取加深模型的方式奴璃,當(dāng)增加到和前面模型相同的參數(shù)時悉默,可以有更出色的擬合能力。
下圖演示了深度學(xué)習(xí)的發(fā)展趨勢(圖片來源https://www.leiphone.com/news/201708/LEBNjZzvm0Q3Ipp0.html):