14
本文作者: 金紅 | 2017-05-15 20:47 | 專題:雷峰網(wǎng)公開課 |
人工智能會在未來消滅很多工作,同時(shí)也會創(chuàng)造很多工作。它同機(jī)械、同計(jì)算機(jī)一樣,是對人類能力的一次擴(kuò)展,任何人都應(yīng)該可以像應(yīng)用機(jī)械一樣應(yīng)用人工智能,絕不應(yīng)該是大公司的專利。
而深度學(xué)習(xí)可以說是目前各項(xiàng)人工智能技術(shù)的核心。因擔(dān)心工作會被人工智能取代,越來越多的人想要入門深度學(xué)習(xí)。
然而如Ian Goodfellow所說,市面上很多教程都是大量的算法羅列,并不專注于如何利用這些算法來解決眼前的問題。這些教程很容易讓人們誤認(rèn)為成為機(jī)器學(xué)習(xí)的專家就是知道所有算法。
事實(shí)上深度學(xué)習(xí)仍在迅速發(fā)展,今天的技術(shù)在明天就有可能被淘汰。并且每天都有大量新網(wǎng)絡(luò)結(jié)構(gòu)被提出,無法學(xué)完所有技術(shù)的我們需要找出各類網(wǎng)絡(luò)結(jié)構(gòu)的共性,嘗試歸類的理解其背后的設(shè)計(jì)理念。
本期雷鋒網(wǎng)硬創(chuàng)公開課邀請到《超智能體》一書作者于建國,分享的內(nèi)容就是理解為何“深層”比“淺層”網(wǎng)絡(luò)要好,深度學(xué)習(xí)適用于什么任務(wù),并嘗試找出前饋神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、卷及神經(jīng)網(wǎng)絡(luò)、殘差網(wǎng)絡(luò)、預(yù)訓(xùn)練、多任務(wù)學(xué)習(xí)、端到端學(xué)習(xí)、自動編碼器、遷移學(xué)習(xí)、distillation、dropout、regularization、batch-normalization等技術(shù)背后的共享,讓大家感受該如何設(shè)計(jì)符合自己任務(wù)的深層神經(jīng)網(wǎng)絡(luò)。以一種不一樣的思路切入深度學(xué)習(xí)。
本期公開課包含但不限于以下內(nèi)容:
理解什么是學(xué)習(xí)
深度學(xué)習(xí)為何高效
神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)理念
入門所需材料
于建國,會津大學(xué)Human Interface實(shí)驗(yàn)室博士在讀,碩士做的是利用深度學(xué)習(xí)將口型數(shù)據(jù)融于語音識別模型的訓(xùn)練中,而識別時(shí)無需口型數(shù)據(jù),從而提高識別率的研究。也因?yàn)橄矚g上了研究而繼續(xù)了博士課程。希望將自己這幾年的思考和自學(xué)經(jīng)驗(yàn)分享給大家。可在知乎上搜索YJango找到分享的內(nèi)容,或者在gitbook上查看其終身連載的關(guān)于如何機(jī)器學(xué)習(xí),如何人腦學(xué)習(xí)的《超智能體》一書。
(本期公開課完整視頻,共82分鐘)
以下為雷鋒網(wǎng)對嘉賓分享內(nèi)容實(shí)錄精編。關(guān)注雷鋒網(wǎng)旗下微信公眾號,回復(fù)「PPT」可獲取嘉賓完整PPT。
大家好,我是于建國,日本會津大學(xué)博士一年生,碩士的研究是基于深度學(xué)習(xí)結(jié)合口型的語音識別。很高興能和大家在這里分享。其他的不多說,讓我們直接步入正題。
由于人工智能的火熱,越來越多的人擔(dān)心自己的工作會被所取代,因而想要入門深度學(xué)習(xí),卻發(fā)現(xiàn)它很“黑箱”,這次就是分享一些我個(gè)人心得,關(guān)于深層神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)理念。
智能能夠做到的事情太多太多,實(shí)在是難以用一句話給出一個(gè)讓人信服的定義。
所以讓我們從另一個(gè)角度來切入:為什么生命需要智能,智能的作用是什么?
而這個(gè)答案卻是唯一的,那就是為了生存下去。
所以現(xiàn)在假設(shè)宇宙還沒有產(chǎn)生生命,我們來想象一個(gè)生存游戲。
這個(gè)生存游戲和右上角的小游戲差不多,也就是躲避危險(xiǎn)從而生存下來。需要注意的是,你要清空你大腦當(dāng)中的所有先驗(yàn)知識。你并不知道這個(gè)游戲怎么玩,所有的規(guī)則都是隨機(jī)的,并不是說碰到綠柱子就會死。稍微抽象一下就可以得到左邊的這個(gè)模型。ABCD表示不同的環(huán)境,個(gè)體在接收到環(huán)境的刺激后會產(chǎn)生靠近或遠(yuǎn)離的行為,結(jié)果就是死亡或者存活。這時(shí),環(huán)境就是輸入x,個(gè)體是關(guān)聯(lián)f(可以叫它function,mapping,我在隨后都把它叫做關(guān)聯(lián)),行為是輸出y。
游戲規(guī)則是:
1. 假設(shè)環(huán)境B和C都是危險(xiǎn)的,靠近就會死亡。也可能是A和D是危險(xiǎn)的,這是隨機(jī)的。
2. 同時(shí)個(gè)體的關(guān)聯(lián)f都是大自然隨機(jī)生成的。
如果你是大自然的造物主,你要怎么在上述條件下,設(shè)計(jì)出可以一直自我延續(xù)下去的生命?
直接暴力的方式就是:不斷的隨機(jī)生成,總有一個(gè)個(gè)體會滿足條件。比如說這個(gè)映射就可以,用01表示B,10表示C,1代表遠(yuǎn)離,0代表靠近,當(dāng)出現(xiàn)B和C時(shí),我們希望個(gè)體f會產(chǎn)生1這個(gè)數(shù)值。
但這時(shí)我們追加另一個(gè)規(guī)則,環(huán)境會變。就像這個(gè)小游戲,如果規(guī)則變成沒碰到柱子就會死呢?
應(yīng)該有人玩過“貓里奧”,你會用你以前玩馬里奧的方式去玩,就是各種死。所以當(dāng)環(huán)境變成A和D是危險(xiǎn)的時(shí)候,這個(gè)個(gè)體就會死亡。
所以,即便個(gè)體非常幸運(yùn)的產(chǎn)生了能夠滿足生存的關(guān)聯(lián)f,也會在下一次環(huán)境改變之際化為無機(jī)物。如果還用隨機(jī)生成的方式,生命永遠(yuǎn)只能在最初始的階段停留片刻,無法進(jìn)入下一個(gè)階段。
因此生命想要延續(xù),就需要一種能力,可以適應(yīng)變化的能力。這也是霍金對于智能的描述:Intelligence is the ability to adapt to change.
于是,大自然利用大量的個(gè)體不斷繁殖,并且該繁殖過程并非完美復(fù)制,而是會產(chǎn)生變異,變異的個(gè)體就有機(jī)會適應(yīng)變化后的環(huán)境而存活下來,無法適應(yīng)環(huán)境的個(gè)體會被篩選掉。篩選下來的個(gè)體繼續(xù)大量繁殖,產(chǎn)生差異性,迎接下一次環(huán)境的篩選。篩選后的結(jié)果便是進(jìn)化。進(jìn)化出適合當(dāng)前環(huán)境的關(guān)聯(lián)。用這種繁殖、變異、篩選的動態(tài)循環(huán),就可以形成能相對穩(wěn)定存在的生命。
游戲的關(guān)鍵在于,關(guān)聯(lián)的更新速度>環(huán)境的變化速度。
所以自然界的很多生物大量繁殖這一行為并不浪費(fèi),它增大可供篩選的樣本數(shù)量,防止環(huán)境變化后,個(gè)體全部被篩選掉。
這個(gè)是關(guān)于RNA是生命起源的視頻講解,我不做描述。感興趣的朋友可以下載我的ppt來自己觀看。
這張圖粗略展示了幾個(gè)概念之間的關(guān)系,大量的智能關(guān)聯(lián)是依靠DNA來存儲的,而DNA的復(fù)制會產(chǎn)生變異,形成差異性,差異性又反映于個(gè)體,變異的個(gè)體會被環(huán)境篩選,對種群進(jìn)行改造,進(jìn)而對智能關(guān)聯(lián)進(jìn)行篩選。
對以上的內(nèi)容進(jìn)行梳理,就會得到下面的幾個(gè)總結(jié)。
1. 進(jìn)化的對象不是個(gè)體,也不是基因,而是智能關(guān)聯(lián)。個(gè)體的生死對種群只是起到了一次更新作用。而基因相當(dāng)于硬盤,存儲在上面的智能關(guān)聯(lián)才是核心。進(jìn)化的過程就是關(guān)聯(lián)被不斷篩選的過程。篩選出符合當(dāng)前環(huán)境的關(guān)聯(lián)。
2. 尋找關(guān)聯(lián)f的過程也就是學(xué)習(xí)。自然選擇的動態(tài)過程就是一種以種群為單位的學(xué)習(xí)方式。
3. 智能是適應(yīng)變化的能力,智能的核心部分有:
學(xué)習(xí),關(guān)聯(lián)的尋找,在低等生命中,對應(yīng)的是自然選擇。
延續(xù),關(guān)聯(lián)的存儲,將學(xué)習(xí)到的關(guān)聯(lián)延續(xù)下去。別的星球可能產(chǎn)生過生命,但是卻沒有既能在該星球穩(wěn)定存在又可以延續(xù)和自我復(fù)制的媒介。所以影片《普羅米修斯》中將DNA稱為外星人留在地球上的火種。
最后是決策,關(guān)聯(lián)的應(yīng)用,應(yīng)用所學(xué)到的關(guān)聯(lián)產(chǎn)生不同的行為來躲避危險(xiǎn)。
DNA上存儲的關(guān)聯(lián)就好比是工具的藍(lán)圖,而各式各樣的蛋白質(zhì)就是根據(jù)藍(lán)圖造出的工具。藍(lán)圖是由自然選擇來繪制的。
你會發(fā)現(xiàn)這和你所認(rèn)識的智能不一樣,似乎過于簡單。因?yàn)閯偛诺拿枋鰞H停留在蛋白質(zhì)層面上的低等智能的階段??窟@種方式存活的生命是病毒,僅有保護(hù)性蛋白質(zhì)外殼和DNA或者RNA,可以進(jìn)行自我復(fù)制。但是單個(gè)蛋白質(zhì)能夠完成的任務(wù)很有限。為了增強(qiáng)適應(yīng)變化的能力,大量蛋白質(zhì)組合在一起,并行的工作,就到達(dá)了細(xì)胞層面的智能,同理大量細(xì)胞會形成組織,再到器官,系統(tǒng),個(gè)體,團(tuán)體,國家,越往上其能夠完成的任務(wù)就越復(fù)雜。
我想用下面這段視頻讓大家感受,近幾年所推崇的互聯(lián)網(wǎng)思維其實(shí)始終都存在于你我的體內(nèi)。只是科技讓你我的連接速度提升后才得以凸顯。我們自身就好比一個(gè)工廠,內(nèi)部有大量的蛋白質(zhì)在并行的完成各項(xiàng)生理功能。而處在互聯(lián)網(wǎng)時(shí)代的我們,和在體內(nèi)的蛋白質(zhì)本質(zhì)上沒有什么區(qū)別。你并不是單個(gè)生命。
自然界無法瞬間產(chǎn)生特別復(fù)雜的功能,高等智能都是由低等智能迭代生成的。雖然大量的生物,用低等智能就可以很好的生存,但是我們依然想要弄清高級智能的原理將其服務(wù)于我們自身,因?yàn)槲覀兊沫h(huán)境更為復(fù)雜。
高等智能最具代表性的就是可以思考。但是思考的原理實(shí)在難以解讀。
還是用老方法,轉(zhuǎn)而問為什么會進(jìn)化出意識允許我們思考,它能夠解決什么問題?
因?yàn)榄h(huán)境的變化是隨機(jī)的,所以進(jìn)化并沒有方向,但是卻有增加差異性的趨勢。還記得生存游戲的關(guān)鍵嗎?就是關(guān)聯(lián)的更新速度要盡可能大于環(huán)境的變化速度。而增加差異性就是增加了更新的幅度。
通過自我復(fù)制的方式,能夠產(chǎn)生的差異性還是較弱。所以自然界慢慢的開始形成了有性繁殖,兩個(gè)不同的個(gè)體進(jìn)行交配,增加子代的差異性。
但是有性繁殖帶來了一個(gè)問題,如果生命不可以移動,那么個(gè)體只能與周圍的其他個(gè)體進(jìn)行繁殖,這一區(qū)域就始終都是那幾種智能關(guān)聯(lián),有性繁殖的差異性能力被限制。
所以為了洗牌,大范圍移動成為了必然需求。即便是植物這樣不可移動的生物,也會利用果實(shí)讓動物幫助他們傳播種子。
可大范圍移動也帶來了另一個(gè)問題,環(huán)境會隨著移動而變化,個(gè)體在上一環(huán)境中通過自然學(xué)習(xí)所學(xué)習(xí)到的關(guān)聯(lián),在下一個(gè)環(huán)境并不適用。比如你將熱帶植物放在沙漠中,環(huán)境的不同會殺死它。
這時(shí)需要新的學(xué)習(xí)方式,如果還用自然選擇的方式顯然不可行。
因?yàn)樵黾恿艘苿?,感官等能力,個(gè)體的生長周期變長。設(shè)想一下,花了好幾個(gè)月生下來的小動物,錯走一步掉坑里摔死了。那么幾個(gè)回合,這個(gè)物種就滅絕了。他們承擔(dān)不起自然選擇這種試錯學(xué)習(xí)方式所帶來的代價(jià)。
于是對于大范圍可移動生物而言,他們需要原有智能的基礎(chǔ)上增加了另一項(xiàng)能力:預(yù)測。
關(guān)聯(lián)f不再是簡單的應(yīng)激反應(yīng),不再是從環(huán)境到行為的關(guān)聯(lián)。而是從過去事件到未來事件的關(guān)聯(lián)。生物會利用意識在大腦中模擬自己與環(huán)境的關(guān)系,通過預(yù)測下一步,甚至下幾步會發(fā)生什么,從而進(jìn)行決策。這就和下棋一樣。
神經(jīng)元細(xì)胞內(nèi)部大量的蛋白質(zhì)可以控制電離子的進(jìn)出,進(jìn)而有了控制電的能力。它們用不同的頻率來表示不同的狀態(tài),大腦中的神經(jīng)網(wǎng)絡(luò)就有了模擬環(huán)境的狀態(tài)與變化的能力。
可以允許生命以個(gè)體為單位學(xué)習(xí)任意兩個(gè)空間的關(guān)聯(lián)。不再是自然選擇這種以種群為單位的學(xué)習(xí)方式。
而決策需要依據(jù),就需要生命有感知能力,感知周圍的信息。我們以深度學(xué)習(xí)擅長的畫面識別為例,我們來看看它到底在做什么,同時(shí)也來進(jìn)一步理解“建立兩個(gè)空間的關(guān)聯(lián)”這一概念。
這里列出來了四個(gè)生物的視覺和人類的視覺的差異。而這就引出了一點(diǎn)知識,人眼看到的并非世界的原貌,而是適合自己生存的一種感知方式。
因?yàn)樯叩墨C物一般是夜間行動,所以它就進(jìn)化出了一種可以在夜間也能很好觀察的感知系統(tǒng)。感熱。
任何視覺系統(tǒng)都是將反光與“腦中”所看到的概念進(jìn)行關(guān)聯(lián)。相同的反光,經(jīng)過不同的視覺系統(tǒng)會得到不同的感知。
所以畫面識別實(shí)際上并不是識別這個(gè)東西本身是什么,而是學(xué)找人類的視覺關(guān)聯(lián)方式,并再次應(yīng)用。如果我們不是人類,而是蛇類,那么畫面識別所尋找的f就和現(xiàn)在的不一樣。
當(dāng)x代表的是畫面,而y代表的是畫面在大腦中的概念時(shí),神經(jīng)網(wǎng)絡(luò)所完成的就是畫面識別。當(dāng)x代表說過的話,而y代表將要說的話,那么神經(jīng)網(wǎng)絡(luò)所完成的就是語言模型,當(dāng)x代表英語,而y代表中文,神經(jīng)網(wǎng)絡(luò)所完成的就是機(jī)器翻譯。
神經(jīng)網(wǎng)絡(luò)的就是從很多輸入到輸出的例子中,尋找解釋這兩個(gè)空間的關(guān)聯(lián)。就像y=ax+b這個(gè)線性方程,給你兩個(gè)例子,讓你確定a和b一樣。確定后就可以在以后的活動中利用所建立的關(guān)聯(lián),通過輸入特定的x得到我們想要的y。但自然界的關(guān)聯(lián)可不像線性方程那么簡單。
而代表著高等智能的意識允許我們在腦中預(yù)先模擬接下來會發(fā)生什么?從而決定下一步的行動。
一個(gè)人的一生就是在不斷建立自己所處環(huán)境中各式各樣的預(yù)測模型,形成一個(gè)世界模型。你可以叫它世界觀。
茶杯墜落會發(fā)生什么,如果有槍聲會怎樣。人站在高處,會預(yù)測自己墜落的后果,所以害怕。
隨著環(huán)境的變化,所建立的預(yù)測模型需要跟著更新。比如我們現(xiàn)在生存的環(huán)境就和古人不同,有投資項(xiàng)目,未來幾個(gè)月的股票、房價(jià)、匯率的變化等。
所以你就可以看見,我們作為一個(gè)生命體,始終都在適應(yīng)著這個(gè)時(shí)刻變化的世界。
智能的內(nèi)容是關(guān)聯(lián),核心在于學(xué)習(xí)。但卻不僅限于此,它還有圍繞關(guān)聯(lián)和學(xué)習(xí)的其他能力。
智能除了建立關(guān)聯(lián)外還有何時(shí)搜集數(shù)據(jù),因?yàn)槲覀兪菑臍v史經(jīng)驗(yàn)中學(xué)習(xí)。
還有何時(shí)更新已建立的模型,何時(shí)使用哪個(gè)模型。這些都屬于智能。
比如說,人腦的預(yù)測實(shí)際上是雙向的,會時(shí)時(shí)刻刻預(yù)測即將發(fā)生的事情,并將實(shí)際發(fā)生的事情與自己的預(yù)測進(jìn)行比較。通常這一過程不會得到你的意識的注意。只有那些與自己預(yù)測不符合的事件才會得到注意。例如你不會注意你每天都走的樓梯,但是當(dāng)某個(gè)階梯突然高出3厘米時(shí),你卻很容易察覺。這種與自己所建立的模型沖突的事件會更容易被記住并且作為訓(xùn)練數(shù)據(jù)搜集起來,用于以后的學(xué)習(xí),為了讓你更好的預(yù)測,更好的生存。所以思考的目的就是在于預(yù)測。
而人的一生始終都需要學(xué)習(xí),因?yàn)槭澜绮粩嘧兓2⒉淮嬖谛『⒆颖瘸扇藢W(xué)習(xí)能力強(qiáng)這么一說。之所以造成這種現(xiàn)象的原因是人們依賴自己的世界模型。孩子并沒有構(gòu)造出完整世界模型,所以DNA中進(jìn)化出的本性讓我們小時(shí)候充滿好奇心,會什么都好奇,什么都學(xué)習(xí)。而成人已經(jīng)建立的較為完善的世界模型,需要有一種保護(hù)機(jī)制,防止被人忽悠。如果你還是像小孩子一樣,什么都學(xué)習(xí),什么都更新,那么你就很容易被洗腦。
但成人也會更新已建立的模型。比如說服一個(gè)成人,較好的做法是描述一個(gè)事件,這時(shí)他會不由自主的預(yù)測結(jié)果。但當(dāng)你告訴他,他的預(yù)測是錯誤的時(shí)候,他就得到了“原來自己已有的模型并不可靠的信號”,關(guān)閉抵制學(xué)習(xí)的保護(hù)機(jī)制來更新已有模型。
智能始終都是并行執(zhí)行的,唯獨(dú)意識不可以同一時(shí)間出現(xiàn)在兩個(gè)地方,原因之一在于意識必須要在某個(gè)時(shí)刻決定應(yīng)用哪個(gè)關(guān)聯(lián)。我們的四肢有各種各樣的關(guān)聯(lián),有騎車的,有跑步的,意識會起到調(diào)控作用。
我們現(xiàn)在的人工智能還沒有達(dá)到意識的層面,僅僅是建立兩個(gè)空間的關(guān)聯(lián),所以畫面識別,語音識別都可以完成的很好。但我們會在這個(gè)基礎(chǔ)上逐步的邁向意識。
智能的三個(gè)核心部分,學(xué)習(xí),存儲,應(yīng)用,在自然界中有自然界的實(shí)現(xiàn)方式。
而人工智能就是想要將這種能力在機(jī)器上實(shí)現(xiàn)。比如我們不靠蛋白質(zhì),而靠機(jī)器來應(yīng)用關(guān)聯(lián);不靠DNA,而靠電腦來存儲已經(jīng)學(xué)到的關(guān)聯(lián);不靠自然選擇,而靠機(jī)器學(xué)習(xí)算法來建立關(guān)聯(lián)。大家的目的都是為了做出決策,更好的生存。
那么實(shí)現(xiàn)這一目標(biāo)需要哪些知識?
世界是不斷變化的,會從一個(gè)狀態(tài)變化到另一種狀態(tài)。這里牽扯到兩個(gè)概念:狀態(tài)與變化。
那么如何準(zhǔn)確的描述狀態(tài)和變化?
進(jìn)化出能感知三維空間的我們習(xí)慣在三維空間下描述物體。然而除了長寬高,世界上還有很多決定事物狀態(tài)的因素。如決定股票價(jià)錢的因素,決定天氣的因素就不只是三個(gè)。
甚至我們生存的世界可能并非三維,僅僅是因?yàn)槿S的空間感知已經(jīng)足夠讓我們可以很好的生存。我們并沒有進(jìn)化出更高維度的感知能力。
但這些高維度的狀態(tài)與變化又該如何合理的描述?
線性代數(shù)就是用來描述任意維度空間下狀態(tài)和變化的學(xué)科,而線性代數(shù)中的矩陣是存儲狀態(tài)和變化信息的媒介。
通過線性代數(shù),我們知道了該如何描述事物的狀態(tài)及其變化??蛇z憾的是,對一個(gè)微小的生物而言,很多時(shí)候信息是缺失的,我們沒有辦法百分之百確定事物在變化后會到達(dá)哪種狀態(tài)。甚至世界的底層都是建立在純隨機(jī)下的。因此我們需要概率來在該種情況下幫助我們,預(yù)測未來狀態(tài)從而做出合理的決策。
同時(shí)既然我們想要在計(jì)算機(jī)上實(shí)現(xiàn)智能,就需要懂得如何將自己的想法在計(jì)算機(jī)上實(shí)現(xiàn)。但你不需要什么都懂,你特別需要明白的是如何在計(jì)算機(jī)上控制存儲著狀態(tài)與變化的矩陣。
知道了什么是學(xué)習(xí)后,我們再來看看學(xué)習(xí)到底難在哪里。
這一部分的理解決定了你對神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)理念。學(xué)習(xí)是需要從歷史經(jīng)驗(yàn)中訓(xùn)練出一個(gè)關(guān)聯(lián)f,希望可以用這個(gè)關(guān)聯(lián)f解決新的問題。就拿高考來說,我們通過做歷年的真題來訓(xùn)練自己的解題方法f。訓(xùn)練的方式是不斷的做題,并且對照正確答案。等到高考,當(dāng)看到新題目x時(shí),希望可以利用自己所訓(xùn)練的關(guān)聯(lián)f,來得到正確答案y。我們真正關(guān)心的并不是已經(jīng)做過的歷年真題,而是高考。
學(xué)習(xí)的難點(diǎn)在于:需要在未見過的任務(wù)上表現(xiàn)良好。
我們考慮一個(gè)極端的情況。假如說,高考只有4道判斷題,那么只需要記住4道題的對錯,高考就可以拿滿分了??墒菍?shí)際的情況是,高考所能出的題是無限的。而我們可以訓(xùn)練的歷年真題卻是有限的。又比如要識別貓的圖片,貓會有各種各樣的形態(tài)、表情、顏色、大小,各式各樣的變體。而我們無法窮舉所有的貓,該如何從有限的圖片樣本中訓(xùn)練出能較好判斷一張圖片是否是貓的關(guān)聯(lián)f。
學(xué)習(xí)就是需要從有限的例子中找到合理的關(guān)聯(lián)f。一個(gè)方向也就是訓(xùn)練更多的數(shù)據(jù),看到更多的情況。比如有的同學(xué)就用題海戰(zhàn)術(shù)。這就是這些年大數(shù)據(jù)對人工智能所起到的作用。
然而單靠大數(shù)據(jù)是不足夠的。另一個(gè)方向的例子就是那些只做一兩道題就可以抓住問題核心的學(xué)霸們,而這個(gè)實(shí)際上才是深度學(xué)習(xí)在自然界的任務(wù)中超越其他機(jī)器學(xué)習(xí)算法的關(guān)鍵。也就是加入先驗(yàn)知識,調(diào)整假設(shè)孔空間。
當(dāng)然學(xué)習(xí)是數(shù)據(jù)越多越好,但為了了解為什么光靠大數(shù)據(jù)不夠,我們需要明白三個(gè)問題。
第一:維度詛咒。
上面提到學(xué)習(xí)的第一個(gè)方向就是見到更多的例子。可是當(dāng)維度越高,其情況就越多,就越無法見到所有的情況。
只考慮離散的簡單任務(wù),1維的時(shí)候有10種情況,2維的時(shí)候100種,3維的時(shí)候有1000種。維度越高,我們越無法見到所有的情況?,F(xiàn)在一個(gè)普通的任務(wù)就有上百維度,并且是連續(xù)的數(shù)據(jù)。
那么那些沒見過的數(shù)據(jù)該如何預(yù)測?傳統(tǒng)的方式依賴于一個(gè)假設(shè),那就是數(shù)據(jù)是平滑的,一個(gè)數(shù)值和它左右的數(shù)值差不太多。所以當(dāng)遇到?jīng)]見過的數(shù)據(jù)時(shí),就取左右兩個(gè)遇見過的數(shù)據(jù)的平均值,但是在高維情況下,這種做法非常不可靠,因?yàn)樗环线@個(gè)假設(shè),數(shù)據(jù)并不平滑,而是有激烈的凹凸。
那么想要預(yù)測的可靠就需要更多的數(shù)據(jù),并且是不一樣的樣本數(shù)據(jù),這在現(xiàn)實(shí)中即便是大數(shù)據(jù)也難以實(shí)現(xiàn)。玩過爐石傳說的朋友可以想想如果純粹靠買卡牌包,想要將所有卡片都搜集齊全需要投入多少資金?
第二:關(guān)聯(lián)f的尋找。
我們是靠歷史數(shù)據(jù)來訓(xùn)練關(guān)聯(lián)f,但是能夠解釋歷史數(shù)據(jù)的關(guān)聯(lián)f并非唯一。比如我想要兩個(gè)數(shù)字相加等于1,我可以讓其中一個(gè)數(shù)字為1,另一個(gè)數(shù)字為0;也可以讓其中一個(gè)數(shù)字為-299,另一個(gè)數(shù)字為300。都能完成任務(wù)。這就會造成,我們尋找的關(guān)聯(lián)f或許可以完美的解釋訓(xùn)練數(shù)據(jù)。但是卻無法保證在新的預(yù)測中依然完美預(yù)測。
比如這兩張圖,左邊學(xué)習(xí)到的關(guān)聯(lián)f可以完美的預(yù)測訓(xùn)練集。但是實(shí)際應(yīng)用在測試集上,紅色的部分卻預(yù)測錯了。我們實(shí)際是想要一個(gè)非常規(guī)整的螺旋形狀。
又比如高考,能夠解題的方法有很多種。有的非常巧妙,但是這些巧妙的解題方式可能只適用于個(gè)別題目。其他題目就不再適用。學(xué)生可能找到了一個(gè)可以解除所有他做過的題的解題方式,但卻無法保證該解題方式在高考時(shí)同樣有效。
第三:無免費(fèi)午餐。
這同時(shí)引出了無免費(fèi)午餐定理。既然關(guān)聯(lián)f是無限的,那么尋找關(guān)聯(lián)f好比是大海撈針。不同的機(jī)器學(xué)習(xí)算法只是更擅長在某個(gè)海域打撈而已。如果重點(diǎn)打撈某個(gè)區(qū)域,那么其他的區(qū)域就會被忽略。
所以如果想要打撈的關(guān)聯(lián)f可以存在于大海的任何地方,那么深度學(xué)習(xí)并不會比其他的機(jī)器學(xué)習(xí)算法更優(yōu)秀。這種情況下,任何兩個(gè)機(jī)器學(xué)習(xí)算法都是等價(jià)的。
這是不是意味著深度學(xué)習(xí)并不優(yōu)秀呢?并非如此。因?yàn)樽匀唤缰械暮芏嗳蝿?wù),其關(guān)聯(lián)f并非像我之前可以出現(xiàn)在大海當(dāng)中的任何位置,而是會集中在特定海域,那些符合自然物理現(xiàn)象的特定海域。而深度學(xué)習(xí)就是擅長打撈該海域的機(jī)器學(xué)習(xí)算法。
深度學(xué)習(xí)就是我先前所說的學(xué)習(xí)的第二個(gè)方向,加入先驗(yàn)知識,調(diào)整假設(shè)空間。
那如何理解加入先驗(yàn)知識?比如說你讓你的朋友猜你腦中所想的一個(gè)事物,這個(gè)難度是相當(dāng)大的。因?yàn)槟憧梢韵肴魏问挛?。而你的朋友通常會要求你,給他一個(gè)范圍。比如食物,也可以進(jìn)一步把范圍縮小到水果。那么他就不需要在所有的事物當(dāng)中亂猜,會更容易猜中。
在二戰(zhàn)時(shí)德軍的Enigma(依尼格瑪)密碼機(jī),可以生成成千上萬密碼,來傳輸作戰(zhàn)信息。英軍雇用包括人工智能之父圖靈在內(nèi)的數(shù)學(xué)家來直接破譯它的加密原理。并不是假設(shè)這些數(shù)據(jù)是平滑的。機(jī)器學(xué)習(xí)也應(yīng)該使用相同的思路,直接去思考數(shù)據(jù)是如何生成的。而我們所面臨的很多任務(wù),是由自然界的密碼生成器所生成的。當(dāng)時(shí)圖靈等人是靠任何原文和密文之間不會相同字母這一特點(diǎn)來破解密碼。
那么自然界的數(shù)據(jù)又有什么特點(diǎn)呢?
這就引入了第一個(gè)自然界的先驗(yàn)知識:并行組合。也就是深度學(xué)習(xí)中分布式表達(dá)distributed representation的思想。假設(shè)我們有8個(gè)不同的蘋果,用一般的學(xué)習(xí)方式,我們需要看到8種不同情況才可以完美的學(xué)習(xí)。但是如果告訴你這些不同的蘋果是由顏色、大小、形狀,這三個(gè)因素組合形成呢。假如每個(gè)因素有兩種情況,那么我們只需要學(xué)習(xí)好這六種情況即可。不需要見到8種變體。你會發(fā)現(xiàn),加入了變體是由不同的因素組合形成的這一個(gè)先驗(yàn)知識后,我們降低了學(xué)習(xí)所需要的數(shù)據(jù)量。而橢圓其實(shí)也有變體,什么樣的形狀是橢圓?我們可以依照同樣的思路繼續(xù)分解下去,進(jìn)一步降低訓(xùn)練所需要的數(shù)據(jù)量。
拿人臉識別為例,各種各樣的人臉是由五官組合而成的,而各種各樣的五官,又是由不同的形狀組合而成,各種各樣的形狀又是由像素點(diǎn)所組合而成。我們可以這樣拆分下去來降低訓(xùn)練數(shù)據(jù)所需要的樣本數(shù)量。
但是這樣的拆分方式是有前提的。我們知道這個(gè)世界的事物是通過組合形成的,一個(gè)碳原子+兩個(gè)氧原子形成二氧化碳,三個(gè)氧原子形成臭氧。同時(shí)又不是線性組合,所以我們來看神經(jīng)網(wǎng)絡(luò)最基本的變化公式,每一層都是將x內(nèi)部的因素進(jìn)行組合,再加入非線性變換得出一個(gè)y,仿照著自然界數(shù)據(jù)的生成規(guī)律。而訓(xùn)練神經(jīng)網(wǎng)絡(luò)就是給大量的x與對應(yīng)的y,學(xué)習(xí)其中的W和b。就像線性方程y=ax+b,給你兩個(gè)例子,讓你求解a和b一樣。在第一部分中我們也提到了人體也是由這種組合方式形成的,所以神經(jīng)網(wǎng)絡(luò)非常適合去做畫面識別,語音識別。
如果在一個(gè)完全不同的物理規(guī)律的世界中,事物和我們的人體可能就不是以這種組合的方式形成,那么以這種拆分方式所學(xué)習(xí)到的關(guān)聯(lián)f就無法很好的完成生成數(shù)據(jù)的工作。所得到的預(yù)測也不會可靠。
但是到目前為止,所講的僅僅還是淺層神經(jīng)網(wǎng)絡(luò)為什么優(yōu)秀的原因。具有一個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)只要有足夠的隱藏節(jié)點(diǎn),就可以擬合任意的訓(xùn)練數(shù)據(jù)。
但是,為什么深層學(xué)習(xí)比淺層學(xué)習(xí)要優(yōu)秀。這其實(shí)在橢圓的位置就已經(jīng)可以感受到了,就是將拆分后的因素再次拆分,可以進(jìn)一步降低訓(xùn)練所需要的數(shù)據(jù)量。
然而,這里實(shí)際上已經(jīng)增加了第二條先驗(yàn)知識:那就是迭代變換。
我們知道原子會形成分子,而事物是在原子所形成的分子的基礎(chǔ)上,進(jìn)一步迭代形成的,并非再從原子開始重新生成。飛機(jī)是由原子到分子再到各式各樣的零件組合形成的。坦克同樣也利用到了相同的分子層。雖然作為圖片,坦克和飛機(jī)是不同的樣本,但是他們都共享著相同的分子層。這意味著當(dāng)你用深層神經(jīng)網(wǎng)絡(luò)時(shí),訓(xùn)練飛機(jī)樣本會間接的對坦克進(jìn)行了訓(xùn)練,降低了訓(xùn)練所需要的數(shù)據(jù)量。
以右邊的兩個(gè)圖為例,每個(gè)圖的左邊是神經(jīng)網(wǎng)絡(luò)連接圖,而右邊是不同變體之間的關(guān)系圖。鏈接在一起的圓圈表示一個(gè)節(jié)點(diǎn)可以取的不同數(shù)值,分開的圓圈就是不同的節(jié)點(diǎn)。
如果像上半部分那樣用一個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí),那么每個(gè)變體只被拆成了服務(wù)于它自己的獨(dú)立因素,并不會對其他的樣本起到作用。
但如果用深層網(wǎng)絡(luò),像下邊這個(gè)圖,就容易在a b c這三個(gè)因素的部分形成共享。那么在訓(xùn)練(3,0)這個(gè)樣本的時(shí)候,就會對所有共享a b c的其他樣本起到了間接的訓(xùn)練作用。
再拿編程做比較,我們不會去直接一步到位的編程,而是會分成很多個(gè)小模塊。這些小模塊可以在不同的需求下都適用,也就是共享。這樣,就不需要每遇到一個(gè)細(xì)微變化就重新編寫一次。
目前描述的網(wǎng)絡(luò)叫做深層前饋神經(jīng)網(wǎng)絡(luò),feedforward neural network。變換只會一層接著一層進(jìn)行,不同層之間不會有跳躍,并且組合也是在同一層內(nèi)的因素間進(jìn)行的。
想象如果一個(gè)網(wǎng)絡(luò)中的某個(gè)節(jié)點(diǎn)可以和其他的任何節(jié)點(diǎn)連接,那么這樣的網(wǎng)絡(luò)就沒有任何的側(cè)重。好比在你找人時(shí)被告知,他無處不在和他在哪都不在。這就相當(dāng)于沒有加入先驗(yàn)知識,沒有縮小尋找關(guān)聯(lián)f的海域。
所以前饋神經(jīng)網(wǎng)絡(luò)的這種連接方式,很好的縮小了訓(xùn)練所用的數(shù)據(jù)量。因?yàn)檫@種組合方式比較符合自然界的物理形成規(guī)律。
所以深層學(xué)習(xí)并不會在所有任務(wù)當(dāng)中都強(qiáng)大,但是在很多自然形成的數(shù)據(jù)當(dāng)中超越其他機(jī)器學(xué)習(xí)算法。
這時(shí)再回過頭來思考生命與環(huán)境的關(guān)系,環(huán)境會變得越來越復(fù)雜,但是復(fù)雜是在原有因素的基礎(chǔ)上增加依照物理規(guī)律形成的各種變體。比如原本只有n個(gè)因素,但是每個(gè)因素可以有兩種不同的狀態(tài),那么可以形成的變體就會有2的n次方。
而生物學(xué)習(xí)就是將這些變體再次拆分成因素,并且從中學(xué)到一個(gè)關(guān)聯(lián)方式,而這個(gè)關(guān)聯(lián)方式就是知識。
我們目前所講到的深層前饋神經(jīng)網(wǎng)絡(luò)引入了自然界中兩個(gè)固有的先驗(yàn)知識:
并行:新狀態(tài)是由若干舊狀態(tài)并行組合形成。
迭代:新狀態(tài)可由已形成的狀態(tài)再次迭代形成。
前饋神經(jīng)網(wǎng)絡(luò)可以適用于幾乎所有的任務(wù),但它非常一般性,所提供的先驗(yàn)知識的針對性很低。
先驗(yàn)知識不夠針對,那么訓(xùn)練所需要的數(shù)據(jù)量就會變大,并且過深之后會將那些噪音的形成規(guī)則也學(xué)習(xí)到模型當(dāng)中,而這些規(guī)律并不是我們想要的。
而神經(jīng)網(wǎng)絡(luò)的其他變體,比如循環(huán)神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)就提供了更多十分具有針對性的先驗(yàn)知識,可以縮小搜索的海域面積,排除掉那些噪音規(guī)律所帶來的額外干擾。
不同的神經(jīng)網(wǎng)絡(luò)變體,就在于你向其中加入了不同的先驗(yàn)知識。
那我希望用這個(gè)影片來讓大家感受,自然界中,并行組合和迭代變換這兩個(gè)先驗(yàn)知識的。
鋪墊了這么多,終于到了核心的部分。知道了深度學(xué)習(xí)為什么高效后,對于如何設(shè)計(jì)網(wǎng)絡(luò)也有了相應(yīng)的指導(dǎo)。
首先要明確兩點(diǎn):
深度學(xué)習(xí)并非萬能,使用深度學(xué)習(xí)的前提是你的數(shù)據(jù)可以使用這樣的先驗(yàn)知識。不然就像是用解英語題的巧妙方式去解數(shù)學(xué)題。
其次,深度學(xué)習(xí)沒有固定形式,不要認(rèn)為循環(huán)神經(jīng)網(wǎng)絡(luò)就是循環(huán)神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)就是卷積神經(jīng)網(wǎng)絡(luò)。如果你以這樣的方式去學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),你這輩子都學(xué)習(xí)不完。因?yàn)榫W(wǎng)絡(luò)的鏈接方式是無限的。你需要抓住至少兩個(gè)核心。拆分因素和因素共享。
每層內(nèi)的節(jié)點(diǎn)表示的是因素,這些因素共同描述事物的一種狀態(tài)。這些狀態(tài)可以逐層發(fā)展,發(fā)展后的狀態(tài)又可以進(jìn)行拆分和合并,來進(jìn)行下一個(gè)狀態(tài)的轉(zhuǎn)變。
你可以把一個(gè)方框視為神經(jīng)網(wǎng)絡(luò),并且神經(jīng)網(wǎng)絡(luò)可以繼續(xù)與其他神經(jīng)網(wǎng)絡(luò)形成更深的神經(jīng)網(wǎng)絡(luò)。比如卷積層處理完的輸出可以接著再進(jìn)行循環(huán)層的處理。
如右圖,第二個(gè)階段的因素就是由三個(gè)神經(jīng)網(wǎng)絡(luò)提供的,不同神經(jīng)網(wǎng)絡(luò)的因素之間可以進(jìn)行相加,也可以合并成更高維度的狀態(tài)。
設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)更像是玩樂高積木,但是玩的規(guī)則在于如何拆分因素,如何使不同的樣本之間形成因素共享。所以在看到很多新的網(wǎng)絡(luò)結(jié)構(gòu)時(shí),請務(wù)必考慮,他們的結(jié)構(gòu)是如何考慮因素拆分和因素共享的。
雖然大家習(xí)慣叫做循環(huán)神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò),但請以“層”去理解它們。層是指從一個(gè)狀態(tài)到另一個(gè)狀態(tài)的變化。那個(gè)變化才是層。
下面就看看循環(huán)層和卷積層是如何利用因素共享這個(gè)先驗(yàn)知識來降低訓(xùn)練所需數(shù)據(jù)量和排除噪音規(guī)律的干擾的。
另外記住,卷積層并不是只針對畫面識別,循環(huán)層也不是只針對時(shí)序信號。關(guān)鍵在于時(shí)間共享和空間共享。
如果用前饋層處理時(shí)序信號,需要將前后所發(fā)生事物狀態(tài)并成一個(gè)更大的向量。這樣每一個(gè)維度的權(quán)重都需要學(xué)習(xí),即使很多維度都是無關(guān)緊要的。并且這樣的方式只能處理固定長度的時(shí)序信號,長度不足時(shí)需要補(bǔ)零。
但如果告訴你,不同的時(shí)刻的狀態(tài)都是由相同的規(guī)則進(jìn)行處理的,那么一個(gè)時(shí)序序列中,每個(gè)時(shí)刻的狀態(tài)都可以為權(quán)重的學(xué)習(xí)提供幫助。比如在前饋層中,三個(gè)時(shí)刻只能對Wxh進(jìn)行一次學(xué)習(xí);但是在循環(huán)層中,三個(gè)時(shí)刻能對Wxh和Whh進(jìn)行三次學(xué)習(xí)。
不同時(shí)刻的狀態(tài)都是由相同規(guī)則進(jìn)行處理的,就是循環(huán)層加入的一條可以降低訓(xùn)練數(shù)據(jù)量同時(shí)排除噪音規(guī)律干擾的先驗(yàn)知識。應(yīng)用這種處理方式的原因是因?yàn)槭澜缟虾芏嗟臄?shù)據(jù)都符合時(shí)間共享的規(guī)律。比如你在演奏音樂,每個(gè)樂器的物理特性在時(shí)間維度上是不變的,并不會這個(gè)時(shí)刻是笛子的物理特性,而下一時(shí)刻變成了二胡的物理特性。
同時(shí)需要注意的是,循環(huán)層中有兩個(gè)因素流,一個(gè)是從輸入流得到的。另一個(gè)信息流是從上一個(gè)時(shí)刻的狀態(tài)得到的,都是時(shí)間共享。所以你可以看到循環(huán)層有兩個(gè)權(quán)重Whh和Wxh。
用前饋層做時(shí)序預(yù)測,相當(dāng)于徒手捏陶瓷,耗時(shí)耗力不說,又無法保證各個(gè)角度都相同。而用循環(huán)層做時(shí)序預(yù)測,相當(dāng)于使用轉(zhuǎn)盤,擺出一個(gè)手型后,每個(gè)角度都是以這種手型去捏制的。
人們常說循環(huán)神經(jīng)網(wǎng)絡(luò),比前饋神經(jīng)網(wǎng)絡(luò)要好的原因在于可以考慮更長的歷史信息。但我曾經(jīng)做過實(shí)驗(yàn),使用相同長度的歷史信息,將二者進(jìn)行比較后。循環(huán)神經(jīng)網(wǎng)絡(luò)依然比前饋網(wǎng)絡(luò)效果要好。一定程度上驗(yàn)證了共享的作用。
另外雙向循環(huán)神經(jīng)網(wǎng)絡(luò)是兩個(gè)循環(huán)層的堆疊,而堆疊后有兩種合并方法,一種是相加,一種是合成并更長的向量。我做過的所有實(shí)驗(yàn)中,相加的效果都比合并要好??赡芤彩且?yàn)榈诙€(gè)方向起到了限制作用。只有那些既可以在正向產(chǎn)生此種規(guī)律,又可以在反向產(chǎn)生另一種規(guī)律的關(guān)聯(lián)f才會被我們采用。
上述提到的是時(shí)間共享,還有空間共享的卷積層。前饋層同樣可以進(jìn)行畫面識別,但如果用前饋層,那么在這個(gè)例子中,就需要學(xué)習(xí)81個(gè)權(quán)重,而如果知道這些權(quán)重在空間下是共享的,那么可能只需要學(xué)習(xí)9個(gè)權(quán)重。
我們眼睛在觀察時(shí)并非將整個(gè)圖片全部收入眼簾。而是一個(gè)區(qū)域,一個(gè)區(qū)域掃描。每個(gè)區(qū)域掃描的規(guī)則是共享的,你的眼球不會在掃描這個(gè)區(qū)域時(shí)是人眼,而在掃描下個(gè)區(qū)域時(shí)卻成了貓的眼睛。
設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)實(shí)質(zhì)上就是在對假設(shè)空間進(jìn)行調(diào)整。也就是選擇在哪些片海域?qū)ふ夷愕年P(guān)聯(lián)f。
這里我總結(jié)了四條設(shè)計(jì)原則。
增加共享,降低確定關(guān)聯(lián)f所需要的數(shù)據(jù)量。如果你知道它大致在大海的哪個(gè)范圍后,就可以使用更少的漁網(wǎng),更快的打撈上來。
增加懲罰,我們可能會事先知道關(guān)聯(lián)f不滿足哪些特點(diǎn)。那么一旦這種特點(diǎn)的關(guān)聯(lián)f在訓(xùn)練中被找到時(shí),我們就對結(jié)果進(jìn)行懲罰,起到篩選作用。用打魚做比喻的話,那些不符合條件的小魚會被大孔漁網(wǎng)篩選掉。
優(yōu)化起點(diǎn),我們優(yōu)先從哪片海域先開始尋找,找不到再找其它的海域。
降低變體數(shù),變體數(shù)量越多,我們就需要見到越多的數(shù)據(jù)。所以我們可以預(yù)處理數(shù)據(jù),將變體數(shù)量在學(xué)習(xí)之前就降低下去。比如將數(shù)據(jù)減去平均值,除以均差。
神經(jīng)網(wǎng)絡(luò)其實(shí)并不黑箱,黑箱的是你要學(xué)習(xí)的任務(wù)。就像高考的難點(diǎn)在于你不知道等待你的是什么題目。
神經(jīng)網(wǎng)絡(luò)也像是料理,并不是一種方式適用于所有的食材,你要根據(jù)你的食材特點(diǎn)選擇合理的烹飪方式。
接下來我們再來看看應(yīng)用這些設(shè)計(jì)原則的各項(xiàng)技術(shù)。
遷移學(xué)習(xí)是利用知識共享這一特點(diǎn),將一個(gè)任務(wù)中已經(jīng)學(xué)到的關(guān)聯(lián)應(yīng)用到其他任務(wù)當(dāng)中去。比如在畫面識別中,我們用大量的反光x到概念y來學(xué)習(xí)我們的視覺系統(tǒng)。
畫面識別的前幾層其實(shí)就可以想象成是人類的眼球是如何將反光關(guān)聯(lián)到視網(wǎng)膜上的,而后幾層可以想象成視網(wǎng)膜上的成像又是如何逐層變成抽象的圖形概念的。
那么將已經(jīng)訓(xùn)練好的,用于識別動物的神經(jīng)網(wǎng)絡(luò)的前幾層這個(gè)f1拿出來,在識別植物的神經(jīng)網(wǎng)絡(luò)中,額外加兩層再做輕微訓(xùn)練,同樣適用,畢竟大家都是人眼,這部分的f1很大程度上是共享的。
多任務(wù)學(xué)習(xí)其實(shí)和遷移學(xué)習(xí)使用的是相同的先驗(yàn)知識。只是利用方式有些許不同。遷移學(xué)習(xí)是將已學(xué)到的知識用在另一個(gè)共享著相同知識的其他任務(wù)上。
而多任務(wù)學(xué)習(xí),是在訓(xùn)練的時(shí)候用共享著相同底層知識的其他任務(wù)的數(shù)據(jù)來幫助一起訓(xùn)練??梢云鸬綌U(kuò)充訓(xùn)練數(shù)據(jù)量的作用。
同時(shí)尋找到的關(guān)聯(lián)f更加優(yōu)秀。因?yàn)槿齻€(gè)不同的任務(wù)對底層的知識同時(shí)進(jìn)行了約束。只有同時(shí)滿足三個(gè)不同任務(wù)的關(guān)聯(lián)f才會被采用,這就排除掉那些只符合單個(gè)任務(wù)的關(guān)聯(lián)f。
這是另一條先驗(yàn)知識,我們知道前饋神經(jīng)網(wǎng)絡(luò)是不允許跨層組合的。
但現(xiàn)實(shí)中是否有跨層組合的現(xiàn)象? 比如說我們在判斷一個(gè)人的時(shí)候,很多時(shí)候我們并不是觀察它的全部,或者給你的圖片本身就是殘缺的。這時(shí)我們會靠單個(gè)五官,外加這個(gè)人的著裝,再加他的身形來綜合判斷這個(gè)人。這樣,即便圖片本身是殘缺的也可以很好的判斷它是什么。這和前饋神經(jīng)網(wǎng)絡(luò)的先驗(yàn)知識不同,它允許不同層級之間的因素進(jìn)行組合。
殘差網(wǎng)絡(luò)就是擁有這種特點(diǎn)的神經(jīng)網(wǎng)絡(luò)。大家喜歡用機(jī)器學(xué)習(xí)的方式去解釋為什么殘差網(wǎng)絡(luò)更優(yōu)秀。
這里我只是提供了一個(gè)以先驗(yàn)知識的角度去理解的方式。
需要注意的是每一層并不會像我這里所展示的那樣,會形成明確的五官層,只是有這樣的組合趨勢,實(shí)際無法保證神經(jīng)網(wǎng)絡(luò)到底學(xué)到了什么內(nèi)容。
其本質(zhì)仍然屬于遷移學(xué)習(xí),但是將知識以不同的方式遷移。一般的遷移學(xué)習(xí)是將學(xué)到的權(quán)重直接用在新的模型當(dāng)中,遷移的是權(quán)重。而蒸餾模型所遷移的是標(biāo)簽。
比如這張圖中,有兩個(gè)模型,完成的任務(wù)是相同的,但是叫做老師的這個(gè)模型擁有更好的特征(輸入),而叫做學(xué)生的這個(gè)模型由于實(shí)際應(yīng)用的約束,無法使用這樣的特征。
蒸餾模型的做法是先訓(xùn)練老師模型,用老師模型的預(yù)測值作為一種額外的標(biāo)簽,在訓(xùn)練學(xué)生模型的時(shí)候和學(xué)生模型自己的標(biāo)簽一同使用,幫助學(xué)生模型尋找到更好的關(guān)聯(lián)f。而這種幫助過程只發(fā)生在訓(xùn)練階段,實(shí)際的使用中,只用學(xué)生模型。這就好比一個(gè)學(xué)生在做題的時(shí)候,他既有參考答案,又有一個(gè)家教的指導(dǎo)。雖然家教無法代替學(xué)生去考試。因?yàn)橛屑医痰妮o導(dǎo),這個(gè)學(xué)生會比沒有家教輔導(dǎo)的學(xué)生更容易學(xué)習(xí)。雖然作為叛逆學(xué)生的我不喜歡承認(rèn)這一點(diǎn)。
因?yàn)椴恍枰褂美蠋熌P停@種技術(shù)也用于壓縮深層神經(jīng)網(wǎng)絡(luò)的大小。同時(shí)也應(yīng)用于那些只有訓(xùn)練時(shí)才可以獲得,而實(shí)際應(yīng)用時(shí)無法獲得的額外信息。
我的碩士研究,結(jié)合口型的語音識別就是這種特點(diǎn)的任務(wù)。我不能在識別的時(shí)候在人的嘴里加一個(gè)用于測量口型移動的機(jī)器??谛蛿?shù)據(jù)只可以在訓(xùn)練的時(shí)候作為額外信息幫助我訓(xùn)練出更好的模型。
自動編碼器是利用并行與迭代的這兩個(gè)先驗(yàn)知識,來操控變體的一種技術(shù)。
當(dāng)它用作生成模型時(shí),它就可以仿造自然界的變體生成方式來生成出各種不同的變體。比如我輸入7這個(gè)數(shù)字,他就可以利用自然界的變體生成方式來生成各種7的變體。
當(dāng)它用作特征工程時(shí),實(shí)際上就是disentangle the factors of variation不斷的拆分變體的因素,達(dá)到減少變體數(shù)量的作用,所以會逐層減少節(jié)點(diǎn),再以對稱的方式將其變換到原來的輸入,最后取變體數(shù)量最少的中間層作為特征表達(dá)。降低變體數(shù)量后,就可以降低學(xué)習(xí)所需要的數(shù)據(jù)量。
一般我們會在輸入和輸出進(jìn)行預(yù)處理,減去均值和標(biāo)準(zhǔn)差,降低變體數(shù)量。這個(gè)思路一樣可以在隱藏層實(shí)施。因?yàn)檩斎牒洼敵鍪鞘挛锏臓顟B(tài),有變體,隱藏層同樣是發(fā)展的中間狀態(tài),也有變體。
這張圖描述了機(jī)器學(xué)習(xí)歷史。我們逐漸的減少人類知識在學(xué)習(xí)中的作用,而是讓機(jī)器自己去學(xué)習(xí)知識。
假設(shè)我們的輸入x是細(xì)胞層面,而輸出的器官層面。如果使用傳統(tǒng)的機(jī)器學(xué)習(xí)方式,我們會盡可能的,人工的去學(xué)習(xí)如何將細(xì)胞層面的輸入x轉(zhuǎn)換到一個(gè)線性可分的空間下去,然后再讓機(jī)器來學(xué)習(xí)知識。但這需要一個(gè)專家用一生去學(xué)習(xí)細(xì)胞層是如何到達(dá)組織層的,并且還難以照顧到潛在細(xì)節(jié)。
而端到端的思想就是直接消除人工預(yù)處理和后續(xù)處理,盡可能讓模型利用自然界的先驗(yàn)知識從輸入自己形成到達(dá)輸出的規(guī)則,增加模型的整體契合度。
過擬合是指你在學(xué)習(xí)時(shí),過分?jǐn)M合訓(xùn)練集的數(shù)據(jù)了。
拿右圖舉例,中間的是擬合的剛剛好。而左邊的情況是欠擬合,而右邊的情況是過分?jǐn)M合訓(xùn)練數(shù)據(jù)了。
神經(jīng)網(wǎng)絡(luò)抑制過擬合有以下常用的幾點(diǎn),而這幾點(diǎn)在人們?nèi)粘W(xué)習(xí)中同樣適用。拿歷年真題為訓(xùn)練集,高考為測試集來說。
dropout(遺忘),訓(xùn)練神經(jīng)網(wǎng)絡(luò)是若干個(gè)樣本,逐步送到神經(jīng)網(wǎng)絡(luò)中訓(xùn)練。這些樣本當(dāng)中不可能只包含一種規(guī)律,那些小細(xì)節(jié)也能形成規(guī)律。如果連續(xù)送入網(wǎng)絡(luò)的幾個(gè)樣本都具有相同的細(xì)節(jié)規(guī)律,那么就會影響我們真正想要學(xué)習(xí)的規(guī)律。而使用dropout后,每次學(xué)習(xí)都會遺忘一些規(guī)律。這樣,即使有幾個(gè)擁有相同細(xì)節(jié)規(guī)律的樣本很偶然的被連續(xù)的送入網(wǎng)絡(luò)中訓(xùn)練,也會被忘掉。只有所有樣本中都有的大規(guī)律才會被記住。
shuffle(亂序),訓(xùn)練的樣本不要有固定順序,而要隨機(jī)打亂。和dropout的原因是一樣的,防止擁有相同細(xì)節(jié)規(guī)律的樣本連續(xù)被送入網(wǎng)絡(luò)。比如我們不要一直從abandon,放棄,遺棄開始背英語單詞一樣。
L2 regularization(保持最簡化),解決的方案不要過于復(fù)雜。不然只能顧及特例而失去普遍性。 就是老師提倡你在高考使用最普遍的解題方式一樣。
mini-batch(多題一起做),相互比較后得出結(jié)論。比如同時(shí)看兩本描述不同的書可以得到更好地理解。
noisy layer(加噪音),題目加入一些干擾項(xiàng)、改變考前環(huán)境、教室、平時(shí)狀態(tài)等,增加魯棒性。噪音會對我們的結(jié)果造成影響,改變數(shù)據(jù)的分布。而神經(jīng)網(wǎng)絡(luò)是干脆直接將噪音也一起建模在網(wǎng)絡(luò)當(dāng)中,將正常因素和噪音因素形成的組合作為最后的結(jié)果。
機(jī)器,計(jì)算機(jī),人工智能,這些都是人類自身能力的延伸,這些技術(shù)可以應(yīng)用在任何行業(yè)之中。
曾經(jīng)我們是靠鋤頭耕地,現(xiàn)在靠機(jī)器;曾經(jīng)我們靠算盤算賬,現(xiàn)在靠計(jì)算機(jī)。但是機(jī)械也好,計(jì)算機(jī)也好,所更換的僅僅是工具,不是工作內(nèi)容。我們始終需要耕地,需要算賬。
同樣的人工智能僅僅幫助我們建立關(guān)聯(lián)。有了合理的關(guān)聯(lián)f,我們就可以根據(jù)特定情況產(chǎn)生相應(yīng)的行為。 人工智能和機(jī)械以及計(jì)算機(jī)一樣,都是工具,并不會改變我們想要完成的任務(wù)。而未來的所有任務(wù)都可以依靠這一項(xiàng)新工具來實(shí)現(xiàn)。
最后,所有的這些內(nèi)容你在其他的材料基本不會看到。
因?yàn)楹苌儆邢裎疫@么不務(wù)正業(yè)的學(xué)生,這也好奇,那也好奇,這摳一點(diǎn),那摳一點(diǎn)。
這些內(nèi)容都是我個(gè)人的思考,相當(dāng)非主流。但是我將他們寫在了我終身連載的《超智能體》當(dāng)中。一個(gè)關(guān)于如何用人腦學(xué)習(xí),如何機(jī)器學(xué)習(xí)的書。我希望這些內(nèi)容可以給人們理解生命,理解智能的另一個(gè)視角。
同時(shí)我也以我自己所理解的方式寫了一些深度學(xué)習(xí)的教程。這些教程的側(cè)重點(diǎn)不一樣,我希望讀者可以理解其背后的道理,而不是單純的搭建一個(gè)神經(jīng)網(wǎng)絡(luò),完成某個(gè)特定的任務(wù),在想要使用新任務(wù)時(shí)卻無從下手。
最后呢,雖然我叫于建國,但是我不是國慶節(jié)出生的,我是非常倔強(qiáng)的白羊座。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。