探索卷積神經網路(CNNs)的世界,它們在深度學習和計算機視覺任務中的作用,以及使用它們的優點和缺點。在這份全面的指南中,瞭解不同型別的CNN,它們的應用,以及它們的潛在侷限性。
什麼是深度學習中的卷積神經網路?
卷積神經網路用於計算機視覺任務中,它採用卷積層從輸入資料中提取特徵。
卷積神經網路(CNNs)是一類深度神經網路,常用於計算機視覺任務,如影象和視訊識別、物體檢測和影象分割。
神經網路是由相互連線的節點組成的機器學習模型,這些節點處理資訊以做出決策,而深度神經網路有多個隱藏層,使它們能夠為各種任務學習複雜的表示。它們都模仿了人腦的結構和功能。計算機視覺是人工智慧(AI)的一個領域,重點是使機器能夠解釋和理解來自世界的視覺資料。
儘管影象和視訊識別涉及對照片或視訊中的物體、場景或動作進行分類或識別,但物體檢測涉及在影象或視訊中定位某些東西。影象分割涉及將影象劃分為有意義的片段或區域,以便進一步分析或處理。
CNNs使用幾個卷積層來自動從輸入資料中提取特徵。輸入資料經過卷積層的過濾,產生的特徵圖被傳遞到進一步的處理層。卷積層是CNNs的構建模組,對輸入資料進行過濾和特徵提取操作。
濾波是用濾波器對影象進行卷積以提取特徵的過程,而特徵提取則是從卷積的影象中識別相關模式或特徵的過程。
除了卷積層之外,CNNs中還經常包括彙集層,它對卷積層的輸出進行降樣,以降低計算成本並提高網路對新輸入的概括能力。其他典型的層包括歸一化層,它有助於降低過擬合度並提高網路的效能,以及全連線層,它被用於分類或預測任務。
許多應用,如面部識別、自動駕駛汽車、醫學影象分析和自然語言處理(NLP),已廣泛使用CNNs。它們還被用來在影象分類任務中取得最先進的結果,如ImageNet挑戰。
卷積神經網路是如何工作的?
卷積神經網路的工作原理是通過卷積層從輸入資料中提取特徵,並通過全連線層學習對輸入資料進行分類。
卷積神經網路的工作步驟包括以下內容:
- 輸入層: 輸入層–CNN的第一層–將原始資料作為輸入,如影象或視訊,並將其傳送到下一層進行處理。
- 卷積層: 特徵提取發生在卷積層。該層應用一系列的過濾器或核心,從輸入資料中提取特徵,如邊緣、角落和形狀。
- ReLU層: 為了給輸出提供非線性並提高網路的效能,在每個卷積層之後經常實施整頓線性單元(ReLU)啟用函式。如果輸入是正的,ReLU直接輸出,如果是負的,則輸出零。
- 池化層: 卷積層的特徵圖是由池化層形成的,它降低了其維度。最大池化是一種常用的技術,在特徵圖的每個補丁中的最大值被作為輸出。
- 全連線層: 全連線層取池化層的扁平化輸出,並應用一組權重來產生最終輸出,可用於分類或預測任務。
下面是一個關於CNNs如何對貓和狗的圖片進行分類的說明:
- 第1步:輸入層接收狗或貓的3通道(RGB)影象和其他原始影象資料。3通道(RGB)是一種標準格式,用於在神經網路中表示彩色影象,每個畫素由三個值表示,分別代表紅、綠和藍顏色通道的強度。
- 第2步:卷積層對輸入影象應用一系列的過濾器,以提取邊緣、角落和形狀等特徵。
- 第3步:由於ReLU層的作用,卷積層的輸出變得非線性。
- 第4步:通過取每個特徵圖斑中的最大值,池化層降低了卷積層建立的特徵圖的維度。
- 第5步:許多卷積層和池化層被堆疊起來,從輸入影象中逐步提取複雜的特徵。
- 第6步:扁平化層將前一層的輸出轉換為一維或一維向量(一串排列在單行或單列的數字,每個代表一個特徵或特性)。然後,一個全連線層接收最後一個彙集層的扁平化輸出,並應用一組權重產生最終輸出,識別影象是貓還是狗。
CNN使用一組標記的影象進行訓練,在訓練過程中調整過濾器和全連線層的權重,以儘量減少預測和實際標籤之間的誤差。一旦訓練完成,卷積神經網路就能準確地對新的、未見過的貓和狗的影象進行分類。
卷積神經網路的型別有哪些?
存在幾種型別的卷積神經網路,包括傳統的CNNs、遞迴神經網路、完全卷積網路和空間變換網路–等等。
傳統的CNNs
傳統的CNNs,也被稱為 “vanilla” CNNs,由一系列的卷積層和池化層組成,然後是一個或多個全連線層。如前所述,該網路中的每個卷積層都執行一系列的卷積與可教的過濾器集合,從輸入影象中提取特徵。
Lenet-5架構是最早用於手寫數字識別的有效CNNs之一,說明了一個傳統的CNNs。它有兩套卷積層和池化層,緊隨兩個全連線層。Lenet-5架構證明了CNNs在影象識別方面的效率,這也使其在計算機視覺任務中得到更廣泛的應用。
遞迴神經網路
遞迴神經網路(RNN)是一種神經網路,它可以通過跟蹤先前輸入的背景來處理連續的資料。遞迴神經網路可以處理不同長度的輸入,併產生依賴於先前輸入的輸出,這與典型的前饋神經網路不同,後者只按固定順序處理輸入資料。
例如,RNNs可以在文字生成或語言翻譯等NLP活動中得到利用。遞迴神經網路可以在兩種不同語言的句子對上進行訓練,以學習在這兩種語言之間進行翻譯。
遞迴神經網路一次處理一個句子,根據每一步的輸入句子和前面的輸出,產生一個輸出句。由於RNN一直在跟蹤過去的輸入和輸出,所以即使是複雜的文字也能產生正確的翻譯。
全卷積網路
全卷積網路(FCNs)是一種神經網路架構,通常用於計算機視覺任務,如影象分割、物體檢測和影象分類。FCNs可以使用反向傳播進行端到端的訓練,以對影象進行分類或分割。
逆向傳播是一種訓練演算法,計算損失函式相對於神經網路權重的梯度。一個機器學習模型預測給定輸入的預期輸出的能力由損失函式來衡量。
FCNs完全基於卷積層,因為它們沒有任何全連線層,這使得它們比傳統的卷積神經網路更具適應性和計算效率。一個接受輸入影象並輸出影象中物體的位置和分類的網路是FCN的一個例子。
空間變換網路
空間變換網路(STN)被用於計算機視覺任務中,以提高網路所學特徵的空間不變性。神經網路識別影象中的圖案或物體而不受其地理位置、方向或比例影響的能力被稱為空間不變性。
一個在進一步處理輸入影象之前將學習到的空間轉換應用於輸入影象的網路是STN的一個例子。該轉換可用於對齊影象中的物體,糾正透視變形或執行其他空間變化以提高網路在特定工作上的效能。
變換是指以某種方式修改影象的任何操作,如旋轉、縮放或裁剪。對齊指的是確保影象中的物體以一致和有意義的方式居中、定向或定位的過程。
當影象中的物體由於拍攝角度或距離而出現歪斜或變形時,就會出現透視變形。對影象進行幾種數學變換,如仿生變換,可以用來糾正透視失真。仿射變換保留了平行線和各點之間的距離比率,以糾正透視失真或影象中的其他空間變化。
空間變換是指對影象的空間結構的任何修改,如翻轉、旋轉或平移影象。這些變化可以增加訓練資料或解決任務中的具體挑戰,如照明、對比度或背景變化。
CNNs的優勢是什麼?
由於CNNs的優勢,包括翻譯不變性、引數共享、分層表示、對變化的適應性和端到端訓練,CNNs在計算機視覺任務中是首選。
卷積神經網路有幾個優點,使它們成為各種計算機視覺任務的有吸引力的選擇。它們的主要優勢之一是翻譯不變性,這是CNNs的一個特點,使它們能夠識別影象中的物體,而不管其位置如何。卷積層是通過對完整的輸入影象應用過濾器來實現這一點的,這樣網路就可以學習具有翻譯不變性的特徵。
使用引數共享,即在輸入影象的所有區域共享同一組引數,是CNNs的另一個好處。因此,網路的引數較少,可以更好地概括新的資料,這在處理巨大的資料集時是至關重要的。
CNNs還可以學習輸入影象的分層表示,上層學習更復雜的特徵,如物體碎片和形狀,而下層則學習更簡單的元素,如邊緣和紋理。對於像物體檢測和分割這樣具有挑戰性的任務,這種分層模型使網路能夠學習許多抽象層次上的特徵。
CNNs適合於現實世界的應用,因為它們對輸入影象中的光照、顏色和微小的扭曲的變化都有彈性。最後,卷積神經網路可以進行端到端的訓練,允許梯度下降同時優化網路的所有引數,以獲得效能和更快的收斂。梯度下降是一種優化演算法,用於通過最小化負梯度方向的損失函式來迭代調整模型引數。
CNNs的缺點是什麼?
CNNs有一些缺點,如訓練時間長,需要大量的標記資料集,容易出現過擬合的情況。網路的複雜性也會影響效能。然而,CNNs仍然是計算機視覺中廣泛使用和有效的工具,包括物體檢測和分割,儘管在像NLP這樣需要上下文知識的任務中存在侷限。
卷積神經網路有幾個缺點,會使它們在一些機器學習應用中難以使用。例如,CNNs的訓練可能需要一段時間,特別是對於大型資料集,因為CNN的計算成本很高。此外,建立CNNs架構可能具有挑戰性,需要對人工神經網路的基本思想有一個全面的理解。
另一個缺點是,CNNs需要大量的標記資料來有效訓練。在可用資料很少的情況下,這可能是一個嚴重的制約因素。在需要更多上下文知識的任務中,如NLP,CNNs也不總是成功的,即使它們在影象識別任務中相當出色。
CNNs設計中採用的層數和種類會影響效能。例如,新增更多的層可能會提高準確性,但同時也會增加網路的複雜性和計算成本。深度學習的CNN架構也很容易受到過度擬合的影響,這種情況發生在網路對訓練資料過於專門化,而在新的、未經訓練的資料上表現不佳。
儘管有這些缺點,CNNs仍然是人工神經網路領域的深度學習和機器學習演算法的一個廣泛使用和非常有效的工具,包括分割、物體檢測和影象識別。也就是說,CNNs仍將是計算機視覺中的一個重要角色。
小結
卷積神經網路(CNNs)是一類深度神經網路,主要用於計算機視覺任務,如影象和視訊識別、物體檢測和影象分割。CNNs由幾個卷積層組成,可以自動從輸入資料中提取特徵。它們具有翻譯不變性、引數共享、分層表示、對變化的復原力和端到端訓練等優點。儘管它們的缺點包括冗長的訓練時間,需要大量的標記資料集,以及容易過度擬合,但CNNs仍然是計算機視覺任務中廣泛使用的有效工具。
評論留言