mlp神经网络_白天鹅黑天鹅灰天鹅?卷积神经网络帮你搞定识别
全文共3014字,預(yù)計學(xué)習(xí)時長6分鐘
本文將通過一系列的天鵝圖片來解釋卷積神經(jīng)網(wǎng)絡(luò)(CNN)的概念,并使用CNN在常規(guī)多層感知器神經(jīng)網(wǎng)絡(luò)上處理圖像。
圖像分析
假設(shè)我們要創(chuàng)建一個能夠識別圖像中的天鵝的神經(jīng)網(wǎng)絡(luò)模型。
天鵝具有某些特征,可用于幫助確定天鵝是否在圖片中存在,例如長頸、白色等。
天鵝具有某些可用于識別目的的特征
對于某些圖像,可能難以確定是否存在天鵝,請看以下圖像。
很難區(qū)分的天鵝形象
這些特征仍然存在于上圖中,但我們卻難以找出上文提出的特征。除此之外,還會有一些更極端的情況。
天鵝分類的極端情況
至少顏色是一致的,對吧? 還是......
不要忘記這些黑天鵝。
情況可以更糟嗎?絕對可以。
最壞的情況
好的,現(xiàn)在已經(jīng)有了足夠多的天鵝照片。
我們來談?wù)勆窠?jīng)網(wǎng)絡(luò)。
現(xiàn)如今,我們基本上一直在以非常天真的方式談?wù)摍z測圖像中的特征。研究人員構(gòu)建了多種計算機(jī)視覺技術(shù)來處理這些問題:SIFT,FAST,SURF,Brief等。然而,出現(xiàn)了類似的問題:探測器要么過于籠統(tǒng),要么過于設(shè)計化,這使得它們太簡單或難以概括。
· 如果我們學(xué)習(xí)了要檢測的功能,該怎么辦?
· 我們需要一個可以進(jìn)行表征學(xué)習(xí)(或特征學(xué)習(xí))的系統(tǒng)。
表征學(xué)習(xí)是一種允許系統(tǒng)自動查找給定任務(wù)的相關(guān)特征的技術(shù)。替換手動功能工程。有以下幾種技巧:
· 無監(jiān)督(K-means,PCA,......)
· 監(jiān)督(Sup. 字典學(xué)習(xí),神經(jīng)網(wǎng)絡(luò)!)
傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的問題
假設(shè)你已經(jīng)熟悉了被稱為多層感知器(MLP)的傳統(tǒng)神經(jīng)網(wǎng)絡(luò)。如果你不熟悉這些內(nèi)容,那么網(wǎng)絡(luò)上有數(shù)百篇有關(guān)MLP工作方式的教程。這些是在人腦上建模的,其中神經(jīng)元由連接的節(jié)點刺激,并且僅在達(dá)到特定閾值時才被激活。
標(biāo)準(zhǔn)多層感知器(傳統(tǒng)神經(jīng)網(wǎng)絡(luò))
MLP有幾個缺點,特別是在圖像處理方面。MLP對每個輸入使用一個感知器(例如,圖像中的像素,在RGB情況下乘以3)。對于大圖像,權(quán)重量迅速變得難以操縱。對于具有3個顏色通道的224 x 224像素圖像,必須訓(xùn)練大約150,000個重量!結(jié)果,困難發(fā)生在訓(xùn)練和過度擬合的時候。
另一個常見問題是MLP對輸入(圖像)及其移位版本的反應(yīng)不同——它們不是平移不變的。例如,如果貓的圖片出現(xiàn)在一張圖片的左上角和另一張圖片的右下角,則MLP會嘗試自我糾正并認(rèn)為貓將始終出現(xiàn)在圖像的這一部分中。
很明顯,MLP不是用于圖像處理的最佳思路。其中一個主要問題是當(dāng)圖像變平為MLP時,空間信息會丟失??拷墓?jié)點很重要,因為它們有助于定義圖像的特征。
因此,我們需要一種方法來利用圖像特征(像素)的空間相關(guān)性,這樣我們就可以看到圖片中的貓,無論它出現(xiàn)在何處。在下圖中,我們正在學(xué)習(xí)冗余功能。這種方法并不健全,因為貓可能出現(xiàn)在另一個位置。
使用MLP的貓?zhí)綔y器,隨著貓的位置改變而改變。
開始CNN之旅
現(xiàn)在讓我們繼續(xù)討論CNN如何用于解決大多數(shù)問題。
CNN利用了附近像素與遠(yuǎn)距離像素相關(guān)性更強(qiáng)的事實
通過使用稱為過濾器的東西,我們分析了附近像素的影響。采用指定尺寸的過濾器(經(jīng)驗法則為3x3或5x5),然后將過濾器從圖像左上角移到右下角。對于圖像上的每個點,使用卷積運算基于濾波器計算值。
過濾器可能與任何東西有關(guān),對于人類的照片,一個過濾器可能與看到鼻子有關(guān),而我們的鼻子過濾器會讓我們看到鼻子在圖像中出現(xiàn)的強(qiáng)度,以及多少次和在它們發(fā)生的位置。與MLP相比,這減少了神經(jīng)網(wǎng)絡(luò)必須學(xué)習(xí)的權(quán)重數(shù)量,并且還意味著當(dāng)這些特征的位置發(fā)生變化時,它不會拋棄神經(jīng)網(wǎng)絡(luò)。
卷積運算
如果你想知道如何通過網(wǎng)絡(luò)學(xué)習(xí)不同的功能,以及網(wǎng)絡(luò)是否可能學(xué)習(xí)相同的功能(10個頭部過濾器會有點多余),這種情況基本不會發(fā)生。在構(gòu)建網(wǎng)絡(luò)時,我們隨機(jī)指定過濾器的值,然后在網(wǎng)絡(luò)訓(xùn)練時不斷更新。除非所選濾波器的數(shù)量極其大,否則產(chǎn)生兩個相同的濾波器的可能性是非常非常小的。
下面給出了稱之為過濾器或內(nèi)核的示例。
CNN的內(nèi)核過濾器示例
在過濾器經(jīng)過圖像之后,為每個過濾器生成特征映射。然后通過激活函數(shù)獲取這些函數(shù),激活函數(shù)決定圖像中給定位置是否存在某個特征。然后我們可以做很多事情,例如添加更多過濾層和創(chuàng)建更多特征映射。隨著我們創(chuàng)建更深入的CNN,這些映射變得越來越抽象。我們還可以使用池化圖層來選擇要素圖上的最大值,并將它們用作后續(xù)圖層的輸入。理論上,任何類型的操作都可以在池化層中完成,但實際上,只使用最大池,因為我們想要找到極端值——這就是我們的網(wǎng)絡(luò)看到該功能的時候!
示例CNN具有兩個卷積層,兩個合并層和一個完全連接的層,它將圖像的最終分類決定為幾個類別之一。
只是重申我們迄今為止所發(fā)現(xiàn)的內(nèi)容。我們知道MLP:
· 不能很好地縮放圖像
· 忽略像素位置和鄰居關(guān)聯(lián)帶來的信息
· 無法處理翻譯
CNN的一般思維是智能地適應(yīng)圖像的屬性:
· 像素位置和鄰域具有語義含義
· 感興趣的元素可以出現(xiàn)在圖像的任何位置
MLP和CNN的體系結(jié)構(gòu)比較
CNN也由層組成,但這些層沒有完全連接:它們具有濾鏡,在整個圖像中應(yīng)用的立方體形狀的權(quán)重集。過濾器的每個2D切片稱為內(nèi)核。這些過濾器引入了平移不變性和參數(shù)共享。它們是如何應(yīng)用的?當(dāng)然是卷積!
該示例表明了如何使用內(nèi)核過濾器將卷積應(yīng)用于圖像
現(xiàn)在有一個問題是:圖像邊緣會發(fā)生什么?如果我們在正常圖像上應(yīng)用卷積,則結(jié)果將根據(jù)濾波器的大小進(jìn)行下采樣。如果我們不希望這種情況發(fā)生,該怎么辦?可以使用填充。
填充
這幅圖展現(xiàn)了如何將完全填充和相同的填充應(yīng)用于CNN
填充本質(zhì)上使得濾波器內(nèi)核產(chǎn)生的特征映射與原始映像的大小相同。這對于深度CNN非常有用,因為我們不希望減少輸出,為此我們只在網(wǎng)絡(luò)末端留下一個2x2區(qū)域來預(yù)測結(jié)果。
我們?nèi)绾螌⑦^濾器連接起來?
如果我們有許多功能圖,那么這些功能如何在網(wǎng)絡(luò)中結(jié)合起來幫助我們獲得最終結(jié)果?
需要清楚的是,每個濾鏡都與整個3D輸入立方體進(jìn)行卷積,但會生成2D要素貼圖。
· 因為我們有多個濾鏡,所以最終得到一個3D輸出:每個濾鏡一個2D特征貼圖
· 特征貼圖尺寸可以從一個卷積層大幅變化到下一個:輸入一個32x32x16輸入的圖層,如果該圖層有128個濾鏡,則退出一個32x32x128輸出。
· 使用濾鏡對圖像進(jìn)行卷積會生成一個特征圖,該特征圖突出顯示圖像中給定要素的存在。
在卷積層中,我們基本上在圖像上應(yīng)用多個濾波器來提取不同的特征。但最重要的是,我們正在學(xué)習(xí)這些過濾器!我們?nèi)鄙俚囊患率?#xff1a;非線性。
介紹線性整流函數(shù)(ReLU)
CNN最成功的非線性是線性整流函數(shù)(ReLU),它可以解決sigmoids中出現(xiàn)的消失梯度問題。ReLU更容易計算并產(chǎn)生稀疏性(并不總是有益)。
不同層的比較
卷積神經(jīng)網(wǎng)絡(luò)中有三種類型的層:卷積層,池化層和完全連接層。這些層中的每一層都具有可以優(yōu)化的不同參數(shù),并且對輸入數(shù)據(jù)執(zhí)行不同的任務(wù)。
卷積層的特征
卷積層是將濾鏡應(yīng)用于原始圖像或深CNN中的其他要素貼圖的圖層。這是大多數(shù)用戶指定的參數(shù)在網(wǎng)絡(luò)中的位置。最重要的參數(shù)是內(nèi)核的數(shù)量和內(nèi)核的大小。
池化層的特征
池化層類似于卷積層,但它們執(zhí)行特定功能,例如最大池,其取特定過濾區(qū)域中的最大值,或平均池,其取過濾區(qū)域中的平均值。這些通常用于降低網(wǎng)絡(luò)的維度。
完全連接層的功能
完全連接的層放置在CNN的分類輸出之前,并用于在分類之前展平結(jié)果。這類似于MLP的輸出層。
標(biāo)準(zhǔn)CNN的架構(gòu)
CNN層學(xué)習(xí)什么?
· 每個CNN層都學(xué)習(xí)越來越復(fù)雜的過濾器。
· 第一層學(xué)習(xí)基本特征檢測濾鏡:邊緣、角落等
· 中間層學(xué)習(xí)檢測對象部分的過濾器。對于面孔,他們可能會學(xué)會對眼睛、鼻子等做出反應(yīng)
· 最后一層具有更高的表示:它們學(xué)習(xí)識別不同形狀和位置的完整對象。
CNN的示例經(jīng)過訓(xùn)練以識別特定對象及其生成的特征映射
總結(jié)
以上是生活随笔為你收集整理的mlp神经网络_白天鹅黑天鹅灰天鹅?卷积神经网络帮你搞定识别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 南京市房屋租赁备案证明(江宁房屋租赁备案
- 下一篇: 吴恩达DeepLearningCours