06b1 CNN卷積神經網路 - cccbook/py2gpt GitHub Wiki
卷積神經網路 (Convolutional Neural Network,CNN) 是一種深度學習的模型,主要是應用到圖像識別、自然語言處理等領域。CNN 模型是模仿人類視覺系統的經驗而設計的,透過多層卷積過濾器 (Convolutional Filters) 搭配池化層 (Pooling),可以篩選出圖像中的特徵,並且降低圖像大小,使得特徵提取更有效率,亦使得訓練所需的參數數量大幅減少,達到提高訓練效率和正確率的目的。
下面分別說明 CNN 模型中的三個主要組件:
- 卷積層 (Convolutional Layer)
卷積層是 CNN 模型的核心組件,它能夠篩選出圖像中的特徵。卷積過程就是將一個過濾器 (Filter) 應用到圖像上,將過濾器移動到圖像的每一個位置,計算出過濾器在每個位置上與圖像的數據的點積之和,產生一個新的特徵圖 (Feature Map)。進行卷積後的新特徵圖相比原本的圖像,包含了區域性的特徵,如邊緣、紋理、形狀等,這些特徵的提取是通過過濾器的不斷優化而實現的,這些過濾器可以通過訓練所學習到。
- 池化層 (Pooling Layer)
卷積層中提取出的特徵圖經過池化層的處理後,可以使圖像大小減小,同時依然保留圖像特徵。池化可以分為最大池化 (Max Pooling) 和平均池化 (Average Pooling) 這兩種方式,透過進行下採樣的方法,可以有效地減少 CNN 模型的參數量,提高計算效率和避免過度擬合的情況。
- 全連接層 (Fully Connected Layer)
全連接層(Fully Connected Layer)用於將經過多次卷積和池化之後的神經元輸入進行分類。全連接層中的每一個神經元互相獨立,把之前卷積層和池化層產生的特徵圖進行扁平化,輸入到全連接層,進行最終的判斷。全連接層通常是整個神經網絡中最後一層,且神經元數量會根據不同的問題而變化。
總體而言,CNN 模型的優點在於它可以針對圖像等高維複雜資料,自動提取特徵的能力,免去了人工手動設計特徵的繁雜過程,通過多層過濾器和池化層的組合和堆疊,實現高度抽象和捕捉局部特徵。除了在圖像辨識領域得到廣泛應用,現在也應用於自然語言處理、聲音識別等其他領域。