一、卷積神經網絡的概述
卷積神經網絡(ConvolutionalNeural Network,CNN)最初是為解決圖像識別等問題設計的,CNN現在的應用已經不限于圖像和視頻,也可用于時間序列信號,比如音頻信號和文本數據等。CNN作為一個深度學習架構被提出的最初訴求是降低對圖像數據預處理的要求,避免復雜的特征工程。在卷積神經網絡中,第一個卷積層會直接接受圖像像素級的輸入,每一層卷積(濾波器)都會提取數據中最有效的特征,這種方法可以提取到圖像中最基礎的特征,而后再進行組合和抽象形成更高階的特征,因此CNN在理論上具有對圖像縮放、平移和旋轉的不變性。
卷積神經網絡CNN的要點就是局部連接(LocalConnection)、權值共享(Weights Sharing)和池化層(Pooling)中的降采樣(Down-Sampling)。其中,局部連接和權值共享降低了參數量,使訓練復雜度大大下降并減輕了過擬合。同時權值共享還賦予了卷積網絡對平移的容忍性,池化層降采樣則進一步降低了輸出參數量并賦予模型對輕度形變的容忍性,提高了模型的泛化能力。可以把卷積層卷積操作理解為用少量參數在圖像的多個位置上提取相似特征的過程。
卷積層的空間排列:上文講解了卷積層中每個神經元與輸入數據體之間的連接方式,但是尚未討論輸出數據體中神經元的數量,以及它們的排列方式。3個超參數控制著輸出數據體的尺寸:深度(depth),步長(stride)和零填充(zero-padding)。首先,輸出數據體的深度是一個超參數:它和使用的濾波器的數量一致,而每個濾波器在輸入數據中尋找一些不同的東西。其次,在滑動濾波器的時候,必須指定步長。有時候將輸入數據體用0在邊緣處進行填充是很方便的。這個零填充(zero-padding)的尺寸是一個超參數。零填充有一個良好性質,即可以控制輸出數據體的空間尺寸(最常用的是用來保持輸入數據體在空間上的尺寸,這樣輸入和輸出的寬高都相等)。輸出數據體在空間上的尺寸可以通過輸入數據體尺寸(W),卷積層中神經元的感受野尺寸(F),步長(S)和零填充的數量(P)的函數來計算。(這里假設輸入數組的空間形狀是正方形,即高度和寬度相等)輸出數據體的空間尺寸為(W-F +2P)/S+1,在計算上,輸入數據體的長和寬按照該公式計算,深度依賴于濾波器的數量。步長的限制:注意這些空間排列的超參數之間是相互限制的。舉例說來,當輸入尺寸W=10,不使用零填充則P=0,濾波器尺寸F=3,這樣步長S=2就行不通,結果4.5不是整數,這就是說神經元不能整齊對稱地滑過輸入數據體。
匯聚層使用MAX操作,對輸入數據體的每一個深度切片獨立進行操作,改變它的空間尺寸。最常見的形式是匯聚層使用尺寸2x2的濾波器,以步長為2來對每個深度切片進行降采樣,將其中75%的激活信息都丟掉。每個MAX操作是從4個數字中取最大值(也就是在深度切片中某個2x2的區域)。深度保持不變。
新聞熱點
疑難解答