#### 2.2.1最近ConvNets演變中的關鍵架構
重新引起對ConvNet架構興趣的工作是Krishevsky的AlexNet [88]。 AlexNet能夠在ImageNet數據集上實現破紀錄的對象識別結果。它由8層組成,5個卷積和3個完全連接,如圖2.8所示。
AlexNet介紹了幾種架構設計決策,允許使用標準隨機梯度下降進行有效的網絡訓練。特別是,四項重要貢獻是AlexNet成功的關鍵。首先,AlexNet考慮使用ReLU非線性而不是先前最先進的ConvNet架構中使用的飽和非線性(如sigmoids)(_,例如_ .LeNet [91])。 ReLU的使用減少了消失梯度的問題,并導致更快的訓練。其次,注意到網絡中最后一個完全連接的層包含最多參數的事實,AlexNet使用了丟失,首先在神經網絡[136]的背景下引入,以減少過度擬合的問題。在AlexNet中實現的Dropout,包括隨機丟棄(_,即_。設置為零)一個層參數的給定百分比。該技術允許在每次通過時訓練略微不同的架構并且人為地減少每次通過時要學習的參數的數量,這最終有助于破壞單元之間的相關性,從而防止過度擬合。第三,AlexNet依靠數據增強來提高網絡學習不變表示的能力。例如,網絡不僅訓練在訓練集中的原始圖像上,而且還訓練通過隨機移動和反射訓練圖像而產生的變化。最后,AlexNet還依靠幾種技術使訓練過程更快地收斂,例如使用動量和預定學習率降低,從而每次學習停滯時學習率都會降低。

圖2.8:AlexNet架構。值得注意的是,雖然描述建議采用雙流體系結構,但實際上它是單流體系結構,這種描述僅反映了AlexNet在2個不同的GPU上并行訓練的事實。圖[88]再版。
AlexNet的出現導致試圖通過可視化了解網絡正在學習什么的論文數量急劇增加,如所謂的DeConvNet [154],或者通過對各種架構的系統探索[22,23]。這些探索的直接結果之一是認識到更深的網絡可以實現更好的結果,如19層深VGG-Net中首次證明的那樣[135]。 VGG-Net通過簡單堆疊更多層來實現其深度,同時遵循AlexNet引入的標準實踐(_,例如_。依靠ReLU非線性和數據增強技術進行更好的培訓)。在VGG-Net中呈現的主要新穎性是使用空間范圍較小的濾波器(_即_。在整個網絡中過濾而不是_,例如_。在AlexNet中使用過濾器),它允許增加深度而不會顯著增加網絡需要學習的參數數量。值得注意的是,在使用較小的過濾器時,VGG-Net每層需要更多的過濾器。
VGG-Net是遵循AlexNet的許多深度ConvNet架構中的第一個也是最簡單的。后來提出了一個更深層的架構,通常稱為GoogLeNet,有22層[138]。由于使用了所謂的初始模塊(如圖2.9(a)所示)作為構建塊,因此GoogLeNet比VGG-Net更深,所需參數要少得多。在初始模塊中,各種尺度的卷積運算和空間池并行發生。該模塊還增加了卷積(_,即_。跨通道池),用于降低維數以避免或衰減冗余過濾器,同時保持網絡的大小可管理。這種跨渠道匯集的想法是由以前的一項名為網絡網絡(NiN)[96]的研究結果推動的,該研究揭示了學習網絡中的大量冗余。堆疊許多初始模塊導致現在廣泛使用的GoogLeNet架構如圖2.9(b)所示。
|  |
| (一個) |
|  |
| (b)中 |
圖2.9:GoogLeNet架構。 (a)典型的初始模塊,顯示順序和并行發生的操作。 (b)典型“初始”架構的圖示,其包括堆疊許多初始模塊。圖[......]轉載
GoogLeNet是第一個偏離簡單堆疊卷積和匯集層的策略的網絡,很快就出現了迄今為止最深層的架構之一,稱為ResNet [64],它還提出了一個超過150層的新架構。 ResNet代表剩余網絡,主要貢獻在于它依賴于剩余學習。特別是,構建ResNet使得每個層在輸入之上學習增量變換,根據
(2.15)
而不是像其他標準ConvNet架構那樣直接學習轉換。這種剩余學習是通過使用跳過連接來實現的,如圖2.10(a)所示,它使用身份映射連接不同層的組件。信號的直接傳播在反向傳播期間對抗消失的梯度問題,從而能夠訓練非常深的架構。
|  |
| (a) |
|  |
| (b) |
圖2.10:ResNet架構。 (a)剩余模塊。 (b)典型ResNet架構的圖示,包括堆疊許多剩余模塊。圖[64]轉載。
最近,一個關于ResNet成功的密切相關的網絡就是所謂的DenseNet [72],它進一步推動了剩余連接的概念。在DenseNet中,每個層通過跳過連接連接到密集塊的所有后續層,如圖2.11所示。具體地,密集塊將所有層與相同大小的特征圖連接(_,即空間池層之間的_。塊)。與ResNet不同,DenseNet不會添加前一層的特征映射(2.15),而是連接特征映射,以便網絡根據以下內容學習新的表示。
(2.16)
作者聲稱,這種策略允許DenseNet在每一層使用更少的過濾器,因為通過將在一層提取的特征推送到層次結構中更高層的其他層,可以避免可能的冗余信息。重要的是,這些深度跳過連接允許更好的梯度流,因為較低層可以更直接地訪問損耗函數。使用這個簡單的想法,DenseNet可以與其他深層架構競爭,例如ResNet,同時需要更少的參數并減少過度擬合。
|  |
| (a) |
|  |
| (b) |
圖2.11:DenseNet架構。 (a)密集的模塊。 (b)典型的DenseNet架構的圖示,該架構包括堆疊許多密集模塊。圖[72]再版。
- 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
- 六、自編碼器,變分自編碼器和生成對抗網絡
- 七、遷移學習
- 八、機器學習最佳實踐和故障排除
- 九、大規模訓練
- 十、參考文獻