深度學習之 TensorFlow(四):卷積神經網絡


基礎概念:

  卷積神經網絡(CNN):屬於人工神經網絡的一種,它的權值共享的網絡結構顯著降低了模型的復雜度,減少了權值的數量。卷積神經網絡不像傳統的識別算法一樣,需要對數據進行特征提取和數據重建,可以直接將圖片作為網絡的輸入,自動提取特征,並且對圖形的變形等具有高度不變形。在語音分析和圖像識別領域有重要用途。

  卷積:卷積是泛函分析中的一種積分變換的數學方法,通過兩個函數 f 和 g 生成第三個函數的一種數學算子,表征函數 f 與 g 經過翻轉和平移的重疊部分的面積。設函數 f,g 是定義在 \mathbb {R} ^{n} 上的可測函數,fg的卷積記作f*g,它是其中一個函數翻轉並平移后與另一個函數的乘積的積分,是一個對平移量的函數,也就是:

 

具體解釋下:

  1.已知兩函數f(t)和g(t)。下圖第一行兩圖分別為f(t)和g(t)。

  2.首先將兩個函數都用來表示,從而得到f()和g()。將函數g()向右移動t個單位,得到函數g(-t)的圖像。將g(-t)翻轉至縱軸另一側,得到g(-(-t))即g(t-)的圖像。下圖第二行兩圖分別為f()和g(t-)。

  3.由於非常數(實際上是時間變量),當時間變量(以下簡稱“時移”)取不同值時,g(t-\tau )能沿着軸“滑動”。下圖第三四五行可理解為“滑動”。

  4.讓從-∞滑動到+∞。兩函數交會時,計算交會范圍中兩函數乘積的積分值。換句話說,我們是在計算一個滑動的的加權總和(weighted-sum)。也就是使用g(t-\tau )當做加權函數,來對 f()取加權值。

  最后得到的波形(未包含在此圖中)就是fg的卷積。

 

  神經網絡的基本組成包括輸入層、隱藏層、輸出層。卷積神經網絡的特點在於隱藏層分為卷積層和池化層。卷積層通過一塊塊的卷積核在原始圖像上平移來提取特征,每一個特征就是一個特征映射;而池化層通過匯聚特征后稀疏參數來減少要學習的參數,降低網絡的復雜度,池化層最常見的包括最大值池化 (max pooling) 和平均值池化 (average pooling) 。

  卷積核在提取特征映射時的動作稱為 padding,其有兩種方式,即 SAME 和 VALID。由於移動步長(Stride)不一定能整除整張圖的像素寬度,我們把不越過邊緣取樣稱為 Vaild Padding,取樣的面積小於輸入圖像的像素寬度;越過邊緣取樣稱為 Same Padding, 取樣的面積和輸入圖像的像素寬度一致。

 

幾種不同的卷積神經網絡:

1.LeNet

  • 輸入層:32 x 32
  • 卷積層:3個
  • 下采樣層:2個 
  • 全連接層:1個
  • 輸出層:10個類別(數字0~9的概率)。

(1)輸入層。輸入圖像尺寸為32 x 32。

(2)卷積層:卷積運算的主要目的是使原信號特征增強,並且降低噪音。

(3)下采樣層:下采樣層主要是想降低網絡訓練參數及模型的過擬合程度。通常有以下兩種方式。

  • 最大池化(max pooling):在選中的區域中找最大的值作為采樣后的值。
  • 平均值池化(mean pooling):把選中區域中的平均值作為采樣后的值。

(4)全連接層:計算輸入向量和權重向量的點積,再加上一個偏置,隨后將其傳遞給 sigmoid 函數,產生單元 i 的一個狀態。

 

2.AlexNet

  AlextNet 由5個卷積層、5個池化層、3個全連接層、大約5000萬個可調參數組成。

優點:使用了如下方法

  •  防止過擬合:Dropout、數據增強。
  • 非線性激活函數:ReLU。
  • 大數據訓練:120萬 ImageNet 圖像數據。
  • GPU 實現、LRN規范化層的使用。

 

此外還有 VGGNet、GoogLeNet、ResNet 等卷積神經網絡模型,這里不再一一敘述。

 

 

***講下解決過擬合的方法。

1)數據增強:增加訓練數據是避免過擬合的好方法,並且能提升算法的准確性。當訓練數據有限的時候,可以通過一些變換從已有的訓練數據集中生成一些新數據。來擴大訓練數據量。通常采用的變形方法以下幾種:

  • 水平翻轉圖像(又稱反射變化,filp)。
  • 從原始圖像隨機地平移變換出一些圖像。
  • 給圖像增加一些隨機的光照(又稱光照、彩色變換、顏色抖動)。

(2)Dropout。以 Alexnet 為例,Alexnet 是以0.5 的概率將每個隱層神經元的輸出設置為0 。以這種方式被抑制的神經元既不參加前向傳播,也不參與反向傳播。因此,每次輸入一個樣本,就相當於該神經網絡嘗試了一個新結構,但是所有這些結果之間共享權重。因為神經元不能依賴於其他神經元而存在,所以這種技術降低了神經元復雜的互適應關系。因此,網絡需要被迫學習更為健壯的特征,這些特征在結合其他神經元的一些不同隨機子集時很有用。Dropout 使收斂所需的迭代次數大致增加了一倍。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM