理解1D、2D、3D卷積神經網絡的概念

引言

當我們說卷積神經網絡(CNN)時,通常是指用於圖像分類的二維CNN。但是,現實世界中還使用了其他兩種類型的卷積神經網絡,即1維CNN和3維CNN。在本指南中,我們將介紹1D和3D CNN及其在現實世界中的應用。我假設您已經大體上熟悉卷積網絡的概念。
初學者可能會理解爲1維CNN處理一維的數據,2維CNN處理二維的數據,這是錯誤的!!!

在卷積神經網絡(CNN)中,一維和二維濾波器並不是真正的一維和二維。這是隻是描述的慣例。

二維CNN | Conv2D

在Lenet-5架構中首次引入的標準卷積神經網絡,其Conv2D通常用於圖像數據。之所以稱其爲2維CNN,是因爲內核在數據上沿2維滑動,如下圖所示。

內核在圖像上滑動
內核在圖像上滑動

使用CNN的整體優勢在於,它可以使用其內核從數據中提取空間特徵,而其他網絡則無法做到。例如,CNN可以檢測圖像中的邊緣,顏色分佈等,這使得這些網絡在圖像分類和包含空間屬性的其他類似數據中非常強大。

# 以下是在keras中添加Conv2D圖層的代碼。

import keras

from keras.layers import Conv2D

model = keras.models.Sequential()

model.add(Conv2D(1, kernel_size=(3,3), input_shape = (128, 128, 3)))

model.summary()

參數input_shape(128、128、3)表示圖像的(高度,寬度,深度)。參數kernel_size(3,3)表示內核的(高度,寬度),並且內核深度將與圖像的深度相同。

一維CNN | Conv1D

在介紹Conv1D之前,首先給出一個提示。即在Conv1D中,內核沿一維滑動。現在,讓我們在此處暫停博客,考慮哪種類型的數據僅需要內核在一個維度上滑動並具有空間特性?
答案是時間序列數據。讓我們看一下以下數據。
來自加速度計的序列數據
來自加速度計的序列數據

該數據是從人戴在手臂上的加速度計中收集的。數據表示所有三個軸的加速度。一維CNN可以根據加速度計數據執行活動識別任務,例如人的身姿,行走,跳躍等。此數據有2個維度。第一維是時間步長,其他維是3軸上的加速度值。
下圖說明了內核如何在加速度計數據上移動。每行代表某個軸的時間序列加速度。內核只能沿時間軸一維移動。

內核在加速度計數據上滑動
內核在加速度計數據上滑動

# Keras中的Conv1D層
import keras

from keras.layers import Conv1D

model = keras.models.Sequential()

model.add(Conv1D(1, kernel_size=5, input_shape = (120, 3)))

model.summary()

參數input_shape(120,3)表示120個時間步,每個時間步中有3個數據點。這3個數據點是x,y和z軸的加速度。參數kernel_size爲5,表示內核的寬度,內核高度將與每個時間步中的數據點數相同。
同樣,一維CNN也可用於 音頻和文本數據因爲我們還可以將聲音和文本表示爲時間序列數據。請參考下面的圖片。
文本數據作爲時間序列
文本數據作爲時間序列

Conv1D廣泛應用於感官數據,加速度計數據就是其中之一。

三維CNN | Conv3D

在Conv3D中,內核按3個維度滑動,如下所示。讓我們再考慮一下哪種數據類型需要內核在3維上移動?
內核在3D數據上滑動
內核在3D數據上滑動

Conv3D主要用於3D圖像數據。例如磁共振成像(MRI)數據。MRI數據被廣泛用於檢查大腦,脊髓,內部器官等。甲計算機斷層掃描(CT)掃描也是三維數據,這是通過組合從身體周圍的不同角度拍攝的一系列X射線圖像的創建的一個例子。我們可以使用Conv3D對該醫學數據進行分類或從中提取特徵。
CT掃描和MRI的3D圖像的橫截面
CT掃描和MRI的3D圖像的橫截面

# 以下是在keras中添加Conv3D層的代碼。
import keras

from keras.layers import Conv3D

model = keras.models.Sequential()

model.add(Conv3D(1, kernel_size=(3,3,3), input_shape = (128, 128, 128, 3)))
         
model.summary()

這裏參數Input_shape(128,128,128,3)有4個維度。3D圖像是4維數據,其中第四維代表顏色通道的數量。就像平面2D圖像具有3維一樣,其中3維代表色彩通道。參數kernel_size(3,3,3)表示內核的(高度,寬度,深度),並且內核的第4維與顏色通道相同。

摘要

  • 在1D CNN中,內核沿1個方向移動。1D CNN的輸入和輸出數據是2維的。主要用於時間序列數據。
  • 在2D CNN中,內核沿2個方向移動。2D CNN的輸入和輸出數據是3維的。主要用於圖像數據。
  • 在3D CNN中,內核在3個方向上移動。3D CNN的輸入和輸出數據是4維的。通常用於3D 圖像數據(MRI,CT掃描)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章