前幾天在深度學習的文章中有提到CNN卷積神經網路,今天我們會快速的介紹這個神經網路,讓大家對這個有初步的認識,未來幾天我會以實作來帶大家理解。
首先,什麼是卷積神經網路呢? 卷積神經網路(Convolutional Neural Networks,CNN)又被稱為CNNs 或 ConvNets,在深度學習領域中起著非常重要的作用,特別是在圖像處理和辨識方面。它們在許多重大突破中扮演了關鍵角色。在圖片辨識、物體偵測、影像分割等領域表現非常好,而且在這些任務中有時甚至超越了人類的表現。
在了解他的工作原理前,我們需要先知道在還沒有CNN出現前,圖片處理對於人工智慧來說主要有幾個難題。
而卷積神經網路的工作原理可以以下面這張來簡單介紹
輸入(Input)
左邊的灰色方塊代表輸入圖像。這是CNN的起點,輸入圖像可能是任意大小和通道數(例如,RGB圖像有三個通道)。
卷積層1(Convolutional Layer 1)
這層使用多個卷積核(Filters/Kernels)對輸入圖像進行卷積操作,生成多個特徵圖(Feature Maps)。每個卷積核負責提取圖像中的不同特徵,例如邊緣、角點等。
池化層1(Pooling Layer 1)
池化層用來減少特徵圖的空間尺寸。常用的方法是最大池化(Max Pooling)或平均池化(Average Pooling)。這層操作會保留重要特徵,同時減少計算量和模型的過擬合風險。
卷積層2(Convolutional Layer 2)
這是第二個卷積層,再次使用卷積核對池化後的特徵圖進行卷積操作,生成更多、更高層次的特徵圖。這層能夠捕捉到更複雜的圖像特徵。
池化層2(Pooling Layer 2)
這是第二個池化層,進一步減少特徵圖的空間尺寸,保留重要信息,並提高模型的計算效率。
全連接層(Fully-connected Layer 1)
這層將池化後的特徵圖展平成一維向量,並通過一個或多個全連接層進行處理。這層負責最終的分類或回歸任務。
輸出層(Outputs)
最終的輸出層根據模型的任務產生結果。比如,在分類任務中,輸出層會給出每個類別的概率分佈,選擇概率最大的類別作為預測結果。
我們可以發現在CNN有主要幾層,簡單來說他們分別的功能如下:
卷積層是卷積神經網路 (Convolutional Neural Network, CNN) 的核心組成部分,主要用於提取輸入數據的特徵。具體來說,卷積層通過以下步驟運作:
卷積核 (Filter):
卷積運算 (Convolution Operation):
激活函數 (Activation Function):
池化層 (Pooling Layer)
池化層的主要功能是縮小特徵圖的尺寸,從而減少計算量和模型的複雜性,同時保留重要的特徵。常見的池化方法有:
最大池化 (Max Pooling):
平均池化 (Average Pooling):
池化層通過縮小特徵圖尺寸,降低模型過擬合的風險,並提高計算效率。
全連接層是卷積神經網路的最後幾層,通常用於將提取的特徵轉換為最終的分類結果。具體步驟如下:
展平 (Flattening):
線性變換 (Linear Transformation):
激活函數 (Activation Function):
輸出層 (Output Layer):
今天介紹了一點基本概念,我們知道了卷積神經網路由卷積層、池化層和全連接層組成。卷積層負責提取局部特徵,池化層縮小特徵圖尺寸並保留重要特徵,全連接層則將提取的特徵轉換為最終的分類結果。這樣的結構使得 CNN 能夠在圖片分類、物體檢測等任務中取得優異的性能。之後我會用實作來介紹CNN,並詳細介紹,希望大家可以一起收看。