日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【机器学习】 - CNN

發(fā)布時(shí)間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习】 - CNN 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么是卷積神經(jīng)網(wǎng)絡(luò),它為何重要?

卷積神經(jīng)網(wǎng)絡(luò)(也稱作?ConvNets?或?CNN)是神經(jīng)網(wǎng)絡(luò)的一種,它在圖像識(shí)別和分類等領(lǐng)域已被證明非常有效。 卷積神經(jīng)網(wǎng)絡(luò)除了為機(jī)器人和自動(dòng)駕駛汽車的視覺助力之外,還可以成功識(shí)別人臉,物體和交通標(biāo)志。

?

圖1

圖1所示,卷積神經(jīng)網(wǎng)絡(luò)能夠識(shí)別圖片的場景并且提供相關(guān)標(biāo)題(“足球運(yùn)動(dòng)員正在踢足球”),圖2則是利用卷積神經(jīng)網(wǎng)絡(luò)識(shí)別日常物品、人類和動(dòng)物的例子。最近,卷積神經(jīng)網(wǎng)絡(luò)在一些自然語言處理任務(wù)(如語句分類)中也發(fā)揮了很大作用。

圖2

因此,卷積神經(jīng)網(wǎng)絡(luò)是當(dāng)今大多數(shù)機(jī)器學(xué)習(xí)實(shí)踐者的重要工具。但是,理解卷積神經(jīng)網(wǎng)絡(luò)并開始嘗試運(yùn)用著實(shí)是一個(gè)痛苦的過程。本文的主要目的是了解卷積神經(jīng)網(wǎng)絡(luò)如何處理圖像。

對于剛接觸神經(jīng)網(wǎng)絡(luò)的人,我建議大家先閱讀這篇關(guān)于多層感知機(jī)的簡短教程?,了解其工作原理之后再繼續(xù)閱讀本文。多層感知機(jī)即本文中的“完全連接層”。

LeNet 框架(20世紀(jì)90年代)

LeNet 是最早推動(dòng)深度學(xué)習(xí)領(lǐng)域發(fā)展的卷積神經(jīng)網(wǎng)絡(luò)之一。這項(xiàng)由 Yann LeCun 完成的開創(chuàng)性工作自1988年以來多次成功迭代之后被命名為?LeNet5。當(dāng)時(shí) LeNet 框架主要用于字符識(shí)別任務(wù),例如閱讀郵政編碼,數(shù)字等。

接下來,我們將直觀地了解 LeNet 框架如何學(xué)習(xí)識(shí)別圖像。 近年來有人提出了幾種基于 LeNet 改進(jìn)的新框架,但是它們的基本思路與 LeNet 并無差別,如果您清楚地理解了 LeNet,那么對這些新的框架理解起來就相對容易很多。

圖3: 一個(gè)簡單的卷積神經(jīng)網(wǎng)絡(luò)

3中的卷積神經(jīng)網(wǎng)絡(luò)在結(jié)構(gòu)上與原始的 LeNet 類似,并將輸入圖像分為四類:狗,貓,船或鳥(原始的 LeNet 主要用于字符識(shí)別任務(wù))。 從上圖可以看出,接收船只圖像作為輸入時(shí),神經(jīng)網(wǎng)絡(luò)在四個(gè)類別中正確地給船只分配了最高概率值(0.94)。輸出層中所有概率的總和應(yīng)該是1(之后會(huì)做解釋)。

3?的卷積神經(jīng)網(wǎng)絡(luò)中有四個(gè)主要操作:

  • 卷積
  • 非線性變換(ReLU)
  • 池化或子采樣
  • 分類(完全連接層)
  • 這些操作是所有卷積神經(jīng)網(wǎng)絡(luò)的基本組成部分,因此了解它們的工作原理是理解卷積神經(jīng)網(wǎng)絡(luò)的重要步驟。下面我們將嘗試直觀地理解每個(gè)操作。

    一張圖片就是一個(gè)由像素值組成的矩陣

    實(shí)質(zhì)上,每張圖片都可以表示為由像素值組成的矩陣。

    ?

    圖4: 每張圖片就是一個(gè)像素矩陣

    通道(channel)是一個(gè)傳統(tǒng)術(shù)語,指圖像的一個(gè)特定成分。標(biāo)準(zhǔn)數(shù)碼相機(jī)拍攝的照片具有三個(gè)通道——紅,綠和藍(lán)——你可以將它們想象為三個(gè)堆疊在一起的二維矩陣(每種顏色一個(gè)),每個(gè)矩陣的像素值都在0到255之間。

    而灰度圖像只有一個(gè)通道。 鑒于本文的科普目的,我們只考慮灰度圖像,即一個(gè)代表圖像的二維矩陣。矩陣中每個(gè)像素值的范圍在0到255之間——0表示黑色,255表示白色。

    卷積

    卷積神經(jīng)網(wǎng)絡(luò)的名字來源于“卷積”運(yùn)算。在卷積神經(jīng)網(wǎng)絡(luò)中,卷積的主要目的是從輸入圖像中提取特征。通過使用輸入數(shù)據(jù)中的小方塊來學(xué)習(xí)圖像特征,卷積保留了像素間的空間關(guān)系。我們在這里不會(huì)介紹卷積的數(shù)學(xué)推導(dǎo),但會(huì)嘗試?yán)斫馑侨绾翁幚韴D像的。

    正如前文所說,每個(gè)圖像可以被看做像素值矩陣。考慮一個(gè)像素值僅為0和1的5 × 5大小的圖像(注意,對于灰度圖像,像素值范圍從0到255,下面的綠色矩陣是像素值僅為0和1的特殊情況):

    另外,考慮另一個(gè) 3×3 矩陣,如下圖所示:

    上述5 x 5圖像和3 x 3矩陣的卷積計(jì)算過程如5中的動(dòng)畫所示:

    圖5:卷積操作。輸出矩陣稱作“卷積特征”或“特征映射”

    我們來花點(diǎn)時(shí)間理解一下上述計(jì)算是如何完成的。將橙色矩陣在原始圖像(綠色)上以每次1個(gè)像素的速率(也稱為“步幅”)移動(dòng),對于每個(gè)位置,計(jì)算兩個(gè)矩陣相對元素的乘積并相加,輸出一個(gè)整數(shù)并作為最終輸出矩陣(粉色)的一個(gè)元素。注意,3 × 3矩陣每個(gè)步幅僅能“看到”輸入圖像的一部分。

    在卷積神經(jīng)網(wǎng)路的術(shù)語中,這個(gè)3 × 3矩陣被稱為“過濾器”或“核”或“特征探測器”,通過在圖像上移動(dòng)過濾器并計(jì)算點(diǎn)積得到的矩陣被稱為“卷積特征”或“激活映射”或“特征映射”。重要的是要注意,過濾器的作用就是原始輸入圖像的特征檢測器。

    從上面的動(dòng)畫可以明顯看出,對于同一張輸入圖像,不同的過濾器矩陣將會(huì)產(chǎn)生不同的特征映射。例如,考慮如下輸入圖像:

    在下表中,我們可以看到上圖在不同過濾器下卷積的效果。如圖所示,只需在卷積運(yùn)算前改變過濾器矩陣的數(shù)值就可以執(zhí)行邊緣檢測,銳化和模糊等不同操作 [8] —— 這意味著不同的過濾器可以檢測圖像的不同特征,例如邊緣, 曲線等。更多此類示例可在?這里?8.2.4節(jié)中找到。

    ?

    一個(gè)過濾器(紅色邊框)在輸入圖像上移動(dòng)(卷積操作)以生成特征映射。在同一張圖像上,另一個(gè)過濾器(綠色邊框)的卷積生成了不同的特征圖,如圖所示。需要注意到,卷積操作捕獲原始圖像中的局部依賴關(guān)系很重要。還要注意這兩個(gè)不同的過濾器如何從同一張?jiān)紙D像得到不同的特征圖。請記住,以上圖像和兩個(gè)過濾器只是數(shù)值矩陣。

    實(shí)際上,卷積神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中會(huì)自己學(xué)習(xí)這些過濾器的值(盡管在訓(xùn)練過程之前我們?nèi)孕枰付ㄖT如過濾器數(shù)目、大小,網(wǎng)絡(luò)框架等參數(shù))。我們擁有的過濾器數(shù)目越多,提取的圖像特征就越多,我們的網(wǎng)絡(luò)在識(shí)別新圖像時(shí)效果就會(huì)越好。

    特征映射(卷積特征)的大小由我們在執(zhí)行卷積步驟之前需要決定的三個(gè)參數(shù)[4]控制:

    • 深度:深度對應(yīng)于我們用于卷積運(yùn)算的過濾器數(shù)量。在7所示的網(wǎng)絡(luò)中,我們使用三個(gè)不同的過濾器對初始的船圖像進(jìn)行卷積,從而生成三個(gè)不同的特征圖。可以將這三個(gè)特征地圖視為堆疊的二維矩陣,因此,特征映射的“深度”為3。

    圖7

    • 步幅:步幅是我們在輸入矩陣上移動(dòng)一次過濾器矩陣的像素?cái)?shù)量。當(dāng)步幅為1時(shí),我們一次將過濾器移動(dòng)1個(gè)像素。當(dāng)步幅為2時(shí),過濾器每次移動(dòng)2個(gè)像素。步幅越大,生成的特征映射越小。
    • 零填充:有時(shí),將輸入矩陣邊界用零來填充會(huì)很方便,這樣我們可以將過濾器應(yīng)用于輸入圖像矩陣的邊界元素。零填充一個(gè)很好的特性是它允許我們控制特征映射的大小。添加零填充也稱為寬卷積,而不使用零填充是為窄卷積。 這在[14]中有清楚的解釋。

    非線性部分介紹(ReLU)

    如上文3所示,每次卷積之后,都進(jìn)行了另一項(xiàng)稱為 ReLU 的操作。ReLU 全稱為修正線性單元(Rectified Linear Units),是一種非線性操作。 其輸出如下圖所示:

    圖8: ReLU 函數(shù)

    ReLU 是一個(gè)針對元素的操作(應(yīng)用于每個(gè)像素),并將特征映射中的所有負(fù)像素值替換為零。ReLU 的目的是在卷積神經(jīng)網(wǎng)絡(luò)中引入非線性因素,因?yàn)樵趯?shí)際生活中我們想要用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的數(shù)據(jù)大多數(shù)都是非線性的(卷積是一個(gè)線性運(yùn)算 —— 按元素進(jìn)行矩陣乘法和加法,所以我們希望通過引入 ReLU 這樣的非線性函數(shù)來解決非線性問題)。

    9可以很清楚地理解 ReLU 操作。它展示了將 ReLU 作用于6中某個(gè)特征映射得到的結(jié)果。這里的輸出特征映射也被稱為“修正”特征映射。

    圖9: ReLU 操作

    其他非線性函數(shù)諸如?tanh?或?sigmoid?也可以用來代替 ReLU,但是在大多數(shù)情況下,ReLU 的表現(xiàn)更好。

    池化

    空間池化(也稱為子采樣或下采樣)可降低每個(gè)特征映射的維度,并保留最重要的信息。空間池化有幾種不同的方式:最大值,平均值,求和等。

    在最大池化的情況下,我們定義一個(gè)空間鄰域(例如,一個(gè)2 × 2窗口),并取修正特征映射在該窗口內(nèi)最大的元素。當(dāng)然我們也可以取該窗口內(nèi)所有元素的平均值(平均池化)或所有元素的總和。在實(shí)際運(yùn)用中,最大池化的表現(xiàn)更好。

    10展示了通過2 × 2窗口在修正特征映射(卷積+ ReLU 操作后得到)上應(yīng)用最大池化操作的示例。

    圖10: 最大池化

    我們將2 x 2窗口移動(dòng)2個(gè)單元格(也稱為“步幅”),并取每個(gè)區(qū)域中的最大值。如10所示,這樣就降低了特征映射的維度。

    11所示的網(wǎng)絡(luò)中,池化操作分別應(yīng)用于每個(gè)特征映射(因此,我們從三個(gè)輸入映射中得到了三個(gè)輸出映射)。

    圖11: 在修正特征映射上應(yīng)用池化

    12展示了我們對9中經(jīng)過 ReLU 操作之后得到的修正特征映射應(yīng)用池化之后的效果。

    圖12: 池化

    池化的作用是逐步減少輸入的空間大小[4]。具體來說有以下四點(diǎn):

    • 使輸入(特征維度)更小,更易于管理
    • 減少網(wǎng)絡(luò)中的參數(shù)和運(yùn)算次數(shù),因此可以控制過擬合?[4]
    • 使網(wǎng)絡(luò)對輸入圖像微小的變換、失真和平移更加穩(wěn)健(輸入圖片小幅度的失真不會(huì)改池化的輸出結(jié)果 —— 因?yàn)槲覀內(nèi)×肃徲虻淖畲笾?平均值)。
    • 可以得到尺度幾乎不變的圖像(確切的術(shù)語是“等變”)。這是非常有用的,這樣無論圖片中的物體位于何處,我們都可以檢測到,(詳情參閱[18]和[19])。

    至此…

    圖13

    目前為止,我們已經(jīng)了解了卷積,ReLU 和池化的工作原理。這些是卷積神經(jīng)網(wǎng)絡(luò)的基本組成部分,理解這一點(diǎn)很重要。如13所示,我們有兩個(gè)由卷積,ReLU 和 Pooling 組成的中間層 —— 第二個(gè)卷積層使用六個(gè)過濾器對第一層的輸出執(zhí)行卷積,生成六個(gè)特征映射。然后將 ReLU 分別應(yīng)用于這六個(gè)特征映射。接著,我們對六個(gè)修正特征映射分別執(zhí)行最大池化操作。

    這兩個(gè)中間層的作用都是從圖像中提取有用的特征,在網(wǎng)絡(luò)中引入非線性因素,同時(shí)對特征降維并使其在尺度和平移上等變[18]。

    第二個(gè)池化層的輸出即完全連接層的輸入,我們將在下一節(jié)討論。

    完全連接層

    完全連接層是一個(gè)傳統(tǒng)的多層感知器,它在輸出層使用 softmax 激活函數(shù)(也可以使用其他分類器,比如 SVM,但在本文只用到了 softmax)。“完全連接”這個(gè)術(shù)語意味著前一層中的每個(gè)神經(jīng)元都連接到下一層的每個(gè)神經(jīng)元。 如果對多層感知器不甚了解,我建議您閱讀這篇文章。

    卷積層和池化層的輸出代表了輸入圖像的高級特征。完全連接層的目的是利用這些基于訓(xùn)練數(shù)據(jù)集得到的特征,將輸入圖像分為不同的類。例如,我們要執(zhí)行的圖像分類任務(wù)有四個(gè)可能的輸出,如14所示(請注意,圖14沒有展示出完全連接層中節(jié)點(diǎn)之間的連接)

    圖14: 完全連接層——每個(gè)節(jié)點(diǎn)都與相鄰層的其他節(jié)點(diǎn)連接

    除分類之外,添加完全連接層也是一個(gè)(通常來說)比較簡單的學(xué)習(xí)這些特征非線性組合的方式。卷積層和池化層得到的大部分特征對分類的效果可能也不錯(cuò),但這些特征的組合可能會(huì)更好[11]。

    完全連接層的輸出概率之和為1。這是因?yàn)槲覀冊谕耆B接層的輸出層使用了 softmax 激活函數(shù)。Softmax 函數(shù)取任意實(shí)數(shù)向量作為輸入,并將其壓縮到數(shù)值在0到1之間,總和為1的向量。

    正式開始——使用反向傳播進(jìn)行訓(xùn)練

    如上所述,卷積+池化層用來從輸入圖像提取特征,完全連接層用來做分類器。

    注意,在15中,由于輸入圖像是船,對于船類目標(biāo)概率為1,其他三個(gè)類為0

    • 輸入圖像 = 船
    • 目標(biāo)向量 = [0, 0, 1, 0]

    圖15:訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)

    卷積網(wǎng)絡(luò)的整體訓(xùn)練過程概括如下:

    • 步驟1:用隨機(jī)值初始化所有過濾器和參數(shù)/權(quán)重
    • 步驟2:神經(jīng)網(wǎng)絡(luò)將訓(xùn)練圖像作為輸入,經(jīng)過前向傳播步驟(卷積,ReLU 和池化操作以在完全連接層中的前向傳播),得到每個(gè)類的輸出概率。
    • 假設(shè)上面船只圖像的輸出概率是 [0.2,0.4,0.1,0.3]
    • 由于權(quán)重是隨機(jī)分配給第一個(gè)訓(xùn)練樣本,因此輸出概率也是隨機(jī)的。
    • 步驟3:計(jì)算輸出層的總誤差(對所有4個(gè)類進(jìn)行求和)
    • 總誤差=∑ ?(目標(biāo)概率 – 輸出概率)2
    • 步驟4:使用反向傳播計(jì)算網(wǎng)絡(luò)中所有權(quán)重的誤差梯度,并使用梯度下降更新所有過濾器值/權(quán)重和參數(shù)值,以最小化輸出誤差。
    • 根據(jù)權(quán)重對總誤差的貢獻(xiàn)對其進(jìn)行調(diào)整。
    • 當(dāng)再次輸入相同的圖像時(shí),輸出概率可能就變成了 [0.1,0.1,0.7,0.1],這更接近目標(biāo)向量 [0,0,1,0]。
    • 這意味著網(wǎng)絡(luò)已經(jīng)學(xué)會(huì)了如何通過調(diào)整其權(quán)重/過濾器并減少輸出誤差的方式對特定圖像進(jìn)行正確分類。
    • 過濾器數(shù)量、大小,網(wǎng)絡(luò)結(jié)構(gòu)等參數(shù)在步驟1之前都已經(jīng)固定,并且在訓(xùn)練過程中不會(huì)改變 —— 只會(huì)更新濾器矩陣和連接權(quán)值。
    • 步驟5:對訓(xùn)練集中的所有圖像重復(fù)步驟2-4。

    ?

    通過以上步驟就可以訓(xùn)練出卷積神經(jīng)網(wǎng)絡(luò) —— 這實(shí)際上意味著卷積神經(jīng)網(wǎng)絡(luò)中的所有權(quán)重和參數(shù)都已經(jīng)過優(yōu)化,可以對訓(xùn)練集中的圖像進(jìn)行正確分類。

    當(dāng)我們給卷積神經(jīng)網(wǎng)絡(luò)中輸入一個(gè)新的(未見過的)圖像時(shí),網(wǎng)絡(luò)會(huì)執(zhí)行前向傳播步驟并輸出每個(gè)類的概率(對于新圖像,計(jì)算輸出概率所用的權(quán)重是之前優(yōu)化過,并能夠?qū)τ?xùn)練集完全正確分類的)。如果我們的訓(xùn)練集足夠大,神經(jīng)網(wǎng)絡(luò)會(huì)有很好的泛化能力(但愿如此)并將新圖片分到正確的類里。

    注1為了給大家提供一個(gè)直觀的訓(xùn)練過程,上述步驟已經(jīng)簡化了很多,并且忽略了數(shù)學(xué)推導(dǎo)過程。如果想要數(shù)學(xué)推導(dǎo)以及對卷積神經(jīng)網(wǎng)絡(luò)透徹的理解,請參閱 [4] 和 [12]。

    2上面的例子中,我們使用了兩組交替的卷積和池化層。但請注意,這些操作可以在一個(gè)卷積神經(jīng)網(wǎng)絡(luò)中重復(fù)執(zhí)行多次。實(shí)際上,現(xiàn)在效果最好的一些卷積神經(jīng)網(wǎng)絡(luò)都包含幾十個(gè)卷積和池化層! 另外,每個(gè)卷積層之后的池化層不是必需的。從下面的16中可以看出,在進(jìn)行池化操作之前,我們可以連續(xù)進(jìn)行多個(gè)卷積 + ReLU 操作。另外請注意圖16卷積神經(jīng)網(wǎng)絡(luò)的每一層是如何展示的。

    圖16

    卷積神經(jīng)網(wǎng)絡(luò)的可視化

    一般來說,卷積步驟越多,神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)識(shí)別的特征就更復(fù)雜。例如,在圖像分類中,卷積神經(jīng)網(wǎng)絡(luò)在第一層可能會(huì)學(xué)習(xí)檢測原始像素的邊緣,然后在第二層利用這些邊緣檢測簡單形狀,然后在更高級的層用這些形狀來檢測高級特征,例如面部形狀 [14]。17演示了這個(gè)過程 —— 這些特征是使用卷積深度信念網(wǎng)絡(luò)學(xué)習(xí)的,這張圖片只是為了演示思路(這只是一個(gè)例子:實(shí)際上卷積過濾器識(shí)別出來的對象可能對人來說并沒有什么意義)。

    圖17: 卷積深度信念網(wǎng)絡(luò)學(xué)習(xí)特征

    Adam Harley 創(chuàng)建了一個(gè)基于 MNIST 手寫數(shù)字?jǐn)?shù)據(jù)集 [13]訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)的可視化。我強(qiáng)烈推薦大家?使用它來了解卷積神經(jīng)網(wǎng)絡(luò)的工作細(xì)節(jié)。

    我們在下圖中可以看到神經(jīng)網(wǎng)絡(luò)對于輸入數(shù)字“8”的具體操作細(xì)節(jié)。請注意,18中并未單獨(dú)顯示ReLU操作。

    圖18:基于手寫數(shù)字訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)的可視化

    輸入圖像包含 1024 個(gè)像素點(diǎn)(32 × 32 圖像),第一個(gè)卷積層(卷積層1)由六個(gè)不同的5 × 5(步幅為1)過濾器與輸入圖像卷積而成。如圖所示,使用六個(gè)不同的過濾器得到深度為六的特征映射。

    卷積層1之后是池化層1,它在卷積層1中的六個(gè)特征映射上分別進(jìn)行2 × 2最大池化(步幅為2)。將鼠標(biāo)指針移動(dòng)到池化層的任意像素上,可以觀察到它來自于2 x 2網(wǎng)格在前一個(gè)卷積層中的作用(如19所示)。注意到2 x 2網(wǎng)格中具有最大值(最亮的那個(gè))的像素點(diǎn)會(huì)被映射到池化層。

    圖19:池化操作可視化

    池化層1之后是十六個(gè)執(zhí)行卷積操作的5 × 5(步幅為1)卷積過濾器。然后是執(zhí)行2 × 2最大池化(步幅為2)的池化層2。 這兩層的作用與上述相同。

    然后有三個(gè)完全連接(FC)層:

    • 第一個(gè)FC層中有120個(gè)神經(jīng)元
    • 第二個(gè)FC層中有100個(gè)神經(jīng)元
    • 第三個(gè)FC層中的10個(gè)神經(jīng)元對應(yīng)于10個(gè)數(shù)字 —— 也稱為輸出層

    注意,在20中,輸出層的10個(gè)節(jié)點(diǎn)每一個(gè)都連接到第二個(gè)完全連接層中的全部100個(gè)節(jié)點(diǎn)(因此稱為完全連接)。

    另外,注意為什么輸出層中唯一明亮的節(jié)點(diǎn)是’8’ —— 這意味著神經(jīng)網(wǎng)絡(luò)對我們的手寫數(shù)字進(jìn)行了正確分類(節(jié)點(diǎn)亮度越高表示它的輸出更高,即8在所有數(shù)字中具有最高的概率)。

    圖20:完全連接層可視化

    該可視化系統(tǒng)的 3D 版本在此。

    其他卷積神經(jīng)網(wǎng)絡(luò)框架

    卷積神經(jīng)網(wǎng)絡(luò)始于20世紀(jì)90年代初。我們已經(jīng)討論了LeNet,它是最早的卷積神經(jīng)網(wǎng)絡(luò)之一。下面列出了其他一些有影響力的神經(jīng)網(wǎng)絡(luò)框架 [3] [4]。

    • LeNet (20世紀(jì)90年代)本文已詳述。
    • 20世紀(jì)90年代到2012年:從20世紀(jì)90年代后期到2010年初,卷積神經(jīng)網(wǎng)絡(luò)正處于孵化期。隨著越來越多的數(shù)據(jù)和計(jì)算能力的提升,卷積神經(jīng)網(wǎng)絡(luò)可以解決的任務(wù)變得越來越有趣。
    • AlexNet(2012?– 2012年,Alex Krizhevsky(和其他人)發(fā)布了?AlexNet,它是提升了深度和廣度版本的 LeNet,并在2012年以巨大優(yōu)勢贏得了 ImageNet 大規(guī)模視覺識(shí)別挑戰(zhàn)賽(ILSVRC)。這是基于之前方法的重大突破,目前 CNN 的廣泛應(yīng)用都要?dú)w功于 AlexNet。
    • ZF Net(2013?– 2013年 ILSVRC 獲獎(jiǎng)?wù)邅碜?Matthew Zeiler 和 Rob Fergus 的卷積網(wǎng)絡(luò)。它被稱為?ZFNet(Zeiler 和 Fergus Net 的簡稱)。它在 AlexNet 的基礎(chǔ)上通過調(diào)整網(wǎng)絡(luò)框架超參數(shù)對其進(jìn)行了改進(jìn)。
    • GoogLeNet2014?– 2014年 ILSVRC 獲獎(jiǎng)?wù)呤?Google 的?Szegedy 等人的卷積網(wǎng)絡(luò)。其主要貢獻(xiàn)是開發(fā)了一個(gè)初始模塊,該模塊大大減少了網(wǎng)絡(luò)中的參數(shù)數(shù)量(4M,而 AlexNet 有60M)。
    • VGGNet2014?– 2014年 ILSVRC 亞軍是名為?VGGNet?的網(wǎng)絡(luò)。其主要貢獻(xiàn)在于證明了網(wǎng)絡(luò)深度(層數(shù))是影響性能的關(guān)鍵因素。
    • ResNets2015?– 何凱明(和其他人)開發(fā)的殘差網(wǎng)絡(luò)是2015年 ILSVRC 的冠軍。ResNets 是迄今為止最先進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)模型,并且是大家在實(shí)踐中使用卷積神經(jīng)網(wǎng)絡(luò)的默認(rèn)選擇(截至2016年5月)。
    • DenseNet20168月)?– 最近由黃高等人發(fā)表,密集連接卷積網(wǎng)絡(luò)的每一層都以前饋方式直接連接到其他層。 DenseNet 已經(jīng)在五項(xiàng)競爭激烈的對象識(shí)別基準(zhǔn)測試任務(wù)中證明自己比之前最先進(jìn)的框架有了顯著的改進(jìn)。具體實(shí)現(xiàn)請參考這個(gè)網(wǎng)址。

    結(jié)論

    本文中,我嘗試著用一些簡單的術(shù)語解釋卷積神經(jīng)網(wǎng)絡(luò)背后的主要概念,同時(shí)簡化/略過了幾個(gè)細(xì)節(jié)部分,但我希望這篇文章能夠讓你直觀地理解其工作原理。

    本文最初是受 Denny Britz 《理解卷積神經(jīng)網(wǎng)絡(luò)在自然語言處理上的運(yùn)用》這篇文章的啟發(fā)(推薦閱讀),文中的許多解釋是基于這篇文章的。為了更深入地理解其中一些概念,我鼓勵(lì)您閱讀斯坦福大學(xué)卷積神經(jīng)網(wǎng)絡(luò)課程的筆記以及一下參考資料中提到的其他很棒的資源。如果您對上述概念的理解遇到任何問題/建議,請隨時(shí)在下面留言。

    文中所使用的所有圖像和動(dòng)畫均屬于其各自的作者,陳列如下。

    參考

  • karpathy/neuraltalk2: Efficient Image Captioning code in Torch,?Examples
  • Shaoqing Ren, et al, “Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks”, 2015,?arXiv:1506.01497
  • Neural Network Architectures, Eugenio Culurciello’s blog
  • CS231n Convolutional Neural Networks for Visual Recognition, Stanford
  • Clarifai/Technology
  • Machine Learning is Fun! Part 3: Deep Learning and Convolutional Neural Networks
  • Feature extraction using convolution, Stanford
  • Wikipedia article on Kernel (image processing)
  • Deep Learning Methods for Vision, CVPR 2012 Tutorial
  • Neural Networks by Rob Fergus, Machine Learning Summer School 2015
  • What do the fully connected layers do in CNNs?
  • Convolutional Neural Networks, Andrew Gibiansky
  • W. Harley, “An Interactive Node-Link Visualization of Convolutional Neural Networks,” in ISVC, pages 867-877, 2015 (link).?Demo
  • Understanding Convolutional Neural Networks for NLP
  • Backpropagation in Convolutional Neural Networks
  • A Beginner’s Guide To Understanding Convolutional Neural Networks
  • Vincent Dumoulin, et al, “A guide to convolution arithmetic for deep learning”, 2015,?arXiv:1603.07285
  • What is the difference between deep learning and usual machine learning?
  • How is a convolutional neural network able to learn invariant features?
  • A Taxonomy of Deep Convolutional Neural Nets for Computer Vision
  • Honglak Lee, et al, “Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations” (link)
  • ?
  • 圖13,第二次做卷積的時(shí)候,是對第一次的結(jié)果應(yīng)用6個(gè)過濾器嗎?那第二次卷積之后是不是應(yīng)該有3*6 = 18個(gè)特征映射啊?

    在原文博客評論區(qū)找到了上面問題的解答,第二次做卷積的時(shí)候,對每個(gè)過濾器,把第一次的3個(gè)映射做某種處理結(jié)合成1個(gè),然后對這1個(gè)進(jìn)行卷積。 詳細(xì)可見 論文?http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf?中table1及周圍的說明

    以上內(nèi)容參考自:https://www.cnblogs.com/kex1n/p/9083024.html


    總結(jié)

    以上是生活随笔為你收集整理的【机器学习】 - CNN的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。