偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

深度學(xué)習(xí)的局限性和未來(lái)

人工智能 深度學(xué)習(xí)
深度學(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)練。

[[227297]]

按:本文來(lái)自 Keras 作者 François Chollet,同時(shí)也是根據(jù)他撰寫(xiě)的《Deeping Learning with Python》一書(shū)第 9 章第 2 節(jié)改編的

作者注:這篇文章的受眾是已經(jīng)有深度學(xué)習(xí)經(jīng)驗(yàn)的人(例如讀過(guò)本書(shū)第 1 章至第 8 章的人)。 我們假設(shè)讀者已經(jīng)具有一定知識(shí)儲(chǔ)備。

深度學(xué)習(xí)的幾何學(xué)視角

深度學(xué)習(xí)最令人驚訝之處就在于它十分簡(jiǎn)單。十年前,沒(méi)有人指望由梯度下降方法訓(xùn)練的簡(jiǎn)單參數(shù)模型就可以在機(jī)器感知問(wèn)題上獲得驚人的結(jié)果。現(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ù)。直觀(guān)地說(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)系范圍。

深度學(xué)習(xí)的局限性

用這個(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)滿(mǎn)足這些要求。即使有了這些數(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ī)劃和類(lèi)似算法的數(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ù)變換的話(huà),并且可以使用密集的 X:Y 采樣作為訓(xùn)練數(shù)據(jù)。因此,盡管深度學(xué)習(xí)模型可以被解釋為一種程序,反過(guò)來(lái)說(shuō)的話(huà),大多數(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)容種類(lèi)非常有限的基本問(wèn)題,并且大多數(shù)被期望可學(xué)習(xí)的程序不能被表示為數(shù)據(jù)流形的連續(xù)幾何變形。

擬人化機(jī)器學(xué)習(xí)模型的風(fēng)險(xiǎn)

當(dāng)代人工智能的一個(gè)非?,F(xiàn)實(shí)的風(fēng)險(xiǎn)是人們誤解了深度學(xué)習(xí)模型的作用,并高估了他們的能力。人類(lèi)思維的一個(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)的圖像類(lèi)別輕微偏離時(shí),我們會(huì)非常驚訝地發(fā)現(xiàn)模型開(kāi)始生成完全荒謬的標(biāo)題。

[[227298]]

尤其是「對(duì)抗性樣本」值得強(qiáng)調(diào),這些例子是一個(gè)深度學(xué)習(xí)網(wǎng)絡(luò)的輸入樣本,旨在誘騙模型對(duì)它們進(jìn)行錯(cuò)誤分類(lèi)。你已經(jīng)意識(shí)到,可以在輸入空間中進(jìn)行梯度上升以生成最大化某個(gè)閉環(huán)過(guò)濾器激活的輸入,這是我們?cè)诘? 5 章中介紹的過(guò)濾器可視化技術(shù)的基礎(chǔ),以及第 8 章的 Deep Dream 算法。同樣,通過(guò)梯度上升,人們可以稍微修改圖像以最大化給定類(lèi)的類(lèi)別預(yù)測(cè)。通過(guò)拍攝一張熊貓的圖片并添加一個(gè)「長(zhǎng)臂猿」梯度,我們可以得到一個(gè)神經(jīng)網(wǎng)絡(luò),將這只熊貓歸類(lèi)為長(zhǎng)臂猿。這證明了這些模型的脆弱性,以及它們的輸入——輸出映射與我們?nèi)祟?lèi)自身認(rèn)知之間的深刻差異。

深度學(xué)習(xí)的局限性和未來(lái)

總之,深度學(xué)習(xí)模型并不理解他們的輸入,至少?zèng)]有人類(lèi)意識(shí)上的理解。我們?nèi)祟?lèi)對(duì)圖像,聲音和語(yǔ)言的理解是基于我們作為人類(lèi)的感覺(jué)運(yùn)動(dòng)體驗(yàn)——正如地球上的生物所表現(xiàn)的一樣。機(jī)器學(xué)習(xí)模型無(wú)法獲得這些經(jīng)驗(yàn),因此無(wú)法以與人類(lèi)一致的視角來(lái)「理解」他們的輸入。 通過(guò)注釋大量的訓(xùn)練樣例來(lái)訓(xùn)練我們的模型,我們讓他們學(xué)習(xí)在特定數(shù)據(jù)集上,將數(shù)據(jù)映射到人類(lèi)概念的幾何變換,但這個(gè)映射只是我們頭腦中原始模型的簡(jiǎn)單概要,這是我們作為人類(lèi)實(shí)體的體驗(yàn)得來(lái)的——它就像鏡子里的一個(gè)模糊的形象。

深度學(xué)習(xí)的局限性和未來(lái)

作為一名機(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í)模型中從輸入到輸出的直接幾何變形,與人類(lèi)思考和學(xué)習(xí)的方式之間幾乎是完全不同的。這不僅僅是人類(lèi)從自身的經(jīng)驗(yàn)中學(xué)習(xí)而不是通過(guò)明確的訓(xùn)練實(shí)例來(lái)學(xué)習(xí)的問(wèn)題。除了學(xué)習(xí)過(guò)程不同之外,基本表征的性質(zhì)也存在根本差異。

人類(lèi)能做的遠(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ō)是人類(lèi)認(rèn)知的決定性特征。我稱(chēng)之為「極限泛化」:這是一種在面對(duì)未經(jīng)歷的情況時(shí),使用很少的數(shù)據(jù)甚至根本沒(méi)有新的數(shù)據(jù)就能適應(yīng)新情況的能力。

這與深度網(wǎng)絡(luò)所做的形成鮮明對(duì)比,我稱(chēng)之為「局部泛化」:如果新輸入與訓(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)可以利用他們的抽象能力來(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í)。另一方面,人類(lèi)就不必通過(guò)死亡來(lái)學(xué)習(xí)安全的行為,這要?dú)w功于他們對(duì)假設(shè)情境的抽象建模的能力。

深度學(xué)習(xí)的局限性和未來(lái)

局部泛化:模式識(shí)別級(jí)別的泛化能力; 極限泛化:由抽象和推理得到的泛化能力

總之,盡管我們?cè)跈C(jī)器感知方面取得了進(jìn)展,但我們離人類(lèi)級(jí)別的 AI 還很遠(yuǎn):我們的模型只能執(zhí)行局部泛化,要適應(yīng)一種新場(chǎng)景必須與原始數(shù)據(jù)聯(lián)系的很緊密,而人類(lèi)認(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ī)則的事兒,但它離人類(lèi)級(jí)別的 AI 還有很長(zhǎng)的路要走。

為了解除這些局限性并開(kāi)始與人類(lè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í)任何程序呢?

鑒于我們所了解到的深度神經(jīng)網(wǎng)絡(luò)的工作機(jī)制、局限性以及當(dāng)前的研究狀況,我們是否可以預(yù)見(jiàn)到神經(jīng)網(wǎng)絡(luò)在中期之內(nèi)將如何發(fā)展呢?這里分享一些我的個(gè)人想法。請(qǐng)注意我并沒(méi)有能預(yù)測(cè)未來(lái)的水晶球,所以我所做的大部分預(yù)測(cè)可能都將失敗。這完全就是一篇預(yù)測(cè)性的帖子,我之所以分享這些推測(cè)并不是希望它們?cè)诓痪玫奈磥?lái)會(huì)被證明是正確的,而是因?yàn)檫@些預(yù)測(cè)在當(dāng)前看來(lái)非常有趣而且具有實(shí)踐性的。

總的來(lái)說(shuō),我預(yù)見(jiàn)的幾個(gè)主要方向是:

  • 與通用計(jì)算機(jī)程序更接近的模型,建立在比我們當(dāng)前可微分層要豐富得多的基元之上——這也是我們?nèi)绾瘟钅P瞳@得推理和抽象的策略,而這一點(diǎn)也是當(dāng)前模型的根本弱點(diǎn)。
  • 使上述成為可能的新式學(xué)習(xí)策略——它可以使得模型擺脫當(dāng)前的可微分變換。
  • 需要更少的人類(lèi)工程師參與的模型——無(wú)休止地調(diào)參不應(yīng)該成為你工作的一部分。
  • 對(duì)以前學(xué)習(xí)的特征和架構(gòu)進(jìn)行更大和更系統(tǒng)化的復(fù)用;基于可復(fù)用和模塊化子程序的元學(xué)習(xí)系統(tǒng)(Meta-learning systems)。

此外值得注意的是,我的這些思考并不是針對(duì)已經(jīng)成為監(jiān)督式學(xué)習(xí)主力的深度學(xué)習(xí)。恰恰相反,這些思考適用于任何形式的機(jī)器學(xué)習(xí),包括無(wú)監(jiān)督學(xué)習(xí)、自我監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)。你的標(biāo)簽來(lái)自于哪里以及你的訓(xùn)練循環(huán)是什么樣的,這些都不重要。這些機(jī)器學(xué)習(xí)的不同分支只是同一構(gòu)造的不同方面。接下來(lái)讓我們開(kāi)始深入探討。

模型即程序

正如我們?cè)谇耙黄恼轮兴岬降模覀冊(cè)跈C(jī)器學(xué)習(xí)領(lǐng)域可以預(yù)期的一個(gè)轉(zhuǎn)變發(fā)展是,從純粹模式識(shí)別并且只能實(shí)現(xiàn)局部泛化能力(Local generalization,見(jiàn)上篇)的模型,轉(zhuǎn)向能夠?qū)崿F(xiàn)抽象和推理的模型,也就是可以達(dá)到終極的泛化能力。目前人工智能程序能夠進(jìn)行的基本推理形式,都是由人類(lèi)程序員硬編碼的:例如依靠搜索算法、圖形處理和形式邏輯的軟件。具體而言,比如在 DeepMind 的 AlphaGo 中,大部分的「智能」都是由專(zhuān)業(yè)程序員設(shè)計(jì)和硬編碼的(如蒙特卡洛樹(shù)搜索),從數(shù)據(jù)中學(xué)習(xí)只發(fā)生在專(zhuān)門(mén)的子模塊(價(jià)值網(wǎng)絡(luò)和策略網(wǎng)絡(luò))。但是在將來(lái),這樣的人工智能系統(tǒng)很可能會(huì)被完全學(xué)習(xí),而不需要人工進(jìn)行參與。

有什么辦法可以做到這一點(diǎn)?讓我們來(lái)考慮一個(gè)眾所周知的網(wǎng)絡(luò)類(lèi)型:遞歸循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)。重要的一點(diǎn)是,遞歸循環(huán)神經(jīng)網(wǎng)絡(luò)比前饋網(wǎng)絡(luò)的限制來(lái)的少。這是因?yàn)檫f歸循環(huán)神經(jīng)網(wǎng)絡(luò)不僅僅是一種幾何變換:它們是在 for 循環(huán)內(nèi)重復(fù)應(yīng)用的幾何變換。時(shí)序 for 循環(huán)本身是由人類(lèi)開(kāi)發(fā)者硬編碼的:它是網(wǎng)絡(luò)的內(nèi)置假設(shè)。自然地,遞歸神經(jīng)網(wǎng)絡(luò)在它們可以表征的內(nèi)容上依然非常有限,主要是因?yàn)樗鼈儓?zhí)行的每一步仍然只是一個(gè)可微分的幾何變換,而它們從當(dāng)前步到下一步傳送信息的方式是通過(guò)連續(xù)幾何空間(狀態(tài)向量)中的點(diǎn)。

現(xiàn)在,設(shè)想一下神經(jīng)網(wǎng)絡(luò)將以類(lèi)似的方式「編程」,比如 for 循環(huán)編程基元,但不僅僅是一個(gè)帶有硬編碼的幾何內(nèi)存硬編碼 for 循環(huán),而是一大組編程基元,然后模型可以自由操縱這些基元以擴(kuò)展它們的處理功能,例如 if 分支、while 循環(huán)、變量創(chuàng)建、長(zhǎng)期記憶的磁盤(pán)存儲(chǔ)、排序操作和高級(jí)數(shù)據(jù)結(jié)構(gòu)(如列表、圖和散列表等)等等。這樣的網(wǎng)絡(luò)可以表征的程序空間將遠(yuǎn)遠(yuǎn)大于當(dāng)前深度學(xué)習(xí)模型可以表征的空間,并且其中一些程序甚至可以取得優(yōu)越的泛化能力。

總而言之,我們將遠(yuǎn)離「硬編碼算法智能」(手工軟件),以及「學(xué)習(xí)幾何智能」(深度學(xué)習(xí))。我們將擁有提供推理和抽象能力的形式化算法模塊,以及提供非正式直覺(jué)和模式識(shí)別功能的幾何模塊。整個(gè)系統(tǒng)只需要很少的人工參與即可完成學(xué)習(xí)。

我認(rèn)為人工智能相關(guān)的一個(gè)子領(lǐng)域可能即將迎來(lái)春天,那就是程序合成(Program synthesis),特別是神經(jīng)程序合成(Neural program synthesis)。程序合成包括通過(guò)使用搜索算法(比如在遺傳編程中可能是遺傳搜索)來(lái)自動(dòng)生成簡(jiǎn)單的程序,用以探索可能程序的巨大空間。當(dāng)找到與需求(需求通常以一組輸入-輸出對(duì)進(jìn)行提供)相匹配的程序時(shí),搜索將停止。正如你所想的,它是否讓你想起了機(jī)器學(xué)習(xí):給出輸入-輸出對(duì)作為「訓(xùn)練數(shù)據(jù)」,我們找到一個(gè)將輸入映射到輸出的「程序」,并且能將它泛化到其它輸入。不同之處在于,我們不是在硬編碼程序(神經(jīng)網(wǎng)絡(luò))中學(xué)習(xí)參數(shù)值,而是通過(guò)離散搜索過(guò)程生成源代碼。

我一定會(huì)非常期待在接下來(lái)的幾年內(nèi)這個(gè)子領(lǐng)域會(huì)再次迎來(lái)第二個(gè)春天。特別是,我期待在深度學(xué)習(xí)和程序合成之間出現(xiàn)一個(gè)交叉子領(lǐng)域,在該領(lǐng)域我們不會(huì)采用通用語(yǔ)言生成程序,而是增強(qiáng)了一套豐富的算法原語(yǔ)的生成神經(jīng)網(wǎng)絡(luò)(幾何數(shù)據(jù)處理流),例如 for 循環(huán)等等。這應(yīng)該比直接生成源代碼更加容易處理和有用,它將大大擴(kuò)展機(jī)器學(xué)習(xí)可以解決的問(wèn)題范圍——我們可以根據(jù)適當(dāng)?shù)挠?xùn)練數(shù)據(jù)自動(dòng)生成程序空間。符號(hào) AI(Symbolic AI) 和幾何 AI(Geometric AI)的融合,當(dāng)代遞歸神經(jīng)網(wǎng)絡(luò)可以看做是這種混合算法幾何模型的開(kāi)山鼻祖。

 

深度學(xué)習(xí)的局限性和未來(lái)
依靠幾何基元(模式識(shí)別與直覺(jué))和算法基元(推理、搜索和存儲(chǔ))的學(xué)習(xí)程序

超越反向傳播和可微分層

如果機(jī)器學(xué)習(xí)模型變得更像是一段程序,那么它們將變得不再可微——當(dāng)然這些程序仍然會(huì)將連續(xù)的幾何層作為子程序進(jìn)行使用,這都是可微的,但是整個(gè)模型卻不會(huì)。因此,在固定的硬編碼網(wǎng)絡(luò)中使用反向傳播來(lái)調(diào)整權(quán)重值無(wú)法成為將來(lái)訓(xùn)練模型的首選辦法——至少它無(wú)法像現(xiàn)在這樣獨(dú)占鰲頭。我們需要找出能有效訓(xùn)練非微分系統(tǒng)的方法。目前的方法包括有遺傳算法、進(jìn)化策略、某些強(qiáng)化學(xué)習(xí)方法和交替方向乘子法(Alternating direction method of multipliers, ADMM)。自然而然的,梯度下降法哪兒也不會(huì)去——梯度信息對(duì)于優(yōu)化可微分參數(shù)函數(shù)總是有用的。但是我們的模型肯定會(huì)比單純的可微參數(shù)函數(shù)來(lái)的更加強(qiáng)大,因此它們的自主改善(「機(jī)器學(xué)習(xí)」中的「學(xué)習(xí)」)需要的將不僅僅是反向傳播。

此外,反向傳播是端到端的學(xué)習(xí)模式,這對(duì)于學(xué)習(xí)良好的鏈?zhǔn)睫D(zhuǎn)換是一件好事情,但在計(jì)算效率上卻非常低效,因?yàn)樗鼪](méi)有充分利用深度神經(jīng)網(wǎng)絡(luò)的模塊化特性。為了提高效率,有一個(gè)通用的策略:引入模塊化以及層次結(jié)構(gòu)。所以我們可以通過(guò)引入分離的訓(xùn)練模塊以及它們之間的一些同步機(jī)制,以分層的方式組織起來(lái),從而使得反向傳播計(jì)算更加高效。DeepMind 近期的工作「合成梯度」在某種程度上反映出了這一策略。我預(yù)期不久的將來(lái)在這一塊將有更多的工作開(kāi)展。

我們可以預(yù)見(jiàn)的一個(gè)未來(lái)就是,這些模型將變得全局不可微分(但將具有局部可微分性),然后通過(guò)有效的搜索過(guò)程而不是梯度策略進(jìn)行訓(xùn)練。另一方面,通過(guò)利用一些更高效版本的反向傳播以發(fā)揮梯度下降策略的最大優(yōu)點(diǎn),局部可微分區(qū)域?qū)⒌玫礁斓挠?xùn)練速度。

自動(dòng)化機(jī)器學(xué)習(xí)

在將來(lái),模型架構(gòu)將能夠通過(guò)學(xué)習(xí)實(shí)現(xiàn),而不是需要由工程師手工設(shè)置。并且自動(dòng)化學(xué)習(xí)架構(gòu)與使用更豐富的基元和程序式機(jī)器模型(Program-like machine learning models)將結(jié)合在一起。

目前深度學(xué)習(xí)工程師大部分工作都是使用 Python 腳本來(lái)處理數(shù)據(jù),然后花費(fèi)很多的時(shí)間來(lái)調(diào)整深度網(wǎng)絡(luò)的架構(gòu)和超參數(shù)以獲得一個(gè)還過(guò)得去的模型——或者說(shuō)甚至獲得一個(gè)性能最先進(jìn)的模型,如果這個(gè)工程師是夠雄心勃勃的話(huà)。毋庸置疑,這樣的做法并非最佳的,但是此時(shí)深度學(xué)習(xí)技術(shù)依然可以發(fā)揮一定的效用。不過(guò)不幸的是,數(shù)據(jù)處理部分卻很難實(shí)現(xiàn)自動(dòng)化,因?yàn)樗ǔP枰I(lǐng)域知識(shí)以及對(duì)工程師想要的效果有非常清晰的高層次理解。然而,超參數(shù)調(diào)整是一個(gè)非常簡(jiǎn)單的搜索過(guò)程,并且我們已經(jīng)知道了工程師在這種情況下想要取得什么效果:它由正在被微調(diào)的網(wǎng)絡(luò)的損失函數(shù)定義。設(shè)置基本的「AutoML」系統(tǒng)已經(jīng)很常見(jiàn)了,它將負(fù)責(zé)大部分模型的調(diào)整。我甚至在幾年前設(shè)置了自己的模型并贏(yíng)得了 Kaggle 競(jìng)賽。

在最基本的層面上,這樣的系統(tǒng)可以簡(jiǎn)單地調(diào)整棧中堆疊的層數(shù)、順序以及每一層中的單元或者說(shuō)濾波器的數(shù)量。這通常是通過(guò)類(lèi)似于 Hyperopt 這樣的庫(kù)來(lái)完成的,我們?cè)凇禗eep Learning with Python》的第 7 章中曾討論過(guò)這點(diǎn)。但我們的志向可以更加遠(yuǎn)大,并嘗試從零開(kāi)始學(xué)習(xí)適當(dāng)?shù)募軜?gòu),然后盡可能減少限制條件。這可以通過(guò)強(qiáng)化學(xué)習(xí)或者遺傳算法來(lái)實(shí)現(xiàn)。

另一個(gè)重要的 AutoML 方向是與模型權(quán)重一起聯(lián)合學(xué)習(xí)模型架構(gòu)。由于從頭開(kāi)始訓(xùn)練一個(gè)全新的架構(gòu),并且還要在每次嘗試中對(duì)架構(gòu)進(jìn)行微調(diào)是非常耗時(shí)和低效的,所以一個(gè)真正強(qiáng)大的 AutoML 系統(tǒng)可以在通過(guò)訓(xùn)練數(shù)據(jù)反向調(diào)整模型特征的同時(shí)設(shè)法改進(jìn)體系結(jié)構(gòu),從而消除所有的計(jì)算冗余。當(dāng)我正在撰寫(xiě)這些內(nèi)容時(shí),這些方法已經(jīng)開(kāi)始出現(xiàn)了。

當(dāng)這種情況發(fā)生時(shí),機(jī)器學(xué)習(xí)工程師的工作不會(huì)消失,恰恰相反,工程師將在價(jià)值創(chuàng)造鏈上走上高地。他們將開(kāi)始投入更多精力來(lái)打造真正反映業(yè)務(wù)目標(biāo)的復(fù)雜損失函數(shù),并深入理解他們的模型如何影響他們所部署的數(shù)字生態(tài)系統(tǒng)(例如,負(fù)責(zé)消費(fèi)模型預(yù)測(cè)結(jié)果以及產(chǎn)生模型訓(xùn)練數(shù)據(jù)的用戶(hù)),而這些問(wèn)題目前只有巨頭公司才有暇顧及。

終生學(xué)習(xí)和模塊化子程序復(fù)用

如果模型變得越來(lái)越復(fù)雜并且建立在更豐富的算法基元之上,那么這種增加的復(fù)雜度將需要在不同任務(wù)之間實(shí)現(xiàn)更好地復(fù)用性,而不是每當(dāng)我們有了新任務(wù)或者新數(shù)據(jù)集之后還需要從頭開(kāi)始訓(xùn)練新模型。事實(shí)上,許多數(shù)據(jù)集都因?yàn)閿?shù)據(jù)量不夠大而不足以支持從頭訓(xùn)練新的復(fù)雜模型,并且需要利用來(lái)自先前數(shù)據(jù)集中的信息。就像你不需要在每次打開(kāi)一本新書(shū)時(shí)都重新學(xué)習(xí)一遍英語(yǔ)一樣。此外,由于當(dāng)前任務(wù)與以前遇到的任務(wù)之間可能存在大量的重疊,因此對(duì)每個(gè)新任務(wù)都從頭開(kāi)始訓(xùn)練模型的做法非常低效。

此外,近年來(lái)反復(fù)出現(xiàn)的一個(gè)顯著的觀(guān)測(cè)結(jié)果是,訓(xùn)練相同的模型以同時(shí)執(zhí)行幾個(gè)松散連接的任務(wù),將產(chǎn)生一個(gè)對(duì)每個(gè)任務(wù)都更好的模型。例如,訓(xùn)練相同的神經(jīng)機(jī)器翻譯模型以覆蓋從英語(yǔ)到德語(yǔ)、法語(yǔ)到意大利語(yǔ)的翻譯,將得到一個(gè)比單獨(dú)訓(xùn)練來(lái)得更好的模型。又比如與圖像分割模型一起訓(xùn)練圖像分類(lèi)模型,共享相同的卷積核,從而產(chǎn)生一個(gè)在兩項(xiàng)任務(wù)中都表現(xiàn)更好的模型,等等。這一點(diǎn)非常直觀(guān):這些看起來(lái)似乎不相關(guān)的任務(wù)之間總是存在著信息重疊,因此聯(lián)合訓(xùn)練模型比起只在某一特定任務(wù)上訓(xùn)練的模型,可以獲取與每項(xiàng)單獨(dú)任務(wù)有關(guān)的大量信息。

我們目前沿著跨任務(wù)模型復(fù)用(Model reuse across tasks)的方向所做的工作就是,利用預(yù)訓(xùn)練權(quán)重模型來(lái)處理常見(jiàn)任務(wù),例如視覺(jué)特征提取。你將在第 5 章看到這一點(diǎn)。在將來(lái),我希望這種泛化能力能實(shí)現(xiàn)更佳的普適性:我們不僅會(huì)復(fù)用以前學(xué)過(guò)的特征(子模型的權(quán)重值),還會(huì)復(fù)用模型架構(gòu)和訓(xùn)練過(guò)程。隨著模型變得越來(lái)越像程序,我們將開(kāi)始重用程序子程序(Program subroutines),比如人類(lèi)編程語(yǔ)言中的函數(shù)和類(lèi)。

想想今天軟件開(kāi)發(fā)的過(guò)程:一旦工程師解決了一個(gè)特定的問(wèn)題(例如 Python 中的 HTTP 請(qǐng)求問(wèn)題),他們會(huì)將其打包為一個(gè)抽象且可以重用的庫(kù)。這樣未來(lái)面臨類(lèi)似問(wèn)題的工程師可以通過(guò)簡(jiǎn)單地搜索現(xiàn)有的庫(kù),然后下載并在項(xiàng)目中使用它來(lái)解決問(wèn)題。相類(lèi)似地,在未來(lái)元學(xué)習(xí)(Meta-learning)系統(tǒng)將可以通過(guò)篩選高級(jí)可重用塊的全局庫(kù)來(lái)組裝全新的程序。

當(dāng)系統(tǒng)發(fā)現(xiàn)自己為幾個(gè)不同任務(wù)開(kāi)發(fā)了類(lèi)似的程序子程序時(shí),如果能夠具備「抽象」的能力,即子程序的可重用版本,然后就將其存儲(chǔ)到全局庫(kù)種。這樣的過(guò)程將實(shí)現(xiàn)抽象的能力,這是實(shí)現(xiàn)「終極泛化」的必要組成部分:在不同任務(wù)和領(lǐng)域發(fā)現(xiàn)有用的子程序可以被認(rèn)為「抽象」了一些問(wèn)題解決方案的某些方面。這里「抽象」的定義與軟件工程中的抽象概念相似。這些子程序可以是幾何的(具有預(yù)訓(xùn)練表征的深度學(xué)習(xí)模塊)也可以是算法的(更接近當(dāng)代軟件工程師使用的軟件庫(kù))。

深度學(xué)習(xí)的局限性和未來(lái)

元學(xué)習(xí)器能夠使用可復(fù)用基元(算法和幾何)快速開(kāi)發(fā)針對(duì)特定任務(wù)的模型,從而實(shí)現(xiàn)“極端泛化”。

總結(jié):洞見(jiàn)未來(lái)

總而言之,這里是一些我對(duì)機(jī)器學(xué)習(xí)長(zhǎng)期發(fā)展的洞見(jiàn):

  1. 模型將更加像程序,并且將具有遠(yuǎn)遠(yuǎn)超出我們目前使用的輸入數(shù)據(jù)的連續(xù)幾何變換的能力。這些程序可以說(shuō)更接近人類(lèi)對(duì)周?chē)h(huán)境和自身抽象的心理模型,并且由于其豐富的算法性質(zhì),它們將具有更強(qiáng)的泛化能力。
  2. 特別是,模型將融合算法模塊和幾何模塊,算法模塊可以提供正式推理、搜索和抽象能力,而幾何模塊可以提供非正式的直覺(jué)和模式識(shí)別功能。AlphaGo(一個(gè)需要大量手動(dòng)軟件工程和人為設(shè)計(jì)決策的系統(tǒng))提供了一個(gè)早期的例子,它展示了當(dāng)符號(hào) AI 和幾何 AI 融合之后將是什么樣子。
  3. 通過(guò)使用存儲(chǔ)在可復(fù)用子程序全局庫(kù)(這是一個(gè)通過(guò)在數(shù)以萬(wàn)計(jì)的以前的任務(wù)和數(shù)據(jù)集上學(xué)習(xí)的高性能模型演變而來(lái)的庫(kù))中的模塊部件,它們將實(shí)現(xiàn)自動(dòng)成長(zhǎng),而不是由人類(lèi)工程師手工設(shè)定。由于元學(xué)習(xí)系統(tǒng)確定了常見(jiàn)的問(wèn)題解決模式,它們將變成一個(gè)可復(fù)用的子程序——就像當(dāng)代軟件工程中的函數(shù)和類(lèi)一樣——并添加到全局庫(kù)中,從而實(shí)現(xiàn)了抽象能力。
  4. 這個(gè)全局庫(kù)和相關(guān)聯(lián)的模型成長(zhǎng)系統(tǒng)(Model-growing system)將能夠在某種形式上實(shí)現(xiàn)類(lèi)人的「極限泛化」:給定一個(gè)新任務(wù)、新情況,系統(tǒng)將能夠組裝一個(gè)適用于新任務(wù)的全新工作模型,而只需要很少的數(shù)據(jù)。這要?dú)w功于 1) 豐富的具有強(qiáng)泛化能力的類(lèi)程序基元(Program-like primitives);2) 具有相似任務(wù)的豐富經(jīng)驗(yàn)。就像人類(lèi)可以花費(fèi)很少的時(shí)間玩好一個(gè)全新復(fù)雜的視頻游戲一樣,因?yàn)樗麄冇性S多以前的游戲經(jīng)驗(yàn),并且因?yàn)閺囊郧敖?jīng)驗(yàn)得出的模型是抽象和類(lèi)程序的,而不是刺激和行為之間的基本映射。
  5. 因此,這種永久學(xué)習(xí)模型成長(zhǎng)系統(tǒng)(Perpetually-learning model-growing system)可以被稱(chēng)為通用人工智能(Artificial General Intelligence, AGI)。但是不要擔(dān)憂(yōu)任何機(jī)器人啟示錄將會(huì)降臨:因?yàn)檫@單純只是一個(gè)幻想,它來(lái)自于人們對(duì)智能和技術(shù)的一系列深刻誤解。然而,對(duì)這方面的批評(píng)并不在本篇的討論范疇之內(nèi)。
責(zé)任編輯:未麗燕 來(lái)源: 雷鋒網(wǎng)
相關(guān)推薦

2017-07-12 10:00:22

深度學(xué)習(xí)小數(shù)據(jù)樣本深度網(wǎng)絡(luò)

2017-07-11 15:25:53

深度學(xué)習(xí)人工智能

2017-10-09 19:12:52

AI深度學(xué)習(xí)局限性

2017-07-25 11:22:06

2019-11-06 11:34:53

人工智能機(jī)器學(xué)習(xí)工具

2017-04-05 19:04:09

2021-08-09 11:07:44

數(shù)據(jù)安全算法互聯(lián)網(wǎng)

2024-11-25 17:03:17

2010-08-06 11:04:11

RIP路由協(xié)議

2022-12-30 08:26:43

基線(xiàn)預(yù)警局限性

2010-08-26 10:57:35

2022-06-16 12:51:48

工業(yè)機(jī)器人機(jī)器人

2023-01-10 10:11:50

GPU計(jì)算

2021-04-20 08:31:13

Kubernetes局限性容器

2024-06-05 13:48:04

2023-06-21 13:41:00

增強(qiáng)現(xiàn)實(shí)虛擬現(xiàn)實(shí)AR

2024-05-08 08:00:00

2014-08-20 10:20:18

2023-04-12 10:51:42

2010-01-12 15:04:01

VB.NET異常處理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)