卷積神經網絡(CNN)簡介-1

卷積神經網絡簡介

卷積神經網絡(CNN)是計算機視覺中常用的一種深度學習神經網絡 架構。計算機視覺是人工智能的一個領域,它使計算機能夠理解和解釋圖像或視覺數據。

在機器學習方面,人工神經網絡 表現非常出色。神經網絡用于各種數據集,如圖像、音頻和文本。不同類型的神經網絡用于不同的目的,例如,為了預測單詞序列,我們使用循環神經網絡 ,更準確地說是LSTM ,同樣,對于圖像分類,我們使用卷積神經網絡。在本博客中,我們將為CNN構建一個基本構建塊。

目錄

? 神經網絡:層和功能

? 卷積神經網絡

o CNN 架構

o 卷積層是如何工作的?

o 卷積的數學概述

o 用于構建 ConvNet 的層

? 示例:將 CNN 應用于圖像

? 卷積神經網絡 (CNN) 的優缺點

? 神經網絡:層和功能

在常規神經網絡中,有三種類型的層:

1. Input Layers(輸入層):這是我們為模型提供輸入的層。該層中的神經元數量等于我們數據中的特征總數(圖像中的像素數)。

1. 隱藏層:然后,來自Input層的輸入被饋送到隱藏層中。根據我們的模型和數據大小,可以有許多隱藏層。每個隱藏層可以有不同數量的神經元,這些神經元通常大于特征的數量。每一層的輸出是通過矩陣乘前一層的輸出與該層的可學習權重,然后加上可學習偏差,然后是激活函數來計算的,這使得網絡非線性。

1. 輸出層:然后將隱藏層的輸出饋送到sigmoid或softmax等logistic函數中,該函數將每個類的輸出轉換為每個類的概率分數。

將數據輸入模型并從上述步驟獲得每一層的輸出稱為前饋 ,然后我們使用誤差函數計算誤差,一些常見的誤差函數是交叉熵、平方損失誤差等。error 函數用于測量網絡的性能。之后,我們通過計算導數來反向傳播到模型中。此步驟稱為Backpropagation ,基本上用于最小化損失。

? 卷積神經網絡

卷積神經網絡(CNN)是人工神經網絡(ANN)的擴展版本,主要用于從網格狀矩陣數據集中提取特征。例如,數據模式起著廣泛作用的圖像或視頻等視覺數據集。

? CNN架構

卷積神經網絡由多個層組成,如輸入層、卷積層、池化層和全連接層。

卷積神經網絡(CNN)簡介-1的圖1

卷積層對輸入圖像應用過濾器以提取特征,池化層對圖像進行下采樣以減少計算,全連接層進行最終預測。網絡通過反向傳播和梯度下降來學習最佳濾波器。

卷積層是如何工作的?

卷積神經網絡或covnet是共享其參數的神經網絡。假設您有一張圖片。它可以表示為具有長度、寬度(圖像尺寸)和高度(即圖像通常具有紅色、綠色和藍色通道的通道)的長方體。

卷積神經網絡(CNN)簡介-1的圖2

現在想象一下,從這張圖片中獲取一小塊,并運行一個小型神經網絡,稱為過濾器或內核,其中包含 K 個輸出,并垂直表示它們?,F在在整個圖像上滑動該神經網絡,結果,我們將得到另一個具有不同寬度、高度和深度的圖像?,F在,我們不僅有 R、G 和 B 通道,而且有更多的通道,但寬度和高度更小。此操作稱為卷積。如果補丁大小與圖像的大小相同,它將是一個常規神經網絡。由于這個小塊,我們的權重較少。

卷積神經網絡(CNN)簡介-1的圖3

? 卷積的數學概述

現在讓我們談談整個卷積過程中涉及的一些數學運算。

? 卷積層由一組可學習的濾波器(或內核)組成,這些濾波器的寬度和高度較小,深度與輸入體積的深度相同(如果輸入層是圖像輸入,則為 3)。

? 例如,如果我們必須對尺寸為 34x34x3 的圖像運行卷積。濾鏡的可能大小可以是 axax3,其中 'a' 可以是 3、5 或 7 之類的大小,但與圖像尺寸相比更小。

? 在前向傳遞期間,我們逐步在整個輸入體積上滑動每個濾波器,其中每個步驟稱為步幅 (對于高維圖像,該值可以是 2、3 甚至 4),并根據輸入體積計算內核權重和補丁之間的點積。

? 當我們滑動過濾器時,我們將獲得每個過濾器的 2-D 輸出,我們將它們堆疊在一起,因此,我們將得到深度等于過濾器數量的輸出體積。網絡將學習所有過濾器。

? 用于構建 ConvNet 的層

完整的卷積神經網絡架構也稱為 covnet。covnets 是一系列層,每一層都通過可微函數將一個體積轉換為另一個體積。

圖層類型:數據集讓我們以對尺寸為 32 x 32 x 3 的圖像運行 covnets 為例。

? Input Layers(輸入層):這是我們為模型提供輸入的層。在 CNN 中,通常輸入將是一張圖像或一系列圖像。此圖層包含寬度為 32、高度為 32 和深度為 3 的圖像的原始輸入。

? 卷積層:這是用于從輸入數據集中提取特征的層。它將一組稱為內核的可學習過濾器應用于輸入圖像。過濾器/內核是較小的基質,通常為 2×2、3×3 或 5×5 形狀。它在輸入圖像數據上滑動,并計算 Kernel Weight 和相應的 Input Image Patch 之間的點積。該層的輸出稱為特征圖。假設我們在這個層總共使用 12 個濾波器,我們將得到一個維度為 32 x 32 x 12 的輸出體積。

? 激活層: 通過將激活函數添加到前一層的輸出中,激活層為網絡增加了非線性。它將對卷積層的輸出應用元素激活函數。一些常見的激活函數有 RELU:max(0, x)、TanhLeaky RELU 等。體積保持不變,因此輸出體積的尺寸為 32 x 32 x 12。

? 池化層: 該層定期插入 covnet 中,其主要功能是減小卷的大小,從而使計算更快,減少內存,還可以防止過擬合。兩種常見的池化層類型是 max 池化平均池化。如果我們使用具有 2 x 2 個過濾器且步幅為 2 的最大池,則生成的體積將為 16x16x12 的維度。

卷積神經網絡(CNN)簡介-1的圖4

? Flattening:生成的特征圖在卷積層和池化層之后被展平為一維向量,以便它們可以傳遞到完全鏈接的層中進行分類或回歸。

? Fully Connected Layers:它從前一層獲取輸入并計算最終的分類或回歸任務。

卷積神經網絡(CNN)簡介-1的圖5

? 輸出層:然后將全連接層的輸出饋送到 sigmoid 或 softmax 等分類任務的 logistic 函數中,該函數將每個類的輸出轉換為每個類的概率分數。

? 示例:將 CNN 應用于圖像

讓我們考慮一張圖像,并應用卷積層、激活層和池化層操作來提取內部特征。

輸入圖片:

卷積神經網絡(CNN)簡介-1的圖6

? 步驟:

? 導入必要的庫

? 設置參數

? 定義內核

? 加載圖像并繪制它。

? 重新設置圖像格式

? 應用卷積層操作并繪制輸出圖像。

? 應用激活層操作并繪制輸出圖像。

? 應用池化層操作并繪制輸出圖像。

原始灰度圖像

卷積神經網絡(CNN)簡介-1的圖7

輸出:

卷積神經網絡(CNN)簡介-1的圖8

1. 卷積神經網絡 (CNN) 的優缺點

2. CNN 的優點:

3. 擅長檢測圖像、視頻和音頻信號中的模式和特征。

1. 對平移、旋轉和縮放不變性具有魯棒性。

1. 端到端訓練,無需手動提取特征。

1. 可以處理大量數據并實現高準確性。

4. CNN 的缺點:

1. 訓練的計算成本很高,并且需要大量內存。

1. 如果沒有足夠的數據或使用適當的正則化,則容易出現過擬合。

1. 需要大量標記數據。

1. 可解釋性有限,很難理解網絡學到了什么。

5. 卷積神經網絡 – 常見問題解答

6. 什么是卷積神經網絡 (CNN)?

卷積神經網絡 (CNN) 是一種非常適合圖像和視頻分析的深度學習神經網絡。CNN 使用一系列卷積和池化層從圖像和視頻中提取特征,然后使用這些特征對對象或場景進行分類或檢測。

7. CNN 的工作原理是什么?

CNN 的工作原理是將一系列卷積層和池化層應用于輸入圖像或視頻。卷積層通過在圖像或視頻上滑動一個小濾波器或內核,并計算濾波器和輸入之間的點積,從輸入中提取特征。然后,池化層對卷積層的輸出進行下采樣,以降低數據的維度并提高其計算效率。

8. CNN 和卷積有什么區別?

? CNN(卷積神經網絡)是一種深度學習神經網絡,旨在通過使用卷積層提取特征來處理網格狀數據,例如圖像。

? 另一方面,卷積是 CNN 中的特定數學運算,它將過濾器(內核)應用于輸入數據(如圖像)以檢測邊緣或紋理等模式。

9. CNN 的基本原理是什么?

卷積神經網絡 (CNN) 的基本原理是通過使用卷積層從輸入數據(通常是圖像)中自動學習和提取分層特征。

10. 什么是卷積及其類型?

卷積是卷積神經網絡 (CNN) 中應用的一種數學運算,用于從輸入數據(例如圖像)中提取特征。在 CNN 的上下文中,卷積涉及在輸入數據上滑動濾波器(內核),計算濾波器和輸入的一小塊之間的點積,并生成特征圖。

11. CNN 中有多少層?

CNN 中沒有固定的層數,因為它因架構和任務而異。

12. 在 CNN 中使用多個卷積層的目的是什么?

在 CNN 中使用多個卷積層可以使網絡從輸入圖像或視頻中學習越來越復雜的特征。第一個卷積層學習簡單的特征,例如邊緣和角落。更深的卷積層學習更復雜的特征,例如形狀和對象。

13. 卷積層和池化層有什么區別?

卷積層從輸入圖像或視頻中提取特征,而池化層對卷積層的輸出進行下采樣。卷積層使用一系列過濾器來提取特征,而池化層使用各種技術對數據進行下采樣,例如最大池化和平均池化。

以下內容為付費內容,請購買后觀看

CNN.py

App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

4
2