国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

何愷明的MIT人工智能第一課:深度表征學(xué)習(xí)

0
分享至

文:城主

何愷明,大名鼎鼎的深度殘差網(wǎng)絡(luò)(ResNets)的主要發(fā)明者。沒(méi)有ResNets就沒(méi)有現(xiàn)在大放異彩的的深度學(xué)習(xí)AI大模型。

直接上百度百科:

何愷明(Kaiming He),1984年出生于廣東廣州,2003年廣東省高考滿(mǎn)分狀元。2003-2007年就讀于清華大學(xué)物理系基礎(chǔ)科學(xué)班,連續(xù)3年獲得清華獎(jiǎng)學(xué)金,本科畢業(yè)后進(jìn)入香港中文大學(xué)攻讀研究生,師從湯曉鷗。2009年成為CVPR最佳論文首位華人得主。2011年獲得香港中文大學(xué)信息工程哲學(xué)博士學(xué)位,之后進(jìn)入微軟亞洲研究院工作。2016年8月加入Facebook AI Research(FAIR),擔(dān)任研究科學(xué)家。2017年獲得ICCV最佳論文獎(jiǎng)(馬爾獎(jiǎng))。2018年獲得CVPR大會(huì)PAMI青年研究者獎(jiǎng)。2022年入選AI 2000人工智能全球最具影響力學(xué)者榜單,綜合排名第一。2023年獲得未來(lái)科學(xué)大獎(jiǎng)數(shù)學(xué)與計(jì)算機(jī)科學(xué)獎(jiǎng)。2024年2月加入麻省理工學(xué)院(MIT)電氣工程與計(jì)算機(jī)科學(xué)系,擔(dān)任副教授。

本文推薦的講座即為何愷明在MIT傳道授業(yè)生涯試講的第一課,一方面很有意義,另外一方面,著實(shí)精彩??v觀目前所能看到的公開(kāi)資料,甚少有在知識(shí)深度廣度兼?zhèn)渲线€能講解得如此清晰易懂的深度學(xué)習(xí)講座,PPT也做得很棒,非常適合有一丁點(diǎn)兒科普基礎(chǔ)希望提高深度學(xué)習(xí)認(rèn)知的讀者們,強(qiáng)烈推薦。

原講座為英文,本文根據(jù)講座原意全部重寫(xiě)為中文書(shū)面文字。

喜歡看視頻的朋友,講座的視頻完整中英版 (字幕錯(cuò)別字請(qǐng)見(jiàn)諒 不影響理解):

--天空之城中文版--

好的,讓我們開(kāi)始。我叫愷明,實(shí)際上,我將在下個(gè)月加入一所大學(xué)(MIT),因此,我今天在這里做的是一份無(wú)薪工作。現(xiàn)在,讓我們看看我這份無(wú)薪工作的名稱(chēng)——深度表征(深度表示)學(xué)習(xí)。我將在圖像識(shí)別的背景下,以及可能的其他一些場(chǎng)景中討論這個(gè)主題。以下是本教程的概述。

首先,我將討論什么是表征學(xué)習(xí)以及為什么表征學(xué)習(xí)是一個(gè)重要問(wèn)題。然后,我將討論如何構(gòu)建和訓(xùn)練非常深的神經(jīng)網(wǎng)絡(luò)。我將討論一些具有里程碑意義的有影響力的神經(jīng)網(wǎng)絡(luò)架構(gòu)。接著,我將介紹一些重要的組件和元素,這些元素對(duì)于我們訓(xùn)練非常深的神經(jīng)網(wǎng)絡(luò)架構(gòu)是必要的,包括一些初始化方法,歸一化方法,以及殘差連接的引入。最后,我將介紹圖像識(shí)別的應(yīng)用和一些序列處理問(wèn)題。

那么,為什么要深度學(xué)習(xí)?為什么大約十年前,人們突然開(kāi)始幾乎到處談?wù)撋疃葘W(xué)習(xí)?簡(jiǎn)單來(lái)說(shuō),深度學(xué)習(xí)就是表征學(xué)習(xí)。有趣的是,十多年前,深度學(xué)習(xí)并不流行,也沒(méi)有受到計(jì)算機(jī)視覺(jué)或機(jī)器學(xué)習(xí)領(lǐng)域主流會(huì)議的青睞。然而,一些深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)架構(gòu)的先驅(qū),比如Yann LeCun和Yoshua Bengio,決定再舉辦一次對(duì)深度學(xué)習(xí)研究更加友好、更加開(kāi)放的會(huì)議。他們決定將他們的新會(huì)議命名為國(guó)際學(xué)習(xí)表征會(huì)議,這反映了深度學(xué)習(xí)和表征學(xué)習(xí)之間的密切關(guān)系。

那么,為什么表征學(xué)習(xí)如此重要呢?表征學(xué)習(xí)是一個(gè)常見(jiàn)問(wèn)題,可以在許多領(lǐng)域的許多應(yīng)用程序中找到。表征學(xué)習(xí)的一個(gè)共同目標(biāo)是將原始數(shù)據(jù)轉(zhuǎn)換為一些高級(jí)表征空間,我們?cè)谶@個(gè)表征空間中可以更好地進(jìn)行壓縮、抽象或概念化。當(dāng)計(jì)算機(jī)算法在這個(gè)表征空間上運(yùn)行時(shí),它們可以更輕松地解決非常復(fù)雜的問(wèn)題。并且,根據(jù)場(chǎng)景的不同,原始數(shù)據(jù)可以有多種不同的形式。例如,在計(jì)算機(jī)視覺(jué)中,原始數(shù)據(jù)可以是圖像或視頻中的像素;在自然語(yǔ)言處理中,原始數(shù)據(jù)可以是字母或單詞;在語(yǔ)音識(shí)別或音頻識(shí)別中,原始數(shù)據(jù)可以是音頻波或頻譜圖;在玩游戲的情況下,原始數(shù)據(jù)可以是游戲板的狀態(tài);在一些科學(xué)問(wèn)題中,原始數(shù)據(jù)可以是分子序列、DNA序列或其他一些結(jié)構(gòu)。在許多此類(lèi)應(yīng)用程序中,一個(gè)常見(jiàn)的問(wèn)題是如何在某些高級(jí)抽象空間中表征數(shù)據(jù),這樣計(jì)算機(jī)算法就可以更容易地解決問(wèn)題。

現(xiàn)在,讓我們以圍棋游戲?yàn)槔?。在過(guò)去的幾十年里,使用計(jì)算機(jī)解決圍棋游戲被認(rèn)為是一個(gè)非常具有挑戰(zhàn)性甚至可能不可行的問(wèn)題。部分原因是圍棋游戲中的不同狀態(tài)數(shù)量呈指數(shù)級(jí)增長(zhǎng)。例如,棋盤(pán)有19列和19行,如果我們把所有的東西加在一起,那么就會(huì)有361個(gè)位置,每個(gè)位置都可以有黑、白、空白三種選擇。那么這將得到3的361次方種不同狀態(tài)。這是一個(gè)巨大的數(shù)字,如果計(jì)算機(jī)算法要在這個(gè)狀態(tài)空間中進(jìn)行分析甚至枚舉或記憶,那么今天的計(jì)算機(jī)就無(wú)法使用這種表征來(lái)解決這個(gè)問(wèn)題。

然而,如果真是這樣的話(huà),那么我們可能永遠(yuǎn)無(wú)法解決計(jì)算機(jī)視覺(jué)或圖像識(shí)別問(wèn)題?,F(xiàn)在,讓我們考慮一個(gè)非常簡(jiǎn)單的計(jì)算機(jī)視覺(jué)案例。假設(shè)我們有一個(gè)非常小的圖像,即500像素x500像素,每個(gè)像素可能具有三種顏色通道:紅色、綠色和藍(lán)色,每個(gè)顏色通道可能有256個(gè)不同的值。如果我們把所有的東西放在一起,那么我們將得到256的3x500x500次方個(gè)不同的狀態(tài),只是為了一個(gè)非常小的圖像。如果我們的計(jì)算機(jī)視覺(jué)算法直接在這個(gè)原始像素空間上運(yùn)行,并且如果該算法要枚舉或記住這個(gè)狀態(tài)空間,那么我們永遠(yuǎn)無(wú)法解決計(jì)算機(jī)視覺(jué)問(wèn)題,因?yàn)檫@個(gè)問(wèn)題比圍棋問(wèn)題更棘手。

然而,這并不是計(jì)算機(jī)視覺(jué)算法解決圖像識(shí)別問(wèn)題的方式。我們不是直接在原始像素空間上工作,而是使用一個(gè)模型將原始像素轉(zhuǎn)換為一些表征形式。如今,我們做到這一點(diǎn)的最成功的模型是使用深度神經(jīng)網(wǎng)絡(luò),例如卷積神經(jīng)網(wǎng)絡(luò)。然后這些表征將為我們提供一些非常好的抽象或概念化壓縮。當(dāng)使用這些表征時(shí),計(jì)算機(jī)算法可以解決許多不同的問(wèn)題,例如圖像分類(lèi)、對(duì)象檢測(cè)或圖像分割。

類(lèi)似地,回到圍棋的問(wèn)題,我們可以將圍棋中的棋盤(pán)想象成一個(gè)非常小的圖像。該圖像只有19x19像素,每個(gè)像素只有三種可能的顏色:黑色、白色和空白。然后我們可以使用相同的想法。例如,我們可以使用卷積神經(jīng)網(wǎng)絡(luò)來(lái)處理游戲的狀態(tài)并獲得一些高級(jí)抽象。并且計(jì)算機(jī)算法可以直接在這個(gè)高級(jí)抽象空間上工作,做一些分析或做一些搜索。這將使圍棋問(wèn)題更容易得到解決。這實(shí)際上是著名的AlphaGo算法背后的眾多基本思想之一。

這張圖來(lái)自AlphaGo Zero論文。在這張圖中,作者比較了四種不同版本的AlphaGo棋手。這些版本是按照L-low評(píng)級(jí)進(jìn)行比較的,通常評(píng)級(jí)越高意味著圍棋表現(xiàn)越好。這個(gè)圖簡(jiǎn)單地表明,通過(guò)將深度從例如12層增加到40層,我們可以輕松地享受?chē)灞憩F(xiàn)方面的巨大提升。

事實(shí)上,如果我們不斷增加神經(jīng)網(wǎng)絡(luò)的深度,例如增加到80層,我們將看到圍棋性能的另一個(gè)巨大提升。有趣的是,這種表現(xiàn)甚至比世界上最好的人類(lèi)玩家還要好。而AlphaGo算法可以在不使用任何人類(lèi)知識(shí)的情況下實(shí)現(xiàn)這種性能。

還值得注意的是,對(duì)于這里比較的四五個(gè)不同的棋手,許多其他組件完全相同。例如,強(qiáng)化學(xué)習(xí)算法和蒙特卡羅樹(shù)搜索算法的用法是完全相同的。這五個(gè)不同版本中只是用于學(xué)習(xí)圍棋表征的神經(jīng)網(wǎng)絡(luò)架構(gòu)有所不同。因此,我希望這能讓您了解表征學(xué)習(xí)對(duì)于我們解決非常具有挑戰(zhàn)性的問(wèn)題有多么重要。

現(xiàn)在,讓我們回到計(jì)算機(jī)視覺(jué)的問(wèn)題,接下來(lái)我要講的是我們?nèi)绾伪碚鲌D像。在深度學(xué)習(xí)流行之前,計(jì)算機(jī)視覺(jué)領(lǐng)域就已經(jīng)出現(xiàn)了。假設(shè)我們有一張圖像,我們可以將其視為一堆像素,我們可以直接將這堆像素發(fā)送到分類(lèi)器中。分類(lèi)器可以是SVM分類(lèi)器、支持向量機(jī),也可以是決策樹(shù),也可以是隨機(jī)森林。通常這不是一個(gè)好的解決方案,因?yàn)榧词箤?duì)象的微小變化也會(huì)導(dǎo)致原始像素表征空間發(fā)生較大變化。

那么,為了解決這個(gè)問(wèn)題,我們?nèi)绾伪碚鲌D像呢?我們可以通過(guò)觀察圖像,找出它們的相似之處。有人做過(guò)這個(gè)實(shí)驗(yàn)嗎?這是一個(gè)很好的問(wèn)題。我不是一個(gè)好的圍棋手,但我知道有一些關(guān)于圍棋的非常奇特的術(shù)語(yǔ)。這是一個(gè)關(guān)于專(zhuān)業(yè)玩家的術(shù)語(yǔ),他們對(duì)當(dāng)前狀態(tài)有自己的感覺(jué)。因此,圍棋手對(duì)于圍棋有自己的內(nèi)部表征,而且這些內(nèi)部表征可能與計(jì)算機(jī)算法可以學(xué)習(xí)到的表征不太一致。實(shí)際上,自AlphaGo的開(kāi)發(fā)以來(lái),我相信許多頂級(jí)玩家已經(jīng)開(kāi)始利用人工智能來(lái)改善他們對(duì)人類(lèi)內(nèi)在表現(xiàn)的理解。現(xiàn)在,讓我們回到我們的主題。

為了得到更好的表現(xiàn),我們可能會(huì)考慮計(jì)算像素頂部的邊緣,因?yàn)檫@將為我們提供更穩(wěn)定的表現(xiàn),以防輸入空間的照明或顏色發(fā)生變化。然后,再次為了得到更好的表現(xiàn),我們可能會(huì)考慮計(jì)算邊緣的方向或方向的直方圖,或者我們可以在直方圖上運(yùn)行一些聚類(lèi)算法。

實(shí)際上,如果問(wèn)題足夠簡(jiǎn)單,這個(gè)流程可以很好地工作。然而,在這個(gè)流程中,我們需要人類(lèi)或者計(jì)算機(jī)視覺(jué)專(zhuān)家來(lái)定義什么是好的表現(xiàn)或者什么是好的特征來(lái)解決當(dāng)前的問(wèn)題。因此,雖然特征設(shè)計(jì)問(wèn)題對(duì)于一些低級(jí)表現(xiàn),如邊緣、紋理或顏色的定義,是相對(duì)可行的,但如果我們想定義一些高級(jí)表現(xiàn),這個(gè)問(wèn)題將變得非常困難。例如,我們很難定義什么是魚(yú),什么是貓,或者另一方面,什么是樹(shù),或者什么是人。

實(shí)際上,在計(jì)算機(jī)視覺(jué)領(lǐng)域,過(guò)去幾十年里,定義高級(jí)抽象和表現(xiàn)一直是計(jì)算機(jī)視覺(jué)社區(qū)的主要瓶頸。深度學(xué)習(xí)為我們解決計(jì)算機(jī)視覺(jué)問(wèn)題提供了另一種方法,如圖像識(shí)別等許多復(fù)雜問(wèn)題。深度學(xué)習(xí)的一個(gè)關(guān)鍵思想是將一組簡(jiǎn)單的通用模塊組合成高度復(fù)雜的函數(shù),幫助我們解決高度復(fù)雜的問(wèn)題。因此,如果你從我今天的演講中只能得到一個(gè)信息,那就是這個(gè)信息。我將在本次演講的以下部分中多次重復(fù)這一點(diǎn)。

因此,在一組通用模塊的幫助下,我們可以輕松地構(gòu)建多個(gè)抽象級(jí)別并學(xué)習(xí)多個(gè)表現(xiàn)級(jí)別。而這些模塊的具體實(shí)例,例如這些模塊的參數(shù)或權(quán)重,可以通過(guò)反向傳播來(lái)學(xué)習(xí)。因此,對(duì)人類(lèi)知識(shí)的依賴(lài)大大減少。同樣,學(xué)習(xí)是在一些更大規(guī)模的數(shù)據(jù)上完成的,因此人類(lèi)知識(shí)的要求已經(jīng)從設(shè)計(jì)特征轉(zhuǎn)移到收集與問(wèn)題相關(guān)的數(shù)據(jù)的另一個(gè)問(wèn)題。

總的來(lái)說(shuō),深度學(xué)習(xí)的所有這些關(guān)鍵思想或關(guān)鍵概念可以幫助我們大大減少我們解決手頭問(wèn)題的領(lǐng)域知識(shí)。因此,深度學(xué)習(xí)可以成為我們解決許多領(lǐng)域許多問(wèn)題的通用工具箱的原因有很多。

接下來(lái),我將討論如何學(xué)習(xí)圖像識(shí)別的深度表征。我將回顧卷積神經(jīng)網(wǎng)絡(luò)發(fā)展史上的一些里程碑式且有影響力的步驟。我將從大約 30 年前開(kāi)發(fā)的 LeNet 架構(gòu)開(kāi)始。

LeNet 架構(gòu)是卷積神經(jīng)網(wǎng)絡(luò)(簡(jiǎn)稱(chēng) ConvNet 或 CNN)的成功實(shí)例之一。簡(jiǎn)單來(lái)說(shuō),卷積神經(jīng)網(wǎng)絡(luò)是一種平移不變的架構(gòu)。因此,通過(guò)平移不變性,我們通常意味著如果我們?cè)诨瑒?dòng)窗口內(nèi)進(jìn)行一些操作, 并且當(dāng)窗口平移幾個(gè)像素時(shí),我們?nèi)匀粫?huì)有或多或少相同的操作。平移不變性還意味著,如果我們將整個(gè)輸入圖像平移幾個(gè)像素,我們?nèi)匀豢梢該碛邢嗤妮敵鲱?lèi)標(biāo)簽,如果我們正在做分類(lèi)問(wèn)題。

然后,LeNet架構(gòu)引入了幾個(gè)基本元素對(duì)于卷積神經(jīng)網(wǎng)絡(luò)。這些元素包括卷積層、池化層的使用,全連接層,更重要的是,通過(guò)反向傳播端到端地訓(xùn)練整個(gè)架構(gòu)的想法。再說(shuō)一遍,卷積神經(jīng)網(wǎng)絡(luò)只是深度學(xué)習(xí)方法的一個(gè)實(shí)例,即將簡(jiǎn)單的模塊組合成高度復(fù)雜的功能。接下來(lái),我將介紹其中兩個(gè)簡(jiǎn)單的基礎(chǔ)模塊。

第一個(gè)模塊是卷積層。簡(jiǎn)單來(lái)說(shuō),卷積層只是局部連接加上空間權(quán)重共享。與卷積層相比,最流行的層類(lèi)型之一是全連接層。在這種情況下,每個(gè)輸出神經(jīng)元都連接到該層中的每個(gè)輸入神經(jīng)元。在這里,每個(gè)連接代表一個(gè)權(quán)重或一個(gè)可以訓(xùn)練的參數(shù)。也就是說(shuō),如果我們有很多輸入神經(jīng)元,并且如果我們也有很多輸出神經(jīng)元,那么我們將有大量的可訓(xùn)練參數(shù)。這并不理想。

為了部分解決這個(gè)問(wèn)題,人們開(kāi)發(fā)了另一種層類(lèi)型,稱(chēng)為局部連接層。在這種情況下,每個(gè)輸出神經(jīng)元僅連接到輸入神經(jīng)元的一小部分。通常在實(shí)踐中,這些小子集將位于輸出神經(jīng)元周?chē)幕瑒?dòng)窗口或局部鄰域中。并且引入局部連接層可以大大減少可訓(xùn)練參數(shù)的數(shù)量。卷積層僅領(lǐng)先一步。也就是說(shuō),當(dāng)我們?cè)谳斎雸D像空間的不同位置滑動(dòng)窗口時(shí),我們可以在不同的空間位置之間共享權(quán)重。

卷積神經(jīng)網(wǎng)絡(luò)的另一個(gè)重要模塊是池化層。池化層的作用是減小特征圖的大小,因此如果輸入圖像很大,可以大大減少所需的計(jì)算量。另一方面,池化層也可以幫助實(shí)現(xiàn)局部不變性。也就是說(shuō),如果我們的輸入內(nèi)容在一個(gè)小窗口內(nèi)經(jīng)歷一些局部抖動(dòng),我們?nèi)匀荒軌蛟谠摯翱谥蝎@得或多或少相同的表征。這可以幫助我們獲得更多的抽象表征,這是我們做分類(lèi)問(wèn)題所需的屬性。

然后給出這組簡(jiǎn)單的通用模塊,接下來(lái)我將逐步介紹學(xué)習(xí)架構(gòu)。盡管這種建筑的提出已經(jīng)有30多年了,但我們漫步在這座古典建筑中總是令人愉悅和鼓舞。在這種情況下,神經(jīng)網(wǎng)絡(luò)的輸入只有一個(gè)顏色通道,因?yàn)樗腔叶鹊?。在此示例中,空間大小將為 32 x 32。然后它將執(zhí)行第一組卷積核,其空間大小為 5 x 5。

在本例中,它有六個(gè)不同的輸出通道。這將為我們提供第一組輸出特征圖。在本例中,空間大小為 28 x 28。因?yàn)槲覀兊木矸e層有六個(gè)輸出通道,那么這組特征圖也將有六個(gè)輸出通道。

然后我們可以應(yīng)用第一個(gè)池化操作,將每個(gè)維度的空間大小減少兩倍。然后我們將得到下一組空間特征圖,其空間大小為 14 x 14。

然后我們準(zhǔn)備再次應(yīng)用下一組卷積層,其內(nèi)核大小為 5 x 5。而此時(shí),它有16個(gè)不同的輸出通道。

然后我們將得到下一組特征圖,這里的空間大小為10x10。

再次,下一個(gè)池化層減少空間大小。

我們將得到最終的一組空間特征圖,其空間大小為 5 x 5。

之后,我們就可以展平這個(gè)特征圖。我們將使用第一組全連接層、第二組全連接層以及具有十個(gè)通道的輸出全連接層來(lái)處理它,

在本例中,針對(duì)十類(lèi)分類(lèi)問(wèn)題。而在高層,整個(gè)架構(gòu)非常簡(jiǎn)單。它只是幾個(gè)基本模塊的組合,在本例中只是卷積層、池化層和全連接層。線性架構(gòu)實(shí)際上效果非常好,如果我們有數(shù)據(jù)來(lái)訓(xùn)練它。

不幸的是,這種架構(gòu)在提出后的 20 多年里一直被忽視。部分原因是我們沒(méi)有計(jì)算能力或沒(méi)有數(shù)據(jù)來(lái)充分展示該架構(gòu)的強(qiáng)大功能。當(dāng)時(shí)最大的數(shù)據(jù)集,令人驚訝的是,它是當(dāng)時(shí)最大的數(shù)據(jù)集,是 MNIST 數(shù)據(jù)集,其中包含 10 個(gè)類(lèi)別的 50,000 張圖像。這個(gè)數(shù)據(jù)集足以訓(xùn)練一個(gè)非常小的模型,但還不足以完全說(shuō)服計(jì)算機(jī)視覺(jué)社區(qū)在他們的問(wèn)題中采用卷積神經(jīng)網(wǎng)絡(luò)。

然后深度學(xué)習(xí)真正的革命發(fā)生在 2012 年,這篇 AlexNet 論文介紹了它。據(jù)我了解,這篇 AlexNet 論文中只有一篇論文。本文旨在探討擴(kuò)大卷積神經(jīng)網(wǎng)絡(luò)規(guī)模的相關(guān)問(wèn)題。規(guī)?;瘜?shí)際上涉及到幾個(gè)方面。

首先,我們要討論的是數(shù)據(jù)的問(wèn)題。AlexNet在ImageNet數(shù)據(jù)集上進(jìn)行訓(xùn)練,該數(shù)據(jù)集擁有100萬(wàn)張圖像和1,000個(gè)類(lèi)別。實(shí)際上,這個(gè)數(shù)據(jù)集比當(dāng)時(shí)人們一直在研究的許多其他數(shù)據(jù)集要大得多。在那個(gè)時(shí)候,我們可以在原始像素上端到端地訓(xùn)練神經(jīng)網(wǎng)絡(luò)架構(gòu),這遠(yuǎn)遠(yuǎn)超出了人們的想象在如此大規(guī)模的數(shù)據(jù)集中。

其次,我們要討論的是架構(gòu)的問(wèn)題。AlexNet的架構(gòu)實(shí)際上很大。在那篇論文的摘要中,作者特別表示這是一個(gè)巨大的架構(gòu),這個(gè)架構(gòu)有超過(guò)6000萬(wàn)個(gè)參數(shù)和超過(guò)60萬(wàn)個(gè)神經(jīng)元。該模型的尺寸實(shí)際上也比當(dāng)時(shí)的許多其他模型大得多。

然而,為了訓(xùn)練這么大的模型,即使借助更大規(guī)模的數(shù)據(jù),人們需要引入有效的技術(shù)來(lái)減少過(guò)度擬合。AlexNet論文在這方面探索了兩種非常有效的技術(shù):一是數(shù)據(jù)增強(qiáng),二是數(shù)據(jù)丟失。這兩種技術(shù)在當(dāng)今的神經(jīng)網(wǎng)絡(luò)訓(xùn)練技術(shù)中仍然廣泛使用。

AlexNet論文的另一個(gè)亮點(diǎn)是其出色的工程工作。它探索了使用GPU訓(xùn)練模型的潛力。事實(shí)上,他們已經(jīng)為未來(lái)10年的GPU訓(xùn)練奠定了基礎(chǔ)。他們介紹了關(guān)于GPU訓(xùn)練的兩個(gè)基本概念:一是數(shù)據(jù)分布,二是模型分布。在數(shù)據(jù)分布的情況下,同一小批量中的不同樣本可以由不同的GPU處理,從而大大減少每個(gè)GPU的計(jì)算量。在模型分布的情況下,不同的過(guò)濾器組或不同的層可以存儲(chǔ)在不同的GPU中,從而大大減少內(nèi)存消耗。這些仍然是當(dāng)今GPU實(shí)現(xiàn)的基礎(chǔ)。

接下來(lái),我們將對(duì)比原始的LeNet架構(gòu)和AlexNet架構(gòu)。在高層次上,它們是同一件事,因?yàn)樗鼈冎皇窃S多簡(jiǎn)單通用模塊的組合,如卷積層、池化層和全連接層。那么,它們之間有什么區(qū)別呢?為什么AlexNet具有革命性呢?

首先,AlexNet更深。它還有三個(gè)卷積層和一個(gè)池化層。這些層可以幫助它從更大規(guī)模的數(shù)據(jù)中學(xué)習(xí)更高層次的抽象,這將比更淺的模型具有更強(qiáng)的表征能力。

其次,AlexNet首次開(kāi)始探索使用ReLU激活函數(shù)來(lái)訓(xùn)練非常深的神經(jīng)網(wǎng)絡(luò)架構(gòu)。在ReLU的情況下,只有當(dāng)輸入信號(hào)小于零時(shí),它將具有零梯度。然后,當(dāng)您在非常深的神經(jīng)網(wǎng)絡(luò)架構(gòu)中擁有許多激活函數(shù)時(shí),您將有更高的機(jī)會(huì)在反向傳播過(guò)程中獲得非零梯度。事實(shí)證明,這可以在很大程度上促進(jìn)非常深的模型的訓(xùn)練。所以從某種意義上說(shuō),ReLU激活的引入是深度學(xué)習(xí)的一場(chǎng)革命。

這兩種架構(gòu)之間的另一個(gè)巨大差異在很大程度上被許多人忽視了,那就是AlexNet實(shí)際上是比原始LeNet更寬的架構(gòu)。在深度學(xué)習(xí)的術(shù)語(yǔ)中,“更寬”通常意味著模型有更多的通道。然后,通過(guò)為每個(gè)層提供更多通道,我們將擁有更豐富的特征集,然后它將比更窄的模型更具代表性。

AlexNet在ImageNet數(shù)據(jù)集中的成功引起了計(jì)算機(jī)視覺(jué)界的廣泛關(guān)注。在AlexNet提出后的第二年,計(jì)算機(jī)視覺(jué)界開(kāi)始更加關(guān)注理解神經(jīng)網(wǎng)絡(luò)行為。計(jì)算機(jī)視覺(jué)社區(qū)獲得更好理解的一種方法是可視化。而一個(gè)非常成功的可視化方法就是回答下面的問(wèn)題:什么輸入可以產(chǎn)生特定的特征呢?

為了回答這個(gè)問(wèn)題,我們可以做以下兩個(gè)步驟。首先,我們只需要將特征圖設(shè)置為one-hot向量或one-hot張量。也就是說(shuō),對(duì)于這個(gè)特定的特征圖,只有一個(gè)元素非零,所有其他元素都將設(shè)置為零。然后我們可以使用完全相同的反向傳播算法將這個(gè)單熱特征圖從特征空間傳播回像素空間。然后我們將在像素空間上對(duì)這個(gè)特征進(jìn)行一些可視化。

接下來(lái)我將展示通過(guò)這種方式獲得的一些可視化效果。我將展示具有五個(gè)卷積層的卷積神經(jīng)網(wǎng)絡(luò)的可視化。

這是第一個(gè)卷積層的可視化。在這里我將展示左側(cè)的功能。我還將在右側(cè)展示一些刺激物。因此,通過(guò)刺激,我的意思是這些是在相應(yīng)特征中具有最強(qiáng)激活的補(bǔ)丁或輸入圖像。正如我們?cè)谶@個(gè)神經(jīng)網(wǎng)絡(luò)的第一層中看到的,它們通常是邊緣檢測(cè)器或一些顏色檢測(cè)器。這種行為與經(jīng)典圖像識(shí)別系統(tǒng)非常相似,其中第一層是邊緣檢測(cè)器。

這是同一網(wǎng)絡(luò)中第二個(gè)卷積層的一些可視化。在這種情況下,我們可以看到功能級(jí)別稍高一些比第一層的特征。我們可以看到一些特征顯示出一些紋理圖案。在其他一些情況下,它們顯示出一些局部形狀,例如圓形或角或細(xì)線的形狀。這就是為什么我們說(shuō)這些特征可能比第一層中的特征(只是邊緣)更高級(jí)別。

接下來(lái)是第三層的可視化。在這種情況下,我們開(kāi)始看到它開(kāi)始顯示出一些語(yǔ)義模式。例如,對(duì)于這個(gè)特征,它開(kāi)始顯示一些關(guān)于人類(lèi)上半身的語(yǔ)義模式。在另一種情況下,它開(kāi)始顯示出類(lèi)似網(wǎng)或蜂窩的圖案。

再說(shuō)一次,這是第四層的可視化。同樣,它比前一層的表征級(jí)別更高。還有一些狗頭的形狀,或者可能是兩條腿的鳥(niǎo)的身體形狀。

這些是最后一個(gè)卷積的可視化網(wǎng)絡(luò),該網(wǎng)絡(luò)中的卷積層。再說(shuō)一次,這將是更高的水平。它并不完美。例如,在這一層中,它會(huì)將幾種東西混合在一起。但在其他一些例子中,例如對(duì)于這個(gè)過(guò)濾器,它將給出不同類(lèi)型的狗的表征。對(duì)于這個(gè)過(guò)濾器,它將給出不同類(lèi)型的有眼睛動(dòng)物的表征。

實(shí)際上,在計(jì)算機(jī)視覺(jué)中,這些高級(jí)抽象或高級(jí)表征很難手工設(shè)計(jì)。因此,這些高級(jí)表征正是計(jì)算機(jī)視覺(jué)社區(qū)在過(guò)去幾十年中一直在尋找的東西。因此,這種可視化有助于讓計(jì)算機(jī)視覺(jué)社區(qū)相信深度學(xué)習(xí)或深度卷積神經(jīng)網(wǎng)絡(luò)是正確的選擇。

作為這種可視化的副產(chǎn)品,當(dāng)時(shí)計(jì)算機(jī)視覺(jué)界開(kāi)始做出一個(gè)非常重大的發(fā)現(xiàn)。當(dāng)時(shí),他們發(fā)現(xiàn)這些深層表征是可遷移的。在我看來(lái),這實(shí)際上是深度學(xué)習(xí)革命中最重要的發(fā)現(xiàn)。

那么,可遷移或遷移學(xué)習(xí)意味著什么呢?在我看來(lái),遷移學(xué)習(xí)是一個(gè)了不起的想法。假設(shè)我們是否可以在更大規(guī)模的數(shù)據(jù)集上訓(xùn)練更大規(guī)模的網(wǎng)絡(luò)。如果我們能夠發(fā)現(xiàn)這個(gè)網(wǎng)絡(luò)將學(xué)習(xí)一些高級(jí)表征或高級(jí)抽象,那么我們可以希望這種高級(jí)表征不僅僅與該數(shù)據(jù)集相關(guān)。這種高級(jí)表征也可以用于與該較大規(guī)模數(shù)據(jù)集有關(guān)的許多其他較小規(guī)模數(shù)據(jù)集。但為了享受這個(gè)福利,我們可以將這些特征轉(zhuǎn)移到一些較小規(guī)模的數(shù)據(jù)集。通常,我們可以通過(guò)微調(diào)來(lái)實(shí)現(xiàn)遷移學(xué)習(xí)。例如,我們可以只訓(xùn)練神經(jīng)網(wǎng)絡(luò)的一小部分,這只需要在小規(guī)模數(shù)據(jù)集上完成。這一發(fā)現(xiàn)使得深度學(xué)習(xí)模型可以在小規(guī)模數(shù)據(jù)集上得到應(yīng)用。因此,您的特定任務(wù)并不需要更大規(guī)模的數(shù)據(jù)集來(lái)訓(xùn)練超大規(guī)模的模型,您只需要少量與您的任務(wù)相關(guān)的數(shù)據(jù)集。

這個(gè)發(fā)現(xiàn)徹底改變了計(jì)算機(jī)視覺(jué)社區(qū),因?yàn)樵谶w移學(xué)習(xí)的幫助下,我們基本上可以在所有小規(guī)模數(shù)據(jù)集中享受深度學(xué)習(xí)的好處。它們可以在許多計(jì)算機(jī)視覺(jué)任務(wù)中實(shí)現(xiàn)前所未有的準(zhǔn)確性。這只是改變游戲規(guī)則。因此,一些規(guī)模較大的數(shù)據(jù)集,比如ImageNet數(shù)據(jù)集,不再是一個(gè)細(xì)粒度或繁瑣的細(xì)粒度分類(lèi)問(wèn)題,它有超過(guò)100萬(wàn)張圖像或1000個(gè)類(lèi)。ImageNet數(shù)據(jù)集成為我們學(xué)習(xí)的引擎,基本上可以幫助所有計(jì)算機(jī)視覺(jué)任務(wù)的通用表征。

遷移學(xué)習(xí)的這一發(fā)現(xiàn)影響如此之大,其影響遠(yuǎn)遠(yuǎn)超出了計(jì)算機(jī)視覺(jué)的范圍。例如,GPT或者ChatGPT模型也是按照完全相同的原理開(kāi)發(fā)的。接下來(lái)我要談?wù)勎易钕矚g的另一部作品,這項(xiàng)工作被稱(chēng)為VGG,是Visual Geometric Group的縮寫(xiě),該小組是牛津大學(xué)的一個(gè)小組。

VGG架構(gòu)非常簡(jiǎn)單,這只是關(guān)于我們?nèi)绾螛?gòu)建一個(gè)非常深入的神經(jīng)網(wǎng)絡(luò)架構(gòu)而不需要花哨的想法。所以VGG網(wǎng)絡(luò)是高度模塊化的設(shè)計(jì),它只有卷積層、池化層和全連接層。而且所有的卷積層實(shí)際上都是三乘三的,因此不需要仔細(xì)設(shè)計(jì)這些層。所以VGG網(wǎng)絡(luò)只是簡(jiǎn)單地堆疊相同類(lèi)型的模塊,它們就可以構(gòu)建非常深的神經(jīng)網(wǎng)絡(luò)架構(gòu),例如最多90層,是之前最深模型的兩倍。

有趣的是,它第一次顯示出明確的證據(jù)表明更深的模型會(huì)比更淺的模型更好。這似乎是一個(gè)令人驚訝的說(shuō)法,因?yàn)?,事?shí)上,當(dāng)時(shí)幾乎沒(méi)有明確的證據(jù)表明更深的模型更好。一部分原因是在VGGNet論文之前,當(dāng)人們?cè)黾由窠?jīng)網(wǎng)絡(luò)的深度時(shí),他們同時(shí)還做其他事情。所以沒(méi)有明確的證據(jù)表明更深層次是網(wǎng)絡(luò)獲得更好準(zhǔn)確率的主要原因。

然后在VGGNet論文中,作者設(shè)計(jì)了非常仔細(xì)的控制實(shí)驗(yàn)。他們?cè)噲D消除架構(gòu)設(shè)計(jì)中的所有花里胡哨的東西。他們引入了很少的配置工程,并且開(kāi)發(fā)了非常簡(jiǎn)單的規(guī)則來(lái)設(shè)置每個(gè)階段的通道數(shù)或?qū)訑?shù)。他們所做的一切只是添加越來(lái)越多的3x3卷積層。這是一個(gè)非常簡(jiǎn)單的設(shè)計(jì),這是非常優(yōu)雅的。然而,這些簡(jiǎn)單的基線很難被超越。事實(shí)上,在那些年里,VGG 神經(jīng)網(wǎng)絡(luò)是計(jì)算機(jī)視覺(jué)領(lǐng)域最先進(jìn)的架構(gòu)。它是我們解決很多不同問(wèn)題的默認(rèn)主干架構(gòu),包括分類(lèi)、檢測(cè)和分割。而且它們可以輕松超越使用較淺神經(jīng)網(wǎng)絡(luò)架構(gòu)的對(duì)手。實(shí)際上,VGGNetworks是之前最先進(jìn)的更深層次的神經(jīng)網(wǎng)絡(luò)。

關(guān)于VGGNetworks架構(gòu)只有一個(gè)警告,也就是說(shuō),這些模型沒(méi)有經(jīng)過(guò)端到端訓(xùn)練。令人驚訝的是,這些模型是通過(guò)一種稱(chēng)為分階段訓(xùn)練的技術(shù)進(jìn)行訓(xùn)練的。例如,為了訓(xùn)練更深的神經(jīng)網(wǎng)絡(luò)架構(gòu),他們需要預(yù)先訓(xùn)練一個(gè)較淺的對(duì)應(yīng)部分。然后,他們?cè)谥暗哪P椭咸砑恿藘蓚€(gè)層,然后不斷對(duì)其進(jìn)行微調(diào)。所以這種分階段的訓(xùn)練策略其實(shí)并不理想。這實(shí)際上違背了深度學(xué)習(xí)的端到端訓(xùn)練理念。為了從頭開(kāi)始訓(xùn)練這些模型架構(gòu),我們需要開(kāi)發(fā)更好的初始化算法。

然后,在VGGNetworks論文發(fā)表的第二年,社區(qū)開(kāi)始更加關(guān)注網(wǎng)絡(luò)初始化問(wèn)題。然后,現(xiàn)在讓我們?cè)倏s小一點(diǎn),我們將討論為什么這些更深的神經(jīng)網(wǎng)絡(luò)更難訓(xùn)練。直觀地說(shuō),一個(gè)非常深的神經(jīng)網(wǎng)絡(luò)將具有許多構(gòu)建塊和許多模塊的堆?!,F(xiàn)在假設(shè),如果每一個(gè)積木都會(huì)做錯(cuò)事,或者會(huì)帶來(lái)一些麻煩,那么當(dāng)我們把這個(gè)積木堆放很多次之后,我們的麻煩就只會(huì)越來(lái)越多。所以在實(shí)踐中,我們會(huì)看到一些信號(hào)爆炸的問(wèn)題,或者我們也可能會(huì)看到一些信號(hào)消失的問(wèn)題。在這種情況下,我們可能需要一些網(wǎng)絡(luò)初始化幫助我們讓神經(jīng)網(wǎng)絡(luò)開(kāi)始訓(xùn)練。接下來(lái),我將更深入地研究網(wǎng)絡(luò)初始化算法。

這里我展示了一個(gè)簡(jiǎn)單的層,它在神經(jīng)網(wǎng)絡(luò)中是線性的。在這種情況下,輸入x將有x個(gè)節(jié)點(diǎn)或x個(gè)神經(jīng)元,輸出y將有m個(gè)節(jié)點(diǎn)。輸出只是輸入的線性變換,變換將由權(quán)重矩陣w表示。在神經(jīng)網(wǎng)絡(luò)架構(gòu)中這是一件簡(jiǎn)單的事情。

那么如果我們假設(shè)所有元素都在這里,例如x,y和w,彼此獨(dú)立,并且如果我們進(jìn)一步假設(shè)整個(gè)神經(jīng)網(wǎng)絡(luò)內(nèi)部只有線性激活,那么我們可以證明,信號(hào)經(jīng)過(guò)一層處理后,信號(hào)的方差將按縮放因子縮放。例如,該方程基本上表示該層輸出的方差等于輸入神經(jīng)元的數(shù)量乘以權(quán)重矩陣的方差乘以輸入信號(hào)的方差。因此該層將通過(guò)該縮放因子縮放信號(hào)的方差。

如果我們沒(méi)有任何激活或者我們的激活函數(shù)是線性的,我們可以在非常深的神經(jīng)網(wǎng)絡(luò)中多次應(yīng)用這個(gè)公式。好吧,我們將看到方差仍然按比例縮放許多縮放因子的乘積。這個(gè)方程基本上表示輸出,即網(wǎng)絡(luò)輸出的方差,等于這些數(shù)字乘以網(wǎng)絡(luò)輸入方差的乘積。這就是前向傳播的公式。

我們可以做一些數(shù)學(xué)計(jì)算,然后我們會(huì)得到一個(gè)逆向公式,向后的表述方式也非常相似?;旧线@個(gè)方程表示,如果你想通過(guò)反向傳播計(jì)算淺層的梯度,那么這個(gè)梯度的方差將等于這些許多縮放因子的乘積乘以網(wǎng)絡(luò)輸出梯度的方差。這就是后向傳播公式。

那么基本上這很多因素的乘積基本上就是說(shuō),如果每個(gè)單層的縮放因子都小于1,那么這個(gè)效果會(huì)經(jīng)過(guò)很多層的積累之后,你將會(huì)遇到梯度消失的問(wèn)題。也就是說(shuō),你的網(wǎng)絡(luò)不會(huì)進(jìn)行訓(xùn)練。它似乎已經(jīng)飽和,或者似乎已經(jīng)收斂。但真正的原因是它沒(méi)有收到足夠的梯度來(lái)進(jìn)行訓(xùn)練。另一方面,如果每個(gè)層的縮放因子都大于1,您將遇到梯度爆炸問(wèn)題。也就是說(shuō),你的網(wǎng)絡(luò)可能會(huì)在第一次迭代中出現(xiàn)分歧。

然后為了讓網(wǎng)絡(luò)至少開(kāi)始訓(xùn)練,我們需要開(kāi)發(fā)良好的初始化算法。前面的推導(dǎo)將引導(dǎo)我們得到這種初始化方法,在PyTorch或TensorFlow包中稱(chēng)為Xavier初始化?;旧?,您希望將此縮放因子設(shè)置為每個(gè)單層的縮放因子。您可能想要將前向公式設(shè)置為1,或者將后向公式設(shè)置為1。這就是初始化神經(jīng)網(wǎng)絡(luò)中每一層權(quán)重的方法。通常在實(shí)踐中,您只需要設(shè)置一種或另一種形式即可。其實(shí)這并不重要。

這種網(wǎng)絡(luò)初始化可以幫助我們?cè)谛盘?hào)傳播過(guò)程中保留信號(hào)的方差。而之前的推導(dǎo)是基于激活函數(shù)是線性的假設(shè)。而在實(shí)踐中,通常這不是您想要的。您可能想引入ReLU激活。那么我們還可以證明,隨著ReLU的引入,您可能想稍微改變一下這個(gè)公式。意味著,您需要在這些方程中添加一個(gè)1/2的因子。直觀地講,ReLU激活可能會(huì)在訓(xùn)練過(guò)程中削減一半的信號(hào)。這就是為什么您需要引入1比2的比例因子。盡管這似乎是一個(gè)非常小的變化,但與之前的版本相比,事實(shí)證明它非常重要。這是因?yàn)?,如果您在每一層都引入一些?wèn)題或一些麻煩,那么在很多層之后,如果您沒(méi)有做對(duì)事情,您將遇到梯度消失問(wèn)題。這個(gè)初始化方法可以幫助我們訓(xùn)練VGG網(wǎng)絡(luò),從頭開(kāi)始,無(wú)需階段性訓(xùn)練。這就是我們?nèi)绾握_初始化神經(jīng)架構(gòu)。

讓我們回到2014年。接下來(lái)我要講的是另外一個(gè)非常有趣的工作,這與VGG網(wǎng)絡(luò)并行。這一領(lǐng)域的研究通常被稱(chēng)為GoogleNet或Inception。這項(xiàng)研究的一個(gè)共同主題是如何設(shè)計(jì)深度且同時(shí)經(jīng)濟(jì)的卷積神經(jīng)網(wǎng)絡(luò)。其中涉及到幾個(gè)有趣的想法。第一個(gè)想法是使用多個(gè)分支。例如,同一模塊中可能有1x1、3x3或5x5卷積。同時(shí),您可以使用1x1卷積作為瓶頸。也就是說(shuō),您可以使用這個(gè)1x1的卷積來(lái)靈活控制您的神經(jīng)網(wǎng)絡(luò)的通道數(shù)。在某些其他情況下,您可以減少通道數(shù)或增加通道數(shù)。同樣作為副產(chǎn)品,GoogleNet還引入了1x1卷積作為其模塊中的快捷方式。所以它是一個(gè)shortcut,因?yàn)檫@個(gè)1x1的卷積可以比同一個(gè)模塊中的其他分支更淺,所以它可以被稱(chēng)為shortcut。

實(shí)際上,在我看來(lái),Inception架構(gòu)簡(jiǎn)直太瘋狂了,而且有數(shù)百萬(wàn)個(gè)不同設(shè)計(jì)的版本。大多數(shù)時(shí)候,如果你足夠幸運(yùn),那就太好了。它將在神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)方面為您提供非常引人注目的計(jì)算和準(zhǔn)確性權(quán)衡。然而,它也帶來(lái)了另一個(gè)問(wèn)題。因此,這些架構(gòu)的瘋狂設(shè)計(jì)可能會(huì)打破我們開(kāi)發(fā)初始化算法所需的簡(jiǎn)單假設(shè)。所以你可能想開(kāi)發(fā)一些其他的初始化算法專(zhuān)門(mén)針對(duì)所有這些瘋狂的設(shè)計(jì),或者您可能想引入一些其他模塊來(lái)幫助您更改這些神經(jīng)網(wǎng)絡(luò)架構(gòu)。

受到這些Inception架構(gòu)的激勵(lì),人們開(kāi)始看看另一類(lèi)方法,它們?cè)谏窠?jīng)網(wǎng)絡(luò)中被稱(chēng)為歸一化模塊。2015年,人們開(kāi)始關(guān)注標(biāo)準(zhǔn)化模塊。其實(shí),早在這之前,人們就已經(jīng)意識(shí)到,如果我們想要訓(xùn)練一個(gè)非常好的神經(jīng)網(wǎng)絡(luò),如果我們想要這個(gè)神經(jīng)網(wǎng)絡(luò)開(kāi)始收斂,您可能想要標(biāo)準(zhǔn)化輸入。事實(shí)上,即使在今天,這就是您需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理的操作。而另一方面,我們剛才講的網(wǎng)絡(luò)初始化方法也可以被認(rèn)為是歸一化的一種形式。這是因?yàn)槲覀兿M谛盘?hào)傳播過(guò)程中保持信號(hào)的方差或多或少保持不變。這種網(wǎng)絡(luò)初始化的歸一化是基于一些分析推導(dǎo)或分析假設(shè)。而這些假設(shè)只在訓(xùn)練開(kāi)始時(shí)有效,在訓(xùn)練過(guò)程中就會(huì)被打破。這并不理想。

為了解決這個(gè)問(wèn)題,人們想開(kāi)發(fā)另一個(gè)模塊,它基本上是神經(jīng)網(wǎng)絡(luò)內(nèi)的一層。并且這些模塊會(huì)在整個(gè)訓(xùn)練過(guò)程中進(jìn)行歸一化。因此他們可以在整個(gè)過(guò)程中保持信號(hào)標(biāo)準(zhǔn)化。如果你想將這些模塊應(yīng)用于所有層,它們還可以幫助您保持指定的所有層的信號(hào)標(biāo)準(zhǔn)化。而且,該歸一化模塊可以通過(guò)反向傳播進(jìn)行端到端訓(xùn)練,因此它們只是深度學(xué)習(xí)方法工具箱中的另一個(gè)簡(jiǎn)單且通用的模塊。

這是可以由歸一化模塊執(zhí)行的典型計(jì)算的示例。通常會(huì)涉及三個(gè)步驟。在第一步中,我們可能想要計(jì)算該模塊的輸入信號(hào)的期望或方差。然后我們可以通過(guò)減去平均值和除以標(biāo)準(zhǔn)差。而這個(gè)操作可能會(huì)降低自由度,因?yàn)槲覀冞M(jìn)行了這種標(biāo)準(zhǔn)化。所以我們可能想要補(bǔ)償這種減少通過(guò)引入另一個(gè)線性變換,可以簡(jiǎn)單地是Ax加b。并且這三個(gè)操作可以放在一個(gè)層中,這是標(biāo)準(zhǔn)化模塊或標(biāo)準(zhǔn)化層。從概念上講,這一層基本上可以在神經(jīng)網(wǎng)絡(luò)架構(gòu)中的任何地方或任何地方使用。

在實(shí)踐中,規(guī)范化模塊有多種類(lèi)型。這些模塊之間的區(qū)別之一在于它們計(jì)算均值和方差的支持集。例如,在本例中,我顯示了2D圖像的張量。這里,n是batch size的軸,c是通道數(shù),h和w是高度,即空間大小。而這個(gè)操作就代表了批量歸一化操作?;旧希鼘⒂?jì)算整個(gè)空間域的統(tǒng)計(jì)數(shù)據(jù),并且還跨批處理域。這就是為什么它被稱(chēng)為批量歸一化。然后還有許多其他類(lèi)型的歸一化層。它們僅在支持集的定義上有所不同。今天,我們使用的最流行的選擇之一,或者也許是我們使用的默認(rèn)選擇,是層標(biāo)準(zhǔn)化操作。因此還值得注意的是,它在限制或Transformer中的定義可能略有不同。

那么,為什么這些標(biāo)準(zhǔn)化模塊很重要呢?所以首先,使用這些模塊可以使模型開(kāi)始訓(xùn)練,否則他們就會(huì)停止訓(xùn)練,或者一開(kāi)始就會(huì)出現(xiàn)分歧。另一方面,即使模型可以開(kāi)始訓(xùn)練,歸一化模塊的引入有助于加快收斂速度,也有助于提高模型收斂時(shí)的精度。

接下來(lái)我要講一下ResNet。在此之前,讓我們稍微縮小一下我們來(lái)記錄一下深度學(xué)習(xí)的核心思想是什么。因此,關(guān)鍵思想是將一組簡(jiǎn)單的通用模塊組合成高度復(fù)雜的功能。所以為了組成大量簡(jiǎn)單的模塊,我們可能想要構(gòu)建一個(gè)不同的神經(jīng)網(wǎng)絡(luò)架構(gòu)。這是基礎(chǔ),也是ResNet架構(gòu)背后的基本動(dòng)機(jī)。

在殘差學(xué)習(xí)的這項(xiàng)工作中,我們證明了深度學(xué)習(xí)或深度神經(jīng)網(wǎng)絡(luò)架構(gòu)可以比人們想象的更深入。而且,有趣且令人驚訝的是,這可以通過(guò)一個(gè)非常簡(jiǎn)單的組件來(lái)完成,這只是一個(gè)身份快捷方式,從概念上講,基本上,它幾乎什么都不做。然而,這個(gè)簡(jiǎn)單組件的引入可以使數(shù)百層的神經(jīng)網(wǎng)絡(luò)從頭開(kāi)始訓(xùn)練并達(dá)到更好的精度。接下來(lái),我將講述一些關(guān)于ResNet的故事。

ResNet的靈感來(lái)自于一項(xiàng)經(jīng)驗(yàn)觀察,這就是所謂的退化問(wèn)題。我們討論了非常好的初始化方法以及非常有效的標(biāo)準(zhǔn)化模塊。然后在這些模塊的幫助下,我們足以從頭開(kāi)始訓(xùn)練非常深的神經(jīng)網(wǎng)絡(luò)架構(gòu)并獲得一定的準(zhǔn)確性。那么,深度學(xué)習(xí)是否只是堆疊越來(lái)越多的層那么簡(jiǎn)單呢?不幸的是,答案是否定的。實(shí)際上,事實(shí)證明,在20層之后模型會(huì)很快退化。而這種退化并不是因?yàn)檫^(guò)度擬合。也就是說(shuō),越深的模型不僅驗(yàn)證精度越差,他們?cè)趯?shí)踐中的訓(xùn)練準(zhǔn)確性也會(huì)較差。事實(shí)證明,這些不同的神經(jīng)網(wǎng)絡(luò)只是更難訓(xùn)練,這是違反直覺(jué)的。

現(xiàn)在讓我們來(lái)做一個(gè)思想實(shí)驗(yàn)。較深的模型實(shí)際上比較淺的模型具有更豐富的解空間。所以也就是說(shuō),越深的神經(jīng)網(wǎng)絡(luò)不應(yīng)該有越低的訓(xùn)練精度。我們很容易通過(guò)構(gòu)建得到更深層次的神經(jīng)網(wǎng)絡(luò)的解決方案。如果我們能做到的話(huà),我們可以簡(jiǎn)單地訓(xùn)練一個(gè)較淺的神經(jīng)網(wǎng)絡(luò)來(lái)達(dá)到一定的精度。然后我們可以將訓(xùn)練后的層從這個(gè)較淺的模型復(fù)制到更深的對(duì)應(yīng)層中的相應(yīng)層。然后對(duì)于更深層特有的其他層,我們可以簡(jiǎn)單地將它們?cè)O(shè)置為身份映射。以及這種更深層神經(jīng)架構(gòu)解決方案的存在。建議至少應(yīng)該具備一些較淺的對(duì)應(yīng)物。然而,退化的經(jīng)驗(yàn)觀察表明,優(yōu)化可能無(wú)法找到該解決方案,或者優(yōu)化可能無(wú)法找到與該解決方案足夠相似的解決方案。這促使我們開(kāi)發(fā)一個(gè)稱(chēng)為深度殘差學(xué)習(xí)的框架。

再次,讓我們縮小一點(diǎn),想象一個(gè)非常深的神經(jīng)網(wǎng)絡(luò)架構(gòu)。然后讓我們關(guān)注一個(gè)非常深的神經(jīng)架構(gòu)內(nèi)的一個(gè)小子網(wǎng)。在此圖中,這個(gè)小子網(wǎng)只有兩層。然后我們使用函數(shù) hx 來(lái)表示要適合這個(gè)小子網(wǎng)的底層所需函數(shù)。在經(jīng)典的普通神經(jīng)網(wǎng)絡(luò)的情況下,我們唯一能做的就是希望這兩層能夠契合hx的底層功能。

然而,殘差學(xué)習(xí)的思想就不同了。我們不需要使用這個(gè)權(quán)重層來(lái)直接擬合這個(gè)函數(shù)hx。相反,我們可能希望它們適合另一個(gè)函數(shù),即 fx。這個(gè)函數(shù)將代表我們可以在這個(gè)小子網(wǎng)的輸入之上進(jìn)行的增量或更改。為了擁有原來(lái)想要的功能,我們只需要將 fx 添加到該子網(wǎng)的輸入中即可。并且這種加法可以很容易地實(shí)現(xiàn)為恒等映射,它將該子網(wǎng)的輸入連接到該子網(wǎng)的輸出。并且信號(hào)將通過(guò)逐元素相加來(lái)合并。這也將把這個(gè)子網(wǎng)變成一個(gè)殘差塊。

在這個(gè)殘差塊中,權(quán)重層將執(zhí)行一個(gè)稱(chēng)為殘差函數(shù)的函數(shù)?;旧?,殘差函數(shù)只是輸入之上的增量變化?,F(xiàn)在讓我們將整個(gè)殘差塊視為我們要使用的函數(shù)。如果恒等映射對(duì)于該函數(shù)是最佳的,那么我們應(yīng)該很容易實(shí)現(xiàn)它。因?yàn)槲覀兛梢詫⑺袡?quán)重層設(shè)置為零。如果恒等映射幾乎是最優(yōu)的,那么我們也許也能有一個(gè)好的解決方案,因?yàn)槲覀兛梢詫?quán)重設(shè)置為一些小數(shù)字。

從這個(gè)意義上說(shuō),實(shí)際上,剩余學(xué)習(xí)的想法鼓勵(lì)進(jìn)行小的、保守的和漸進(jìn)的改變的基石。然而,通過(guò)將許多小的改變放在一起,我們?nèi)匀挥锌赡軐W(xué)習(xí)一個(gè)非常復(fù)雜的函數(shù)。這也遵循深度學(xué)習(xí)方法論。再次,作為引入殘差塊的副產(chǎn)品,我們很容易有另一種初始化方法。我們可以在訓(xùn)練開(kāi)始時(shí)將權(quán)重設(shè)置為一些小數(shù)字或?qū)⑺鼈冊(cè)O(shè)置為零。

也就是說(shuō),整個(gè)殘差塊將只是恒等映射或類(lèi)似于訓(xùn)練開(kāi)始時(shí)的恒等映射。所以信號(hào)在前向過(guò)程中也是在后向過(guò)程中可以在訓(xùn)練開(kāi)始時(shí)使用此恒等映射輕松傳播。所以你不需要太擔(dān)心初始化算法。

那么,我們很容易采用這個(gè)想法來(lái)構(gòu)建一個(gè)非常深的神經(jīng)網(wǎng)絡(luò)架構(gòu)。因此,從某種意義上說(shuō),您可能只需要將這么多身份連接添加到普通神經(jīng)網(wǎng)絡(luò)中,然后就可以將其變成殘差神經(jīng)網(wǎng)絡(luò)?;蛘叩葍r(jià)地,這可以被認(rèn)為是簡(jiǎn)單地堆疊許多殘差塊來(lái)創(chuàng)建一個(gè)非常深的模型。所以從這個(gè)意義上來(lái)說(shuō),殘差塊的引入或者設(shè)計(jì)實(shí)際上成為我們構(gòu)建非常深的神經(jīng)網(wǎng)絡(luò)架構(gòu)的新通用設(shè)計(jì)或新通用模塊。

所以引入ResNet之后,人們開(kāi)始關(guān)注每一個(gè)構(gòu)建模塊的設(shè)計(jì)。也許最成功的設(shè)計(jì)之一是Transformer塊。之后,您只需要多次堆疊相同類(lèi)型的塊即可,當(dāng)您有更多層時(shí),您不需要仔細(xì)設(shè)計(jì)每個(gè)特定層。

這里是一些關(guān)于 ResNet 的結(jié)果。圖中,x軸是神經(jīng)網(wǎng)絡(luò)的深度,y軸是分類(lèi)精度。這個(gè)數(shù)字基本上表明,例如,普通神經(jīng)網(wǎng)絡(luò)在 20 層之后將開(kāi)始快速退化。而且ResNet可以在多層之后不斷改進(jìn)。同樣的模式也可能發(fā)生在 ImageNet 和許多其他數(shù)據(jù)集上。

而這個(gè)模式可以概括為這樣的形式:在沒(méi)有剩余連接的幫助下,神經(jīng)網(wǎng)絡(luò)將在某一點(diǎn)后開(kāi)始退化,具體取決于您的場(chǎng)景。并且在殘差連接的幫助下,它可以不斷改進(jìn),當(dāng)你添加越來(lái)越多的層時(shí),這是一個(gè)非常理想的屬性。

這里列出了構(gòu)建和訓(xùn)練非常深層的神經(jīng)網(wǎng)絡(luò)架構(gòu)時(shí)可以執(zhí)行的幾項(xiàng)操作的清單。其中許多概念都是關(guān)于我們?nèi)绾螕碛薪】档挠?xùn)練過(guò)程中的信號(hào)傳播。這方面包括使用真實(shí)世界的激活或類(lèi)似形狀的其他激活,以及適當(dāng)?shù)某跏蓟惴ǖ氖褂?。它還包括將歸一化模塊和殘差連接引入神經(jīng)網(wǎng)絡(luò)架構(gòu)中。

很好,我已經(jīng)討論過(guò)使用卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí) 2D 圖像的深度表征。接下來(lái),我也會(huì)簡(jiǎn)單講一下我們?nèi)绾螐囊痪S序列中學(xué)習(xí)深度表征。

我們進(jìn)行一維序列建模的經(jīng)典模型是 循環(huán)神經(jīng)網(wǎng)絡(luò),簡(jiǎn)稱(chēng) RNN。循環(huán)神經(jīng)網(wǎng)絡(luò)是一種非常特殊的神經(jīng)網(wǎng)絡(luò),它的連接中有循環(huán)。也就是說(shuō),給定一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)單元,它將獲取當(dāng)前時(shí)間步的輸入,比如說(shuō) xt,然后根據(jù)該輸入生成一個(gè)隱藏狀態(tài),例如 ht。這個(gè)隱藏狀態(tài)將用于確定該時(shí)間步的輸出。而這個(gè)隱藏狀態(tài)也將作為下一個(gè)時(shí)間步的輸入。

如果我們沿著時(shí)間軸展開(kāi)這個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)架構(gòu),我們可以看到,它實(shí)際上是另一個(gè)權(quán)重共享模型,權(quán)重在時(shí)間維度上共享。而且,該架構(gòu)也是本地連接的表述。例如,對(duì)于每個(gè)單元, 它僅連接到該時(shí)間步的輸入,并且還連接到前一個(gè)時(shí)間步。因此,我們?cè)俅慰吹綑?quán)重共享和本地連接仍然是循環(huán)神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)中的兩個(gè)關(guān)鍵屬性。這在概念上與卷積神經(jīng)網(wǎng)絡(luò)非常相似。

我們?nèi)绾螛?gòu)建深度循環(huán)神經(jīng)網(wǎng)絡(luò)?事實(shí)證明它也非常簡(jiǎn)單。從某種意義上說(shuō),您只需將循環(huán)神經(jīng)網(wǎng)絡(luò)單元的狀態(tài)視為新序列,然后就可以使用另一個(gè)單元來(lái)處理該序列。也就是說(shuō),你可以將許多循環(huán)神經(jīng)網(wǎng)絡(luò)單元堆疊在一起,你將擁有一個(gè)更深的神經(jīng)網(wǎng)絡(luò)。例如,在這里,我展示了三層循環(huán)神經(jīng)網(wǎng)絡(luò)的情況。在這種情況下,如果我們考慮該神經(jīng)元的輸出,它將取決于所有較淺層的輸出。它還將取決于同一層中所有先前的時(shí)間步。這只是循環(huán)神經(jīng)網(wǎng)絡(luò)架構(gòu)的一個(gè)屬性。

這是深度循環(huán)神經(jīng)網(wǎng)絡(luò)在實(shí)踐中的一個(gè)例子。這個(gè)例子來(lái)自谷歌的神經(jīng)機(jī)器翻譯系統(tǒng),這是 2016 年為其產(chǎn)品開(kāi)發(fā)的。在本例中,他們堆疊了多個(gè) LSTM 單元來(lái)構(gòu)建這個(gè)深度循環(huán)神經(jīng)網(wǎng)絡(luò)。LSTM 只是一種非常有效的 RNN 形式的特殊形式。在這項(xiàng)工作中,作者報(bào)告說(shuō),為了構(gòu)建這個(gè)非常深的 LSTM 模型,他們?nèi)匀恍枰褂檬S噙B接。他們報(bào)告說(shuō),在殘余連接的幫助下,他們可以訓(xùn)練多達(dá) 16 層的深度 LSTM,并享受更深層次的好處。如果他們不使用剩余連接,他們?cè)谒膶又缶陀^察到了降解問(wèn)題。

有趣的是,這個(gè)觀察結(jié)果與我們?cè)诰矸e神經(jīng)網(wǎng)絡(luò)上所做的觀察非常相似。這再次證明了深度學(xué)習(xí)方法的強(qiáng)大功能和通用性。也就是說(shuō),如果我們從一個(gè)應(yīng)用程序開(kāi)發(fā)出一個(gè)非常有效且非常通用的組件,那么您很可能會(huì)享受到其他一些應(yīng)用程序的好處。所以在這種情況下,就開(kāi)發(fā)了原來(lái)的殘差連接在卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行2D圖像處理的場(chǎng)景中。但它的行為也可以在完全不同的場(chǎng)景中觀察到,使用遞歸神經(jīng)網(wǎng)絡(luò)進(jìn)行一維序列建模。

那么,循環(huán)神經(jīng)網(wǎng)絡(luò)并不是我們對(duì)一維序列進(jìn)行建模的唯一方法。我們?nèi)匀豢梢允褂媒?jīng)典的卷積神經(jīng)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)或多或少相同的目標(biāo)。我們只需在一維維度上應(yīng)用滑動(dòng)窗口,然后就可以對(duì)一維序列進(jìn)行卷積。如果我們想要進(jìn)行因果推理,可能需要在此處做一些微小的調(diào)整,也就是說(shuō),我們可能希望通過(guò)卷積來(lái)執(zhí)行一些因果計(jì)算。對(duì)于卷積核來(lái)說(shuō),它只能看到當(dāng)前時(shí)間步或任何先前的時(shí)間步,而無(wú)法看到任何未來(lái)的時(shí)間步長(zhǎng)。

在卷積神經(jīng)網(wǎng)絡(luò)的情況下,局限性是非常明顯的。如果你想捕捉更長(zhǎng)的上下文,你需要建立一個(gè)更深的神經(jīng)網(wǎng)絡(luò)架構(gòu)。這是因?yàn)閷?duì)于每個(gè)單層,上下文長(zhǎng)度將受到內(nèi)核大小的限制。例如,對(duì)于某個(gè)神經(jīng)元,它的上下文僅取決于當(dāng)前時(shí)間步和前一個(gè)時(shí)間步。因此,為了擁有更長(zhǎng)的上下文,你可能需要更多層。這個(gè)神經(jīng)元將取決于最多三個(gè)時(shí)間步的距離。這就是當(dāng)我們使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行序列建模時(shí),你可以獲得更長(zhǎng)的上下文的方式。

接下來(lái),我將討論另一個(gè)具體例子。這個(gè)例子來(lái)自 DeepMind 的 WaveNet 架構(gòu),這里的應(yīng)用程序是音頻生成。在這種情況下,他們不僅使用了因果卷積,而且還將其推廣到另一種操作,稱(chēng)為擴(kuò)張。擴(kuò)張卷積意味著卷積核不需要依賴(lài)于前一步。它可能取決于可能相隔許多時(shí)間步的時(shí)間步。膨脹操作可以幫助我們大大增加卷積核的大小,并且它可以幫助我們捕獲更長(zhǎng)的上下文。但即便如此,作者仍然需要堆疊很多卷積層來(lái)構(gòu)建一個(gè)非常深的卷積神經(jīng)網(wǎng)絡(luò)以捕獲長(zhǎng)上下文。因此,他們?nèi)匀恍枰獨(dú)堄噙B接的幫助以便享受訓(xùn)練更深層神經(jīng)網(wǎng)絡(luò)的好處。

這里從概念上總結(jié)了不同的序列建模范例。在循環(huán)神經(jīng)網(wǎng)絡(luò)的情況下,對(duì)于每個(gè)單層和每個(gè)時(shí)間步長(zhǎng),它可以看到完整的上下文。也就是說(shuō),如果我們考慮這個(gè)神經(jīng)元,它的計(jì)算將取決于同一層中所有先前時(shí)間步的計(jì)算。如果你希望在應(yīng)用程序中進(jìn)行一些遠(yuǎn)程推理,這可能是一個(gè)理想的屬性。然而,另一方面,也因?yàn)檫@個(gè)屬性,循環(huán)神經(jīng)網(wǎng)絡(luò)的計(jì)算不是前饋的。也就是說(shuō),為了計(jì)算這個(gè)神經(jīng)元的輸出,你需要等待前面所有神經(jīng)元的輸出完成。所以這種行為對(duì)于GPU中的并行實(shí)現(xiàn)并不友好。因此在實(shí)踐中,循環(huán)神經(jīng)網(wǎng)絡(luò)在 GPU 實(shí)現(xiàn)上效率不高。

作為比較,卷積神經(jīng)網(wǎng)絡(luò)具有完全不同的行為。一方面,該模型是完全前饋的。因此,對(duì)于同一層中的每個(gè)神經(jīng)元,你不需要等待其他神經(jīng)元完成其計(jì)算。所以這對(duì)于GPU中的并行實(shí)現(xiàn)非常友好。所以通常情況下,卷積神經(jīng)網(wǎng)絡(luò)在 GPU 實(shí)現(xiàn)上非常高效。另一方面,正如我們所討論的,上下文長(zhǎng)度將受到卷積核大小的限制。這不是一個(gè)理想的屬性。

那么我們?cè)鯓硬拍軆扇涿滥??這就是引入注意力機(jī)制的原因。簡(jiǎn)單地說(shuō),在注意力機(jī)制中,我們?cè)试S每個(gè)神經(jīng)元或每個(gè)時(shí)間步驟看到序列中的每個(gè)其他時(shí)間步驟。因此,對(duì)于每一個(gè)神經(jīng)元,它將能夠看到上一層的完整上下文。因此,如果你想要對(duì)長(zhǎng)期推理進(jìn)行建模,那么這是神經(jīng)網(wǎng)絡(luò)架構(gòu)中所需的屬性。另一方面,在注意力機(jī)制中,所有計(jì)算都是前饋的。所以你不需要等待。你不需要等待同一層上一個(gè)時(shí)間步的計(jì)算完成。所以這種前饋計(jì)算對(duì)于GPU實(shí)現(xiàn)來(lái)說(shuō)也是非常友好的。

注意力機(jī)制是一種非常流行的架構(gòu)(稱(chēng)為 Transformer)背后的核心思想。由于時(shí)間有限,我不打算深入研究Transformer的技術(shù)細(xì)節(jié)。但我將分享Transformer設(shè)計(jì)的一些有趣的特性。第一個(gè)屬性是在Transformer中,我們?cè)试S每個(gè)節(jié)點(diǎn)看到其他每個(gè)節(jié)點(diǎn),正如我們所討論的。還有另一個(gè)有趣的特性,令許多從業(yè)者感到驚訝的是,實(shí)際上注意力計(jì)算是無(wú)參數(shù)的。所以不需要引入任何參數(shù)。也就是說(shuō),如果給你三個(gè)序列,比如說(shuō) Q、K、V,它是查詢(xún)、鍵和值的縮寫(xiě),那么注意力計(jì)算不需要引入任何可訓(xùn)練的參數(shù)。所以這與經(jīng)典的全連接層不同,其中每個(gè)連接都可以代表一個(gè)可訓(xùn)練的參數(shù)。在注意力計(jì)算的情況下,每個(gè)連接都代表沒(méi)有可訓(xùn)練的參數(shù)。這只是意味著這兩件事是相互關(guān)聯(lián)的。

那么參數(shù)在哪里呢?有趣的是,在 Transformer 架構(gòu)中,所有參數(shù)層都是前饋的。參數(shù)層將用于我們獲得稱(chēng)為 Q、K、V 的序列,它們還將用于 MLP 塊中,即在表征空間中變換這些序列。從某種意義上說(shuō),所有這些參數(shù)層都只是一種一對(duì)一的卷積層。再說(shuō)一遍,所有這些層都是本地連接的,因?yàn)樗鼈冎贿B接到當(dāng)前時(shí)間步,所有這些層都有跨時(shí)間維度共享的方式。再次,我們可以看到本地連接和共享方式仍然是神經(jīng)網(wǎng)絡(luò)架構(gòu)中的兩個(gè)關(guān)鍵屬性。而且,Transformer架構(gòu)是一個(gè)非常深入的模型,所以我們需要依賴(lài)某種類(lèi)型的標(biāo)準(zhǔn)化操作以及我們訓(xùn)練這些非常深的模型的剩余連接。

Transformer架構(gòu)有許多成功的應(yīng)用,也許最受歡迎和最著名的一種是生成式預(yù)訓(xùn)練 Transformer,簡(jiǎn)稱(chēng) GPT。簡(jiǎn)單來(lái)說(shuō),GPT模型是自然語(yǔ)言處理的表征學(xué)習(xí)模型。GPT 模型是為“下一個(gè)世界預(yù)測(cè)”的任務(wù)而設(shè)計(jì)的。在此任務(wù)中,模型被賦予一個(gè)句子的前綴,并要求預(yù)測(cè)該前綴之后的下一個(gè)單詞是什么。在這種情況下,該句子可以是,例如,學(xué)生打開(kāi)一些東西,模型被要求預(yù)測(cè)一些東西,模型可能會(huì)說(shuō),有一定概率,書(shū)。而這個(gè)模型,GPT模型,是在從互聯(lián)網(wǎng)收集的更大規(guī)模的數(shù)據(jù)集上進(jìn)行訓(xùn)練的,因此它能夠?qū)W習(xí)關(guān)于自然語(yǔ)言的非常好的表示。它還將學(xué)習(xí)該語(yǔ)言數(shù)據(jù)中包含的知識(shí)。GPT 模型是許多語(yǔ)言應(yīng)用程序背后的基礎(chǔ),包括ChatGPT。事實(shí)上,為了享受這種好處,我們?nèi)匀恍枰蕾?lài)遷移學(xué)習(xí)范式。也就是說(shuō),我們?cè)诟笠?guī)模的數(shù)據(jù)上預(yù)訓(xùn)練這個(gè)模型,然后我們需要在一些較小規(guī)模的數(shù)據(jù)集中微調(diào)或遷移這個(gè)模型。

Transformer 的另一個(gè)成功應(yīng)用是 AlphaFold 應(yīng)用。簡(jiǎn)單來(lái)說(shuō),AlphaFold 是一種表征學(xué)習(xí)方法,用于蛋白質(zhì)折疊的應(yīng)用。在這種情況下,神經(jīng)結(jié)構(gòu)的輸入是氨基酸序列,架構(gòu)的輸出只是蛋白質(zhì)結(jié)構(gòu)。這個(gè)架構(gòu)有 48 個(gè)Transformer塊,該架構(gòu)將在更大規(guī)模的蛋白質(zhì)結(jié)構(gòu)數(shù)據(jù)集上進(jìn)行訓(xùn)練,這是過(guò)去幾十年來(lái)通過(guò)人體實(shí)驗(yàn)收集到的。有趣的是,盡管其中許多組件,例如Transformer塊或剩余連接的使用,最初是為許多其他應(yīng)用程序開(kāi)發(fā)的,例如自然語(yǔ)言處理或圖像識(shí)別,這組完全相同的構(gòu)建模塊可以應(yīng)用于完全不同的蛋白質(zhì)折疊問(wèn)題。這再次證明了深度學(xué)習(xí)方法的通用性。如果你開(kāi)發(fā)了一套非常有效的工具,那么你也許能夠享受這些工具的好處,也許是在完全不同的領(lǐng)域。

然后我們準(zhǔn)備好回到計(jì)算機(jī)視覺(jué),我們接下來(lái)要介紹的另一個(gè)非常成功的作品,它叫做Vision Transformer,或者ViT。從概念角度來(lái)看,視覺(jué)Transformer(ViT)只是Transformer在二維圖像處理中的應(yīng)用。實(shí)踐證明,這個(gè)想法的實(shí)現(xiàn)過(guò)程可以非常簡(jiǎn)單。我們只需準(zhǔn)備一個(gè)輸入圖像,將其劃分為一系列不重疊的補(bǔ)丁。然后,我們可以將Transformer架構(gòu)應(yīng)用到這個(gè)一維序列上,就像處理任何其他一維序列一樣。這個(gè)簡(jiǎn)單的想法被證明非常成功且有效,如今它已經(jīng)成為我們?cè)谟?jì)算機(jī)視覺(jué)中進(jìn)行圖像識(shí)別的首選之一。

(城主注:ViT技術(shù)就是當(dāng)前大熱的Sora大模型的核心基礎(chǔ)?。?/p>

VIT架構(gòu)的意義并不僅僅在于計(jì)算機(jī)視覺(jué)領(lǐng)域,因?yàn)樗状巫C明了Transformer架構(gòu)可以成為解決許多問(wèn)題的統(tǒng)一架構(gòu),包括自然語(yǔ)言處理、計(jì)算機(jī)視覺(jué)、音頻識(shí)別、3D處理,以及許多其他序列處理問(wèn)題。這再次證明了深度學(xué)習(xí)方法的通用性。

這是本教程的結(jié)論,也是本部分的一些要點(diǎn)。在本教程中,我介紹了什么是表征學(xué)習(xí)以及為什么它是一個(gè)重要問(wèn)題。表征學(xué)習(xí)可能是我們?cè)诓煌I(lǐng)域和不同應(yīng)用程序中可能遇到的常見(jiàn)問(wèn)題。而深度學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)正是我們解決表征學(xué)習(xí)問(wèn)題的非常有效的工具。

再次強(qiáng)調(diào),深度學(xué)習(xí)的關(guān)鍵思想是將一組簡(jiǎn)單的通用模塊組合成高度復(fù)雜的函數(shù)。深度學(xué)習(xí)的思想可以為我們提供通用的工具來(lái)解決不同領(lǐng)域的不同問(wèn)題,我希望您將來(lái)能夠在您的領(lǐng)域使用這些工具。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
小波特關(guān)注庫(kù)里,預(yù)計(jì)交易即將完成,勇士迎來(lái)最大補(bǔ)強(qiáng)!

小波特關(guān)注庫(kù)里,預(yù)計(jì)交易即將完成,勇士迎來(lái)最大補(bǔ)強(qiáng)!

愛(ài)體育
2026-01-12 22:43:54
漲幅達(dá)300%!內(nèi)存條價(jià)格大漲,記者實(shí)地探訪

漲幅達(dá)300%!內(nèi)存條價(jià)格大漲,記者實(shí)地探訪

上觀新聞
2026-01-12 06:41:08
專(zhuān)題片揭露徐憲平隱蔽利益鏈:收受商人原始股,十多年后退居二線才變現(xiàn)

專(zhuān)題片揭露徐憲平隱蔽利益鏈:收受商人原始股,十多年后退居二線才變現(xiàn)

澎湃新聞
2026-01-12 21:38:27
要交易?首鋼連敗,2人被點(diǎn)名,名帥怒批,誰(shuí)注意周琦表態(tài)

要交易?首鋼連敗,2人被點(diǎn)名,名帥怒批,誰(shuí)注意周琦表態(tài)

樂(lè)聊球
2026-01-12 10:35:14
A股徹底癲了!17連陽(yáng)又見(jiàn)證歷史!

A股徹底癲了!17連陽(yáng)又見(jiàn)證歷史!

老A情報(bào)圈
2026-01-13 00:12:40
仁濟(jì)醫(yī)院:低調(diào)背后的頂級(jí)醫(yī)療硬實(shí)力

仁濟(jì)醫(yī)院:低調(diào)背后的頂級(jí)醫(yī)療硬實(shí)力

周哥一影視
2026-01-12 06:40:15
隨著火箭三連敗掉進(jìn)附加賽,太陽(yáng)上升到第6,西部排名又變了

隨著火箭三連敗掉進(jìn)附加賽,太陽(yáng)上升到第6,西部排名又變了

消費(fèi)俠
2026-01-13 04:55:10
韓國(guó)某中學(xué)把“中華人民共和國(guó)”當(dāng)作班級(jí)目標(biāo)引爭(zhēng)議

韓國(guó)某中學(xué)把“中華人民共和國(guó)”當(dāng)作班級(jí)目標(biāo)引爭(zhēng)議

隨波蕩漾的漂流瓶
2026-01-10 17:50:06
哭窮炫富,“知三當(dāng)三”,裝了10年的吉克雋逸,還是“自食惡果”

哭窮炫富,“知三當(dāng)三”,裝了10年的吉克雋逸,還是“自食惡果”

顧史
2025-12-12 14:59:24
沈騰帶妻子出席慈善晚會(huì),王琦瘦出瓜子臉,膚白顯嫩就是有點(diǎn)禿

沈騰帶妻子出席慈善晚會(huì),王琦瘦出瓜子臉,膚白顯嫩就是有點(diǎn)禿

小咪侃娛圈
2026-01-12 09:20:19
第15天:伊朗傷亡人數(shù)飆升,川普又開(kāi)空頭支票

第15天:伊朗傷亡人數(shù)飆升,川普又開(kāi)空頭支票

近距離
2026-01-12 10:59:39
老了才明白:盡量不要跟身邊任何人!包括你的親人,分享這5件事

老了才明白:盡量不要跟身邊任何人!包括你的親人,分享這5件事

小鬼頭體育
2026-01-13 05:42:26
專(zhuān)為U字號(hào)亞洲杯而生,門(mén)神李昊證明馬競(jìng)的球探很優(yōu)秀

專(zhuān)為U字號(hào)亞洲杯而生,門(mén)神李昊證明馬競(jìng)的球探很優(yōu)秀

米奇兔
2026-01-12 11:53:08
連爆大冷2-6!塞爾比+墨菲一輪游,五虎淘汰三虎,4強(qiáng)中國(guó)鎖定1席

連爆大冷2-6!塞爾比+墨菲一輪游,五虎淘汰三虎,4強(qiáng)中國(guó)鎖定1席

球場(chǎng)沒(méi)跑道
2026-01-12 06:51:15
阿里納斯:沒(méi)有三球誰(shuí)關(guān)注黃蜂?喬丹賣(mài)隊(duì)的時(shí)候NBA就該解散他們

阿里納斯:沒(méi)有三球誰(shuí)關(guān)注黃蜂?喬丹賣(mài)隊(duì)的時(shí)候NBA就該解散他們

懂球帝
2026-01-12 09:05:21
遺骸沖上海灘,澳大利亞警方初步確認(rèn):32歲華人男子浮潛抓龍蝦遇難

遺骸沖上海灘,澳大利亞警方初步確認(rèn):32歲華人男子浮潛抓龍蝦遇難

紅星新聞
2026-01-12 16:22:12
合川千人刨豬湯后續(xù):母親獨(dú)自打掃,本人哭求幫忙,粉絲擅自亂闖

合川千人刨豬湯后續(xù):母親獨(dú)自打掃,本人哭求幫忙,粉絲擅自亂闖

丁丁鯉史紀(jì)
2026-01-12 15:59:20
徐達(dá)常遇春他們都是農(nóng)民,為何起義后卻成了軍事天才?原因很現(xiàn)實(shí)

徐達(dá)常遇春他們都是農(nóng)民,為何起義后卻成了軍事天才?原因很現(xiàn)實(shí)

銘記歷史呀
2026-01-10 13:09:37
1月13日起,“i茅臺(tái)”開(kāi)搶陳年茅臺(tái)酒(15)

1月13日起,“i茅臺(tái)”開(kāi)搶陳年茅臺(tái)酒(15)

每日經(jīng)濟(jì)新聞
2026-01-12 20:17:05
亮燈之下:西安砂舞的虛名與現(xiàn)實(shí)。2026年1月8日晚上家中隨筆。

亮燈之下:西安砂舞的虛名與現(xiàn)實(shí)。2026年1月8日晚上家中隨筆。

成都人的故事
2026-01-12 11:40:07
2026-01-13 07:04:49
Web3天空之城 incentive-icons
Web3天空之城
美好,有趣的,值得銘記的
101文章數(shù) 86關(guān)注度
往期回顧 全部

科技要聞

面對(duì)SpaceX瘋狂“下餃子” 中國(guó)正面接招

頭條要聞

"搖人殺豬"女孩一天漲粉150萬(wàn):我捅了大婁子

頭條要聞

"搖人殺豬"女孩一天漲粉150萬(wàn):我捅了大婁子

體育要聞

一場(chǎng)安東尼奧式勝利,給中國(guó)足球帶來(lái)驚喜

娛樂(lè)要聞

蔡少芬結(jié)婚18周年,與張晉過(guò)二人世界

財(cái)經(jīng)要聞

倍輕松信披迷霧 實(shí)控人占用資金金額存疑

汽車(chē)要聞

增配不加價(jià) 北京現(xiàn)代 第五代 勝達(dá)2026款上市

態(tài)度原創(chuàng)

房產(chǎn)
親子
旅游
公開(kāi)課
軍事航空

房產(chǎn)要聞

重磅調(diào)規(guī)!417畝商改住+教育地塊!??谖骱0队忠l(fā)!

親子要聞

原來(lái)生氣可以這么可愛(ài)的?傲嬌寶寶:那可不咋滴!

旅游要聞

走進(jìn)布哈拉古城

公開(kāi)課

李玫瑾:為什么性格比能力更重要?

軍事要聞

官方確認(rèn):殲10CE在空戰(zhàn)中擊落多架戰(zhàn)機(jī)

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版