|
|
||
|---|---|---|
| .. | ||
| lab | ||
| CNN_Architectures.md | ||
| ConvNetsPyTorch.ipynb | ||
| ConvNetsTF.ipynb | ||
| README.md | ||
README.md
卷積神經網路
我們之前已經看到,神經網路在處理影像方面表現得相當不錯,即使是單層感知器也能以合理的準確率識別 MNIST 資料集中的手寫數字。然而,MNIST 資料集非常特殊,所有的數字都被置中於影像中,這使得任務變得相對簡單。
課前測驗
在現實生活中,我們希望能夠在圖片中識別物體,而不需要在意它們在影像中的確切位置。電腦視覺與一般的分類任務不同,因為當我們試圖在圖片中找到某個特定物體時,我們是在掃描影像,尋找一些特定的模式及其組合。例如,當尋找一隻貓時,我們可能會先尋找水平線條,這些線條可能構成鬍鬚,然後某些鬍鬚的組合可以告訴我們這是一隻貓的圖片。某些模式的相對位置和存在性很重要,而不是它們在影像中的確切位置。
為了提取這些模式,我們將使用卷積濾波器的概念。如你所知,影像可以用一個二維矩陣或帶有色彩深度的三維張量來表示。應用濾波器的意思是,我們取一個相對較小的濾波核矩陣,並對原始影像中的每個像素與其鄰近點進行加權平均。我們可以將這視為一個小窗口在整個影像上滑動,並根據濾波核矩陣中的權重對所有像素進行平均。
![]() |
![]() |
|---|
圖片來源:Dmitry Soshnikov
例如,如果我們對 MNIST 數字應用 3x3 的垂直邊緣和水平邊緣濾波器,我們可以在原始影像中有垂直和水平邊緣的地方得到高亮(例如高值)。因此,這兩個濾波器可以用來「尋找」邊緣。同樣,我們可以設計不同的濾波器來尋找其他低層次的模式:
然而,雖然我們可以手動設計濾波器來提取某些模式,但我們也可以設計網路,使其能夠自動學習這些模式。這正是 CNN 背後的主要理念之一。
CNN 的主要理念
CNN 的運作方式基於以下幾個重要理念:
- 卷積濾波器可以提取模式
- 我們可以設計網路,使濾波器能夠自動訓練
- 我們可以使用相同的方法來尋找高層次特徵中的模式,而不僅僅是原始影像中的模式。因此,CNN 的特徵提取是基於特徵的層次結構,從低層次的像素組合開始,一直到高層次的圖片部分組合。
圖片來源:Hislop-Lynch 的論文,基於他們的研究
✍️ 練習:卷積神經網路
讓我們繼續探索卷積神經網路的運作方式,以及如何通過相關的筆記本實現可訓練的濾波器:
金字塔架構
大多數用於影像處理的 CNN 都遵循所謂的金字塔架構。第一個應用於原始影像的卷積層通常具有相對較少的濾波器(8-16 個),這些濾波器對應於不同的像素組合,例如水平/垂直線條或筆劃。在下一層,我們減少網路的空間維度,並增加濾波器的數量,這對應於更多簡單特徵的可能組合。隨著每一層的進展,當我們接近最終分類器時,影像的空間維度減小,而濾波器的數量增加。
舉例來說,讓我們看看 VGG-16 的架構,這是一個在 2014 年 ImageNet 的 top-5 分類中達到 92.7% 準確率的網路:
圖片來源:Researchgate
最知名的 CNN 架構
免責聲明:
本文件使用 AI 翻譯服務 Co-op Translator 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。




