0
雷鋒網(wǎng) AI 科技評(píng)論按:本文來(lái)自 Keras 作者 Fran?ois Chollet,同時(shí)也是根據(jù)他撰寫(xiě)的《Deeping Learning with Python》一書(shū)第 9 章第 2 節(jié)改編的。關(guān)于當(dāng)前深度學(xué)習(xí)的局限性及其未來(lái)的思考,F(xiàn)ran?ois Chollet 共撰寫(xiě)了兩篇文章,這篇是其中第一篇。雷鋒網(wǎng) AI 科技評(píng)論編譯如下
作者注:這篇文章的受眾是已經(jīng)有深度學(xué)習(xí)經(jīng)驗(yàn)的人(例如讀過(guò)本書(shū)第 1 章至第 8 章的人)。 我們假設(shè)讀者已經(jīng)具有一定知識(shí)儲(chǔ)備。
深度學(xué)習(xí)最令人驚訝之處就在于它十分簡(jiǎn)單。十年前,沒(méi)有人指望由梯度下降方法訓(xùn)練的簡(jiǎn)單參數(shù)模型就可以在機(jī)器感知問(wèn)題上獲得驚人的結(jié)果?,F(xiàn)在,事實(shí)證明,你只需要一個(gè)有足夠多參數(shù)的模型,并且在足夠大的數(shù)據(jù)集上使用梯度下降進(jìn)行訓(xùn)練。正如 Feynman 曾經(jīng)描述宇宙那樣,「它并不復(fù)雜,只是很多而已」。
在深度學(xué)習(xí)中,一切都是一個(gè)向量,即一切都是幾何空間中的一個(gè)點(diǎn)。模型輸入(可以是文本,圖像等)和目標(biāo)首先被「矢量化」,即變成一些初始輸入矢量空間和目標(biāo)矢量空間。深度學(xué)習(xí)模型中的每一層對(duì)通過(guò)它的數(shù)據(jù)進(jìn)行簡(jiǎn)單的幾何變換。同時(shí),模型的層次鏈形成一個(gè)非常復(fù)雜的幾何變換,分解成一系列簡(jiǎn)單的幾何變換。這種復(fù)雜的轉(zhuǎn)換嘗試將輸入空間一次一個(gè)點(diǎn)得映射到目標(biāo)空間。這種轉(zhuǎn)換是通過(guò)層的權(quán)重進(jìn)行參數(shù)化的,權(quán)重根據(jù)模型當(dāng)前執(zhí)行的情況進(jìn)行迭代更新。這種幾何變換的一個(gè)關(guān)鍵特征是它必須是可微分的,這是為了使我們能夠通過(guò)梯度下降學(xué)習(xí)它的參數(shù)。直觀地說(shuō),這意味著從輸入到輸出的幾何變形必須平滑且連續(xù)——這是一個(gè)重要的約束條件。
這種復(fù)雜的幾何變換應(yīng)用到輸入數(shù)據(jù)的整個(gè)過(guò)程可以用三維的形式進(jìn)行可視化,將其想象成一個(gè)人試圖將揉成團(tuán)的紙球恢復(fù)平整:皺巴巴的紙球是模型開(kāi)始時(shí)的輸入數(shù)據(jù)的復(fù)本。人對(duì)紙球的每個(gè)操作相當(dāng)于一層簡(jiǎn)單幾何轉(zhuǎn)換的操作。完整的撫平(紙球)動(dòng)作順序是整個(gè)模型的復(fù)雜轉(zhuǎn)換。深度學(xué)習(xí)模型是用于解開(kāi)高維數(shù)據(jù)復(fù)雜流形的數(shù)學(xué)機(jī)器。
深度學(xué)習(xí)的神奇之處在于:將語(yǔ)義轉(zhuǎn)化為矢量,轉(zhuǎn)化為幾何空間,然后逐漸學(xué)習(xí)將一個(gè)空間映射到另一個(gè)空間的復(fù)雜幾何轉(zhuǎn)換。你需要的只是足夠高維數(shù)的空間,以便捕捉原始數(shù)據(jù)中全部的關(guān)系范圍。
用這個(gè)簡(jiǎn)單策略實(shí)現(xiàn)的應(yīng)用程序空間幾乎是無(wú)限的。然而,現(xiàn)有的深度學(xué)習(xí)技術(shù)對(duì)于更多的應(yīng)用程序完全無(wú)能為力——即使提供了大量的人工注釋數(shù)據(jù)。例如,你可以嘗試收集成千上萬(wàn)甚至百萬(wàn)的關(guān)于軟件產(chǎn)品特征的英文描述的數(shù)據(jù)集,由產(chǎn)品經(jīng)理編寫(xiě),以及由工程師團(tuán)隊(duì)開(kāi)發(fā)的相應(yīng)的源代碼來(lái)滿足這些要求。即使有了這些數(shù)據(jù),你也無(wú)法訓(xùn)練深入的學(xué)習(xí)模式去簡(jiǎn)單地閱讀產(chǎn)品說(shuō)明并生成適當(dāng)?shù)拇a庫(kù)。這只是其中的一個(gè)例子。一般來(lái)說(shuō),無(wú)論你投入多少數(shù)據(jù),深度學(xué)習(xí)模型都無(wú)法實(shí)現(xiàn)任何需要推理的東西,如編程或科學(xué)方法的應(yīng)用——長(zhǎng)期規(guī)劃和類似算法的數(shù)據(jù)操作。即使使用深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)排序算法也是非常困難的。
這是因?yàn)樯疃葘W(xué)習(xí)模型僅僅是將一個(gè)向量空間映射到另一個(gè)向量空間的簡(jiǎn)單連續(xù)幾何變換鏈。它可以做的全部就是將一個(gè)數(shù)據(jù)流形 X 映射到另一個(gè)流形 Y,假設(shè)存在從 X到 Y 的可學(xué)習(xí)連續(xù)變換的話,并且可以使用密集的 X:Y 采樣作為訓(xùn)練數(shù)據(jù)。因此,盡管深度學(xué)習(xí)模型可以被解釋為一種程序,反過(guò)來(lái)說(shuō)的話,大多數(shù)程序不能被表達(dá)為深度學(xué)習(xí)模型——對(duì)于大多數(shù)任務(wù)來(lái)說(shuō),要么沒(méi)有相應(yīng)的實(shí)際大小的深度神經(jīng)網(wǎng)絡(luò)來(lái)解決任務(wù),或者存在這樣的神經(jīng)網(wǎng)絡(luò),但它可能無(wú)法學(xué)習(xí),即相應(yīng)的幾何變換可能太復(fù)雜,或者可能沒(méi)有合適的數(shù)據(jù)可用來(lái)學(xué)習(xí)它。
通過(guò)堆疊更多層并使用更多訓(xùn)練數(shù)據(jù)來(lái)擴(kuò)展當(dāng)前的深度學(xué)習(xí)技術(shù),只能在表面上緩解一些問(wèn)題。它不能解決深度學(xué)習(xí)模型在他們可以表示的內(nèi)容種類非常有限的基本問(wèn)題,并且大多數(shù)被期望可學(xué)習(xí)的程序不能被表示為數(shù)據(jù)流形的連續(xù)幾何變形。
當(dāng)代人工智能的一個(gè)非?,F(xiàn)實(shí)的風(fēng)險(xiǎn)是人們誤解了深度學(xué)習(xí)模型的作用,并高估了他們的能力。人類思維的一個(gè)基本特征是我們的「心智理論」,我們傾向于將意向,信仰和知識(shí)投射到我們身邊的事物上。在我們的意識(shí)中,在巖石上畫(huà)一個(gè)笑臉石頭就突然變「快樂(lè)」了。應(yīng)用于深度學(xué)習(xí),這意味著當(dāng)我們能夠「基本成功」的訓(xùn)練模型以生成用于描述圖片的標(biāo)題時(shí),我們就會(huì)相信該模型能夠「理解」圖片的內(nèi)容以及「理解」它所生成的字幕。然后,當(dāng)訓(xùn)練數(shù)據(jù)中出現(xiàn)的圖像類別輕微偏離時(shí),我們會(huì)非常驚訝地發(fā)現(xiàn)模型開(kāi)始生成完全荒謬的標(biāo)題。
尤其是「對(duì)抗性樣本」值得強(qiáng)調(diào),這些例子是一個(gè)深度學(xué)習(xí)網(wǎng)絡(luò)的輸入樣本,旨在誘騙模型對(duì)它們進(jìn)行錯(cuò)誤分類。你已經(jīng)意識(shí)到,可以在輸入空間中進(jìn)行梯度上升以生成最大化某個(gè)閉環(huán)過(guò)濾器激活的輸入,這是我們?cè)诘?5 章中介紹的過(guò)濾器可視化技術(shù)的基礎(chǔ),以及第 8 章的 Deep Dream 算法。同樣,通過(guò)梯度上升,人們可以稍微修改圖像以最大化給定類的類別預(yù)測(cè)。通過(guò)拍攝一張熊貓的圖片并添加一個(gè)「長(zhǎng)臂猿」梯度,我們可以得到一個(gè)神經(jīng)網(wǎng)絡(luò),將這只熊貓歸類為長(zhǎng)臂猿。這證明了這些模型的脆弱性,以及它們的輸入——輸出映射與我們?nèi)祟愖陨碚J(rèn)知之間的深刻差異。
總之,深度學(xué)習(xí)模型并不理解他們的輸入,至少?zèng)]有人類意識(shí)上的理解。我們?nèi)祟悓?duì)圖像,聲音和語(yǔ)言的理解是基于我們作為人類的感覺(jué)運(yùn)動(dòng)體驗(yàn)——正如地球上的生物所表現(xiàn)的一樣。機(jī)器學(xué)習(xí)模型無(wú)法獲得這些經(jīng)驗(yàn),因此無(wú)法以與人類一致的視角來(lái)「理解」他們的輸入。 通過(guò)注釋大量的訓(xùn)練樣例來(lái)訓(xùn)練我們的模型,我們讓他們學(xué)習(xí)在特定數(shù)據(jù)集上,將數(shù)據(jù)映射到人類概念的幾何變換,但這個(gè)映射只是我們頭腦中原始模型的簡(jiǎn)單概要,這是我們作為人類實(shí)體的體驗(yàn)得來(lái)的——它就像鏡子里的一個(gè)模糊的形象。
作為一名機(jī)器學(xué)習(xí)實(shí)踐者,請(qǐng)始終注意這一點(diǎn),永遠(yuǎn)不要陷入這樣一個(gè)陷阱,即相信神經(jīng)網(wǎng)絡(luò)理解他們所執(zhí)行的任務(wù)——他們不會(huì)的,至少不會(huì)以對(duì)我們有意義的方式理解。不同于我們想教他們的任務(wù),他們被訓(xùn)練來(lái)執(zhí)行更為狹窄的任務(wù):僅僅將訓(xùn)練集輸入逐點(diǎn)映射到訓(xùn)練目標(biāo)中。向他們展示任何偏離訓(xùn)練數(shù)據(jù)的東西,他們將給出最荒謬的結(jié)果。
深度學(xué)習(xí)模型中從輸入到輸出的直接幾何變形,與人類思考和學(xué)習(xí)的方式之間幾乎是完全不同的。這不僅僅是人類從自身的經(jīng)驗(yàn)中學(xué)習(xí)而不是通過(guò)明確的訓(xùn)練實(shí)例來(lái)學(xué)習(xí)的問(wèn)題。除了學(xué)習(xí)過(guò)程不同之外,基本表征的性質(zhì)也存在根本差異。
人類能做的遠(yuǎn)遠(yuǎn)不只是像深度神經(jīng)網(wǎng)絡(luò)或昆蟲(chóng)那樣把即時(shí)刺激映射成即時(shí)反應(yīng)。人們維持著關(guān)于目前處境、關(guān)于他們自己和其他人的復(fù)雜抽象模型,并且可以使用這些模型來(lái)預(yù)測(cè)不同的可能發(fā)生的未來(lái)并執(zhí)行長(zhǎng)期規(guī)劃。他們能夠?qū)⒁阎母拍詈喜⒃谝黄?,?lái)表示他們以前從未經(jīng)歷過(guò)的事物,例如描繪穿著牛仔褲的馬,或想象如果他們中了彩票就會(huì)做什么。這種處理假設(shè)的能力,擴(kuò)展了我們的心智模型空間,使其遠(yuǎn)遠(yuǎn)超出我們可以直接體驗(yàn)到的事物空間,總而言之,進(jìn)行抽象和推理,可以說(shuō)是人類認(rèn)知的決定性特征。我稱之為「極限泛化」:這是一種在面對(duì)未經(jīng)歷的情況時(shí),使用很少的數(shù)據(jù)甚至根本沒(méi)有新的數(shù)據(jù)就能適應(yīng)新情況的能力。
這與深度網(wǎng)絡(luò)所做的形成鮮明對(duì)比,我稱之為「局部泛化」:如果新輸入與訓(xùn)練時(shí)看到的略有不同,則由深度網(wǎng)絡(luò)執(zhí)行的從輸入到輸出的映射立馬失去意義。例如,來(lái)思考這樣一問(wèn)題,想要學(xué)習(xí)使火箭在月球上著陸的合適的發(fā)射參數(shù)。如果你要使用深層網(wǎng)絡(luò)來(lái)完成這項(xiàng)任務(wù),無(wú)論是使用監(jiān)督學(xué)習(xí)還是增強(qiáng)學(xué)習(xí)進(jìn)行訓(xùn)練,你都需要用數(shù)千乃至數(shù)百萬(wàn)次的發(fā)射試驗(yàn)進(jìn)行訓(xùn)練,也就是說(shuō),你需要將模型置于密集的輸入采樣點(diǎn)空間,以便學(xué)習(xí)從輸入空間到輸出空間的可靠映射。相比之下,人類可以利用他們的抽象能力來(lái)提出物理模型——火箭科學(xué)——并得出一個(gè)確切的解決方案,只需一次或幾次試驗(yàn)即可獲得月球上的火箭的發(fā)射參數(shù)。同樣,如果你開(kāi)發(fā)了一個(gè)控制人體的深度網(wǎng)絡(luò),要它能夠在城市中安全地駕駛汽車(chē)并不被其他汽車(chē)撞,那么這個(gè)網(wǎng)絡(luò)將不得不「死亡」數(shù)千次在各種場(chǎng)景中,直到它可以推斷出汽車(chē)和危險(xiǎn)并制定適當(dāng)?shù)幕乇艽胧?。放到一個(gè)新的城市,網(wǎng)絡(luò)將不得不重新學(xué)習(xí)已知的大部分知識(shí)。另一方面,人類就不必通過(guò)死亡來(lái)學(xué)習(xí)安全的行為,這要?dú)w功于他們對(duì)假設(shè)情境的抽象建模的能力。
總之,盡管我們?cè)跈C(jī)器感知方面取得了進(jìn)展,但我們離人類級(jí)別的 AI 還很遠(yuǎn):我們的模型只能執(zhí)行局部泛化,要適應(yīng)一種新場(chǎng)景必須與原始數(shù)據(jù)聯(lián)系的很緊密,而人類認(rèn)知能夠極限泛化,快速適應(yīng)全新的情況,或?yàn)殚L(zhǎng)期的未來(lái)情況做出規(guī)劃。
以下是您應(yīng)該記住的內(nèi)容:到目前為止,深度學(xué)習(xí)的唯一真正成功之處就是在給定大量人工注釋數(shù)據(jù)的情況下,使用連續(xù)幾何變換將空間 X 映射到空間 Y 的能力。做好這件事對(duì)于每個(gè)行業(yè)來(lái)說(shuō)都是一件改變行業(yè)游戲規(guī)則的事兒,但它離人類級(jí)別的 AI 還有很長(zhǎng)的路要走。
為了解除這些局限性并開(kāi)始與人類大腦進(jìn)行競(jìng)爭(zhēng),我們需要從簡(jiǎn)單的輸入到輸出映射轉(zhuǎn)向推理和抽象。計(jì)算機(jī)程序可能是對(duì)各種情況和概念進(jìn)行抽象建模的一個(gè)合適的基礎(chǔ)。我們之前書(shū)中已經(jīng)說(shuō)過(guò),機(jī)器學(xué)習(xí)模型可以被定義為「可學(xué)習(xí)程序」;目前我們能學(xué)習(xí)的程序?qū)儆谒锌赡艹绦蛑蟹浅*M窄和特定子集。但是如果我們能夠以模塊化和可重用的方式學(xué)習(xí)任何程序呢?讓我們?cè)谙乱徊糠种杏懻撋疃葘W(xué)習(xí)的未來(lái)發(fā)展之路。
via keras.io,雷鋒網(wǎng) AI 科技評(píng)論編譯
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。