什麼是卷積和池化

在傳統的神經網絡中,好比多層感知機(MLP),其輸入一般是一個特徵向量,須要人工設計特徵,而後將這些特徵計算的值組成特徵向量,在過去幾十年的經驗來看,人工找到的特徵並非怎麼好用,有時多了,有時少了,有時選擇的特徵根本就不起做用(真正起做用的特徵在浩瀚的未知裏面)。這就是爲何在過去卷積神經網絡一直被SVM等完虐的緣由。算法

若是有人說,任何特徵都是從圖像中提取的,那若是把整副圖像做爲特徵來訓練神經網絡不就好了,那確定不會有任何信息丟失!那先不說一幅圖像有多少冗餘信息,單說着信息量就超級多。。。網絡

假若有一幅1000*1000的圖像,若是把整幅圖像做爲向量,則向量的長度爲100000010^6)。在假如隱含層神經元的個數和輸入同樣,也是1000000;那麼,輸入層到隱含層的參數數據量有10^12,什麼樣的機器能訓練這樣的網絡呢。因此,咱們還得下降維數,同時得以整幅圖像爲輸入(人類實在找不到好的特徵了)。因而,牛逼的卷積來了。接下來看看卷積都幹了些啥。學習

  1. 什麼叫卷積?

卷積層是用一個固定大小的矩形區去席捲原始數據,將原始數據分紅一個個和卷積核大小相同的小塊,而後將這些小塊和卷積核相乘輸出一個卷積值(注意這裏是一個單獨的值,再也不是矩陣了)。人工智能

卷積的本質就是用卷積核的參數來提取原始數據的特徵,經過矩陣點乘的運算,提取出和卷積核特徵一致的值,若是卷積層有多個卷積核,則神經網絡會自動學習卷積核的參數值,使得每一個卷積核表明一個特徵。spa

卷積首先要定義一個卷積核,卷積核一般是一個正方形,長寬就是卷積核的尺寸,好比(2,2)的卷積核,表示用:設計

      [w1,w2blog

      w3,w4]數學

大小的卷積核來對原始數據進行卷積。卷積核的權重參數w1-w4就是該卷積核的特徵值,卷積結果是輸入數據神經網絡

首先咱們須要知道什麼是卷積計算,它實際上是一種簡單數學運算,有兩個步驟:一個是矩陣內積乘法,另外一個是將內積乘法的結果進行全加。im

1)矩陣內積乘法

矩陣的內積乘法很是簡單,就是把兩個相乘的矩陣,相同位置的元素進行乘法運算,這個時候會獲得一個新的矩陣(在這裏咱們須要注意一下,卷積是在做矩陣內積乘法,而不是矩陣乘法)。

2)全加計算

這個新矩陣的所有值會進行相加,而後會獲得一個值,這個值纔是卷積運算的結果。

二、特徵圖像與卷積核

對於實際的卷積過程當中,它一方面有輸入圖像,這些圖像被稱做是特徵圖像(注:卷積神經網絡中,原始的輸入是真實的圖像,通過卷積後會生成特徵圖像),另外一方面還須要有卷積核。

卷積核的值是人爲設定的,它是能夠調節的,在實際的卷積神經網絡中,卷積核的值就是網絡的參數。對卷積網絡進行訓練,就是在調節這些卷積核心的參數。在實際中通常不會用太大的卷積核,常見的卷積核大小有3*35*51*1的大小。

特徵圖像和卷積核都是以矩陣的形式存在,所以它們能夠進行卷積計算。卷積計算的輸入不只能夠是圖像,還能夠是其它的二維矩陣信息(固然還有一維和三維的卷積,這裏就很少介紹了)。卷積核首先會對特徵圖像的第一個區域進行卷積運算,這個卷積計算的結果,會做爲輸出特徵圖像上的一個點,以下圖所示。

上圖中在卷積以後,將像素圖中相連的4個像素提取成了一個像素,通俗一點什麼意思?讀者能夠好好體會一下:將一個小區域的圖像中的特徵提取成一個值來表示。

 

三、什麼是池化

池化(Pooling):也稱爲欠採樣或下采樣。主要用於特徵降維,壓縮數據和參數的數量,減少過擬合,同時提升模型的容錯性。好比以(2,2)做爲一個池化單位,其含義就是每次將2*2=4個特徵值根據池化算法合併成一個特徵值,經常使用的池化算法有如下幾種:

  1. 平均值:取4個特徵值的平均值做爲新的特徵值。
  2. 最大值:取4個特徵值中最大值做爲新的特徵值。
  3. 最小值:取4個特徵值中最小值做爲新的特徵值。


https://images2018.cnblogs.com/blog/1226410/201809/1226410-20180910194605414-874059268.png 
經過池化層,使得本來4*4的特徵圖壓縮成了2*2,從而下降了特徵維度。

最後小結一下:

(1)卷積是從一小塊圖像區域中提取出特徵值來表示這一小塊區域的內在特徵(或者說內在含義)。

(2)池化是將相臨的多個特徵用一個特徵來代替,壓縮特徵維度。

卷積和池化是圖像人工智能應用場景中繞不過去的兩種基本處理過程,因此咱們仍是先了解他倆的內在含義吧。

相關文章
相關標籤/搜索