1. 程式人生 > >【深度學習介紹系列之二】——深度強化學習:卷積神經網路

【深度學習介紹系列之二】——深度強化學習:卷積神經網路

介紹深度學習強化學習中的卷積神經網路

卷積神經網路的大致介紹我們在前一篇文章深度強化學習(一)中已經說過了。本篇文章會詳細介紹卷積神經網路的起源,發展和應用。本篇文章我們會從以下幾個方面介紹:

1)神經網路是什麼

2)卷積神經網路的起源與經典結構

3)卷積網路的發展

4)總結。

一,神經網路是什麼

我們這裡說的神經網路不是生物學上的神經網路,而是計算機模擬生物學的人工神經網路。所謂人工神經網路就是基於模仿生物大腦的結構和功能而構成的一種資訊處理系統。粗略地講,大腦是由大量神經細胞或神經元組成的(入圖1.1)。每個神經元可看作是一個小的處理單元,這些神經元按某種方式連線起來,形成大腦內部的生理神經元網路。

這種神經元網路中各神經元之間聯結的強弱,按外部的激勵訊號做自適應變化,而每個神經元又隨著所接收到的多個接收訊號的綜合大小而呈現興奮或抑制狀態。現已明確大腦的學習過程就是神經元之間連線強度隨外部激勵資訊做自適應變化的過程,而大腦處理資訊的結果則由神經元的狀態表現出來。而人工神經網路就是模擬大腦的神經元組合方式進行資訊處理。


圖1.1 大腦的神經元

上面廢話了那麼多,那現在來介紹下神經網路到底是怎樣的。神經網路的基本單元就是神經元,跟大腦的神經元類似,處理輸入的激勵訊號的。結構如圖12所示。


圖1.2 神經元模型

這個“神經元”是一個以 及截距 為輸入值的運算單元,其輸出為

,其中函式 被稱為“啟用函式”。


在本教程中,我們選用sigmoid函式作為啟用函式 可以看出,這個單一“神經元”的輸入-輸出對映關係其實就是一個邏輯迴歸(logistic regression)[邏輯迴歸將在後續的章節介紹]。其實啟用函式也可以選擇雙曲正切函式(tanh)。函式圖形如圖1.3所示。


圖1.3 sigmod函式和雙曲正切函式圖

介紹完單個神經元,現在該介紹神經網路了。所謂神經網路就是將許多個單一“神經元”聯結在一起,這樣,一個“神經元”的輸出就可以是另一個“神經元”的輸入。首先給大家展示一個簡單的神經網路的圖形,如圖1.4所示。


. 圖1.4 神經網路圖形

我們使用圓圈來表示神經網路的輸入,標上“”的圓圈被稱為偏置節點,也就是截距項。神經網路最左邊的一層叫做輸入層,最右的一層叫做輸出層(本例中,輸出層只有一個節點)。中間所有節點組成的一層叫做隱藏層,因為我們不能在訓練樣本集中觀測到它們的值。同時可以看到,以上神經網路的例子中有3個輸入單元(偏置單元不計在內),3個隱藏單元及一個輸出單元。本例神經網路的計算步驟如下:W表示神經元節點間的輸入權值,x表示神經元的輸入,a是神經元的輸出。


我們將上面的計算步驟叫作前向傳播。

神經網路也可以有多個輸出單元。比如,下面的神經網路有兩層隱藏層: ,輸出層 有兩個輸出單元


上面已經把神經網路構建好了,但是神經網路的引數應該怎麼設定呢?這裡的引數就是神經元之間的連線權值Wij。神經網路的引數訓練是最重要的內容之一,因為引數決定了輸入到輸出的響應(對映)。一般我們先隨機初始化w的值,然後根據訓練樣本集來進行訓練調整w值,讓神經網路對訓練樣本輸入的x響應結果f(x)逼近與樣本的y值,當神經網路對所有樣本都逼近的誤差最小的時候,我們認為這個神經網路對於樣本集的對映函式y=f(x)擬合好了。

上面廢話了那麼多,其實就是讓輸入x產生的f(x)儘量等於y,而調整引數的過程就是依據每次error = f(x)-y的誤差來調整引數,使得error變小。從而我們把w的訓練轉換成了求取誤差最小的目標。那神經網路裡面到底具體怎麼做的呢?採用反向傳播演算法BP。下面我們重點介紹反向傳播演算法:


J(w,b,x,y)表示的輸出值和樣本的平方誤差,J(w,b)的第一項是一個均方差項。第二項是一個規則化項(也叫權重衰減項),其目的是減小權重的幅度,防止過度擬合。

我們需要做的就是讓J誤差最小,這裡就變成了一個優化問題,求取最小值,即最優解。我們採用最快下降演算法進行求解最小值。

其中 是學習速率。我們通過反覆迭代,從最後一層的誤差逐次向前傳播來調整各層的權值W。反向傳播演算法的具體步驟如下:


好了,神經網路的概念和結構以及如何進行引數訓練求解已經大致說完了,下面接著介紹卷積神經網路吧。

二,卷積神經網路

卷積神經網路是人工神經網路的一種,已成為當前語音分析和影象識別領域的研究熱點。它的權值共享網路結構使之更類似於生物神經網路,降低了網路模型的複雜度,減少了權值的數量。該優點在網路的輸入是多維影象時表現的更為明顯,使影象可以直接作為網路的輸入,避免了傳統識別演算法中複雜的特徵提取和資料重建過程。卷積網路是為識別二維形狀而特殊設計的一個多層感知器,這種網路結構對平移、比例縮放、傾斜或者共他形式的變形具有高度不變性。

回想一下BP神經網路。BP網路每一層節點是一個線性的一維排列狀態,層與層的網路節點之間是全連線的。這樣設想一下,如果BP網路中層與層之間的節點連線不再是全連線,而是區域性連線的。這樣,就是一種最簡單的一維卷積網路。如果我們把上述這個思路擴充套件到二維,這就是我們在大多數參考資料上看到的卷積神經網路。具體參看下圖:


卷積網路在有監督方式下學會的,網路的結構主要有稀疏連線和權值共享兩個特點,包括如下形式的約束:
1、 特徵提取。每一個神經元從上一層的區域性接受域得到突觸輸人,因而迫使它提取區域性特徵。一旦一個特徵被提取出來, 只要它相對於其他特徵的位置被近似地保留下來,它的精確位置就變得沒有那麼重要了。
2 、特徵對映。網路的每一個計算層都是由多個特徵對映組成的,每個特徵對映都是平面形式的。平面中單獨的神經元在約束下共享 相同的突觸權值集,這種結構形式具有如下的有益效果:a.平移不變性。b.自由引數數量的縮減(通過權值共享實現)。
3、子抽樣。每個卷積層後面跟著一個實現區域性平均和子抽樣的計算層,由此特徵對映的解析度降低。這種操作具有使特徵對映的輸出對平移和其他 形式的變形的敏感度下降的作用


稀疏連線(Sparse Connectivity)

卷積網路通過在相鄰兩層之間強制使用區域性連線模式來利用影象的空間區域性特性,在第m層的隱層單元只與第m-1層的輸入單元的區域性區域有連線,第m-1層的這些區域性 區域被稱為空間連續的接受域。我們可以將這種結構描述如下:
設第m-1層為視網膜輸入層,第m層的接受域的寬度為3,也就是說該層的每個單元與且僅與輸入層的3個相鄰的神經元相連,第m層與第m+1層具有類似的連結規則,如下圖所示。


可以看到m+1層的神經元相對於第m層的接受域的寬度也為3,但相對於輸入層的接受域為5,這種結構將學習到的過濾器(對應於輸入訊號中被最大啟用的單元)限制在區域性空間 模式(因為每個單元對它接受域外的variation不做反應)。從上圖也可以看出,多個這樣的層堆疊起來後,會使得過濾器(不再是線性的)逐漸成為全域性的(也就是覆蓋到了更 大的視覺區域)。例如上圖中第m+1層的神經元可以對寬度為5的輸入進行一個非線性的特徵編碼。

權值共享(Shared Weights)

在卷積網路中,每個稀疏過濾器hi通過共享權值都會覆蓋整個可視域,這些共享權值的單元構成一個特徵對映,如下圖所示。


在圖中,有3個隱層單元,他們屬於同一個特徵對映。同種顏色的連線權值是相同的,我們仍然可以使用梯度下降的方法來學習這些權值,只需要對原始演算法做一些小的改動, 這裡共享權值的梯度是所有共享引數的梯度的總和。我們不禁會問為什麼要權重共享呢?一方面,重複單元能夠對特徵進行識別,而不考慮它在可視域中的位置。另一方面,權值 共享使得我們能更有效的進行特徵抽取,因為它極大的減少了需要學習的自由變數的個數。通過控制模型的規模,卷積網路對視覺問題可以具有很好的泛化能力。

The Full Model

卷積神經網路是一個多層的神經網路,每層由多個二維平面組成,而每個平面由多個獨立神經元組成。網路中包含一些簡單元和複雜元,分別記為S-元 和C-元。S-元聚合在一起組成S-面,S-面聚合在一起組成S-層,用Us表示。C-元、C-面和C-層(Us)之間存在類似的關係。網路的任一中間級由S-層與C-層 串接而成,而輸入級只含一層,它直接接受二維視覺模式,樣本特徵提取步驟已嵌入到卷積神經網路模型的互聯結構中。

一般地,Us為特徵提取層(子取樣層),每個神經元的輸入與前一層的區域性感受野相連,並提取該區域性的特徵,一旦該區域性特徵被提取後,它與其他特徵間的位置關係 也隨之確定下來;Uc是特徵對映層(卷積層),網路的每個計算層由多個特徵對映組成,每個特徵對映為一個平面,平面上所有神經元的權值相等。特徵對映結構採用 影響函式核小的sigmoid函式作為卷積網路的啟用函式,使得特徵對映具有位移不變性。此外,由於 一個對映面上的神經元共享權值,因而減少了網路自由引數的個數,降低了網路引數選擇的複雜度。卷積神經網路中的每一個特徵提取層(S-層)都緊跟著一個 用來求區域性平均與二次提取的計算層(C-層),這種特有的兩次特徵提取結構使網路在識別時對輸入樣本有較高的畸變容忍能力。

下圖是一個卷積網路的例項,在博文”Deep Learning模型之:CNN卷積神經網路(二) 文字識別系統LeNet-5 “中有詳細講解:


圖中的卷積網路工作流程如下,輸入層由32×32個感知節點組成,接收原始影象。然後,計算流程在卷積和子抽樣之間交替進行,如下所述:

第一隱藏層進行卷積,它由8個特徵對映組成,每個特徵對映由28×28個神經元組成,每個神經元指定一個 5×5 的接受域,這28×28個神經元共享5×5個權值引數,即卷積核;

第二隱藏層實現子 抽樣和區域性平均,它同樣由 8 個特徵對映組成,但其每個特徵對映由14×14 個神經元組成。每個神經元具有一個 2×2 的接受域,一個可訓練 係數,一個可訓練偏置和一個 sigmoid 啟用函式。可訓練係數和偏置控制神經元的操作點;

第三隱藏層進行第二次卷積,它由 20 個特徵對映組 成,每個特徵對映由 10×10 個神經元組成。該隱藏層中的每個神經元可能具有和下一個隱藏層幾個特徵對映相連的突觸連線,它以與第一個卷積 層相似的方式操作。

第四個隱藏層進行第二次子抽樣和區域性平均汁算。它由 20 個特徵對映組成,但每個特徵對映由 5×5 個神經元組成,它以 與第一次抽樣相似的方式操作。

第五個隱藏層實現卷積的最後階段,它由 120 個神經元組成,每個神經元指定一個 5×5 的接受域。

最後是個全 連線層,得到輸出向量。

相繼的計算層在卷積和抽樣之間的連續交替,我們得到一個“雙尖塔”的效果,也就是在每個卷積或抽樣層,隨著空 間解析度下降,與相應的前一層相比特徵對映的數量增加。卷積之後進行子抽樣的思想是受到動物視覺系統中的“簡單的”細胞後面跟著“複雜的”細胞的想法的啟發而產生的。

下面回顧下卷積是怎樣做的


再看看池化怎麼做的:


三,最新的卷積神經網路結構

首先看下2014年CVPR的一個卷積神經網路的結構:


再看2102年結構:


四,總結

CNNs中這種層間聯絡和空域資訊的緊密關係,使其適於影象處理和理解。而且,其在自動提取影象的顯著特徵方面還表現出了比較優的效能。在一些例子當中,Gabor濾波器已經被使用在一個初始化預處理的步驟中,以達到模擬人類視覺系統對視覺刺激的響應。在目前大部分的工作中,研究者將CNNs應用到了多種機器學習問題中,包括人臉識別,文件分析和語言檢測等。為了達到尋找視訊中幀與幀之間的相干性的目的,目前CNNs通過一個時間相干性去訓練,但這個不是CNNs特有的。

特別宣告:

上面大部分內容摘錄與網上的各種教程,本人就是稍微編輯一下,給貼上來了,如有雷同,純屬正常。