天天看點

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

哈爾濱工業大學的沈俊楠分享了典型模式-卷積神經網絡入門。本文詳細介紹了關于卷積神經網絡的基礎概念和知識與講解,并列舉執行個體展示了卷積和池化的效果。

<a href="https://yq.aliyun.com/video/play/1364">直播視訊回顧請點選</a>

以下是精彩視訊内容整理:

問題引出

學習知識從問題引出入手是一個很好的方法,是以本文将可以圍繞下面三個問題來展開:

1.CNN從何而來?有何作用?運作原理是什麼?

2.為什麼現在圖像上用得這麼多?怎麼用?

3.我想要入門,怎麼實踐操作下?

本文思維導圖如下:

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

概念原理

預備知識-神經元

神經網絡有大量的節點(或稱“神經元”、“單元”)和互相連結而成。每個神經元接受輸入的線性組合,進行非線性變換(亦稱激活函數activation function)後輸出。每兩個節點之間的連接配接代表權重值,稱之為權重(weight)。不同的權重和激活函數,則會導緻神經網絡不同的輸出。

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

以上圖為例,該圖即為一個神經元。神經元有a1,a2,a3...an輸入,而每個輸入中都有權值以及偏置值,對應圖中的w1,w2,w3...wn以及b。這些輸入與權值的乘積加上偏置會經過激活函數的處理得到輸出t。

神經元的作用我們可以根據上圖以是否參加音樂節的決策為實力來詳細介紹一下。圖中a1,a2代表是否有人陪同參加音樂節,w1,w2代表今天的天氣如何。分别指派a1為1,a2為0,w1為5,w2為-2,偏置b代表随意事件,此處指派為0。這些值的和為s,s=a1w1+a2w2+b。

s作為輸入進入激活函數,此處激活函數代表決策,當決策大于某一個值時就參加音樂節,若小于該值就不參加音樂節,最後的輸出t即為是否參加音樂節。這就是神經遠的構成。

預備知識-激活函數

常用的非線性激活函數有sigmoid、relu等等,前兩者sigmoid比較常見與全連接配接層,後者relu常見與卷積層。這裡先簡要介紹下最基礎的sigmoid。

sigmoid的函數表達式如下:

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

其中z時一個線性組合,比如z可以等于:z=b+w1a1+w2a2。通過帶入很大的正數或很小的負數到g(z)函數中可知,其結果趨近于0或1。是以,sigmoid函數g(z)的圖形表示如下圖(橫軸表示定義域z,縱軸表示值域g(z))。

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

Sigmoid函數的功能是相當于把一個輸出壓縮至0到1之間。當z是非常大的正數時,g(z)會趨近于1,而z是非常小的負數時,則g(z)會趨近于0。壓縮至0到1之間的作用是這樣以來便可以把激活函數看作一種“分類的機率”,比如激活函數的輸出為0.9的話便可以解釋為90%的機率為正樣本。

預備知識-神經網絡

定義:将神經元組織在一起,其實便形成了神經網絡。下圖便是一個三層神經網絡結構

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

最左邊的原始輸入資訊稱之為輸入層,最右邊的神經元稱之為輸出層(上圖中輸出層隻有一個神經元),中間的叫隐藏層。

輸入層(Input layer)衆多神經元(Neuron)接受大量非線性形輸入訊息。輸入的訊息稱為輸入向量。

輸出層(Output layer)訊息在神經元連結中傳輸、分析、權衡,形成輸出結果。輸出的訊息成為輸出向量。

隐藏層(Hidden layer)簡稱“隐層”,是輸入層和輸出層之間衆多神經元和連結組成的各個層面。如果有同多個隐藏層,則意味着多個激活函數

同時,每一層都可能有單個或多個神經元組成,每一層的輸出将會作為下一層的輸入資料,不斷傳遞,最終有輸出層輸出最終結果。

CNN的結構

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

卷積神經網絡(Convolutional Neural Network,CNN)是受到神經科學啟發後的多層感覺機模型的進化。

卷積的概念來自信号處理,是對輸入信号經過持續的轉換持續的輸出另一組信号的過程。圖像進行中可以通過卷積完成邊緣檢測、模糊、銳化等效果。

在計算機視覺(Computer Version)領域中卷積層是指感受野(Receptive Field)與卷積核(Kernel)的内積通過激活函數(Activation Function)之後輸出特征圖像(Feature Map)

結果多層的卷積層、池化層、全連接配接層,卷積神經網絡便可以賦予計算機視覺等能力。

CNN的機構-感受野

感受野是指某個卷積核在輸入圖像所看到的空間。

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

上圖表示卷積操作為:卷積核3x3、填充1、步長2。第一排是對5x5藍色圖像進行卷積操作,得到3x3綠色圖像。相對左側的通常表示方法, 左側表示方法更容易觀察到特征的關注點(感受野的中心)和視野(感受野的範圍)。第二排是對3x3的綠色圖像進行卷積操作,得到2x2黃色圖像。

CNN的結構-卷積操作

圖像進行中,卷積操作是從輸入圖像中取出與卷積核大小相同的區塊,與卷積核執行内積後生成一個像素,計算完畢後取下一個區塊一次類推,最終得到特征圖像,過程如下圖所示:

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

卷積操作的好處有兩點,第一稀疏連接配接:眼睛在看東西的時候目光是聚焦在要給相對很小的局部,而不是全部。相對傳統多層感覺器的隐層節點會連接配接到圖像的每個像素點上,卷積神經網絡模拟了眼睛的特性,每個隐層節點通過卷積核連接配接到圖像某個足夠小局部的像素點上,進而大大減少權值參數。第二權值共享:如同神經中樞中的神經細胞,知識對某些形狀有反應,這樣的神經細胞被卷積核來模拟,同一個特征圖像中的卷積核的權值是一樣的,進而大大減少全職參數。通過仿生而提出的稀疏連接配接,卷積不僅僅符合視覺原理,複雜度也得到了很好的控制。

CNN的結構-卷積核

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門
哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

以圖像為例,卷積是從輸入圖像中取出與卷積核大小相同的區塊,與卷積核執行點乘後生成了特征圖像(feature Map)中的一個像素,當一個像素計算完畢後,移動一個像素取下一個區塊執行相同的運算。

不同的卷積核會得到不同的輸出資料,比如深淺,輪廓等。如果想提取圖像的不同特征,則需要使用不同的卷積核。是以卷積核有時候也被形象的稱為檢測器(Detector)。

CNN的結構-激活函數&amp;特征圖像

激活函數(Activation Function)是用來增加非線性能力,使得神經網絡可以更好的解決較為複雜的問題。典型的激活函數有Rectified Linear Unit(非線性激活函數),即ReLU函數:Y=max{0,x}。

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

不同的卷積核将産生不同的特征圖像,适合的卷積核就可以為特征來進行圖像識别。

CNN的結構-池化層

池化是對某個區域内的内容進行一定統計操作以改變輸出的圖像。池化層操作有兩個典型用途:

1.降低計算

理想情況下,學習到的特征都嗯那個用來分類就好了,但是這種做法不僅在計算機的壓力會非常打,還會容易造成過拟合。鑒于圖像的特征往往出現在圖檔的多個地方,是以對于特征進行聚合來提高抽象程度,便顯得非常合情合理了。這種池化操作往往通過控制步長使得感受野不重疊。

2.平移不變性

如果特征在不同的圖像上有輕微的移動,池化操作能夠確定該特征以一定機率在感受野上被識别與保留。這樣,比如MNIST所針對的手寫數字,及時有輕微的平移,仍然能夠被正确識别。這種池化操作的感受野往往是重疊的。

池化操作的算法有兩個,分别為平均池化核最大池化。平均池化考慮各種特征,最大池化強調突出特征。

CNN的結構-全連接配接層

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

最後的兩列小圓球就是兩個全連接配接層,在最後一層卷積結束後,進行了最後一次池化,輸出了20個1212的圖像,然後通過了一個全連接配接層變成了1100的向量。

自是以能夠做到這樣,其實就是有20100個1212的卷積核卷積出來的,對于輸入的每一張圖,用了一個和圖像一樣大小的核卷積,這樣整幅圖就變成了一個數了,如果厚度是20那就是20個核卷積完了之後相加求和。這樣就能把一張圖高度弄成了一個數了。

由于傳統的網絡輸出都是分類,也就是幾個類别的機率甚至就是要給數類别号,那麼全連接配接層的目的就是高度提純特征,友善交給最後的分類器或者回歸。

CNN的處理圖像的例子-卷積效果與池化效果

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

四張圖檔對應不同卷積核計算結果非别為:左上角模糊blur、右上角向下Sobel、左下角emboss、右下角outline

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

該池化操作通過max_pool進行的,max_pool為最大池化。如圖中為44的特征圖像,對其用一個22的架構進行最大池化。可以看出提取出的四個結果分别為四個子產品中的最大值分别為6、4、5、8。

應用介紹-LeNet5數字分類

LeNet是第一個卷積神經網絡,它的架構是由Yann LeCun等在1998年的論文Gradient-Based Learning Applled to Document Recognition中首先提出的,主要用來識别數字。下圖為LeNet的架構:

哈爾濱工業大學沈俊楠:典型模式-卷積神經網絡入門

MNIST資料作為場景。很大程度上,LeNet+MNIDST已經稱為深度學習圖像處理的Hello World了。MNIST包含三種資料:55000個訓練資料點,10000個測試資料點,5000個驗證資料點。每個MNIST 資料點有兩部分内容:手寫數字的圖像,對應圖像的标簽。每個圖像的長和寬都是28個像素,總共784像素。

LeNet模型包含:1.使用卷積核最大池化。2.仍然是卷積核最大池化,隻是使用64個特征,卷積核仍然是5x5。最大池化後圖像大小變為7x7。3.全連接配接層。4.對全連接配接層的輸出使用勸退。5.直覺的softmax層,得到最後的機率輸出。

訓練是通過損失函數表示模型的預測對比預期有多糟糕,訓練的目标是最小化損失函數。預測是最後通過計算圖譜便能夠完成的。

本文由雲栖志願小組譚昊整理,編輯百見

繼續閱讀