0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于CNN的應(yīng)用 卷積神經(jīng)網(wǎng)絡(luò)技術(shù)詳解

454398 ? 來(lái)源:CSDN ? 作者:weixin_33860737 ? 2020-11-29 11:09 ? 次閱讀

南洋理工大學(xué)的綜述論文《Recent Advances in Convolutional Neural Networks》對(duì)卷積神經(jīng)網(wǎng)絡(luò)的各個(gè)組件以及進(jìn)展情況進(jìn)行總結(jié)和解讀,其中涉及到 CNN 中各種重要層的數(shù)學(xué)原理以及各種激活函數(shù)和損失函數(shù)。機(jī)器之心技術(shù)分析師對(duì)該論文進(jìn)行了解讀。

引言

近段時(shí)間來(lái),深度 CNN 已經(jīng)在多個(gè)深度學(xué)習(xí)應(yīng)用領(lǐng)域取得了出色的表現(xiàn),并且也有很好的泛化的能力。圖像分類、目標(biāo)檢測(cè)、實(shí)例分割和場(chǎng)景理解等大量任務(wù)都使用 CNN 實(shí)現(xiàn)了當(dāng)前最佳。這篇論文總結(jié)了從最初到現(xiàn)在的 CNN 發(fā)展情況,并給出了以下指示:

解釋卷積層的數(shù)學(xué)原理

解釋池化層的數(shù)學(xué)原理

介紹某些常用的激活函數(shù)

介紹某些常用的損失函數(shù)

簡(jiǎn)要介紹基于 CNN 的應(yīng)用

卷積層的數(shù)學(xué)原理

從數(shù)學(xué)上看,第 l 層的第 k 個(gè)特征圖的位置 (i,j) 處的特征值可以寫成 z_{i,j,k}^l,可這樣計(jì)算:

其中 w_k^l 是第 l 層的權(quán)重,b_k^l 是第 l 層的偏置。x_{i,j}^l 是第 l 層的 (i,j) 位置的輸入圖塊。一個(gè)特征圖的權(quán)重是共享的。CNN 的最大優(yōu)勢(shì)之一就是這種權(quán)重共享機(jī)制,因?yàn)?a target="_blank">參數(shù)更少時(shí),它能顯著降低計(jì)算復(fù)雜度,同時(shí)還能讓訓(xùn)練和優(yōu)化更簡(jiǎn)單。

基于這類基本卷積層的一種最著名的應(yīng)用是用于 USPS 數(shù)字和 MNIST 識(shí)別的 LeNet-5,如下圖所示:

LeNet-5 由三類層構(gòu)成,即卷積層、池化層和全連接層。卷積層的目標(biāo)是學(xué)習(xí)更能代表輸入的特征,池化層則是為了降低空間維度,全連接層則是用于類別預(yù)測(cè)。具體而言,卷積層由多個(gè)卷積核構(gòu)成,這使其能夠得到多個(gè)特征圖,而且特征圖的每個(gè)神經(jīng)元都會(huì)連接到之前一層中的臨近神經(jīng)元區(qū)域,我們將這個(gè)區(qū)域稱為之前一層中神經(jīng)元的感受野(receptive field)。

如上圖所示,首先通過(guò)求輸入與一個(gè)學(xué)習(xí)后的卷積核的卷積,可以得到一個(gè)新的特征圖,然后在卷積得到的結(jié)果上逐元素應(yīng)用非線性激活。在當(dāng)時(shí),MNIST 或 USPS 數(shù)字的分類結(jié)果是很好的,即使現(xiàn)在也仍有很多研究者在使用它們來(lái)進(jìn)行簡(jiǎn)單實(shí)驗(yàn),以解釋說(shuō)明各種各樣的算法。一般而言,任何類型的卷積網(wǎng)絡(luò)都能在這些數(shù)據(jù)集上輕松實(shí)現(xiàn) 97%-98% 的準(zhǔn)確度。

近段時(shí)間來(lái),研究者還為卷積運(yùn)算提出了一些新型的架構(gòu)。其中最著名的一個(gè)是擴(kuò)張卷積(dilated convolution)。擴(kuò)張型 CNN 是 CNN 的一項(xiàng)近期進(jìn)展,為卷積層引入了某些額外的超參數(shù)。通過(guò)在過(guò)濾器之間插入零,可以增大網(wǎng)絡(luò)的感受野,使得網(wǎng)絡(luò)能夠覆蓋更多相關(guān)信息。從數(shù)學(xué)上看,使用擴(kuò)張方法的 1-D 擴(kuò)張卷積可將信號(hào) F 與大小為 r 的卷積核 k 進(jìn)行卷積:(F_{*l} k)_t = sum_t (k_t * F_{t?l * t}),其中 *l 表示 l-擴(kuò)張卷積。通過(guò)這種方式,該公式可以直接擴(kuò)展成 2-D 擴(kuò)張卷積。

上圖展示了三個(gè)擴(kuò)張卷積層,其中擴(kuò)張因子 l 隨每層而指數(shù)增大。中間特征圖 F2 是由底部特征圖 F1 通過(guò)應(yīng)用 1-擴(kuò)張卷積而得到的,其中 F2 中的每個(gè)元素都有一個(gè)大小為 3×3 的感受野。F3 是由 F2 通過(guò)應(yīng)用 2-擴(kuò)張卷積而得到的。特征圖 F4 是由 F3 通過(guò)應(yīng)用 4-擴(kuò)張卷積而得到的。見(jiàn)紅色輪廓。

池化層的數(shù)學(xué)原理

池化層是 CNN 中一個(gè)很重要的模塊,這類層最重要的目標(biāo)是降低特征圖的大小,具體方式是通過(guò)使用某個(gè)函數(shù)來(lái)融合子區(qū)域,比如取平均或最大/最小值。池化的工作方式是在輸入上滑動(dòng)一個(gè)窗口并將該窗口中的內(nèi)容送入池化函數(shù)。池化的工作方式非常類似于離散卷積,只是用某個(gè)其它函數(shù)替代了卷積核的線性組合。

描述沿某個(gè)方向 j 的池化層的性質(zhì)的數(shù)學(xué)公式:

i_j:沿方向 j 的輸入大小

k_j:沿方向 j 的池化窗口大小

s_j:沿方向 j 的步幅

所得到的沿方向 j 的輸出大小 o_j 可以這樣計(jì)算:o_j = (i_j - k_j) / s_j + 1,注意池化層通常不會(huì)使用零填充。

最大池化和平均池化可以歸納為 Lp 池化,可描述為:

其中 y_{i,j,k} 是池化算子在第 k 個(gè)特征圖的位置 (i,j) 處的輸出,a_{m,n,k} 是第 k 個(gè)特征圖中的池化區(qū)域 R_{ij} 中位置 (m,n) 處的特征值。特別要指出,當(dāng) p=1 時(shí),Lp 對(duì)應(yīng)于平均池化,當(dāng) p 趨近無(wú)窮是,Lp 會(huì)變成最大池化。

池化還有一些其它選擇,比如混合池化,其公式可寫成:

這可被視為最大池化和平均池化的混合版本,其中 λ 是一個(gè) 0 到 1 之間的隨機(jī)值,表明了使用平均池化和最大池化的位置。在實(shí)踐中,這有望降低過(guò)擬合問(wèn)題,且表現(xiàn)也會(huì)比單純的最大池化或平均池化好一點(diǎn)。

某些常用的激活函數(shù)

ReLU

上圖是 ReLU 函數(shù)。ReLU 激活函數(shù)定義如下:

其中 z_{i,j,k} 是第 k 通道中位置 (i,j) 處的激活函數(shù)的輸入。ReLU 是一個(gè)逐元素的函數(shù),會(huì)保留正的部分,并將負(fù)的部分變成零。相比于 sigmoid 或 tanh,ReLU 中的 max(.) 運(yùn)算能使其速度更快。ReLU 的缺點(diǎn)是其在 0 處的不連續(xù)性,這可能會(huì)導(dǎo)致在反向傳播中出現(xiàn)梯度消失問(wèn)題。

Leaky ReLU

為了避免梯度消失問(wèn)題,研究者提出了一種很重要的 ReLU 變體函數(shù):Leaky ReLU。其數(shù)學(xué)形式為:

其中 λ 的取值范圍是 (0,1)。Leaky ReLU 并不強(qiáng)制負(fù)的部分為零,相反它允許有一個(gè)較小的非零梯度。

PArametric ReLU

上圖是 PReLU 的圖示。PReLU 和 Leaky ReLU 的不同之處是參數(shù) λ。首先來(lái)看 PReLU 的公式:

其中 λ_k 是第 k 個(gè)通道所學(xué)習(xí)到的參數(shù)。這些 λ 不是預(yù)定義的,而是通過(guò)數(shù)據(jù)學(xué)習(xí)到的,而且可學(xué)習(xí)的參數(shù) λ_k 的數(shù)量正是網(wǎng)絡(luò)中通道的數(shù)量。因?yàn)橛糜谟?xùn)練的額外參數(shù)很少,所以無(wú)需擔(dān)心過(guò)擬合問(wèn)題。它可以在反向傳播過(guò)程中與其它參數(shù)一起同時(shí)優(yōu)化。另外也還有很多其它有用的非線性激活函數(shù),比如 ELU、Maxout 等。

某些常用的損失函數(shù)

hinge 損失

hinge 損失通常用于訓(xùn)練 SVM 及其變體。用于多類 SVM 的 hinge 損失定義如下:

其中 w 是可訓(xùn)練的權(quán)重;δ(y(i), j) 是指示函數(shù),如果 y(i) = j,則其輸出為 1,否則輸出為 0。N 是樣本數(shù)量,K 是類別數(shù)量。如果 p=1,則稱為 L1-hinge 損失;如果 p=2,則稱為 L2-hinge 損失。

softmax 損失

softmax 損失可以說(shuō)是分類目標(biāo)方面最流行的損失,其中 N 是圖像數(shù)量,K 是類別數(shù)量,p_j 是第 j 類的概率,y 是基本真值。1{.} 是一個(gè)指示函數(shù),如果 y_i == j,則輸出 1,否則輸出 0。

softmax 損失是一種泛化的 logistic 損失,能將預(yù)測(cè)結(jié)果轉(zhuǎn)換成范圍 (0,1) 之間的非負(fù)值并給出在各類別上的概率分布。

對(duì)比損失

對(duì)比損失常被用于訓(xùn)練用于圖像檢索或人臉驗(yàn)證的孿生網(wǎng)絡(luò)。其基本思想是增大不相似配對(duì)之間的距離,減小相似配對(duì)之間的距離。數(shù)學(xué)公式可寫成:

如果 y=1,則第二項(xiàng)為 0,總損失就來(lái)自第一項(xiàng),這就意味著目標(biāo)就成了降低相似配對(duì)之間的距離。如果 y=0,則第一項(xiàng)為 0,總損失就來(lái)自第二項(xiàng),這就意味著目標(biāo)就成了增大不相似配對(duì)之間的距離。注意,如果不相似配對(duì)之間的距離小于余量,則總損失會(huì)增大。

三重?fù)p失

三重?fù)p失是對(duì)對(duì)比損失的一種聰明的改進(jìn)。假設(shè)我們有三張圖像,這個(gè)三元組單元 (x_a, x_p, x_n) 包含一個(gè)錨圖像、正例和負(fù)例。

上述公式是三重?fù)p失,其中 N 是圖像數(shù)量,d_{a,p} 是錨圖像與其正例圖像之間的距離,d_{a,n} 是錨圖像與其負(fù)例圖像之間的距離,m 是余量。其目標(biāo)是增大 d_{a,n},使得 d_{a,p} 和 d_{a,n} 之差大于余量 m。三重?fù)p失的目標(biāo)是最小化錨圖像和正例之間的距離,以及最大化負(fù)例和錨圖像之間的距離。

常用的損失函數(shù)有很多,比如 histogram 損失、lda 損失、KL-散度損失等。就不一一介紹了。

CNN 的應(yīng)用

圖像分類

2012 年,Krizhevsky et al. [1] 提出了 LeNet-5 的一個(gè)擴(kuò)展版 AlexNet,在 ILSVRC 2012 取得了最佳表現(xiàn)。上圖即為其架構(gòu)。由于計(jì)算時(shí)間限制,他們使用了一種并行結(jié)構(gòu)來(lái)進(jìn)行訓(xùn)練。一個(gè) GPU 運(yùn)行圖中頂部的層部分,另一個(gè) GPU 運(yùn)行上圖底部的層。

目標(biāo)檢測(cè)

2014-2017 年,微軟和 Facebook 的研究者開發(fā)了多種基于 CNN 的目標(biāo)檢測(cè)方法,包括但不限于 R-CNN、SPP-Net、fast RCNN、faster RCNN 和 Mask RCNN。上圖是基本的 R-CNN [2]。在從原始圖像中提取出區(qū)域提議之后,它們會(huì)被調(diào)整為固定尺寸并會(huì)被發(fā)送給一個(gè)預(yù)訓(xùn)練的 CNN。然后輸出特征會(huì)得到優(yōu)化,以便邊界框回歸和分類。

圖像分割

圖像分類可以粗略地分為兩部分:形義分割和實(shí)例分割。其目標(biāo)是預(yù)測(cè)單張圖像中每個(gè)像素屬于哪一類。CNN 可用于從像素層面或圖塊層面預(yù)測(cè)類別可能性。Long et al. [3] 為像素級(jí)分割提出了一種全卷積網(wǎng)絡(luò),如上圖所示,該網(wǎng)絡(luò)類似于一般的網(wǎng)絡(luò),只是最后一層不同,這一層被稱為去卷積層。這一層的學(xué)習(xí)目標(biāo)是上采樣標(biāo)簽圖的分辨率。其結(jié)果可以是一張輸出圖像,其中包含了密集的像素級(jí)預(yù)測(cè)。

基于 CNN 的方法可用于很多不同的領(lǐng)域,比如圖像檢索、人臉識(shí)別、文本分類、機(jī)器翻譯、3D 重建、視覺(jué)問(wèn)答或圖像繪制等。這里不可能全面覆蓋。

分析師簡(jiǎn)評(píng)

盡管 CNN 表現(xiàn)出色而且泛化能力優(yōu)異,但仍還有些問(wèn)題仍待進(jìn)一步研究。CNN 的訓(xùn)練需要大規(guī)模數(shù)據(jù)集和大量計(jì)算能力,但人工收集數(shù)據(jù)的成本很高而且易出錯(cuò)。因此,研究者們也在探索能利用大量無(wú)標(biāo)注數(shù)據(jù)的弱監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí)。與此同時(shí),為了加速訓(xùn)練過(guò)程,也有必要開發(fā)高效且可擴(kuò)展的并行訓(xùn)練算法。最后且最重要的是如何解釋網(wǎng)絡(luò)以及理解網(wǎng)絡(luò)的內(nèi)在部分,因?yàn)槿藗內(nèi)绻恢?CNN 表現(xiàn)優(yōu)異的原因,人們不會(huì)愿意坐在基于 CNN 的自動(dòng)駕駛汽車中或接受基于 CNN 的醫(yī)療技術(shù)的治療。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TF之CNN:Tensorflow構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)CNN的嘻嘻哈哈事之詳細(xì)攻略

    TF之CNN:Tensorflow構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)CNN的嘻嘻哈哈事之詳細(xì)攻略
    發(fā)表于 12-19 17:03

    利用Keras實(shí)現(xiàn)四種卷積神經(jīng)網(wǎng)絡(luò)(CNN)可視化

    Keras實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)(CNN)可視化
    發(fā)表于 07-12 11:01

    卷積神經(jīng)網(wǎng)絡(luò)如何使用

    卷積神經(jīng)網(wǎng)絡(luò)(CNN)究竟是什么,鑒于神經(jīng)網(wǎng)絡(luò)在工程上經(jīng)歷了曲折的歷史,您為什么還會(huì)在意它呢? 對(duì)于這些非常中肯的問(wèn)題,我們似乎可以給出相對(duì)簡(jiǎn)明的答案。
    發(fā)表于 07-17 07:21

    卷積神經(jīng)網(wǎng)絡(luò)CNN介紹

    【深度學(xué)習(xí)】卷積神經(jīng)網(wǎng)絡(luò)CNN
    發(fā)表于 06-14 18:55

    卷積神經(jīng)網(wǎng)絡(luò)CNN圖解

    之前在網(wǎng)上搜索了好多好多關(guān)于CNN的文章,由于網(wǎng)絡(luò)上的文章很多斷章取義或者描述不清晰,看了很多youtobe上面的教學(xué)視頻還是沒(méi)有弄懂,最后經(jīng)過(guò)痛苦漫長(zhǎng)的煎熬之后對(duì)于神經(jīng)網(wǎng)絡(luò)卷積有了
    發(fā)表于 11-16 13:18 ?5.7w次閱讀
    <b class='flag-5'>卷積</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b><b class='flag-5'>CNN</b>圖解

    卷積神經(jīng)網(wǎng)絡(luò)CNN架構(gòu)分析-LeNet

    對(duì)于神經(jīng)網(wǎng)絡(luò)卷積有了粗淺的了解,關(guān)于CNN 卷積神經(jīng)網(wǎng)絡(luò),需要總結(jié)深入的知識(shí)有很多:人工神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 11-16 13:28 ?2769次閱讀
    <b class='flag-5'>卷積</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b><b class='flag-5'>CNN</b>架構(gòu)分析-LeNet

    卷積神經(jīng)網(wǎng)絡(luò)CNN架構(gòu)分析 - LeNet

    之前在網(wǎng)上搜索了好多好多關(guān)于CNN的文章,由于網(wǎng)絡(luò)上的文章很多斷章取義或者描述不清晰,看了很多youtobe上面的教學(xué)視頻還是沒(méi)有弄懂,最后經(jīng)過(guò)痛苦漫長(zhǎng)的煎熬之后對(duì)于神經(jīng)網(wǎng)絡(luò)卷積有了
    發(fā)表于 10-02 07:41 ?682次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)詳解 卷積神經(jīng)網(wǎng)絡(luò)包括哪幾層及各層功能

    卷積神經(jīng)網(wǎng)絡(luò)詳解 卷積神經(jīng)網(wǎng)絡(luò)包括哪幾層及各層功能 卷積神經(jīng)
    的頭像 發(fā)表于 08-21 16:41 ?6063次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)概述 卷積神經(jīng)網(wǎng)絡(luò)的特點(diǎn) cnn卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)

    卷積神經(jīng)網(wǎng)絡(luò)概述 卷積神經(jīng)網(wǎng)絡(luò)的特點(diǎn) cnn卷積神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 08-21 16:41 ?3096次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的介紹 什么是卷積神經(jīng)網(wǎng)絡(luò)算法

    卷積神經(jīng)網(wǎng)絡(luò)的介紹 什么是卷積神經(jīng)網(wǎng)絡(luò)算法 卷積神經(jīng)網(wǎng)絡(luò)涉及的關(guān)鍵
    的頭像 發(fā)表于 08-21 16:49 ?1921次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)模型 卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型 生成卷積神經(jīng)網(wǎng)絡(luò)模型

    cnn卷積神經(jīng)網(wǎng)絡(luò)模型 卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型 生成卷積神經(jīng)網(wǎng)
    的頭像 發(fā)表于 08-21 17:11 ?1273次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)原理 cnn卷積神經(jīng)網(wǎng)絡(luò)的特點(diǎn)是什么

    cnn卷積神經(jīng)網(wǎng)絡(luò)原理 cnn卷積神經(jīng)網(wǎng)絡(luò)的特點(diǎn)是什么?
    的頭像 發(fā)表于 08-21 17:15 ?1682次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)算法 cnn卷積神經(jīng)網(wǎng)絡(luò)模型

    cnn卷積神經(jīng)網(wǎng)絡(luò)算法 cnn卷積神經(jīng)網(wǎng)絡(luò)模型 卷積
    的頭像 發(fā)表于 08-21 17:15 ?2151次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)簡(jiǎn)介 cnn卷積神經(jīng)網(wǎng)絡(luò)代碼

    cnn卷積神經(jīng)網(wǎng)絡(luò)簡(jiǎn)介 cnn卷積神經(jīng)網(wǎng)絡(luò)代碼 卷積
    的頭像 發(fā)表于 08-21 17:16 ?2734次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)分類有哪些

    卷積神經(jīng)網(wǎng)絡(luò)CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像分類、目標(biāo)檢測(cè)、語(yǔ)義分割等領(lǐng)域。本文將詳細(xì)介紹CNN在分類任務(wù)中的應(yīng)用,包括基本結(jié)構(gòu)、關(guān)鍵
    的頭像 發(fā)表于 07-03 09:28 ?684次閱讀