卷積神經網絡(CNN)是一種強大的深度學習架構,非常適合圖像分類和對象識別任務。憑借自動提取相關特征、處理噪聲圖像和利用預訓練模型的能力,CNN 在一系列計算機視覺任務中展示了最先進的性能,在本文中我們將用簡單的術語來分解cnn。
什麼是卷積神經網絡 (CNN)?
卷積神經網絡(CNN)是一種用於圖像識別和處理的人工神經網絡,其靈感來自於動物視覺皮層的生物過程。它們由具有可學習權重和偏差的神經元組成。
CNN 在至少一個層中使用一種稱為卷積的技術,而不是一般的矩陣乘法,卷積是一種特殊的線性運算。
![](https://news.xinpengboligang.com/upload/keji/f6815ea908462967828c20e88090f8a3.jpeg)
圖 1:具有多個卷積層的神經網絡
卷積神經網絡的工作原理:
CNN 將過濾器(小矩形)應用於輸入圖像以檢測邊緣或形狀等特征。濾波器在輸入圖像的寬度和高度上滑動,並計算濾波器和輸入之間的點積以生成激活圖。
激活圖被輸入池化層,對圖進行下采樣以降低維數。這使得模型更加高效和穩健。最後一層是全連接層,它將輸入圖像分類為“狗”或“貓”等類別。
一些流行的 CNN 架構包括 AlexNet、VGGNet、ResNet 和 Inception。這些已被用來解決復雜的問題,例如識別數千個物體或通過醫學掃描檢測疾病。
要構建 CNN,您可以通過選擇超參數(例如過濾器數量、過濾器大小、步幅和池化大小)來定義架構。
然後,您在大型數據集上訓練網絡並使用反向傳播來更新權重和偏差。
憑借足夠的數據和計算能力,CNN 可以在許多視覺任務上實現超人的性能。
CNN 徹底改變了計算機視覺,並被 Google、Facebook 等公司用來增強應用程序和服務中的圖像識別能力。
它們已成為任何機器學習從業者不可或缺的工具。
![](https://news.xinpengboligang.com/upload/keji/bb483ffc0079d93b9faf87ffab343283.jpeg)
圖 2:卷積神經網絡 — CNN 架構
卷積神經網絡的層數:
1. 卷積層
卷積層對輸入應用卷積運算,在整個圖像上傳遞濾波器。該過濾器檢測圖像中的邊緣或曲線等特征。多個過濾器可以檢測不同的特征。
卷積運算結合輸入和濾波器來創建特征圖。這顯示了檢測到的特征的位置和強度。通過堆疊多個卷積層,網絡可以檢測更高級別、更復雜的特征。
卷積運算將輸入和濾波器組合在一起,以創建特征圖。這顯示了檢測到的特征的位置和強度。通過堆疊多個卷積層,網絡可以檢測更高層次和更復雜的特征。
![](https://news.xinpengboligang.com/upload/keji/839040948f8d034bfa04a5c502ce1646.jpeg)
圖 3:卷積層
2.池化層
池化層插入到卷積層之間。他們對特征圖進行下采樣,以減少參數數量、控制過度擬合並使網絡對小平移保持不變。
最常見的類型是 max pooling(取內核中的最大值)和 average pooling(取平均值)。池化圖層對特征圖進行子采樣,僅保留最重要的信息。
通過巧妙地堆疊多個卷積層和池化層,CNN可以學習檢測圖像中的復雜特征,如面部、物體、場景等。然後,最終卷積層的輸出被展平為單個向量,並傳遞到全連接層分類。
空間池化也稱為子采樣或下采樣,它降低了每個地圖的維度,但保留了重要信息。空間池可以有不同的類型:
- 最大池化 最大池化
- 平均池化 平均池化
- 總和池 總和池化
![](https://news.xinpengboligang.com/upload/keji/a0833d7edb4c99220bcef56ff3f29da0.jpeg)
圖 4:MaxPooling 層 圖 4:MaxPooling 層
3.激活層:
激活層將非線性激活函數(例如ReLU 函數)應用與池化層的輸出、此函數有助於將非線性引入模型,使其能夠學習輸入數據的更復雜的表示。
![](https://news.xinpengboligang.com/upload/keji/2c4c3dbcc8bd2df0849886d65a8c1b45.jpeg)
圖 5:激活層
掌握了卷積層和池化層的基礎知識後,你已經了解了 CNN 的基礎知識
4.歸一化層:
歸一化層執行歸一化操作,例如批量歸一化或層歸一化,以確保每層的激活條件良好並防止過度擬合。
![](https://news.xinpengboligang.com/upload/keji/653ba122267a24db78385096d65b677e.jpeg)
圖 6:不同類型的標準化圖
5.Dropout 層:
Dropout 層用於通過在訓練過程中隨機丟棄神經元來防止過度擬合。這有助於確保模型不會記住訓練數據,而是泛化到新的、未見過的數據。
![](https://news.xinpengboligang.com/upload/keji/8f6a2e2dbdbccdc49a8fc1ab94cda972.jpeg)
圖 7:Dropout 層如何工作?
6.致密層:
卷積層和池化層從輸入圖像中提取特征後,可以使用密集層來組合這些特征並做出最終預測。在CNN 中,密集層通常是最後一層,用於生成輸出預測。前幾層的激活被展平並作為輸入傳遞到密集層,密集層執行輸入的加權和並應用激活函數來產生最終輸出。
![](https://news.xinpengboligang.com/upload/keji/7e71f41a546815fcaa193a0e3798cf75.jpeg)
圖 8:致密層
卷積神經網絡的好處、優勢
- 特征提取: CNN 能夠自動從輸入圖像中提取相關特征,從而減少手動特征工程的需要。
- 空間不變性: CNN 可以識別圖像中的對象,無論其位置、大小或方向如何,這使得它們非常適合對象識別任務。
- 抗噪聲魯棒性: CNN 通常可以處理噪聲或雜亂的圖像,這使得它們對於圖像質量可能變化的實際應用非常有用。
- 遷移學習: CNN 可以利用預先訓練的模型,減少訓練新模型所需的數據量和計算資源。
- 性能: CNN 在一系列計算機視覺任務上展示了最先進的性能,包括圖像分類、對象檢測和語義分割。
卷積神經網絡的局限性:
- 計算成本:訓練深度 CNN 的計算成本可能很高,需要大量數據和計算資源。
- 過度擬合:深度 CNN 很容易過度擬合,尤其是在小數據集上訓練時,模型可能會記住訓練數據,而不是泛化到新的、看不見的數據。
- 缺乏可解釋性: CNN 被認為是“黑匣子”模型,因此很難理解為什麼會做出特定的預測。
- 僅限於網格狀結構: CNN 僅限於網格狀結構,無法處理不規則形狀或非網格狀數據結構。
結論:
總之,卷積神經網絡(CNN)是一種強大的深度學習架構,非常適合圖像分類和對象識別任務。
憑借自動提取相關特征、處理噪聲圖像和利用預訓練模型的能力,CNN 在一系列計算機視覺任務中展示了最先進的性能。
然而,它們也有其局限性,包括計算成本高、過度擬合、缺乏可解釋性以及處理不規則形狀的能力有限。
盡管如此,CNN 仍然是許多計算機視覺任務的熱門選擇。
免費分享一些我整理的人工智能學習資料給大傢,整理了很久,非常全面。包括人工智能基礎入門視頻 AI常用框架實戰視頻、機器學習、深度學習與神經網絡等視頻、課件源碼、畢設項目、AI熱門論文等。
下面是截圖,掃碼進群免費領取:掃碼進群領資料
![](https://news.xinpengboligang.com/upload/keji/4c452d20fa0a8e32296a493bfb04140b.jpeg)
我會在群裡與朋友們定期分享人工智能的發展就業情況與相關資料。
最後祝大傢天天進步!!