卷積神經網絡相關知識

概念源自:https://en.wikipedia.org/wiki/Convolutional_neural_network

在機器學習中,卷積神經網絡(CNN或ConvNet)是一類深度前饋人工神經網絡,已成功應用於分析視覺圖像。
CNN使用多層感知器的變體設計爲需要最少的預處理[1]。它們也被稱爲移位不變或空間不變式人工神經網絡(SIANN),基於它們的共享權重結構和平移不變性特徵[2] [3]。
卷積網絡受到生物過程的啓發[4],因爲神經元之間的連接模式類似於動物視覺皮層的組織。個體皮層神經元只在被稱爲感受野的視野受限區域對刺激作出反應。不同神經元的感受野部分重疊,覆蓋整個視野。
與其他圖像分類算法相比,CNN使用相對較少的預處理。這意味着網絡學習傳統算法中的過濾器是手工設計的。這種獨立於先前知識和人力設計的特點是一大優勢。
他們在圖像和視頻識別,推薦系統[5]和自然語言處理[6]中有應用。
1.設計
CNN由一個輸入層、一個輸出層以及多個隱藏層組成。 CNN的隱藏層通常由卷積層,池化層,完全連接層和規範化層組成[需要的引證]。

慣例是將過程描述爲神經網絡中的卷積。在數學上它是一種互相關而不是卷積。這隻對矩陣中的索引有意義,因此哪些權重被放置在哪個索引處。

1.1卷積

卷積層對輸入應用卷積運算,將結果傳遞到下一層。卷積模擬個體神經元對視覺刺激的反應[7]。每個卷積神經元僅處理其接受場的數據。
儘管完全連接的前饋神經網絡可用於學習特徵以及對數據進行分類,但將此體系結構應用於圖像是不切實際的。由於與圖像相關的非常大的輸入大小,每個像素都是相關變量,所以即使在淺(與深度相對)架構中,也需要非常多的神經元。例如,尺寸爲100 x 100的(小)圖像的完全連接層對於第二層中的每個神經元具有10000個權重。卷積操作爲這個問題提供了一個解決方案,因爲它減少了可用參數的數量,從而使網絡更深入,參數更少。例如,無論圖像大小如何,大小爲5 x 5的平鋪區域(每個平鋪區域都具有相同的共享權重)僅需要25個可學習參數。通過這種方式,可以解決傳統多層神經網絡訓練中消失或爆炸梯度問題,採用反向傳播[引文需要]。
1.2池化
卷積網絡可能包括局部或全局合併層[澄清需要],它將一層神經元簇的輸出合併爲下一層中的單個神經元[9] [10]。例如,最大池使用前一層神經元簇中每個簇的最大值[11]。另一個例子是平均彙集,它使用來自先前層神經元集羣中每個神經元的平均值[需要的引證]。
1.3全連接
全連接層將一層中的每個神經元連接到另一層中的每個神經元。它原則上與傳統的多層感知器神經網絡(MLP)相同。
1.4權重
CNN在卷積圖層中共享權重,這意味着圖層中的每個接受區域[需要澄清]使用相同的卷積核(權重庫[需要澄清]);這減少了內存佔用並提高了性能。[如何?] [1]
2.歷史
CNN設計遵循生物體中的視覺處理[需要的引證]。
2.1可接受視野
Hubel和Wiesel在二十世紀五十年代和六十年代的研究表明,貓和猴視覺皮層包含對視野的小區域單獨作出反應的神經元。如果眼睛不動,視覺刺激影響單個神經元發射的視覺空間區域被稱爲感受野[引用需要]。相鄰細胞具有相似和重疊的感受野[需要引用]。感受野的大小和位置在整個皮質內系統地變化以形成完整的視覺空間圖[需要的引證]。每個半球的皮層代表對側視野[需要的引證]。
他們的1968年的論文[12]發現了大腦中兩種基本的視覺細胞類型:

  • 簡單細胞,其輸出通過具有特定方向的直邊在其接受場內最大化
  • 複雜細胞具有較大的感受野,其輸出對野外邊緣的確切位置不敏感。
2.2神經認知機
Neocognitron [13]於1980年推出。[11] [14]新識別器不要求位於多個網絡位置的單元具有相同的可訓練權重。這個想法出現在1986年原始反向傳播論文的書籍版本中[15]:圖14在1988年爲了時間信號而開發了新識別器[需要澄清] [16]他們的設計在1998年有所改進,[17]在2003年推廣[18]並在同一年簡化。[19]
LeNet -5
LeNet-5是LeCun等人開創的7級卷積網絡。在1998年,[17]對數字進行分類,被多家銀行採用,以識別在32x32像素圖像中數字化的支票(支票)上的手寫數字。處理更高分辨率圖像的能力需要更大和更多的卷積層,因此這種技術受到計算資源可用性的限制。

Shift-invariant神經網絡

同樣,1988年提出了一種移位不變的神經網絡用於圖像字符識別。[2] [3]該體系結構和訓練算法在1991年進行了修改[20],並應用於醫學圖像處理[21]和自動檢測乳房X線照片中的乳腺癌[22]。

1988年提出了一種不同的基於卷積的設計[23],用於通過解卷積分解一維肌電信號的卷積信號。 1989年該設計被修改爲其他基於去卷積的設計。[24] [25]
2.3神經抽象金字塔
卷積神經網絡的前饋結構在神經抽象金字塔[26]中通過橫向和反饋連接進行了擴展。由此產生的遞歸卷積網絡允許靈活地結合上下文信息來迭代地解決局部模糊。與以前的型號不同,可以生成最高分辨率的圖像輸出。

2.4GPU實現

繼2005年的論文確定了機器學習GPGPU的價值之後,[27]幾篇出版物描述了使用GPU訓練卷積神經網絡的更有效方法[28] [29] [30] [31] 2011年,他們在GPU上進行了改進和實施,結果令人印象深刻。[9] 2012年,Ciresan等人。 (包括MNIST數據庫,NORB數據庫,HWDB1.0數據集(中文字符),CIFAR10數據集(60000 32x32標記的RGB圖像的數據集),[11]和ImageNet數據集。[32]

3.區分特徵
雖然傳統的多層感知器(MLP)模型成功地用於圖像識別[需要示例],但由於節點之間的完全連通性,它們遭受維度詛咒,因此不能很好地適應更高分辨率的圖像。
例如,在CIFAR-10中,圖像只有大小爲32x32x3(32寬,32高,3色通道),因此常規神經網絡的第一個隱藏層中的單個完全連接的神經元將具有32 * 32 * 3 = 3,072個重量。然而,200x200的圖像會導致200 * 200 * 3 = 120,000重量的神經元。
此外,這樣的網絡架構沒有考慮數據的空間結構,將輸入像素與像素靠近在一起的方式相差很遠。因此,神經元的完全連通性對於諸如圖像識別之類的目的而言是浪費的,圖像識別由空間局部輸入模式支配。
卷積神經網絡是多層感知器的生物啓發變體,旨在模擬視覺皮層的行爲[引文需要]。這些模型通過利用自然圖像中強大的空間局部相關性來緩解MLP架構帶來的挑戰。與MLP相反,CNN具有以下顯着特點:

  • 3D卷的神經元。 CNN的層有三維排列的神經元:寬度,高度和深度。圖層內的神經元只連接到圖層之前的一個小區域,稱爲接受區域。不同類型的層,本地和完全連接,堆疊形成一個CNN架構。
  • 本地連接:遵循感受域的概念,CNN通過強化相鄰層的神經元之間的局部連接模式來利用空間局部性。因此,該架構確保學習的“濾波器”對空間局部輸入模式產生最強的響應。堆疊許多這樣的層導致非線性濾波器變得越來越全球化(即,響應於更大的像素空間區域),使得網絡首先創建輸入的小部分的表示,然後從它們組合更大區域的表示。
  • 共享權重:在CNN中,每個過濾器都在整個視野中複製。這些複製單元共享相同的參數(權重向量和偏差)並形成特徵映射。這意味着給定卷積層中的所有神經元對其特定響應域內的相同特徵作出響應。以這種方式複製單元允許檢測特徵,而不管它們在視場中的位置如何,從而構成平移不變性。

這些特性共同使CNN能夠更好地推廣視覺問題。權重共享極大地減少了所學習的自由參數數量,從而降低了運行網絡的內存要求,並允許訓練更大,更強大的網絡。

4.積木
這部分需要額外的引文進行驗證。請通過向可靠來源添加引文來幫助改進本文。無法查證的內容可能被提出異議而移除。 (2017年6月)(瞭解如何以及何時刪除此模板消息)
CNN體系結構由一疊不同的層組成,這些層通過可微函數將輸入量轉換爲輸出量(例如保存班級分數)。通常使用幾種不同類型的層。我們在下面進一步討論:
4.1卷積層
卷積層是CNN的核心構件。該圖層的參數由一組可學習的過濾器(或內核)組成,這些過濾器具有較小的接受區域,但會延伸到輸入區域的整個深度。在正向傳遞過程中,每個過濾器在輸入體積的寬度和高度上進行卷積,計算過濾器條目和輸入之間的點積,並生成該過濾器的二維激活圖。因此,網絡會在輸入中的某個空間位置檢測到某種特定類型的特徵時,學習激活的過濾器。
沿着深度維度堆疊所有濾波器的激活圖形成卷積層的全部輸出體積。因此,輸出體積中的每個條目也可以被解釋爲神經元的輸出,該輸出查看輸入中的小區域並與同一激活圖中的神經元共享參數。
本地連接
在處理諸如圖像等高維輸入時,將神經元連接到前一卷中的所有神經元是不切實際的,因爲這樣的網絡架構不考慮數據的空間結構。卷積網絡通過在相鄰層的神經元之間實施本地連接模式來利用空間局部相關性:每個神經元僅連接到輸入體積的一小部分區域。這種連接的程度是一個稱爲神經元接受場的超參數。這些連接在空間上(沿寬度和高度)是局部的,但始終沿着輸入音量的整個深度延伸。這種架構可確保學習濾波器對空間局部輸入模式產生最強響應。
空間安排
三個超參數控制卷積層輸出量的大小:深度,步幅和零填充。

  • 輸出音量的深度控制連接到輸入音量的相同區域的圖層中的神經元數量。這些神經元學習激活輸入中的不同特徵。例如,如果第一卷積層將原始圖像作爲輸入,則沿着深度維度的不同神經元可能在存在各種定向邊緣或顏色斑點的情況下激活。
  • 步幅控制如何分配空間維度(寬度和高度)周圍的深度列。當步幅爲1時,我們一次將濾鏡移動一個像素。這會導致列之間的感知域重疊,也會導致大量輸出。當步幅是2(或者很少3或更多)時,濾波器一次滑動時會跳躍2個像素。感受野重疊較少,並且產生的輸出體積具有較小的空間維度。[33]
  • 有時,將輸入填充到輸入音量邊界上很方便。這個填充的大小是第三個超參數。填充提供對輸出體積空間大小的控制。特別是,有時需要精確地保留輸入音量的空間大小。

輸出體積的空間尺寸可以通過關於輸入體積大小W的函數來計算,Conv層神經元K的核心場大小K,它們所應用的跨度S以及在圖1中使用的零填充量P的函數來計算 邊界。 計算給定體積中有多少神經元“適合”的公式由下式給出{\displaystyle (W-K+2P)/S+1}如果這個數字不是整數,那麼步幅設置不正確,神經元不能以對稱的方式平鋪在輸入體積上。 通常,設置零填充爲 P=(K−1)/2{\displaystyle P=(K-1)/2} 。當步幅爲S = 1時,確保輸入音量和輸出音量在空間上具有相同的大小。 例如,儘管通常不需要耗盡前一層的所有神經元,但您可以決定只使用一部分填充。

參數共享
卷積層使用參數共享方案來控制自由參數的數量。它依賴於一個合理的假設:如果補丁特徵對於在某個空間位置進行計算是有用的,那麼在其他位置計算也應該是有用的。換句話說,將單個2維深度切片表示爲深度切片,我們限制每個深度切片中的神經元使用相同的權重和偏差。
由於單個深度切片中的所有神經元共享相同的參數,因此可以將CONV層的每個深度切片中的正向傳遞計算爲神經元權重與輸入體積(因此名稱:卷積層)的卷積。因此,通常將權重集稱爲篩選器(或內核),並與輸入進行卷積。該卷積的結果是激活圖,並且每個不同濾波器的一組激活圖沿着深度維度堆疊在一起以產生輸出體積。參數共享有助於CNN架構的平移不變性。
有時參數共享假設可能沒有意義。當輸入到CNN的圖像具有特定的中心結構時,尤其如此,我們期望在不同的空間位置學習完全不同的特徵。一個實際的例子是當輸入是在圖像中居中的臉部時:我們可能期望在圖像的不同部分學習不同的眼睛特定或頭髮特定的特徵。在這種情況下,通常放寬參數共享方案,而是簡單地將該層稱爲本地連接層。
4.2池化層
CNN的另一個重要概念是池化,這是一種非線性下采樣。有幾個非線性函數來實現池,其中最大池是最常見的。它將輸入圖像分割成一組不重疊的矩形,併爲每個這樣的子區域輸出最大值。直覺是一個特徵的確切位置並不比其他特徵的粗略位置重要。池化層用於逐漸減小表示的空間大小,以減少網絡中的參數數量和計算量,並因此控制過擬合。週期性地在CNN體系結構中的連續卷積層之間插入池層是常見的。池化操作提供了另一種形式的翻譯不變性。
池層在輸入的每個深度切片上獨立運行,並在空間上調整其大小。最常見的形式是一個大小爲2x2的濾波器的匯聚層,在輸入的每個深度切片上沿着寬度和高度加上2個下采樣的步幅2,丟棄75%的激活。在這種情況下,每個最大操作超過4個數字。深度維度保持不變。
除了最大池化之外,池化單位還可以使用其他功能,如平均池化或L2規範池化。平均池化通常用於歷史上,但最近已經不受歡迎,最大池化在實踐中效果更好[34]。
由於代表大小的大幅度減少,趨勢是朝着使用更小的過濾器[35]或完全丟棄池化層[36]。
RoI池大小爲2x2。在這個例子中,區域提議(輸入參數)的大小爲7x5。
感興趣區域(也稱爲投資回報池)是最大池化的變體,其中輸出大小是固定的,並且輸入矩形是參數。

池化是基於Fast R-CNN [38]體系結構的用於對象檢測的卷積神經網絡的重要組成部分。

4.3ReLU層

ReLU是修正線形單元的縮寫。 該層應用非飽和激活函數 f(x)=max(0,x){\displaystyle f(x)=\max(0,x)}。 它增加了決策函數和整個網絡的非線性特性,而不影響卷積層的接受域。

其他函數也用於增加非線性,例如飽和雙曲正切 f(x)=tanh⁡(x){\displaystyle f(x)=\tanh(x)}f(x)=|tanh⁡(x)|{\displaystyle f(x)=|\tanh(x)|}和sigmoid 函數 f(x)=(1+e−x)−1f(x)=(1+e^{-x})^{-1}。 ReLU通常比其他函數更受歡迎,因爲它可以快幾倍地訓練神經網絡[39],而不會對泛化精度造成嚴重損失。

4.4全連接層
最後,在幾個卷積和最大池化層之後,神經網絡中的高層推理通過全連接層進行。正如在常規神經網絡中看到的,全連接層中的神經元與前一層中的所有激活都有關聯。因此,它們的激活可以通過矩陣乘法和偏移來計算。
4.5損失層
損失層指定訓練如何懲罰預測標籤與真實標籤之間的偏差,並且通常是最後一層。那裏可以使用適合於不同任務的各種損失函數。 Softmax損失用於預測單個K類互斥類。 Sigmoid交叉熵損失用於預測[0,1]中的K個獨立概率值。歐幾里德損失用於迴歸實值標籤 (−∞,∞).
5.選擇超參數
這部分需要額外的引文進行驗證。請通過向可靠來源添加引文來幫助改進本文。無法查證的內容可能被提出異議而移除。 (2017年6月)(瞭解如何以及何時刪除此模板消息)
CNN使用比標準MLP更多的超參數。儘管學習率和正則化常數的通常規則仍然適用,但優化時應注意以下幾點。
5.1卷積核數量
由於特徵映射大小隨着深度而減小,所以輸入層附近的層往往具有較少的過濾器,而較高層可能具有較多的過濾器。爲了均衡每層的計算,特徵x像素位置乘積在層間保持大致恆定。保留更多關於輸入的信息需要保持激活的總數(特徵圖的數量乘以像素位置的數量)從一層到下一層不減少。
特徵映射的數量直接控制容量,取決於可用示例的數量和任務的複雜性。
5.2濾波器形狀
文獻中常見的字段形狀差異很大,通常根據數據集進行選擇。
因此,挑戰在於找到適當的粒度級別,以便在給定特定數據集的情況下以適當的規模創建抽象。
5.3最大池化形狀
典型值是2×2。非常大的輸入量可能需要4x4池在更低層。但是,選擇較大的形狀會顯着降低信號的尺寸,並可能導致信息過度丟失。通常,不重疊的池窗口表現最好。[34]
6.正則化方法
這部分需要額外的引文進行驗證。請通過向可靠來源添加引文來幫助改進本文。無法查證的內容可能被提出異議而移除。 (2017年6月)(瞭解如何以及何時刪除此模板消息)
正規化是一個引入額外信息來解決不適當問題或防止過度配合的過程。人工神經網絡使用各種正則化。
6.1實證
Dropout

由於完全連接的圖層佔據了大部分參數,因此很容易出現過擬合。 一種減少過擬合的方法是dropout。[40] [41] 在每個訓練階段,單個節點要麼以概率“退出”網絡1-p或保持概率p,以便留下縮小的網絡; 輸入和輸出邊緣到一個輟學節點也被刪除。 只有減少的網絡在該階段的數據上進行了訓練。 然後將移除的節點以其原始權重重新插入網絡。

在訓練階段,隱藏節點將被丟棄的概率通常是0.5;對於輸入節點,這應該低得多,直觀地是因爲當輸入節點被忽略時,信息直接丟失。
在訓練結束後的測試時間內,我們理想地希望找到所有可能的 2n2^{n}輟學網絡的樣本平均值;不幸的是,這對n的大數值是不可行的。然而,我們可以找到一個近似值,使用整個網絡,每個節點的輸出權重爲p,所以任何節點輸出的期望值與訓練階段相同。這是丟失方法的最大貢獻:雖然它有效地生成 2n2^{n}個神經網絡,並且因此允許模型組合,但在測試時間僅需要測試單個網絡。
通過避免訓練所有訓練數據上的所有節點,丟失減少了過度擬合。該方法還顯着提高了訓練速度。這使得模型組合實用,即使對於深層神經網絡也是如此。該技術似乎可以減少節點的交互作用,使他們學習更強大的功能,更好地推廣到新的數據。
DropConnect 
DropConnect [42]是丟失概率,其中每個連接而不是每個輸出單位可以以概率1-p丟棄。每個單元因此接收來自前一層中的隨機子單元的輸入。
DropConnect與丟失類似,因爲它在模型中引入了動態稀疏性,但不同之處在於稀疏性取決於權重,而不是圖層的輸出向量。換句話說,具有DropConnect的完全連接層成爲一個稀疏連接層,其中在訓練階段中隨機選擇連接。
隨機池化
Dropout的一個主要缺點是它對於卷積層沒有相同的好處,在那裏神經元沒有完全連接。
在隨機池化中[43],常規確定性彙集操作被隨機過程替代,其中每個彙集區域內的激活是根據彙集區域內的活動給出的多項分佈隨機挑選的。該方法無超參數,可與其他正則化方法結合使用,如退出和數據增強。
隨機池的另一種觀點是,它相當於標準的最大池,但有許多輸入圖像的副本,每個副本都有很小的局部變形。這與輸入圖像的顯式彈性變形類似,[44]可以提供出色的MNIST性能。在多層模型中使用隨機池會產生指數級的變形,因爲高層中的選擇與下面的無關。
人工數據
由於模型過擬合的程度取決於其功率和其接受的訓練量,因此提供具有更多訓練樣例的卷積網絡可以減少過擬合。由於這些網絡通常使用所有可用數據進行培訓,因此一種方法是從頭開始生成新數據(如果可能)或擾亂現有數據以創建新數據。例如,輸入圖像可能會不對稱地裁剪幾個百分比,以創建具有與原始標籤相同標籤的新示例。
6.2明確
提早停止
防止網絡過度配置的最簡單方法之一就是在過度配合有機會發生之前停止訓練。它帶來了學習過程停止的缺點。
參數數量
另一種防止過度擬合的簡單方法是限制參數數量,通常通過限制每層中隱藏單元的數量或限制網絡深度。對於卷積網絡,過濾器大小也會影響參數的數量。限制參數的數量直接限制了網絡的預測能力,降低了它可以對數據執行的功能的複雜性,從而限制了過度擬合的數量。這相當於一個“零規範”。
權重衰減

加法正則化的一種簡單形式是權重衰減,它簡單地增加了一個額外的誤差,與權重向量的權重(L1範數)或平方震級(L2範數)之和成正比,與每個節點的誤差成正比。通過增加比例常數可以降低可接受的模型複雜度水平,從而增加對大權向量的懲罰。

L2正則化是正則化最常見形式。它可以通過直接在目標中懲罰所有參數的平方幅度來實現。 L2正則化具有嚴重懲罰峯值權重矢量並優選漫射權重矢量的直觀解釋。由於權重和投入之間的倍增交互作用,這具有鼓勵網絡使用所有輸入的有用屬性,而不是一些輸入。
L1正則化是另一種常見形式。可以將L1與L2正則化組合(這稱爲彈性網絡正則化)。 L1正則化導致優化過程中權重向量變得稀疏。換句話說,具有L1正則化的神經元最終只使用其最重要輸入的稀疏子集,並且變得對噪聲輸入幾乎不變。
最大範數約束
正則化的另一種形式是對每個神經元的權向量的強度執行絕對上限,並使用投影的梯度下降來強制約束。在實踐中,這對應於執行正常的參數更新,然後通過夾緊每個神經元的權矢量 w→{\vec {w}} 來執行約束以滿足 ‖w→‖2<c{\displaystyle \|{\vec {w}}\|_{2}<c}。 c的典型值是3-4的數量級。一些論文使用這種形式的正則化時報告了改進[46]。
7.分層座標框架
共享失去了高級部分(如臉部圖像中的鼻子和嘴巴)之間精確的空間關係。身份識別需要這些關係。重疊池以便每個功能都出現在多個池中,有助於保留信息。單靠翻譯不能將對幾何關係的理解推斷爲一種全新的觀點,如不同的方向或規模。另一方面,人們非常善於推斷;一旦他們從不同的角度認識到它,就會看到一個新的形狀[47]。
目前,解決這個問題的常用方法是對網絡進行不同方向,尺度,光照等變換數據的訓練,以便網絡能夠應對這些變化。對於大型數據集,這是計算密集型的。另一種方法是使用座標系的層次結構,並使用一組神經元來表示特徵形狀與其相對於視網膜的姿態的連接。相對於視網膜的姿勢是視網膜的座標系和內在特徵的座標系之間的關係[48]。
因此,表示某件事的一種方式是將座標系嵌入其中。完成此操作後,可以通過使用其各部分姿態的一致性來識別大特徵(例如,鼻子和嘴巴的姿勢可以對整個臉部的姿態進行一致的預測)。使用這種方法確保當較低等級(例如鼻子和嘴巴)對其姿勢的預測達成一致時,存在較高等級的實體(例如臉部)。代表姿態的神經元活動向量(“姿態向量”)允許將空間變換建模爲線性操作,使網絡更容易學習視覺實體的層次結構並跨視點進行概括。這與人類視覺系統施加座標系以表示形狀的方式類似。
8.應用
8.1圖像識別

CNN經常用於圖像識別系統。據報道,2012年MNIST數據庫的錯誤率爲0.23%。[11]另一篇關於使用CNN進行圖像分類的論文報道說,學習過程“非常快”;在同一篇論文中,截至2011年的最佳公佈結果在MNIST數據庫和NORB數據庫中獲得[9]。

當應用於面部識別時,CNN實現了錯誤率的大幅降低[50]。另一篇論文報道“對超過10個科目的5600張靜態圖像”的識別率爲97.6%[4]。人工培訓後,CNN用於客觀評估視頻質量;所得到的系統具有非常低的均方根誤差。

ImageNet大規模視覺識別挑戰是對象分類和檢測的基準,包含數百萬的圖像和數百個對象類。在ILSVRC 2014中,[52]大規模的視覺識別挑戰,幾乎所有排名靠前的團隊都使用CNN作爲他們的基本框架。優勝者GoogLeNet [53](DeepDream的基礎)將目標檢測的平均精度提高到0.439329,分類錯誤降低到0.06656,這是迄今爲止最好的結果。其網絡應用了30多個層次。在ImageNet測試中,卷積神經網絡的性能與人類接近。[54]最好的算法仍然與小或薄的物體糾纏在一起,比如花的莖上有一隻小螞蟻或手裏拿着一根羽毛筆的人。他們也有使用濾鏡變形的圖像的麻煩,這是現代數碼相機日益普遍的現象。相比之下,這些圖像很少麻煩人類。然而,人類往往會遇到其他問題。例如,它們不擅於將物體分類爲細粒度類別,例如特定品種的狗或鳥種,而卷積神經網絡則處理這種情況。
2015年,CNN的多層次展現了從廣泛的角度發現臉部的能力,包括顛倒,即使部分被競爭性表演遮擋。該網絡訓練了20萬張圖像的數據庫,其中包括各種角度和方向的臉部以及另外2000萬張沒有臉部的圖像。他們在50,000次迭代中使用了128個圖像的批次。
8.2視頻分析
與圖像數據域相比,將CNN應用於視頻分類的工作相對較少。視頻比圖像更復雜,因爲它具有另一個(時間)維度。然而,CNN在視頻領域的一些擴展已經被探索。一種方法是將空間和時間視爲輸入的等效維度,並在時間和空間上執行卷積[56] [57]。另一種方法是融合兩個卷積神經網絡的特徵,一個用於空間,另一個用於時間流[58] [59] [60]。基於卷積門限制玻爾茲曼機[61]和獨立子空間分析[62],引入了無監督學習時空特徵訓練方案。
8.3自然語言處理
CNN也探索了自然語言處理。 CNN模型對於各種NLP問題是有效的,並且在語義分析,搜索查詢檢索,句子建模,分類,預測以及其他傳統的NLP任務中取得了優異的結果[68]。
8.4藥物發現
CNN已被用於藥物發現。預測分子和生物蛋白之間的相互作用可以確定潛在的治療方法。 2015年,Atomwise推出了首個基於結構的合理藥物設計的深度學習神經網絡AtomNet [69]。該系統直接訓練化學相互作用的三維表示。類似於圖像識別網絡如何學會將較小的,空間上接近的特徵組合成更大,更復雜的結構,[70] AtomNet發現化學特徵,如芳香性,sp3碳和氫鍵。隨後,AtomNet被用於預測多種疾病靶點的新型候選生物分子,最顯着的是治療埃博拉病毒[71]和多發性硬化症[72]。
8.5跳棋
有線電視網絡已被用於跳棋的比賽中。從1999年到2001年,Fogel和Chellapilla發表了論文,展示了卷積神經網絡如何學會使用共同進化來發揮跳棋。學習過程沒有使用以前的人類職業遊戲,而是集中在棋盤中包含的最少信息集:棋子的位置和類型以及棋子差異[澄清]。最終,這個節目(Blondie24)在對陣球員的165場比賽中進行了測試,並且排在最高的0.4%。[73] [74]它在“專家級”遊戲中也贏得了與“奇努克”計劃的勝利。
8.6Go

CNN已經被用於電腦Go。 2014年12月,Clark和Storkey發表了一篇文章,表明通過監督學習來自人類職業遊戲數據庫的CNN訓練可能會超越GNU Go,並在Fuego花費一小部分時間贏得一些針對蒙特卡洛樹搜索Fuego 1.1的遊戲播放。[76]後來宣佈一個大型的12層卷積神經網絡已經正確預測了55%職位的職業移動,相當於一個6人類球員的準確性。當經過訓練的卷積網絡直接用於玩Go遊戲時,沒有任何搜索,它在97%的遊戲中擊敗了傳統的搜索程序GNU Go,並且匹配了Monte Carlo樹搜索程序Fuego的性能,模擬了一萬個播放一百萬個職位)。

AlphaGo使用了幾個CNN來選擇移動嘗試(“策略網絡”)和評估位置(“價值網絡”),這是第一個擊敗當時最好的人類球員。
9.微調
對於許多應用程序,很少有培訓數據可用。卷積神經網絡通常需要大量的訓練數據以避免過度擬合。一種常用的技術是從相關域中的大型數據集上訓練網絡。一旦網絡參數已經收斂,則使用域內數據執行額外的訓練步驟以微調網絡權重。這使得卷積網絡可以成功應用於小訓練集的問題[79]。
10.擴展
10.1深度Q網絡

深度Q網絡(DQN)是一種深度學習模型,它將深度CNN與強化學習形式Q-learning相結合。與早期的強化學習代理不同,DQN可以直接從高維感官輸入中學習。
初步結果於2014年提交,並在2015年2月發表了一份附帶文件。[80]該研究描述了Atari 2600遊戲的應用。其他深入的強化學習模式在它之前。[81]
10.2深層信念網絡
卷積深層信念網絡(CDBN)具有與卷積神經網絡非常相似的結構,並且與深層信念網絡類似地進行訓練。因此,他們利用像CNN這樣的二維圖像結構,並利用像深度信念網絡這樣的預訓練。它們提供了可用於許多圖像和信號處理任務的通用結構。使用CDBN獲得標準圖像數據集的基準結果,如CIFAR [82] [83]。
10.3時間延遲神經網絡
時間延遲神經網絡允許對語音信號進行時變處理,類似於CNN提供的平移不變性。它們是在20世紀80年代初引入的。神經元輸出的平鋪可以覆蓋定時階段。[51]
11.通用庫
Caffe:卷積神經網絡的流行庫。由伯克利視覺和學習中心(BVLC)創建。它支持CPU和GPU。用C ++開發,並有Python和MATLAB包裝器。
Deeplearning4j:在支持多GPU的Spark上深入學習Java和Scala。用於在C ++科學計算引擎上運行的JVM生產棧的通用深度學習庫。允許創建自定義圖層。與Hadoop和Kafka集成。
deeplearning-hs:在Haskell深入學習,支持使用CUDA進行計算。
MatConvNet:MATLAB中的一個convnet實現。
MXNet:一種可擴展的開源深度學習框架,包括支持分佈式多GPU和CPU。它支持多種語言的接口(C ++,Python,Julia,Matlab,JavaScript,Go,R,Scala,Perl,Wolfram語言)。
neon:卷積神經網絡和深度學習的最快框架,支持GPU和CPU後端。前端使用Python,而快速內核使用自定義着色器程序集編寫。由英特爾收購的Nervana Systems創建。
TensorFlow:Apache 2.0許可的Theano類庫,支持CPU,GPU和Google專有的TPU,[85] mobile
Theano:Python的參考深度學習庫,API與流行的NumPy庫大致兼容。允許用戶編寫符號數學表達式,然後自動生成它們的派生物,從而使用戶不必編碼梯度或反向傳播。這些符號表達式會自動編譯爲CUDA代碼,以實現快速的GPU實現。
Torch(www.torch.ch):一個科學計算框架,廣泛支持機器學習算法,用C和lua編寫。主要作者是Ronan Collobert,現在在Facebook AI Research和Twitter上使用它。
微軟認知工具包:微軟公司編寫的深度學習工具包,它具有多種增強多節點可擴展性的獨特功能。它支持用於C ++和Python培訓的完整接口,並支持C#和Java中的模型推斷。
12.通用API 
Keras:用Python編寫的TensorFlow和Theano卷積神經網絡的高級API [86]。
13.流行文化
卷積神經網絡在2017年小說“Infinity Born”中提到。[87]

發佈了18 篇原創文章 · 獲贊 12 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章