盡管 CNN 在引入 LeNet 后在計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)社區(qū)中廣為人知 (LeCun等人,1995 年),但它們并沒(méi)有立即占據(jù)該領(lǐng)域的主導(dǎo)地位。盡管 LeNet 在早期的小型數(shù)據(jù)集上取得了不錯(cuò)的成績(jī),但在更大、更真實(shí)的數(shù)據(jù)集上訓(xùn)練 CNN 的性能和可行性尚未確定。事實(shí)上,在 1990 年代初期和 2012 年分水嶺結(jié)果之間的大部分時(shí)間里(Krizhevsky等人,2012 年),神經(jīng)網(wǎng)絡(luò)經(jīng)常被其他機(jī)器學(xué)習(xí)方法超越,例如內(nèi)核方法(Sch?lkopf 和 Smola,2002 年) , 集成方法 ( Freund et al. , 1996 )和結(jié)構(gòu)化估計(jì) ( Taskar et al. , 2004 )。
對(duì)于計(jì)算機(jī)視覺(jué),這種比較可能并不完全準(zhǔn)確。也就是說(shuō),盡管卷積網(wǎng)絡(luò)的輸入由原始或輕微處理(例如,通過(guò)居中)的像素值組成,但從業(yè)者永遠(yuǎn)不會(huì)將原始像素輸入傳統(tǒng)模型。相反,典型的計(jì)算機(jī)視覺(jué)管道由人工設(shè)計(jì)的特征提取管道組成,例如 SIFT ( Lowe, 2004 )、SURF ( Bay et al. , 2006 )和視覺(jué)詞袋 ( Sivic and Zisserman, 2003 )。不是學(xué)習(xí)這些特征,而是精心制作這些特征. 大多數(shù)進(jìn)步一方面來(lái)自于對(duì)特征提取有更聰明的想法,另一方面來(lái)自于對(duì)幾何學(xué)的深刻洞察(Hartley和 Zisserman,2000 年) 。學(xué)習(xí)算法通常被認(rèn)為是事后才想到的。
盡管在 1990 年代出現(xiàn)了一些神經(jīng)網(wǎng)絡(luò)加速器,但它們的功能還不足以制作具有大量參數(shù)的深度多通道、多層 CNN。例如,NVIDIA 的 GeForce 256 從 1999 年開(kāi)始能夠每秒處理最多 4.8 億次操作 (MFLOP),而沒(méi)有任何有意義的編程框架用于游戲以外的操作。今天的加速器每臺(tái)設(shè)備能夠執(zhí)行超過(guò) 300 TFLOPs(NVIDIA 的 Ampere A100)。請(qǐng)注意,FLOP是浮點(diǎn)運(yùn)算,例如乘法和加法。此外,數(shù)據(jù)集仍然相對(duì)較小:OCR on 60,000 low-resolution28×28像素圖像被認(rèn)為是一項(xiàng)極具挑戰(zhàn)性的任務(wù)。除了這些障礙之外,訓(xùn)練神經(jīng)網(wǎng)絡(luò)的關(guān)鍵技巧包括參數(shù)初始化啟發(fā)式 (Glorot 和 Bengio,2010 年)、隨機(jī)梯度下降的巧妙變體(Kingma 和 Ba,2014 年)、非壓縮激活函數(shù) (Nair 和 Hinton,2010 年),和有效的正則化技術(shù) ( Srivastava et al. , 2014 )仍然缺失。
因此,與其訓(xùn)練端到端(像素到分類)系統(tǒng),經(jīng)典管道看起來(lái)更像這樣:
-
獲得一個(gè)有趣的數(shù)據(jù)集。在早期,這些數(shù)據(jù)集需要昂貴的傳感器。例如, 1994 年的Apple QuickTake 100擁有高達(dá) 0.3 兆像素 (VGA) 的分辨率,能夠存儲(chǔ)多達(dá) 8 張圖像,而所有這些的價(jià)格都是 1,000 美元。
-
根據(jù)光學(xué)、幾何學(xué)和其他分析工具的一些知識(shí),偶爾根據(jù)幸運(yùn)研究生的偶然發(fā)現(xiàn),使用手工制作的特征對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理。
-
通過(guò)一組標(biāo)準(zhǔn)的特征提取器輸入數(shù)據(jù),例如 SIFT(尺度不變特征變換)(Lowe,2004 年)、SURF(加速穩(wěn)健特征) (Bay等人,2006 年),或任何數(shù)量的其他手-調(diào)整管道。OpenCV 至今仍提供 SIFT 提取器!
-
將生成的表示轉(zhuǎn)儲(chǔ)到您最喜歡的分類器中,可能是線性模型或內(nèi)核方法,以訓(xùn)練分類器。
如果您與機(jī)器學(xué)習(xí)研究人員交談,他們認(rèn)為機(jī)器學(xué)習(xí)既重要又美麗。優(yōu)雅的理論證明了各種分類器的特性 (Boucheron等人,2005 年),凸優(yōu)化 (Boyd 和 Vandenberghe,2004 年)已成為獲得它們的中流砥柱。機(jī)器學(xué)習(xí)領(lǐng)域蓬勃發(fā)展、嚴(yán)謹(jǐn)且非常有用。但是,如果您與計(jì)算機(jī)視覺(jué)研究人員交談,您會(huì)聽(tīng)到截然不同的故事。他們會(huì)告訴你,圖像識(shí)別的骯臟真相是特征、幾何 (Hartley 和 Zisserman,2000 年,Hartley 和 Kahl,2009 年)和工程學(xué),而不是新穎的學(xué)習(xí)算法,推動(dòng)了進(jìn)步。計(jì)算機(jī)視覺(jué)研究人員有理由相信,與任何學(xué)習(xí)算法相比,稍微更大或更清潔的數(shù)據(jù)集或稍微改進(jìn)的特征提取管道對(duì)最終準(zhǔn)確性的影響要大得多。
import tensorflow as tf
from d2l import tensorflow as d2l
8.1.1. 表征學(xué)習(xí)
另一種表達(dá)事態(tài)的方法是管道中最重要的部分是表示。直到 2012 年,表示法主要是機(jī)械計(jì)算的。事實(shí)上,設(shè)計(jì)一組新的特征函數(shù)、改進(jìn)結(jié)果并編寫方法是一種突出的論文類型。SIFT (Lowe,2004)、SURF (Bay等人,2006)、HOG(定向梯度直方圖)(Dalal 和 Triggs,2005)、視覺(jué)詞袋 (Sivic 和 Zisserman,2003)和類似的特征提取器統(tǒng)治了棲息。
另一組研究人員,包括 Yann LeCun、Geoff Hinton、Yoshua Bengio、Andrew Ng、Shun-ichi Amari 和 Juergen Schmidhuber,有不同的計(jì)劃。他們認(rèn)為應(yīng)該學(xué)習(xí)特征本身。此外,他們認(rèn)為要合理復(fù)雜,特征應(yīng)該由多個(gè)聯(lián)合學(xué)習(xí)層分層組成,每個(gè)層都有可學(xué)習(xí)的參數(shù)。在圖像的情況下,最低層可能會(huì)檢測(cè)邊緣、顏色和紋理,類似于動(dòng)物的視覺(jué)系統(tǒng)如何處理其輸入。特別是,視覺(jué)特征的自動(dòng)設(shè)計(jì),例如通過(guò)稀疏編碼獲得的特征(Olshausen 和 Field,1996 年)在現(xiàn)代 CNN 出現(xiàn)之前仍然是一個(gè)開(kāi)放的挑戰(zhàn)。直到 Dean等人。( 2012 ), Le ( 2013 ),從圖像數(shù)據(jù)自動(dòng)生成特征的想法獲得了顯著的吸引力。
第一個(gè)現(xiàn)代 CNN (Krizhevsky等人,2012 年)以其發(fā)明者之一 Alex Krizhevsky 的名字命名為 AlexNet ,主要是對(duì) LeNet 的進(jìn)化改進(jìn)。它在 2012 年的 ImageNet 挑戰(zhàn)賽中取得了優(yōu)異的成績(jī)。
有趣的是,在網(wǎng)絡(luò)的最低??層,該模型學(xué)習(xí)了類似于一些傳統(tǒng)過(guò)濾器的特征提取器。 圖 8.1.1顯示了較低級(jí)別的圖像描述符。網(wǎng)絡(luò)中的更高層可能基于這些表示來(lái)表示更大的結(jié)構(gòu),如眼睛、鼻子、草葉等。甚至更高的層可能代表整個(gè)對(duì)象,如人、飛機(jī)、狗或飛盤。最終,最終的隱藏狀態(tài)學(xué)習(xí)圖像的緊湊表示,總結(jié)其內(nèi)容,這樣屬于不同類別的數(shù)據(jù)可以很容易地分開(kāi)。
AlexNet (2012) 及其前身 LeNet (1995) 共享許多架構(gòu)元素。這就引出了一個(gè)問(wèn)題:為什么花了這么長(zhǎng)時(shí)間?一個(gè)關(guān)鍵區(qū)別在于,在過(guò)去二十年中,可用的數(shù)據(jù)量和計(jì)算能力顯著增加。因此 AlexNet 更大:與 1995 年可用的 CPU 相比,它使用更多數(shù)據(jù)和更快的 GPU 進(jìn)行訓(xùn)練。
8.1.1.1。缺少的成分:數(shù)據(jù)
具有多層的深度模型需要大量數(shù)據(jù)才能進(jìn)入顯著優(yōu)于基于凸優(yōu)化的傳統(tǒng)方法(例如,線性和核方法)的狀態(tài)。然而,鑒于計(jì)算機(jī)的存儲(chǔ)容量有限、(成像)傳感器的相對(duì)費(fèi)用以及 1990 年代相對(duì)緊張的研究預(yù)算,大多數(shù)研究都依賴于微小的數(shù)據(jù)集。許多論文依賴于 UCI 的數(shù)據(jù)集集合,其中許多僅包含數(shù)百或(幾)數(shù)千張以低分辨率捕獲的圖像,并且通常具有人為清潔的背景。
2009 年,ImageNet 數(shù)據(jù)集發(fā)布 (Deng等人,2009 年),挑戰(zhàn)研究人員從 100 萬(wàn)個(gè)示例中學(xué)習(xí)模型,每個(gè)示例來(lái)自 1000 個(gè)不同類別的對(duì)象 1000 個(gè)。類別本身基于 WordNet 中最流行的名詞節(jié)點(diǎn)(Miller,1995)。ImageNet 團(tuán)隊(duì)使用 Google Image Search 為每個(gè)類別預(yù)過(guò)濾大型候選集,并使用 Amazon Mechanical Turk 眾包管道來(lái)確認(rèn)每個(gè)圖像是否屬于相關(guān)類別。這個(gè)規(guī)模是前所未有的,超過(guò)其他規(guī)模超過(guò)一個(gè)數(shù)量級(jí)(例如,CIFAR-100 有 60,000 張圖像)。另一個(gè)方面是圖像的分辨率相對(duì)較高224×224 像素,不同于 8000 萬(wàn)大小的 TinyImages 數(shù)據(jù)集 (Torralba等人,2008 年),包括 32×32像素縮略圖。這允許形成更高級(jí)別的特征。相關(guān)競(jìng)賽被稱為 ImageNet 大規(guī)模視覺(jué)識(shí)別挑戰(zhàn)賽 (Russakovsky等人,2015 年),推動(dòng)了計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)研究的發(fā)展,挑戰(zhàn)研究人員確定哪些模型在比學(xué)術(shù)界之前考慮的更大的規(guī)模上表現(xiàn)最好。最大的視覺(jué)數(shù)據(jù)集,如 LAION-5B (Schuhmann等人,2022 年)包含數(shù)十億張帶有附加元數(shù)據(jù)的圖像。
8.1.1.2。缺少的成分:硬件
深度學(xué)習(xí)模型是計(jì)算周期的貪婪消費(fèi)者。訓(xùn)練可能需要數(shù)百個(gè)時(shí)期,每次迭代都需要通過(guò)多層計(jì)算昂貴的線性代數(shù)運(yùn)算來(lái)傳遞數(shù)據(jù)。這是為什么在 1990 年代和 2000 年代初期,基于更有效優(yōu)化的凸目標(biāo)的簡(jiǎn)單算法受到青睞的主要原因之一。
圖形處理單元(GPU) 被證明是使深度學(xué)習(xí)可行的游戲規(guī)則改變者。這些芯片長(zhǎng)期以來(lái)一直被開(kāi)發(fā)用于加速圖形處理以造福于計(jì)算機(jī)游戲。特別是,它們針對(duì)高吞吐量進(jìn)行了優(yōu)化4×4 許多計(jì)算機(jī)圖形任務(wù)都需要矩陣向量積。幸運(yùn)的是,數(shù)學(xué)與計(jì)算卷積層所需的數(shù)學(xué)驚人地相似。大約在那個(gè)時(shí)候,NVIDIA 和 ATI 已經(jīng)開(kāi)始針對(duì)通用計(jì)算操作優(yōu)化 GPU (Fernando,2004 年),甚至將它們作為 通用 GPU (GPGPU) 推向市場(chǎng)。
為了提供一些直覺(jué),請(qǐng)考慮現(xiàn)代微處理器 (CPU) 的內(nèi)核。每個(gè)內(nèi)核都相當(dāng)強(qiáng)大,以高時(shí)鐘頻率運(yùn)行并運(yùn)行大型緩存(高達(dá)幾兆字節(jié)的 L3)。每個(gè)內(nèi)核都非常適合執(zhí)行各種指令,具有分支預(yù)測(cè)器、深度管道、專門的執(zhí)行單元、推測(cè)執(zhí)行和許多其他功能,使其能夠運(yùn)行具有復(fù)雜控制流的各種程序。
評(píng)論
查看更多