官术网_书友最值得收藏!

4.1 卷積神經網絡的結構

先來看看計算機是如何識別圖像的。

計算機識圖與十字繡很相似。十字繡首先在樣布上用經緯線畫出等距離的一個個小方格,在每個小方格中標出要刺秀的絲線顏色。繡工按此要求,對每個格子繡上不同顏色的絲線,就可以繡出一幅事先設計好的圖像。計算機識別圖像的過程正是十字繡的逆過程。

如圖4-1所示,對一幅圖片,計算機首先將其劃分成若干個方格(像素點),再逐個識別每個格子上的顏色,將其用數字表示,這樣就得到了一個維數很大的數字矩陣,圖片信息也就存儲在這個數字矩陣中。

圖4-1 計算機識別圖像示意

后面會看到,為了避免對所產生的超大矩陣進行計算,卷積網絡識圖在識別每個像素點后,會將一個完整的圖片分割成許多個小部分,把每個小部分里具有的特征提取出來(也就是識別每個小部分),再將這些小部分具有的特征匯總到一起,組成一個維數較小的矩陣來代替原始的大維數矩陣。

有了計算機識別圖像的初步印象后,還是回到卷積神經網絡的發端,生物視覺神經系統。

1981年諾貝爾獎獲得者Hubel和Wiesel發現了人的視覺系統的信息處理是分級的。如圖4-2所示,獼猴的視覺感知與人類相似。LGN(Lateral Geniculate Nucleus):外側膝狀體;V1:初級視覺皮層;V2:次級視覺皮層;V4:視覺區;AIT和PIT:前下顳葉皮層和后下顳葉皮層;PFC:前額葉皮層;PMC:前運動皮層;MC:運動皮層。視覺系統首先由眼睛觀察,經視網膜(Retina)觸發,經過低級的V1區提取邊緣特征,到V2區提取基本形狀或目標的局部,再到高層的整個目標(如判定為一張人臉),以及到更高層的PFC(前額葉皮層)進行分類判斷等。也就是說高層的特征是低層特征的組合,從低層到高層的特征表達越來越抽象和概念化,也即越來越能表現語義或者意圖。

圖4-2 獼猴視覺系統的信息流動示意圖

(圖片來源:Simon Thorpe)

由此可見,生物的視覺識別過程是一個不斷迭代、不斷抽象的過程。如圖4-3所示,從原始信號攝入開始(瞳孔攝入像素),接著做初步處理(大腦皮層某些細胞發現邊緣和方向),然后抽象(大腦判定眼前物體的形狀,比如是橢圓形的),然后進一步抽象(大腦進一步判定該物體是張人臉),最后識別眼前的這個人。

圖4-3 視覺的分層處理結構(圖片來源:Stanford)

根據這一發現,1984年日本大阪大學的福島邦彥(Fukushima)提出了神經認知機(Neocognitron),如圖4-4所示。神經認知機是一種分層的神經網絡模型,這種分層模型的生物依據就是Hubel和Wiesel的研究發現,同時,分層的結構大大簡化了全連接的神經網絡結構。

圖4-4 神經認知機的結構

神經認知機的設計目標是識別0~9的手寫數字,現在通常認為是卷積神經網絡的雛形,正是神經認知機,激發了隨后的卷積神經網絡的誕生。

在神經認知機中,由負責提取對比度的G層細胞,負責提取圖形特征的S(Simple)層細胞,和抗變形的C(Complex)層細胞交替排列組成。C細胞負責輸出識別結果。

借助S層和C層的交替排列結構,各種輸入模式的信息會在經過S層提取特征后,通過C層對特征畸變的容錯,再反復迭代后被傳播到后一層。

經過這樣的過程,在底層抽取的局部特征會逐漸變成全局特征。C層還可以消除輸入模式因擴大、縮小或平移而產生的畸變。

楊立昆在神經認知機的基礎上,引入了誤差反向傳播算法,得到了卷積神經網絡。

卷積神經網絡模仿生物的視覺識別過程,通過多個網絡層的分層合作,不斷迭代、不斷抽象地完成特征空間的構建。第一層學習低級特征,如顏色和邊緣,第二層學習高級特征,如角、點,第三層學習小塊或紋理特征,最后完成分類或回歸任務。完整的視覺的分層處理結構如圖4-5所示。

圖4-5 完整的視覺的分層處理結構

在介紹卷積神經網絡之前,有必要先介紹什么是卷積?

在數學上,卷積運算是2個可積函數的乘積再進行積分或累加,生成第3個函數,有連續變量和離散變量兩種形式。

連續變量形式:

離散變量形式:

數學解釋:先對變量為(τ/i)的函數g作翻轉變換(?τ/?i),這相當于沿平面坐標中的x軸把函數g(·)從y軸的右邊褶到左邊去,也就是卷積的“卷”的由來。然后再把函數g(·)平移(x/n)個單位,接著讓兩個函數fg相乘,最后求積分/相加,這個過程是卷積的“積”的過程。

卷積運算可以用來求兩個函數乘積的Laplace變換。

Laplace變換的定義為:

這樣一個積分變換可以將帶有初值問題的微分方程求解問題轉換成求解一個代數方程,最后再利用Laplace逆變換求出該微分方程的解。因此,Laplace變換是一個用途很廣的積分變換。可是,由于Laplace變換的線性性,使其只能完成函數加法的Laplace變換運算,無法處理函數乘積的Laplace變換運算,這需要引入卷積來處理。

卷積定理告訴我們,對兩個函數的卷積做Laplace變換,等于分別對這兩個函數做Laplace變換,然后再相乘。用數學表示就是:

當卷積運算引入到圖像處理中,卷積運算的兩個函數f(τ)和g(x?τ)分別代表輸入圖像原始像素點的矩陣和卷積核矩陣,函數的乘積是兩個矩陣的乘積。

在實際計算時,需要將矩陣按自左向右、自上向下的順序,由二維向量轉變為一維向量,其中的變量x是滑動步長,關于滑動步長的概念稍后介紹。

介紹了卷積運算概念后,下面開始介紹卷積神經網絡。

先了解卷積神經網絡的結構。與前面介紹的前饋型神經網絡一樣,卷積神經網絡也是分層網絡結構,如圖4-6所示,一個卷積神經網絡由輸入層(input layer)、卷積層(convolution layer)、池化層(pooling layer)、全連接層(fully connected layer)和輸出層(output layer)組成,卷積層和池化層可以多層交替得到更深層次的網絡,最后的全連接層也可以采用多層結構,每一層的工作原理和用途稍后介紹。

圖4-6 卷積神經網絡的結構

下面先簡要說明卷積神經網絡大致的工作過程。假定給卷積神經網絡輸入一張照片,目的是將照片中所含的物件準確歸類,接下來神經網絡需要做以下幾步:

輸入層:將照片轉換成二維數字矩陣。將照片讀入系統,根據照片中每個像素的色彩和敏感度將其轉乘一個二維數字矩陣;

卷積層:初步提取特征。用一個小的方陣,從左到右、自頂向下滑過整個照片矩陣,每次滑動停頓時,完成卷積矩陣與其當前覆蓋照片區域的矩陣的點積運算,結果會生成一個比原始照片矩陣小一點的特征矩陣,其中記錄了照片的某些特征;

池化層:對由卷積產生的特征矩陣分區域(固定大小的方陣)提取統計特征,得到更小的特征矩陣;

全連接層:將各部分特征匯總,使用ReLU激活函數輸出特征值;

輸出層:由softmax函數根據輸出層輸出的各個特征值,根據最大似然估計,給出分類結論,完成分類識別。

主站蜘蛛池模板: 河南省| 沙洋县| 安徽省| 龙江县| 烟台市| 措美县| 天台县| 蒲江县| 攀枝花市| 建湖县| 阿荣旗| 亚东县| 太仆寺旗| 高碑店市| 饶平县| 尼木县| 浮山县| 乐东| 疏勒县| 清徐县| 嘉义市| 犍为县| 化州市| 交口县| 芮城县| 阳高县| 淮阳县| 永城市| 阿克苏市| 腾冲县| 防城港市| 汪清县| 炉霍县| 巴彦淖尔市| 镇原县| 乌鲁木齐市| 北宁市| 原平市| 贵德县| 昂仁县| 丹江口市|