基本 CNN 架構:解釋 5 層卷積神經網絡

已發表: 2020-12-07

目錄

介紹

在 IT 行業的最後幾年中,對曾經被稱為深度學習的特定技能組合的需求巨大。 深度學習是機器學習的一個子集,由受人腦或神經網絡功能啟發的算法組成。

這些結構稱為神經網絡。 它教計算機做人類自然會做的事情。 深度學習,有幾種類型的模型,例如人工神經網絡 (ANN)、自動編碼器、循環神經網絡 (RNN) 和強化學習。 但是有一種特殊的模型在計算機視覺和圖像分析領域做出了很大貢獻,那就是卷積神經網絡 (CNN) 或 ConvNets。

CNN 是一類深度神經網絡,可以識別和分類圖像中的特定特徵,廣泛用於分析視覺圖像。 它們的應用範圍包括圖像和視頻識別、圖像分類、醫學圖像分析、計算機視覺和自然語言處理。

CNN 中的術語“卷積”表示卷積的數學函數,它是一種特殊的線性運算,其中兩個函數相乘以產生第三個函數,該函數表示一個函數的形狀如何被另一個函數修改。 簡單來說,可以將兩個可以表示為矩陣的圖像相乘以給出用於從圖像中提取特徵的輸出。

從世界頂級大學在線學習機器學習——碩士、高級管理人員研究生課程和 ML 和 AI 高級證書課程,以加快您的職業生涯。

學習:深度學習和神經網絡簡介

基本架構

CNN 架構有兩個主要部分

  • 一種卷積工具,用於分離和識別圖像的各種特徵,以便在稱為特徵提取的過程中進行分析
  • 一個完全連接的層,它利用卷積過程的輸出,並根據前一階段提取的特徵預測圖像的類別。

資源

卷積層

構成 CNN 的層由三種類型的層組成,它們是卷積層、池化層和全連接 (FC) 層。 當這些層堆疊起來時,就會形成一個 CNN 架構。 除了這三層之外,還有兩個更重要的參數,即 dropout 層和下面定義的激活函數。

1.卷積層

該層是用於從輸入圖像中提取各種特徵的第一層。 在這一層中,在輸入圖像和特定大小 MxM 的濾波器之間執行卷積的數學運算。 通過在輸入圖像上滑動過濾器,就過濾器的大小 (MxM) 在過濾器和輸入圖像的各個部分之間進行點積。

輸出稱為特徵圖,它為我們提供有關圖像的信息,例如角和邊緣。 稍後,這個特徵圖被饋送到其他層以學習輸入圖像的其他幾個特徵。

2. 池化層

在大多數情況下,卷積層之後是池化層。 該層的主要目的是減小卷積特徵圖的大小以降低計算成本。 這是通過減少層之間的連接並在每個特徵圖上獨立操作來執行的。 根據使用的方法,有幾種類型的池化​​操作。

在 Max Pooling 中,最大的元素取自特徵圖。 平均池計算預定義大小的圖像部分中元素的平均值。 預定義部分中元素的總和在 Sum Pooling 中計算。 池化層通常充當卷積層和 FC 層之間的橋樑

必讀:神經網絡項目理念

3. 全連接層

全連接(FC)層由權重和偏差以及神經元組成,用於連接兩個不同層之間的神經元。 這些層通常放置在輸出層之前,形成 CNN 架構的最後幾層。

在此,來自先前層的輸入圖像被展平並饋送到 FC 層。 然後,扁平化的向量會經歷更多的 FC 層,通常會在這些層中進行數學函數運算。 在這個階段,分類過程開始發生。

4.輟學

通常,當所有特徵都連接到 FC 層時,可能會導致訓練數據集過擬合。 當特定模型在訓練數據上運行良好時,就會發生過度擬合,從而在用於新數據時對模型的性能產生負面影響。

為了克服這個問題,使用了一個 dropout 層,其中在訓練過程中從神經網絡中刪除了一些神經元,從而減小了模型的大小。 在通過 0.3 的 dropout 時,30% 的節點會從神經網絡中隨機刪除。

5. 激活函數

最後,CNN 模型最重要的參數之一是激活函數。 它們用於學習和逼近網絡變量之間的任何類型的連續和復雜關係。 簡而言之,它決定模型的哪些信息應該在前向觸發,哪些不應該在網絡末端。

它增加了網絡的非線性。 有幾種常用的激活函數,例如 ReLU、Softmax、tanH 和 Sigmoid 函數。 這些功能中的每一個都有特定的用途。 對於二元分類 CNN 模型,sigmoid 和 softmax 函數是首選,對於多類分類,通常使用 softmax。

LeNet-5 CNN 架構

1998 年,Yann LeCun、Leon Bottou、Yoshua Bengio 和 Patrick Haffner 在題為“Gradient-Based Learning Applied to Document Recognition”的研究論文中介紹了 LeNet-5 架構。 它是最早、最基本的 CNN 架構之一。

它由7層組成。 第一層由尺寸為 32×32 的輸入圖像組成。 它與 6 個大小為 5×5 的過濾器進行卷積,得到 28x28x6 的尺寸。 第二層是池化操作,過濾大小為 2×2,步幅為 2。因此,生成的圖像尺寸將為 14x14x6。

類似地,第三層也涉及卷積操作,包含 16 個大小為 5×5 的過濾器,然後是第四個池化層,其過濾器大小相似,為 2×2,步幅為 2。因此,生成的圖像尺寸將減少到 5x5x16。

一旦圖像尺寸減小,第五層是一個全連接卷積層,具有 120 個過濾器,每個過濾器大小為 5×5。 在這一層中,這一層中的 120 個單元中的每一個都將連接到前一層的 400 個(5x5x16)單元。 第六層也是一個全連接層,有 84 個單元。

最後的第七層將是一個 softmax 輸出層,具有“n”個可能的類,具體取決於數據集中的類數。

資源

上圖是 LeNet-5 CNN 架構的 7 層的表示。

下面是使用 keras 庫和 TensorFlow 框架構建 LeNet-5 CNN 架構的 Python 代碼快照

在 Python 編程中,最常用的模型類型是 Sequential 類型。 這是在 keras 中構建 CNN 模型的最簡單方法。 它允許我們逐層構建模型。 'add()' 函數用於向模型添加層。 如上所述,對於 LeNet-5 架構,有兩個 Convolution 和 Pooling 對,後跟一個 Flatten 層,該層通常用作 Convolution 和 Dense 層之間的連接。

密集層是主要用於輸出層的層。 使用的激活是“Softmax”,它為每個類提供一個概率,它們總和為 1。該模型將基於概率最高的類進行預測。

該模型的摘要顯示如下。

結論

因此,在本文中,我們了解了 CNN 的基本結構、架構和構成 CNN 模型的各個層。 此外,我們還看到了一個非常著名的傳統 LeNet-5 模型及其 Python 程序的架構示例。

如果您有興趣了解有關機器學習課程的更多信息,請查看 IIIT-B 和 upGrad 的機器學習和人工智能執行 PG 計劃,該計劃專為工作專業人士設計,提供 450 多個小時的嚴格培訓、30 多個案例研究和作業, IIIT-B 校友身份、5 個以上實用的實踐頂點項目和頂級公司的工作協助。

CNN 中的激活函數是什麼?

激活函數是 CNN 模型中最重要的組成部分之一。 它們用於學習和逼近任何形式的網絡變量與變量之間的關聯,這種關聯既連續又復雜。 簡單來說,它決定了哪些模型信息應該向前流動,哪些不應該在網絡端流動。 它賦予網絡非線性。 ReLU、Softmax、tanH 和 Sigmoid 函數是一些最常用的激活函數。 所有這些功能都有不同的用途。 對於 2 類 CNN 模型,sigmoid 和 softmax 函數更受青睞,而 softmax 通常用於多類分類。

卷積神經網絡架構的基本組成部分是什麼?

一個輸入層、一個輸出層和多個隱藏層組成了卷積網絡。 與標準神經網絡中的神經元(寬度、高度和深度)不同,卷積網絡層中的神經元以三個維度排列。 這使 CNN 能夠將 3D 輸入體積轉換為輸出體積。 卷積、池化、歸一化和全連接層構成了隱藏層。 CNN 中使用多個卷積層將輸入量過濾到更高的抽象級別。

標準 CNN 架構有什麼好處?

雖然傳統的網絡架構僅由堆疊的捲積層組成,但較新的架構研究了構建卷積層的新方法,以提高學習效率。 這些架構為機器學習從業者提供了通用的架構建議,以適應各種計算機視覺問題。 這些架構可用作圖像分類、對象識別、圖片分割和各種其他高級任務的豐富特徵提取器。