基本 CNN 架構:解釋 5 層卷積神經網絡 [美國]
已發表: 2023-04-16CNN(卷積神經網絡)是一種深度學習神經網絡,它使用卷積層和子採樣層的組合從大型數據集中學習特徵。 它通常用於圖像識別和分類任務。 卷積層對輸入數據應用過濾器,子採樣層減少輸入數據的大小。 卷積神經網絡架構旨在從數據中學習可用於分類或檢測輸入對象的特徵。 下面是解釋的 5 個 CNN 層。
報名參加世界頂尖大學的機器學習課程。 獲得碩士、行政 PGP 或高級證書課程,以快速推進您的職業生涯。
目錄
5 層卷積神經網絡
1. 卷積層:
該層對輸入數據執行卷積運算,從數據中提取各種特徵。
CNN 模型架構中的捲積層是CNN 層最重要的組件之一。 這些層負責從輸入數據中提取特徵並形成進一步處理和學習的基礎。
卷積層由一組以滑動窗口方式應用於輸入數據的過濾器(也稱為內核)組成。 每個過濾器根據與其關聯的權重從輸入數據中提取一組特定的特徵。
卷積層中使用的濾波器數量是架構中的關鍵超參數之一。 它是根據正在處理的數據類型以及模型所需的精度來確定的。 通常,更多的過濾器會導致從輸入數據中提取更多的特徵,從而允許更複雜的網絡架構更好地理解數據。
卷積運算包括將每個過濾器與滑動窗口內的數據相乘並對結果求和。 對所有過濾器重複此操作,從而為單個卷積層生成多個特徵圖。 然後將這些特徵映射用作後續層的輸入,使網絡能夠從數據中學習更複雜的特徵。
卷積層是深度學習架構的基礎,用於各種應用,例如圖像識別、自然語言處理和語音識別。 通過從輸入數據中提取最關鍵的特徵,卷積層使網絡能夠學習更複雜的模式並做出更好的預測。
2.池化層:
該層對特徵圖進行下採樣操作,減少了所需的計算量,也有助於減少過擬合。
池化層是CNN 架構的重要組成部分。 它通常用於減少輸入量大小,同時從數據中提取有意義的信息。 池化層通常用在 CNN 的後期階段,使網絡能夠專注於圖像或其他類型輸入的更抽象的特徵。 池化層通過在輸入量上滑動窗口併計算窗口內值的匯總統計信息來運行。
常見的統計信息包括獲取窗口內值的最大值、平均值或總和。 這減少了輸入量的大小,同時保留了有關數據的重要信息。
池化層通常還用於引入空間不變性,這意味著無論輸入在圖像中的位置如何,網絡都會產生相同的輸出。 這允許網絡繼承關於圖像的更多一般特徵,而不是簡單地記住它的確切位置。
3.激活層:
該層通過應用 ReLU 或 tanh 等非線性激活函數為模型添加非線性。
CNN 中的激活層是用作對卷積層輸出進行非線性變換的層。 它是網絡的主要組成部分,允許它學習輸入和輸出數據之間的複雜關係。
激活層可以被認為是一個函數,它獲取卷積層的輸出並將其映射到一組不同的值。 這使網絡能夠學習數據中更複雜的模式並更好地概括。
CNN 中常用的激活函數包括 ReLu(整流線性單元)、sigmoid 和 tanh。 每個激活函數都有不同的用途,可用於不同的場景。
ReLu 是大多數卷積網絡中最常用的激活函數。 它是一種非線性變換,對所有負值輸出 0,對所有正值輸出與輸入相同的值。 這允許網絡吸收數據中更複雜的模式。
Sigmoid 是另一種常用的激活函數,它對任何給定的輸入輸出介於 0 和 1 之間的值。 這有助於網絡理解輸入和輸出數據之間的複雜關係,但計算成本高於 ReLu。
Tanh 是最不常用的激活函數,對於任何給定的輸入,它的輸出值都在 -1 和 1 之間。
激活層是 CNN 的重要組成部分,因為它可以防止線性並增強輸出中的非線性。 為網絡選擇正確的激活函數至關重要,因為每個激活函數都有不同的用途,可用於不同的場景。 選擇合適的激活函數可以使CNN 結構具有更好的性能。
4.全連接層:
該層將一層中的每個神經元連接到下一層中的每個神經元,從而形成一個完全連接的網絡。
CNN 中的全連接層是連接到網絡中前一層中每個神經元的神經元層。 這與卷積層形成對比,在卷積層中,神經元僅根據特定模式連接到前一層中的神經元子集。
通過將一層中的每個神經元連接到下一層中的每個神經元,全連接層允許來自上一層的信息在整個網絡中共享,從而為更全面地理解數據提供了機會。
CNN 中的全連接層通常用於CNN 模型架構的末尾,在卷積層和池化層之後,因為它們有助於識別卷積層可能無法識別的模式和相關性。
此外,全連接層用於生成可用於分類的非線性決策邊界。 總之,全連接層是任何 CNN 不可或缺的一部分,並為識別數據中的模式和相關性提供了強大的工具。
5.輸出層:
這是網絡的最後一層,它產生輸出標籤或值。
CNN 的輸出層是網絡中的最後一層,負責產生輸出。 該層採用從先前層中提取的特徵並以允許它產生所需輸出的方式組合它們。
當輸出是單個值時,例如分類或回歸問題,通常使用全連接層。 當結果是向量(例如概率分佈)時,通常使用單個神經元層。
當輸出是概率分佈時(例如類別概率分佈),將使用 softmax 激活函數。 CNN 的輸出層還負責執行必要的計算以獲得所需的輸出。 這包括完成輸入的必要線性或非線性轉換以接收所需的輸出。
最後,CNN 的輸出層也可用於執行正則化技術,例如 dropout 或 batch normalization,以提高網絡的性能。
結論
CNN架構是圖像和視頻處理任務的強大工具。 它是卷積層、池化層和全連接層的組合。 它允許從圖像、視頻和其他數據源中提取特徵,可用於各種任務,例如對象識別、圖像分類和麵部識別。 總的來說,這種類型的架構在應用於合適的功能和數據集時非常有效。
通過 upGrad 獲得精通 ML 和 DL 的技能
通過IIIT-B 提供的upGrad機器學習和深度學習高級證書課程,您可以熟練掌握機器學習和深度學習。 該計劃涵蓋 ML 和 DL 的基礎知識,包括監督和無監督學習、線性和邏輯回歸、卷積神經網絡、強化學習和自然語言處理等主題。 您還將學習在 Python 和 TensorFlow 中構建和部署 ML 和 DL 模型,並通過處理真實世界的項目獲得實踐經驗。
本課程還包括以下好處:
- 來自行業專家的指導和指導
- 安置援助,以幫助您找到合適的工作
- IIT Bangalore 的高級證書
您還可以查看upGrad 在管理、數據科學、機器學習、數字營銷和技術方面提供的免費課程。 所有這些課程都有一流的學習資源、每週現場講座、行業作業和課程結業證書——全部免費!
可用於 CNN 的 Python 庫有哪些?
可用於 CNN 的 Python 庫包括 TensorFlow、Keras、PyTorch、Caffe、Theano、Scikit-learn、MxNet、CNTK、OpenCV 和 SciPy。 這些庫可用於獲取預構建模塊以創建應用程序並輕鬆實現 CNN 算法。
CNN 層有多少個維度?
卷積神經網絡包含按 3 個維度排列的神經元:寬度、高度和深度。 這種神經元的三維結構存在於卷積層中,卷積層通過給定輸入的計算過程工作以提供結果輸出。
我可以在 R 中開發 CNN 嗎?
是的,可以使用 Python 和 R 開發 CNN。R 提供了非常詳細的庫,使用 R 創建卷積神經網絡非常容易。