【TensorFlow】01 TensorFlow簡介與Python基礎
778
2025-03-31
第3章卷積神經網絡的現代雛形——LeNet
在深度學習的發展史上,卷積神經網絡具有舉足輕重的地位,對提升計算機視覺的研究水平和實際性能起到了其他方法無可替代的作用。卷積神經網絡是受到視覺系統的神經機制啟發而提出的模型,其核心思想在于局部感受野和權值共享。1984年日本學者K. Fukushima提出的神經認知機被認為是第一個實現的卷積神經網絡。1998年,Y. Lecun等人將卷積層和下采樣層相結合,建立了卷積神經網絡的現代雛形——LeNet,曾被廣泛應用于美國銀行支票手寫數字識別。本章將先后介紹LeNet的原始模型、標準模型、學習算法、Caffe代碼實現及說明、字符識別案例、交通標志識別案例和交通路網提取案例。
3.1 LeNet的原始模型
第1個真正的卷積神經網絡是Y. Lecun等人在1998年提出的,稱為LeNet[19]。雖然LeNet現在主要指LeNet5(或LeNet-5),但也可以包括LeNet-1和LeNet-4等模型結構。其主要特征是將卷積層和下采樣層相結合作為網絡的基本結構,共包含3個卷積層和2個下采樣層。最初設計LeNet的目的是識別手寫字符和打印字符,效果非常好,曾被廣泛應用于美國銀行支票手寫體識別,取得了很大成功。
在LeNet的原始模型中,輸入是一個矩陣或圖像,大小為32×32。如果不計輸入層,那么這個模型共有7層,包括3個卷積層、2個下采樣層、1個全連接層和1個輸出層,其總體結構如圖3.1所示。
C1層是第1個卷積層,包含6個卷積特征圖(convolutional feature map)。每個卷積特征圖的大小都是28×28,由一個5×5的卷積核(卷積濾波器)對輸入圖像進行內卷積運算得到,其中每個神經元與輸入中相應5×5區域相連。C1層共有156個參數,因為每個卷積核有5×5 = 25個權值和1個偏置,6個卷積核共有(25 + 1)×6 = 156個參數,還有122?304個連接。
圖3.1 LeNet的原始模型結構示意圖
S2層是第1個下采樣層,包含6個14×14的下采樣特征圖。每個下采樣特征圖都是由C1層的相應卷積特征圖經過大小為2×2、步長為2的窗口進行平均池化,然后再利用激活函數sigmoid進行一次非線性變換處理得到。進行下采樣的目的是利用局部相關性減少后續數據處理量,同時又保留有用信息。與C1層的卷積特征圖相比,S2層的下采樣特征圖整體上縮小為原來的1/4,行列各縮小為原來的1/2。另外,每個下采樣特征圖還有一個權值參數和一個偏置參數,6個特征圖共包含12個可訓練參數,以及5880個連接。
C3層是第2個卷積層,包含16個10×10的卷積特征圖。在每個卷積特征圖中,每個神經元都與S2層的若干個5×5鄰域存在局部連接,這些5×5鄰域分別位于不同特征圖的相同位置上,詳細的連接關系如表3.1所示。表3.1的第1行對C3的16個卷積特征圖從0到15進行編號,第1列對S2的6個下采樣特征圖從0到5進行編號。不難看出,在C3層的16個卷積特征圖中,有6個的神經元與S2層的3個下采樣特征圖存在局部連接(見表3.1的第2~7列),有9個神經元與S2層的4個下采樣特征圖存在局部連接(見表3.1的第8~15列),還有1個神經元與S2層的6個下采樣特征圖都存在局部連接(見表3.1的第16列)。通過簡單的計算易知,C3層總共有6×(3×5×5 + 1)+ 9×(4×5×5 + 1)+ 1×(6×5×5 + 1)= 1516個參數,還有151?600個連接。
表3.1 在LeNet的原始模型中S2層到C3層的連接關系
S4層是第2個下采樣層,包含16個5×5的下采樣特征圖。每個下采樣特征圖都是由C3層的相應卷積特征圖經過2×2不重疊窗口的平均池化,然后再利用激活函數sigmoid進行一次非線性變換處理得到。與C3層的卷積特征圖相比,S4層的下采樣特征圖整體上縮小為原來的1/4,行列各縮小為原來的1/2。另外,每個下采樣特征圖還有一個權值參數和一個偏置參數,16個下采樣特征圖共包含32個可訓練參數和2000個連接。
C5層是第3個卷積層,包含120個1×1的卷積特征圖。其中每個神經元與S4層中所有下采樣特征圖的一個5×5鄰域相連。由于下采樣特征圖和卷積核的大小都是5×5,所以C5層的卷積特征圖大小為1×1。這也意味著從S4到C5實際上是一種全連接。C5層被標記為卷積層而不是全連接層,是因為LeNet-5的輸入通過填充補零變大了,但其他部分保持不變,導致C5層的特征圖大于1×1。另外,考慮到每個卷積特征圖還有一個偏置,C5層共有(16×5×5 + 1)×120 = 48?120個可訓練參數。
F6層是全連接層,包含84個神經元。每個神經元與C5層的所有神經元相連,其值由C5層的輸出向量與F6的權重向量做內積,加上一個偏置,再經過尺度化雙曲正切函數(scaled hyperbolic tangent)的擠壓作用得到。F6層共有84×120 + 84 = 10?164個可訓練參數。
最后一層是輸出層,由10個歐幾里得徑向函數神經元組成。每個這樣的神經元代表一個類別,且都與F6層的84個神經元相連,其輸出值由輸入向量和權值向量的歐氏距離平方得到。顯然,輸出層的可訓練參數共有84×10 = 840個。
圖3.2 LeNet的標準模型結構。每個平面表示一個特征圖,其中所有神經元共享權值,但偏置可能不同
神經網絡 卷積神經網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。