CNN 會將輸入圖像傳至多層,逐層進行處理。前幾層會找出邊緣和線條等簡單特徵,而後幾層則會識別更複雜的模式、形狀,最終辨識出整個物體。這種按階層逐步擷取特徵的方法,讓 CNN 得以在影像辨識和其他電腦視覺工作上展現出色的成效。
CNN 就像一個分析相片來找出物件的專家團隊。在「辨識生產線」中,每一層都有自己須負責的特定工作。
1. 卷積層:特徵掃描員
這是第一組專家。每個專家都只負責尋找單一簡單特徵,例如直線邊緣、曲線或特定顏色。他們會拿著小型的放大鏡 (「篩選器」) 掃過整個圖像,每次找到指定特徵時就會記錄下來,最終會產生一組「特徵圖」,基本上就是指出基本特徵所在位置的地圖。
2. 活化層 (ReLU):重要性篩選員
初步掃描完成後,管理員 (ReLU 函數) 就會檢查特徵圖。這項工作很簡單:保留強烈信號,捨棄微弱信號。這個機制會導入非線性關係,確保只有最重要且已明確識別的特徵會傳至後續階段,做進一步的分析,同時避免雜訊干擾整個流程。
3. 彙整層:摘要整理員
彙整層就像區域經理,負責根據特徵圖各個小區塊的結果歸納重點,而非詳細查看每個小細節。舉例來說,「最大彙整」層會查看特徵圖的 2x2 區域,並只回報最強的信號。這能縮減資料的整體大小,提高網路效率,並協助網路辨識畫面中任何位置的物件 (這個概念叫做「平移不變性」)。
4. 全連接層:偵探長
經過幾輪掃描和摘要整理後,最終的特徵報告會傳給偵探長。這一層會查看整體特徵組合 (「有鬍鬚」、「有尖耳朵」、「有毛皮紋理」),並做出最終決定,也就是將所有摘要結果串聯起來,然後推斷出結論,例如:「根據所有證據判斷,這張圖中的物體是貓」,接著再將結果傳遞至最終輸出層 (例如 softmax),針對每種可能的分類提供機率。
雖然卷積神經網路和傳統神經網路的設計目的都是處理資料並進行預測,但兩者在架構、應用方式和其他主要特色方面皆有顯著差異。
功能 | 卷積類神經網路 (CNN) | 傳統類神經網路 |
核心架構 | 由卷積層、活化層、池化層和全連接層組成。 | 主要由全連接 (稠密) 層組成。 |
輸入資料類型 | 最適合結構化的格狀資料 (例如圖像、影片、文字等一維序列)。 | 可靈活處理各種類型的資料,通常是表格型資料或扁平化向量。 |
擷取特徵 | 透過濾波器自動學習階層式特徵 (邊緣、紋理、形狀)。 | 透過直接連接學習特徵,在空間特徵學習方面的成效通常較差。 |
空間關係 | 明確保留並運用空間關係 (例如圖像中像素之間的鄰近關係)。 | 獨立處理每個輸入特徵,如果將輸入內容扁平化,空間關係會遺失。 |
共用參數 | 是,輸入內容的不同位置會共用權重 (濾波器/卷積核)。 | 否,每個連線都有專屬權重。 |
參數數量 | 因為會共用權重和彙整,因此參數通常較少,在處理圖像等高維度輸入內容時更是如此。 | 參數數量可能非常龐大,尤其是輸入內容維度很多時。 |
平移不變性 | 無論特徵在輸入內容中的確切位置為何,都能準確辨識 (本身就擅長處理這類工作)。 | 除非明確使用經過強化的資料進行訓練,否則對輸入特徵的變化會較為敏感。 |
運算效率 | 參數較少且有專門的運算作業,因此處理圖像/空間資料的效率較高。 | 如果輸入內容的維度很多,可能會因為密集連接,而產生極高的運算費用。 |
主要應用方式 | 圖像分類、物件偵測、影像分割、影片分析、醫學影像處理、部分自然語言處理工作。 | 表格型資料分類/迴歸、簡單模式識別、函數逼近、部分自然語言處理工作。 |
主要優點 | 非常適合處理視覺資料、學習階層式特徵、平移不變性、減少參數,較不易在圖像資料產生過度配適的情形。 | 可以靈活處理多種資料,適合非空間表格型資料。以基本工作來說,在概念上較容易理解。 |
重要限制 | 設計過程可能相當複雜,通常需要大型資料集來進行訓練,對於非空間表格資料的成效較差。 | 不適合處理高維空間資料,會忽略空間關係。如果輸入內容複雜且參數眾多,容易過度配適。 |
功能
卷積類神經網路 (CNN)
傳統類神經網路
核心架構
由卷積層、活化層、池化層和全連接層組成。
主要由全連接 (稠密) 層組成。
輸入資料類型
最適合結構化的格狀資料 (例如圖像、影片、文字等一維序列)。
可靈活處理各種類型的資料,通常是表格型資料或扁平化向量。
擷取特徵
透過濾波器自動學習階層式特徵 (邊緣、紋理、形狀)。
透過直接連接學習特徵,在空間特徵學習方面的成效通常較差。
空間關係
明確保留並運用空間關係 (例如圖像中像素之間的鄰近關係)。
獨立處理每個輸入特徵,如果將輸入內容扁平化,空間關係會遺失。
共用參數
是,輸入內容的不同位置會共用權重 (濾波器/卷積核)。
否,每個連線都有專屬權重。
參數數量
因為會共用權重和彙整,因此參數通常較少,在處理圖像等高維度輸入內容時更是如此。
參數數量可能非常龐大,尤其是輸入內容維度很多時。
平移不變性
無論特徵在輸入內容中的確切位置為何,都能準確辨識 (本身就擅長處理這類工作)。
除非明確使用經過強化的資料進行訓練,否則對輸入特徵的變化會較為敏感。
運算效率
參數較少且有專門的運算作業,因此處理圖像/空間資料的效率較高。
如果輸入內容的維度很多,可能會因為密集連接,而產生極高的運算費用。
主要應用方式
圖像分類、物件偵測、影像分割、影片分析、醫學影像處理、部分自然語言處理工作。
表格型資料分類/迴歸、簡單模式識別、函數逼近、部分自然語言處理工作。
主要優點
非常適合處理視覺資料、學習階層式特徵、平移不變性、減少參數,較不易在圖像資料產生過度配適的情形。
可以靈活處理多種資料,適合非空間表格型資料。以基本工作來說,在概念上較容易理解。
重要限制
設計過程可能相當複雜,通常需要大型資料集來進行訓練,對於非空間表格資料的成效較差。
不適合處理高維空間資料,會忽略空間關係。如果輸入內容複雜且參數眾多,容易過度配適。
CNN 徹底改變了電腦視覺領域,讓機器能夠準確「看見」並解讀圖像。這類模型可以學習階層式視覺資料表示法,因此在多項電腦視覺工作取得了重大進展,包括:
圖像分類是電腦視覺的核心工作,會依據內容為整張圖像加上標籤。CNN 在這方面表現出色,在 ImageNet 等資料集的結果出類拔萃。這類模型可以從原始像素資料學習複雜特徵,因此能夠有效辨識圖像中的物體、場景,甚至是情緒。
物件偵測不僅可以分類,也能辨識圖像中的物體並找出位置。CNN 在物件偵測演算法舉足輕重,讓自動駕駛汽車等應用實例能感知周遭環境、讓機器人能在複雜環境移動,並讓安全系統偵測威脅。
CNN 的應用範圍遠遠超出圖像相關工作。這類模型可以學習特徵的空間階層,因此在多個領域都能派上用場,包括:
無論您需要現成的解決方案或強大的平台來自行建構內容,Google Cloud 都能提供完整的生態系統來應用 CNN。
預先訓練的視覺功能:如要為應用程式新增強大的視覺功能,而不想從頭建立模型,可以使用 Vision AI 等服務。這類服務提供簡單的 API,讓您存取以 CNN 為基礎的模型,藉此處理物件偵測和文字識別等工作。同理,Document AI 會使用 CNN 來解讀複雜文件及擷取資料。
建立、訓練及部署自訂模型:如要以自有資料訓練 CNN,您可以使用 Vertex AI 提供的統合式平台,管理整個機器學習生命週期,包括大規模準備資料、訓練、部署及監控自訂 CNN 模型。
加速執行高效能訓練:訓練最先進的大型 CNN 需要大量運算資源。Cloud TPU 是 Google 專為加速深度學習模型訓練而打造的特製硬體加速器,可以加快創新速度。