神經網絡與深度學習概述 第七章 DBN和卷積神經網絡

本章主要是給大家講一講深度信念網絡 (Deep Belief Network,DBN)卷積神經網絡 (Convolutional Neural Network,CNN) 的相關概念和理解。

深度信念網絡 (DBN)

第六章已經介紹過受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)的概念,第五章介紹了稀疏編碼器和棧式自編碼器,我們已經知道把多個稀疏編碼器堆疊起來就形成了棧式自編碼器,同樣的道理,如果把多個 RBM 像磚塊一樣堆疊起來構建一個網絡,這個網絡就叫做 DBN

DBN 的訓練過程和棧式自編碼器的訓練過程是很相似的,只是用 RBM自編碼器進行替換,並運用對比散度算法替換反向傳播算法作為層間的學習算法。因此只要理解了《 第五章 稀疏編碼和棧式自編碼器》《第六章 受限波爾茲曼機》的內容,就能很簡單地理解深度信念網絡 DBN 了。

卷積神經網絡的結構

對於傳統的神經網絡,神經網絡獲得一個輸入(一個向量),並將其通過一系列的隱藏層轉換。每個隱層由一組神經元組成,其中每個神經元和前一層神經元完全連接,在單層內的神經元完全獨立並且不共享任何連接。最後全連接層叫作"輸出層”,它實現了分類功能並輸出分類的值。

神經網絡與深度學習概述 第七章 DBN和卷積神經網絡

傳統的神經網絡

傳統神經網不能很好地適應所有的圖像。比如,對於一張圖片大小為 32×32×3 ( 32 寬 32 高 3 顏色通道),一個傳統神經網絡將有 32×32×3 = 3072個輸入,假設隱含層有 1000 個神經元(對於有 3072 個輸入的神經網絡而言,1000個神經元並不算多),那麼僅僅看輸入層和隱含層之間的連接權重就有 3072 * 1000 個參數,隨著圖片和隱含層神經元的增加,參數將還會增加。顯然這種全連接結構不能適應更大的圖片,此外,我們幾乎肯定要更少的神經元,讓參數學習起來更快更有效,顯然,這種完全連接的結構很浪費,並且大量的參數會導致過度擬合

卷積神經網絡有很大的優勢,對於包含巨量圖片的輸入而言,它以一種更合理的方式限制結構。特別是,不同於一般的神經網絡,一層的神經元只連接到它之前層的局部區域內,替代了之前完全連接的方式。

在我們深入瞭解實際的卷積神經網絡之前,先簡單瞭解卷積神經網絡每一層的作用。官方的說法:每一層會定義一個圖像過濾器或者稱為一個有相關權重的方陣,這裡其實就是特定特徵的提取,這個特定是根據函數或是人為設定或是其他情況來定的。舉個例子,人類對人臉或臉型的東西會比較敏感,這類特徵會優先提取出來;青蛙的眼睛對運動的物體很敏感(這個例子不適用於靜止圖片),會優先提取運動部分的特徵;貓對耗子、獵手對獵物等很敏感;還有有的對特定的顏色和形狀搭配很敏感的,會優先提取出相應的特徵來。比如,好色的男士,對某些特殊特徵有很高的敏感度。

看完了上面的基礎,我們來看卷積神經網的兩個重要組成部分卷積層( Convolutional layer) 和 池化層( Pooling layer)

  • 卷積層( Convolutional layer)

輸入數據應用若干過濾器,一個輸入被用來做很多重要的特徵提取。比如,圖像的第一卷積層使用 4 個 6×6 過濾器,對圖像應用一個過濾器之後得到的結果被稱為待徵圖 (Feature map,FM)特徵圖譜的數目過濾器的數目相等。如果前面輸入層也是一個卷積,那麼過濾器應用在 FM 上,相當於輸入一個 FM,輸出另外一個 FM,也就是將濾波的特徵值當成輸入,再進行下一次過濾器過濾的過程。從直覺上講,如果將一個權重分佈到整個圖像上,那麼這個特徵就和位置關了。同時多個過濾器可以分別探測出不同的特徵。比如,像青蛙,有的負責提取運動特徵,有的負責提取蚊子特徵,當兩個特徵都提取出來時,就向特徵重合的地方吐舌頭,捕獲美食。

如圖,黃色區域的就是一個過濾器,把這個過濾器運用到整個圖像上就是卷積過程,你可以每次選擇向下和向左平移1步或者多步(stride >=1),當然為了提取圖像邊界特徵你也可以在圖形的外圍加上1圈或者幾圈 0 ,這就叫做zero-padding

過濾器與對應的元素加權求和後就得到卷積後 feature 的值提取出的特徵值再經過一個激活函數映射後得到卷積層最終輸出的特徵

神經網絡與深度學習概述 第七章 DBN和卷積神經網絡

卷積過程

傳統的神經網絡一般用 sigmoid 函數作為激活函數,但是卷積神經網絡一般使用 ReLU 函數修正線性單元/Rectified linear unit)。也就是加權求和後大於 0 則保持不對,如果小於 0 的話就用 0 來代替

神經網絡與深度學習概述 第七章 DBN和卷積神經網絡

ReLU 函數

  • 子採樣樣層( Subsample layer)/又叫池化層( Pooling layer)

池化層用於縮減輸入數據的規模。例如,輸入一個 12×12 的 卷積特徵矩陣,並通過一個 6×6 的子採樣,那麼可以得到一個 2×2 的輸出圖像,這意味著原圖像上的 36 個像素會併成為輸出圖像中的一個像素。實現子採樣的方法有很多種,最常見的是最大值合併、平均值合併及隨機合併。這其實類似於對一個圖層打了馬賽克,再對單個馬賽克進行特徵提取,對計算機來說,可以減少計算量

池化過程就是把卷積後的特徵矩陣分為多個區域,然後選取每個區域的最大值或者平均值作為這個區域的代表,從中提取有代表性的特徵大大減少了參數的數目

神經網絡與深度學習概述 第七章 DBN和卷積神經網絡

池化過程

最後一個子採樣層(或卷積層)通常連接到一個或多個全連接層全連接層輸出就是最終的輸出。全連接層將計算分類的分值,確定最終的類別。這一部分與普通神經網絡相同,這一層中的每個神經元都將和上一層的每個神經元連接。

卷積神經網絡的訓練過程通過改進的反向傳播實現,從全連接層到池化層再到卷積層,逐層改進權重。

參數減少和權值共享

CNN厲害的地方就在於通過局部感知區域權值共享減少了神經網絡需要訓練的參數的個數

  • 局部感知

假設有 1000像素×1000像素 的圖像,則有一百萬個輸入神經元,假設隱含層神經元個數也是1000000,那麼它們全連接的話,也就是每個隱層神經元都連接圖像的每一個像素點,就有1000000×1000000 = 10^12 個連接,也就是 10^12 個權值參數。如果計算所有的連接權重,顯然是不值得的。我們利用之前提到的卷積進行原始數據的分組特徵提取,也就是把它分成一塊一塊後提取特徵。這樣,我們就可以減少連接的數目,也就是減少神經網絡需要訓練的權值參數的個數。假如局部感受區域是 10像素×10像素,也就是設定過濾器是 10像素 ×10像素,隱層每個感受區域只需要和這 10像素 × 10像素 的局部圖像相連接,所以1百萬個隱層神經元就只有一億個連接,即 10^8 個參數,比原來減少了4個數量級,大幅度減少了計算量

  • 權值共享

在上面的局部連接中,每個神經元都對應100個參數,一共1000000個神經元,如果這1000000個神經元的100個參數都是相等的,那麼參數數目就變為100。

權值共享:我們可以將這 100 個參數(也就是卷積操作)看成是提取特徵的方式,該方式與圖像上的位置無關,這其中隱含的原理是:圖像的一部分統計特性與其他部分是一樣的。這也意味著我們在這部分學習的特徵也能在用在另一部分上,所以對於這個圖像上的所有位置,我們都能使用同樣的學習特徵。

更直觀一些,當從一個大尺寸圖像中隨機選取一小塊,比如說 8×8 作為樣本,並且從這個小塊樣本中學習到了一些特徵,那麼我們就可以把從這個 8×8 樣本中學習到的特徵作為探測器,應用到這個圖像的任意地方中去,看看其他地方有沒有出現類似的特徵。特別是,我們可以用從 8×8 樣本中學習到的特徵跟原本的大尺寸圖像做卷積,從而可以在這個大尺寸圖像上的任意一個位置獲得一個特徵的不同激活值,表明圖像的其他位置與該特徵的符合程度,每個卷積都是一種特徵提取方式,就像一個篩子,將圖像中符合條件(激活值越越符合條件)的那部分特徵篩選出來

你會發現,如果只用一個濾波器(卷積核),這樣提取特徵只是提取了一種特徵。我們需要對各種圖像特徵進行特徵提取,比如數字識別和圖像識別就不一樣,我們需要提取不同的特徵通過多加幾種卷積核(過濾器)

如上所述,只有100個參數時,表明只有 1 個 10×10 的卷積核。顯然,特徵提取是不充分的,也就是說,卷積核不夠,我們可以添加多個卷積核,比如100種卷積核,可以學習100種特徵

所以,假設我們加到 100 種卷積核,每種卷積核的參數不一樣,則表示它提出輸入圖像的不同特徵,例如不同的邊緣。這樣每種卷積核去卷積圖像就得到對圖像的不同特徵的表示。這樣,我們就能很清晰地得到我們這一層的參數是:100種卷積核 x 每種卷積核共享100個參數 = 100 ×100 =10000,也就是 1 萬個參數。看一下最開始我們的參數是10^12,而且只是一種特徵提取,現在我們把它縮減到 1 萬個參數,還能提取100種特徵,這相當於利用算法的進步降低了很多計算的成本

總結,卷積神經網絡核心思想是將完整輸入信息切分成一個個子採樣層進行採樣,然後將提取的特徵和權重值作為輸入參數,傳導到下一層。這其中充分利用了權值共享、特徵分區提取、時間或空間採樣規則等方法。

卷積網絡較一般神經網絡在圖像處理方面有如下優點:

  • 輸入圖像和網絡的拓撲結構能更好地吻合;

  • 特徵提取和模式分類同時進行,並同時在訓練中產生;

  • 權重共享可以減少網絡的訓練參數,使神經網絡結構變得更簡單,適應性更強。

卷積神經網絡目前已成為語音分析圖像識別領域的研究熱點。它的權值共享網絡結構使它更類似於生物神經網絡,降低了網絡模型的複雜度,減少了權值的數量。卷積神經網絡的這個優點在網絡的輸入是多維圖像時表現得更為明顯,使圖像可以直接作為網絡的輸入,避免了傳統識別算法中複雜的特徵提取數據重建過程。

相關推薦

推薦中...