### 3.4匯集
實際上,任何ConvNet模型,無論是生物學啟發,純粹基于學習還是完全手工制作,都包括一個共同的步驟。匯集操作的目標是為位置和比例的變化帶來一定程度的不變性,以及聚合特征映射內和跨特征映射的響應。類似于前面部分討論的ConvNets的三個構建模塊,生物學發現以及更多理論驅動的調查也支持匯集。卷積網絡中這一層處理的主要爭論在于匯集函數的選擇。最常見的兩種變體是平均和最大池。本節探討了每種方法的優點和缺點,并討論了相關文獻中描述的其他變化。
#### 3.4.1生物學觀點
從生物學的角度來看,匯集主要是由皮質復合細胞的行為驅動[74,109,67,18]。在他們的開創性工作中,Hubel和Wiesel [74]發現,就像簡單細胞一樣,復雜細胞也被調整到特定方向,但與簡單細胞相反,復雜細胞表現出一定程度的位置不變性。他們建議通過某種匯集來實現這一結果,其中調整到相同方向的簡單單元的響應在空間和/或時間上匯集,如圖3.9所示。

圖3.9:簡單和復雜細胞之間差異的說明。該圖表明復雜細胞反應是由簡單細胞反應的組合產生的。
一些早期生物學啟發的卷積網絡,如福島的新知識[49]和原始的LeNet網絡[91]依賴于平均匯集。在這些努力中,平均匯集后進行二次抽樣主要是由Hubel和Wiesel的調查結果推動的,它用于降低網絡對位置變化的敏感度。另一方面,HMAX [117]類網絡(_,例如_。[130,110,131,79])依賴于最大池化。最大匯集策略的支持者聲稱,當匯集運算符的輸入是一組Gabor濾波圖像(_,即_,簡單單元的典型模型)時,它更合理。實際上,作者認為,當應用于自然圖像時,高斯尺度空間(_即_。類似于加權平均合并)揭示了不同尺度的新結構,當應用于自然圖像時,它會導致特征逐漸消失。 Gabor濾波圖像;見圖3.10(a)。另一方面,最大池操作增強了不同尺度的濾波圖像中最強的響應,如圖3.10(b)所示。
|  |
| (一個) |
|  |
| (b)中 |
圖3.10:Gabor濾波圖像的平均值與最大池數。該示例示出了當應用于((a)頂行)原始灰度值圖像和((a)底行)其Gabor濾波版本時在各種尺度下的平均合并的效果。雖然平均合并導致灰度值圖像的更平滑版本,但稀疏的Gabor濾波圖像逐漸消失。相比之下,該示例還示出了當應用于相同灰度值圖像((b)頂行)和((b)底行)其Gabor濾波版本時在各種尺度下的最大合并的效果。這里,最大池化導致灰度值圖像降級,而Gabor濾波版本中的稀疏邊緣被增強。圖[131]轉載。
復雜單元的行為也可以被視為一種跨通道池,這又是將不變性注入表示的另一種方法。通過組合前一層的各種過濾操作的輸出來實現跨通道池化。這個想法是由Mutch和Lowe [110]提出的,作為最突出的生物學啟發網絡[131]的擴展,之前在3.1節中介紹并在圖3.2中說明。特別是,作者在其網絡的第二層引入跨通道的最大池,其中S2簡單單元的輸出跨多個方向匯集,以在每個空間位置保持最大響應單元,如圖3.11所示。

圖3.11:跨渠道池圖。 (左)由過濾操作產生的密集簡單細胞響應,Gabor濾波器調整到不同方向(此處顯示了4個方向用于說明目的)(右)使用max運算符(_即交叉通道匯集產生的稀疏簡單單元響應)_ 。對于每個像素位置,保持特征圖上的最大響應)。圖[110]轉載。
##### 討論
總的來說,基于對復雜細胞的描述,似乎從生物學的角度來看,平均和最大匯集都是合理的,盡管有更多的工作主張平均匯集。獨立于匯集運算符的選擇,事實是對匯集的存在和重要性存在普遍的一致意見。一個可能更重要的問題在于接受場的選擇或執行合并的單位。在更多理論驅動的工作中進一步探討了匯集操作的這一方面,這將在下一節中描述。
#### 3.4.2理論觀點
池化已經成為計算機視覺表征管道的一個組成部分,_,例如_。 [99,30,89,49,91],目的是為圖像變換引入一定程度的不變性,并對噪聲和雜波具有更好的魯棒性。從理論的角度來看,可能是影響匯集的重要性和作用的最有影響力的作品之一是Koendrink的局部無序圖像概念[87]。這項工作有利于匯集在感興趣區域(ROI),_,即_內的像素的確切位置。即使在保留全局圖像結構的同時,也可以忽略池化區域。目前,幾乎所有卷積體系結構都包含池化塊作為其處理階段的一部分。與生物學動機模型一樣,更多理論驅動的方法通常采用平均或最大池化。
最近的工作從純粹基于理論的角度來看待他們的網絡設計_,例如_。 ScatNet [15]和SOE-Net [60]依賴于一種平均匯集形式。特別是,他們的網絡依賴于加權和池操作。這些方法從頻域的角度來解決匯集問題;因此,他們對平均合并的選擇是由追蹤信號頻率內容的愿望所驅動的。平均池化允許這些網絡在每層上作用于不同頻率,同時對圖像進行下采樣以增加不變性并減少冗余。同時,他們指定池參數的受控方法允許它們在池操作期間避免混疊。值得注意的是,在SOE-Net的調查中,加權平均匯集的優勢在經驗上證明了簡單的車廂合并和最大匯集。
有趣的是,大多數早期的卷積結構也依賴于平均匯集,_,例如_。 [49,91],但它在許多基于學習的卷積體系結構中慢慢失寵,并被最大池化所取代。這種趨勢主要是由于業績的微小差異所致。但是,匯集在網絡中的作用很重要,需要更仔細地考慮。事實上,早期工作探索匯集[77]的作用表明,匯集的類型在ConvNet架構中起著如此重要的作用,即使是隨機初始化的網絡也會在對象識別任務中產生競爭結果,提供了適當的匯集類型。用來。特別是,這項工作比較了平均和最大池,并證明了隨機初始化的網絡平均匯集產生了卓越的性能。
其他工作更系統地比較了平均和最大池的經驗[128]并且表明兩種類型的池之間存在互補性,這取決于輸入類型和它經歷的變換。因此,這項工作意味著ConvNets可以從整個架構中使用多個池選項中受益。然而,其他工作從純粹的理論角度考慮了這個問題[12]。具體來說,這項工作檢查了平均與最大池對提取特征的可分離性的影響。本文的主要結論可歸納為兩點。首先,作者認為當匯集特征非常稀疏時,最大池更合適(_,例如_。當匯集前面有ReLU時)。其次,作者建議匯集基數應隨輸入大小而增加,并且池基數會影響匯集功能。更一般地說,已經表明,除了池化類型之外,池化大小也起著重要作用。
盡管經驗上[81,27],其他各種研究也探討了匯集基數的重要性。實際上,匯集基數的作用首先在早期手工制作的特征提取管道[81]的背景下進行了討論。特別是,這項工作建立在空間金字塔池[89]編碼方法的基礎上,同時突出了使用預定的固定大小池網格的缺點。作者建議學習合并窗口“大小作為分類器訓練的一部分。更具體地說,作者建議隨機挑選不同基數的不同合并區域,并訓練分類器選擇產生最高準確度的合并區域。這背后的主要動機基于學習的策略是使池化適應于數據集。例如,室外場景的最佳池區可能位于地平線上,這不一定適用于室內場景。同樣,對于視頻動作識別,它更適合于適應匯集區域到視頻最顯著的部分[39]。匯集窗口大小或基數的作用也直接在神經網絡環境中進行探索[27]。這里,作者建議最相似的特征應該是作者建議以無人監督的方式微調其網絡的匯集支持(_即_。匯集區域)。具體地,選擇合并窗口以根據成對相似性矩陣將相似特征組合在一起,其中相似性度量是平方相關性。除了平均和最大池操作之外,這些調查的共同點是獨立于池功能的池區域的重要性。
從純機器學習的角度來看,其他工作涉及池的選擇及其相應的參數[153,58,96]。從這個角度來看,池化被提倡作為一種正規化技術,允許在訓練期間改變網絡的結構。特別地,由于在訓練期間反向傳播的信號可能采取的路徑的變化,因此匯集允許在大型架構內創建子模型。這些變化是通過諸如隨機匯集[153]或在最大網絡[58]和網絡中的網絡(NiN)[96]中使用的跨渠道匯集等方法實現的。 NiN最初是作為一種處理過度擬合和糾正ConvNets過度完整表示的方法而引入的[96]。特別是,由于每層使用了大量內核,因此注意到許多網絡經常在訓練后學習冗余過濾器。因此,引入NiN以通過訓練網絡來減少每層的冗余以了解使用加權線性組合來組合哪些特征圖。與NiN類似,Maxout網絡[58]引入了跨信道池,其中輸出被設置為基于信道的特征映射的最大值。值得注意的是,最近的一項提案還依賴于跨渠道共享來盡量減少冗余[60],即使在完全免費學習的情況下也是如此。在這項工作中,網絡基于過濾器的固定詞匯表,并且跨渠道池用于將使用相同內核的過濾操作產生的特征映射組合在一起。除了最大限度地減少冗余之外,采用這種方法可以使網絡規模保持可管理性,同時保持可解釋性。
隨機匯集(SP)[153]也被引入作為正則化技術。但是,與執行跨通道池的maxout和NiN不同,SP在特征映射中起作用。特別是,隨機匯集的靈感來自廣泛用于完全連接層的丟失技術,但SP應用于卷積層。它依賴于向集合操作引入隨機性,該集合操作迫使反向傳播的信號在訓練期間在每次迭代時隨機地采用不同的路徑。該方法首先將要合并的每個區域內的特征圖響應標準化,,
(3.11)
然后將歸一化值用作多項分布的概率,該多項分布又用于對要合并的區域內的位置進行采樣。相應的激活是合并的值。重要的是,盡管隨機匯集依賴于從任何區域選擇一個值(_,即_。類似于最大匯集),匯總值不一定是中最大的值。在此,重要的是要注意在測試期間采用不同的池策略。在測試時,概率不再用于在合并期間對位置進行采樣;相反,它們被用作加權和池操作的權重。因此,隨機匯集在精神上與訓練期間的最大匯集更接近,并且在測試期間更接近于平均匯集。作者認為,在訓練期間采用的匯集策略允許通過不同的途徑創建不同的模型,而在測試期間使用的匯集允許創建在訓練期間看到的所有可能模型的粗略平均近似值。總之,隨機池可以看作是嘗試平均和最大池的最佳結果。
嘗試在平均池和最大池之間實現平衡的另一種方法建議讓網絡學習最佳池化方法[95]。多個匯集策略的這種想法是通過實驗證明最佳匯集策略的選擇受輸入影響[128]。特別是,作者提出了三種不同的方法來結合平均和最大匯集的好處,即:混合,門控和樹池。混合池結合了平均和最大池,獨立于要匯集的區域,在那里訓練網絡以根據混合比例學習混合比例。
(3.12)
受約束條件。在門控最大平均匯集中,混合比例適合于要匯集的區域。特別地,訓練網絡以學習通過逐點乘法應用于輸入數據的選通掩碼。使用這個選通掩模,混合功能現在定義為
(3.13)
用。
在這項工作中提出的第三個匯集策略是樹池,它可以被視為門控池的極端版本??。在樹池中,不僅學習了混合比例,而且還學習了要組合的池化功能。具體地,采用樹結構來學習各個函數的參數及其混合策略。三種池化方法的區別如圖3.12所示。總之,這些提案背后的主要思想是讓匯集戰略適應所匯集的地區。遵循這一策略,作者能夠證明不僅結合平均和最大匯集的價值,而且還證明了匯集函數適應匯總區域的價值。

圖3.12:混合,門控和樹池。所描述的(a)混合最大??平均合并,(b)門控最大平均合并和(c)樹合并的圖示。圖[?]復制。
最后,在本節中值得一提的是最后一種類型的池,稱為全局池。在一些著名的ConvNet模型中使用了全局池,以解決與ConvNet架構設計相關的更多實際問題[62,96]。例如,眾所周知,標準ConvNets依靠卷積層進行特征學習/提取,完全連接的層依次使用softmax進行分類。然而,完全連接的層需要使用大量參數,因此易于過度擬合。引入了許多方法來處理由完全連接的層引起的過度擬合,也許最廣泛使用的是丟失[88]。然而,在NiN [96]中引入了一種更自然地融入卷積框架的更優雅的方法,它被稱為全球平均匯集。它只依賴于在整個功能映射支持中聚合最后一層功能。在所謂的SPP-Net [62]中也發現了依賴全局匯集的另一個例子。在這項工作中,空間金字塔池(SPP)[89]用于使卷積網絡接受任何大小的輸入圖像。實際上,由于使用完全連接的層,ConvNets需要固定大小的輸入。 SPP-Net在最后一個卷積層之后引入空間金字塔池以糾正這個難度。特別是,空間金字塔池用于生成獨立于輸入圖像大小的固定大小表示,如圖3.13所示。值得注意的是,NiN中使用的全局平均池,類似于在ConvNet的最后一層執行空間金字塔池,其中金字塔僅由最粗糙的層組成。

圖3.13:空間金字塔池網絡。 SPP應用于網絡的最后卷積層的特征映射。由于空間區間與圖像大小成比例,因此SPP生成與輸入圖像大小無關的相同大小的特征向量。因此,SPP-Net不要求對輸入圖像進行預處理,使得它們具有相同的尺寸。圖[62]轉載。
##### Discussion
傳統上,池中使用的默認函數依賴于average或max運算符。然而,一些調查顯示兩者之間存在某種互補關系,表明在選擇匯集操作時應考慮更多參數。由于這些觀察,最近的研究一直在推動將培訓的理念擴展到包括學習匯集功能及其參數。然而,該方向需要增加要學習的參數的數量,從而增加過度擬合的機會。重要的是,這種方法應謹慎對待,因為它可能會進一步模糊我們對所學習的表示的了解和理解。作為補充,可以在理論基礎上指定匯集參數,以用于先前處理階段具有足夠分析細節的情況。總體而言,匯集應被視為一種將多個功能的信息匯總為緊湊形式的方法,該形式在丟棄細節的同時保留信號的重要方面。除了決定如何總結這些功能之外,很明顯,更難的問題是確定應該匯集的數據是什么以及數據存在的位置。
### 3.5總體討論
本章討論了典型ConvNet架構中使用最廣泛的構建塊的作用和重要性,以便了解ConvNets的工作原理。特別是,每個塊的細節都是從生物學和理論的角度來解決的。總的來說,各種共同的線索來自對所討論的構建塊的探索。特別是,似乎所有區塊都從視覺皮層中發生的操作中找到了相對強烈的動機。此外,雖然所有塊在ConvNets中都發揮了重要作用,但似乎卷積核的選擇是最重要的方面,正如解決這一塊的大量文獻所證明的那樣。更重要的是,似乎本章中討論的更新的ConvNet架構(_,例如_。[15,75,28,148,60])旨在通過結合更多控制來最小化對基于重訓練的解決方案的需求。在他們的網絡的各個階段構建塊。這些最近的方法反過來通過各種努力推動,這些努力通過分層可視化和消融研究揭示了基于學習的ConvNets(_,例如_。在一些廣泛使用的學習型ConvNets中的主要冗余)的次優性,將在下一章討論。
- TensorFlow 1.x 深度學習秘籍
- 零、前言
- 一、TensorFlow 簡介
- 二、回歸
- 三、神經網絡:感知器
- 四、卷積神經網絡
- 五、高級卷積神經網絡
- 六、循環神經網絡
- 七、無監督學習
- 八、自編碼器
- 九、強化學習
- 十、移動計算
- 十一、生成模型和 CapsNet
- 十二、分布式 TensorFlow 和云深度學習
- 十三、AutoML 和學習如何學習(元學習)
- 十四、TensorFlow 處理單元
- 使用 TensorFlow 構建機器學習項目中文版
- 一、探索和轉換數據
- 二、聚類
- 三、線性回歸
- 四、邏輯回歸
- 五、簡單的前饋神經網絡
- 六、卷積神經網絡
- 七、循環神經網絡和 LSTM
- 八、深度神經網絡
- 九、大規模運行模型 -- GPU 和服務
- 十、庫安裝和其他提示
- TensorFlow 深度學習中文第二版
- 一、人工神經網絡
- 二、TensorFlow v1.6 的新功能是什么?
- 三、實現前饋神經網絡
- 四、CNN 實戰
- 五、使用 TensorFlow 實現自編碼器
- 六、RNN 和梯度消失或爆炸問題
- 七、TensorFlow GPU 配置
- 八、TFLearn
- 九、使用協同過濾的電影推薦
- 十、OpenAI Gym
- TensorFlow 深度學習實戰指南中文版
- 一、入門
- 二、深度神經網絡
- 三、卷積神經網絡
- 四、循環神經網絡介紹
- 五、總結
- 精通 TensorFlow 1.x
- 一、TensorFlow 101
- 二、TensorFlow 的高級庫
- 三、Keras 101
- 四、TensorFlow 中的經典機器學習
- 五、TensorFlow 和 Keras 中的神經網絡和 MLP
- 六、TensorFlow 和 Keras 中的 RNN
- 七、TensorFlow 和 Keras 中的用于時間序列數據的 RNN
- 八、TensorFlow 和 Keras 中的用于文本數據的 RNN
- 九、TensorFlow 和 Keras 中的 CNN
- 十、TensorFlow 和 Keras 中的自編碼器
- 十一、TF 服務:生產中的 TensorFlow 模型
- 十二、遷移學習和預訓練模型
- 十三、深度強化學習
- 十四、生成對抗網絡
- 十五、TensorFlow 集群的分布式模型
- 十六、移動和嵌入式平臺上的 TensorFlow 模型
- 十七、R 中的 TensorFlow 和 Keras
- 十八、調試 TensorFlow 模型
- 十九、張量處理單元
- TensorFlow 機器學習秘籍中文第二版
- 一、TensorFlow 入門
- 二、TensorFlow 的方式
- 三、線性回歸
- 四、支持向量機
- 五、最近鄰方法
- 六、神經網絡
- 七、自然語言處理
- 八、卷積神經網絡
- 九、循環神經網絡
- 十、將 TensorFlow 投入生產
- 十一、更多 TensorFlow
- 與 TensorFlow 的初次接觸
- 前言
- 1.?TensorFlow 基礎知識
- 2. TensorFlow 中的線性回歸
- 3. TensorFlow 中的聚類
- 4. TensorFlow 中的單層神經網絡
- 5. TensorFlow 中的多層神經網絡
- 6. 并行
- 后記
- TensorFlow 學習指南
- 一、基礎
- 二、線性模型
- 三、學習
- 四、分布式
- TensorFlow Rager 教程
- 一、如何使用 TensorFlow Eager 構建簡單的神經網絡
- 二、在 Eager 模式中使用指標
- 三、如何保存和恢復訓練模型
- 四、文本序列到 TFRecords
- 五、如何將原始圖片數據轉換為 TFRecords
- 六、如何使用 TensorFlow Eager 從 TFRecords 批量讀取數據
- 七、使用 TensorFlow Eager 構建用于情感識別的卷積神經網絡(CNN)
- 八、用于 TensorFlow Eager 序列分類的動態循壞神經網絡
- 九、用于 TensorFlow Eager 時間序列回歸的遞歸神經網絡
- TensorFlow 高效編程
- 圖嵌入綜述:問題,技術與應用
- 一、引言
- 三、圖嵌入的問題設定
- 四、圖嵌入技術
- 基于邊重構的優化問題
- 應用
- 基于深度學習的推薦系統:綜述和新視角
- 引言
- 基于深度學習的推薦:最先進的技術
- 基于卷積神經網絡的推薦
- 關于卷積神經網絡我們理解了什么
- 第1章概論
- 第2章多層網絡
- 2.1.4生成對抗網絡
- 2.2.1最近ConvNets演變中的關鍵架構
- 2.2.2走向ConvNet不變性
- 2.3時空卷積網絡
- 第3章了解ConvNets構建塊
- 3.2整改
- 3.3規范化
- 3.4匯集
- 第四章現狀
- 4.2打開問題
- 參考
- 機器學習超級復習筆記
- Python 遷移學習實用指南
- 零、前言
- 一、機器學習基礎
- 二、深度學習基礎
- 三、了解深度學習架構
- 四、遷移學習基礎
- 五、釋放遷移學習的力量
- 六、圖像識別與分類
- 七、文本文件分類
- 八、音頻事件識別與分類
- 九、DeepDream
- 十、自動圖像字幕生成器
- 十一、圖像著色
- 面向計算機視覺的深度學習
- 零、前言
- 一、入門
- 二、圖像分類
- 三、圖像檢索
- 四、對象檢測
- 五、語義分割
- 六、相似性學習
- 七、圖像字幕
- 八、生成模型
- 九、視頻分類
- 十、部署
- 深度學習快速參考
- 零、前言
- 一、深度學習的基礎
- 二、使用深度學習解決回歸問題
- 三、使用 TensorBoard 監控網絡訓練
- 四、使用深度學習解決二分類問題
- 五、使用 Keras 解決多分類問題
- 六、超參數優化
- 七、從頭開始訓練 CNN
- 八、將預訓練的 CNN 用于遷移學習
- 九、從頭開始訓練 RNN
- 十、使用詞嵌入從頭開始訓練 LSTM
- 十一、訓練 Seq2Seq 模型
- 十二、深度強化學習
- 十三、生成對抗網絡
- TensorFlow 2.0 快速入門指南
- 零、前言
- 第 1 部分:TensorFlow 2.00 Alpha 簡介
- 一、TensorFlow 2 簡介
- 二、Keras:TensorFlow 2 的高級 API
- 三、TensorFlow 2 和 ANN 技術
- 第 2 部分:TensorFlow 2.00 Alpha 中的監督和無監督學習
- 四、TensorFlow 2 和監督機器學習
- 五、TensorFlow 2 和無監督學習
- 第 3 部分:TensorFlow 2.00 Alpha 的神經網絡應用
- 六、使用 TensorFlow 2 識別圖像
- 七、TensorFlow 2 和神經風格遷移
- 八、TensorFlow 2 和循環神經網絡
- 九、TensorFlow 估計器和 TensorFlow HUB
- 十、從 tf1.12 轉換為 tf2
- TensorFlow 入門
- 零、前言
- 一、TensorFlow 基本概念
- 二、TensorFlow 數學運算
- 三、機器學習入門
- 四、神經網絡簡介
- 五、深度學習
- 六、TensorFlow GPU 編程和服務
- TensorFlow 卷積神經網絡實用指南
- 零、前言
- 一、TensorFlow 的設置和介紹
- 二、深度學習和卷積神經網絡
- 三、TensorFlow 中的圖像分類
- 四、目標檢測與分割
- 五、VGG,Inception,ResNet 和 MobileNets
- 六、自編碼器,變分自編碼器和生成對抗網絡
- 七、遷移學習
- 八、機器學習最佳實踐和故障排除
- 九、大規模訓練
- 十、參考文獻