MindMap Gallery 卷積神經網路( CNN)
卷積神經網路(Convolutional Neural Networks,簡稱CNN)是深度學習模型,特別適用於影像辨識、視訊分析、自然語言處理等領域。 CNN的設計靈感來自生物視覺系統,透過層次化的結構來捕捉資料中的局部特徵和全局模式。
Attention is all you need
深度學習理論知識
影像分割演算法
機器學習之基本迴歸演算法
神經網路運作過程詳解
神經網路與深度學習的發展概述
常見神經網路模型的類型及應用
神經網路與深度學習之循環神經網絡
神經網路與深度學習之卷積神經網絡
神經網路與深度學習之基礎
卷積神經網路( CNN)
簡介
發展歷程
1950年代:Frank Rosenblatt提出了感知機(Perceptron),這是最早的神經網路模型之一。
1980年代:Yann LeCun等人提出了LeNet-5,這是第一個成功應用於手寫數字辨識的CNN。
1998年:Yann LeCun等人進一步發展了LeNet-5,提出了LeNet-5的改進版本,用於手寫郵遞區號識別。
2012年:Alex Krizhevsky等人提出了AlexNet,這是第一個在ImageNet大規模視覺辨識挑戰賽(ILSVRC)中取得突破性成績的CNN。
2014年:VGGNet在ILSVRC中取得了更好的成績,展現了更深層網路結構的優勢。
2014年:Google提出了Inception架構(GoogLeNet),透過引入Inception模組,提高了網路的運算效率。
2015年:Microsoft提出了ResNet(Residual Network),透過殘差連接解決了深度網路訓練中的梯度消失問題。
至今:CNN不斷演化,出現如EfficientNet、Vision Transformer等新型網路結構,以及在各種應用領域的進一步最佳化。
.....
層級結構
輸入層:接收原始數據,如影像的像素值。
卷積層:使用卷積核提取局部特徵。
激活層:引入非線性,如ReLU。
池化層:降低資料維度,減少計算量,防止過度擬合。
全連接層:將特徵對應到最終的輸出,例如分類標籤。
輸出層:輸出網路的最終結果。
核心概念詳解
卷積操作:透過卷積核在輸入資料上滑動,擷取局部特徵。
權值共享:同一卷積核在整個輸入資料上共享權重,減少模型參數。
池化(Pooling):對局部區域進行降採樣,如最大池化或平均池化。
激活函數:引入非線性,如ReLU、Sigmoid、Tanh等。
卷積核(Filter):在卷積層中用來提取特徵的權重矩陣。
步長(Stride):卷積核在輸入資料上移動的步長。
典型CNN模型
LeNet-5:早期的CNN模型,用於手寫數字辨識。
AlexNet:引入ReLU激活函數,減少了參數數量,提高了訓練速度。
VGGNet:使用小的捲積核和更深的網路結構。
InceptionNet:引進Inception模組,提高了網路的運算效率。
ResNet:透過殘差連接解決了深度網路訓練中的梯度消失問題。
SqueezeNet:展示了即使在參數數量較少的情況下,CNN也能保持高性能。
原理
CNN透過多層的捲積和池化操作,提取影像的局部特徵,並透過全連接層進行分類。卷積操作能夠捕捉到影像中的邊緣、紋理等低階特徵,而深層網路則能夠學習到更複雜的模式。透過權值共享和池化,CNN能夠有效地處理大型資料集,並且減少過度擬合的風險。
應用
影像辨識:如手寫數位辨識、物件辨識等。
影像分割:將影像分割成多個區域,用於醫學影像分析等。
視訊分析:用於行為識別、視訊監控等。
語音辨識:雖然CNN主要用於影像處理,但也可以用於語音訊號的特徵擷取。
技術局限性
運算資源需求:深層網路需要大量的運算資源和儲存空間。
資料量需求:為了訓練出高效能的模型,需要大量的標註資料。
解釋性:CNN的內部工作機制不如淺層模型透明,難以解釋其決策過程。
對輸入尺寸敏感:CNN對輸入資料的尺寸和比例有一定的敏感性,可能需要預處理步驟。
局部特徵提取:CNN擅長提取局部特徵,但可能難以捕捉全局上下文資訊。