卷积神经网络基础:(6)卷积神经网络原理
目錄
1、卷積網絡與傳統網絡的區別
2、整體架構
?3、卷積操作?
?4、卷積涉及的參數
5、卷積計算公式:
6、卷積參數中的重要特點
7、池化層作用
?8、整體網絡架構
?9、特征圖變化
10、感受野
1、卷積網絡與傳統網絡的區別
?上圖中左邊是NN傳統網絡,右邊是CNN卷積網絡。
傳統網絡輸入比如784表示784個像素點,這只是一列特征;
在CNN當中輸入的不是784個像素點,而是原始的一張圖像28x28x1是個三維的,當使用卷積網絡做事情的時候,我們得把思想再抬高一個維度,現在的數據他就不是一列,不是一個向量,不是一個特征,而是一個長方體矩陣,它是一個三維的,所以接下來我們處理的矩陣都是三維的,HxWxC的我不會先把數據拉成一個向量,而是直接對這個樣本,圖像數據進行一個特征提取。PS:注意這里的輸入是一個HxWxC的;這里還涉及一個depth信息;
2、整體架構
?簡單的理解:卷積是提取特征,池化是壓縮特征。
?3、卷積操作
?右邊綠色的叫做一個特征圖,表示當前得到的一個結果。最后把三個通道的值相加。
首先把圖像分成一個個小區域,目的是對于不同的區域我得到的特征他是不一樣的,然后接下來我要選擇一種計算的方法,對于每一個小區域的計算他應該的特征值是等于多少的,這個是卷積他做的一件事。?
三通道計算:
?PS:必須保證你的輸入的第三個維度即通道數C,必須和Filter當中第三個維度他倆必須是一樣的。使用了幾個Filter進行計算,最后就會得到多少個特征圖。
內積和計算3=0+2+0+b(小b=1是一個偏置項),最后別忘記加上一個偏置項。
?4、卷積涉及的參數
?(1)步長
步長為1:表示在滑動的過程中移動一個單元格。
步長為2:表示在滑動的過程中移動兩個單元格。
步長越小得到的特征圖越大,得到的特征比較豐富,計算效率越慢。
?(2)卷積核尺寸
卷積核越小,越細粒度進行提取。
(3)邊緣填充(一般使用zero padding)
在進行卷積計算的時候,中間的點參與運算的次數較多,邊界的點較少;為了公平一些,讓邊界點也參與運算的次數多一些。所以進行邊緣填充,加上一圈數(比如0,添加0是為了避免在對結果進行計算的時候對結果產生影響,0乘任何數都等于0,所以最外層只是擴充,不會對結果產生任何影響),原來是邊界的點,他就不是邊界了,它能被利用的次數就會變多,代表了我一定程度上彌補了一些邊界信息缺失的問題,邊界提取特征利用不充分的問題,讓網絡能夠更公平的對待一下邊界特征。
添加的圈數自己控制,一般一圈。
?(4)卷積核個數
卷積核個數說白了就是我最后要得到多少個特征圖,如果要得到10個特征圖,那么卷積核個數就是10。PS:每個卷積核里邊的數字是不一樣的,一開始進行隨機初始化要分別進行各自的參數更新。
5、卷積計算公式:
6、卷積參數中的重要特點
卷積參數共享?
?比如說現在有一個卷積核,那么他要對圖像中的每一個區域做卷積;
Q1:對于不同的區域,我是不是應該選擇卷積核里邊的區域也應該不同呢?這樣效果會更好。
A1:其實理論上應該是這樣的;但是如果你對每一個區域都選擇不同的filter核去做,那總共參數的個數會需要很多;之前說過傳統神經網絡的缺點是參數太多,缺點是不容易訓練,效率較慢,過擬合現象比較大,卷積神經網絡就是要解決這樣的問題,他提出的一點就是參數共享,比如當前我有一個卷積核,我用這個卷積核對每一個區域進行特征提取的時候,它里邊的每一個值都是一樣的,也就是說用同樣一個卷積核對圖像中每一個小區域進行特征提取,在對圖像中每一個小區域進行特征提取的時候,核里邊的每一個值都是不變的。
上圖中的參數一共是760個,要比之前全連接時候的參數少的多了。??
7、池化層作用
池化層是做壓縮的,或者說叫做下采樣。在你原始得到特征的基礎上進行一個篩選。只能去做一個縮減,但是不能修改我的特征圖的個數(即最后的通道數)。池化層沒有涉及任何的矩陣計算,他只是一個特征的篩選,只是一個壓縮過濾的東西。
最大池化:?
?8、整體網絡架構
最后得到的特征圖它是一個立體的,在這個立體中我怎么樣對他進行一個分類任務,如何把這個立體轉化成5個概率的分類值呢?PS:前邊的卷積和池化只是做特征提取的,最后當你想得到一個結果還得靠全連接(FC)層;
全連接層的矩陣大小,比如最后是5分類的,那么就是[?n, 5],前邊的n是連接前邊提取出來的特征,但是對于全連接層他不能連接三維的東西,所以我們需要把之前提取出來的三維特征圖(比如32x32x10)你得給我拉成一個特征向量,非常非常長的特征向量,特征向量就是里邊每一個他都是一個值,特征向量長度是32x32x10=10240,所以最后全連接層得到的結果n=10240,即[10240,5]相當于得到全連接層的結果,相當于把這個10240個特征轉化成我預測的5個類別的概率值,所以在最后的pooling層和FC之間還存在一個拉長的操作(就是把一個圖拉成一個特征向量,把之前所有的結果都總結在一起了,通過全連接層得到我們最終的一個分類結果了);
幾層神經網絡中的層是指:帶參數計算的才能叫做一層。?
卷積層帶參數計算:要乘權重內積再加偏置的。
Relu層不帶參數計算:沒有權重參數,沒有偏置,也不用更新什么;所以激活層統統不帶,因為他不用去更新什么東西。
池化層不帶參數計算:沒有w和b,不需要更新。
全連接層帶參數計算:有權重矩陣。
只有帶參數的東西才能稱作神經網絡的一層,不帶參數的統統不叫做層。
?9、特征圖變化
轉換就是拉伸(把長方體特征轉化成一條向量特征)?,向量才能連接全連接層,最終得到分類的結果。
10、感受野
?首先理解感受這個詞,下圖是一個5x5的原始輸入當中,在這個區域中比如說我現在拿到一個小區域3x3(就是綠色部分)要對他進行卷積,卷積之后得到一個值5,這個5這個值對應的原始就是前邊的值是多大呢?就是前邊綠色3x3的區域,因為這個值它是由前邊的3x3的區域得到的,說白了就是我當前這個值就是卷積結果5這個值,能看到能感受到前邊的輸入是3x3的。
第二次卷積得到結果1,是對前邊的輸入進行卷積,他能感受到前一層是3x3的,前邊這個3x3他能感受到前邊一層(原始輸入數據)的5x5的,比如就做兩次,那么我就說最后一次的卷積結果是1,他當前的感受野是5x5的;說白了就是當前最后得到的值他能看到前邊的是多少,或者說最后這個值他是由前邊原始輸入數據中多少個值參與計算得到的。
?一般情況下希望感受野越大越好(我目前得到的值既與前景有關也與背景有關)。
上邊所需參數的計算參見圖:?
2個3x3x3的Filter。?
總結
以上是生活随笔為你收集整理的卷积神经网络基础:(6)卷积神经网络原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神经网络基础:(3)神经网络整体架构
- 下一篇: 卷积神经网络基础:(7)经典的网络架构