#### 2.1.4生成對抗網絡
生成性對抗網絡(GAN)是利用多層體系結構強大的代表性功能的相對較新的模型。 GAN最初是在2014年推出的[57]雖然它們本身沒有提出不同的架構(_即_。例如,在新型網絡構建模塊方面),它們具有一些特殊性,這使得它們略有不同不同類型的多層架構。 GAN響應的一個關鍵挑戰是采用無監督的學習方法,不需要標記數據。
典型的GAN由兩個競爭塊或子網組成,如圖2.7所示;發生器網絡和鑒別器網絡,其中是輸入隨機噪聲,是實際輸入數據(_,例如_。圖像)和和分別是兩個塊的參數。每個塊可以由任何先前定義的多層體系結構構成。在原始論文中,發生器和鑒別器都是多層全連接網絡。鑒別器被訓練為識別來自發生器的數據并且以概率分配標簽“假”,同時以概率將標簽“真實”分配給真實輸入數據。作為補充,生成器網絡被優化以生成能夠欺騙鑒別器的偽表示。這兩個塊在幾個步驟中交替訓練,其中訓練過程的理想結果是鑒別器,其將的概率分配給真實和偽造數據。換句話說,在收斂之后,生成器應該能夠從隨機輸入生成實際數據。

圖2.7:通用生成性對抗網絡(GAN)結構的圖示。
自原始論文以來,許多貢獻都參與了通過使用更強大的多層架構作為網絡的主干來增強GAN的能力[114](_,例如_。用于鑒別器和反卷積網絡的預訓練卷積網絡,學習發電機的上采樣濾波器。 GAN的一些成功應用包括:文本到圖像合成(其中網絡的輸入是要渲染的圖像的文本描述[115]),圖像超分辨率,其中GAN從較低的生成逼真的高分辨率圖像分辨率輸入[94],圖像修復GAN的作用是從輸入圖像填充缺失信息的孔[149]和紋理合成,其中GAN用于從輸入噪聲合成真實紋理[10]。
#### 2.1.5多層網絡培訓
如前幾節所述,各種多層架構的成功在很大程度上取決于其學習過程的成功與否。雖然神經網絡通常首先依賴于無監督的預訓練步驟,如2.1.1節所述,但它們通常遵循最廣泛使用的多層架構訓練策略,這是完全監督的。訓練過程通常基于使用梯度下降的誤差反向傳播。梯度下降因其簡單性而廣泛用于訓練多層架構。它依賴于最小化平滑誤差函數,遵循定義為的迭代過程
(2.11)
其中表示網絡參數,是可以控制收斂速度的學習速率,是在訓練集上計算的誤差梯度。這種簡單的梯度下降方法特別適用于訓練多層網絡,這要歸功于使用鏈規則進行反向傳播并計算相對于不同層的各種網絡參數的誤差導數。雖然反向傳播可追溯到多年[16,146],但它在多層架構的背景下得到了普及[125]。在實踐中,使用隨機梯度下降[2],其包括從連續的相對小的子集中近似整個訓練集上的誤差梯度。
梯度下降算法的主要問題之一是學習率的選擇。學習率太小會導致收斂緩慢,而較大的學習率會導致圍繞最佳狀態的過沖或波動。因此,提出了幾種方法來進一步改進簡單的隨機梯度下降優化方法。最簡單的方法,稱為隨機梯度下降與動量[137],跟蹤從一次迭代到另一次迭代的更新量,并通過進一步推動更新,如果梯度從一個方向指向同一方向,進一步推動學習過程時間步驟到另一個定義,
(2.12)
用控制動量。另一種簡單的方法涉及根據固定的時間表以遞減的方式設置學習速率,但這遠非理想,因為該時間表必須在訓練過程之前預先設定并且完全獨立于數據。其他更復雜的方法(_,例如_ .Adagrad [34],Adadelta [152],Adam [86])建議通過執行較小的更新,在訓練期間調整學習率到每個參數。頻繁變化的參數和不常見的更新。這些算法的不同版本之間的詳細比較可以在其他地方找到[124]。
使用梯度下降及其變體進行訓練的主要缺點是需要大量標記數據。解決這一困難的一種方法是采用無監督學習。用于訓練一些淺層ConvNet架構的流行的無監督方法基于預測稀疏分解(PSD)方法[85]。 Predictive Sparse Decomposition學習一組過度完整的濾波器,其組合可用于重建圖像。該方法特別適用于學習卷積體系結構的參數,因為該算法被設計用于學習以補丁方式重建圖像的基函數。具體地,預測稀疏分解(PSD)建立在稀疏編碼算法的基礎上,該算法試圖通過與基組B的線性組合來找到輸入信號X的有效表示Y.形式上,稀疏編碼的問題廣泛地存在。制定為最小化問題,定義為,
(2.13)
PSD通過最小化定義為的重構誤差,在卷積框架中調整稀疏編碼的思想,
(2.14)
其中和,和分別是網絡的權重,偏差和增益(或歸一化因子)。通過最小化方程2.14中定義的損失函數,算法學習表示,重建輸入補丁,同時類似于預測表示。由于等式的第二項,學習的表示也將是稀疏的。在實踐中,誤差在兩個交替步驟中被最小化,其中參數是固定的并且在上執行最小化。然后,表示被固定,同時最小化其他參數。值得注意的是,PSD以補片程序應用,其中每組參數是從輸入圖像重建不同的補丁中學習的。換句話說,通過將重建聚焦在輸入圖像的不同部分上來學習不同的內核集。
#### 2.1.6關于轉學的一個詞
培訓多層體系結構的一個意想不到的好處是學習特征在不同數據集甚至不同任務中的令人驚訝的適應性。例子包括使用ImageNet訓練的網絡識別:其他物體識別數據集,如Caltech-101 [38](_,例如_。[96,154]),其他識別任務,如紋理識別(_例如_。[25]),其他應用,如物體檢測(_,例如_。[53])甚至基于視頻的任務,如視頻動作識別(_,例如_)。 [134,41,144])。
使用多層體系結構在不同數據集和任務中提取的特征的適應性可以歸因于它們的層次性,其中表示從簡單和局部到抽象和全局。因此,在層次結構的較低層提取的特征往往在不同的任務中是共同的,從而使多層架構更適合于轉移學習。
對不同網絡和任務中特征的有趣可轉移性進行系統探索,揭示了考慮轉移學習時需要考慮的幾個良好實踐[150]。首先,它表明僅微調更高層,與微調整個網絡相比,系統性能更好。其次,這項研究表明,任務越多,轉移學習效率就越低。第三,更令人驚訝的是,人們發現,即使經過微調,網絡在初始任務下的表現也不會受到特別的阻礙。
最近,一些新興的努力試圖通過將學習問題作為連續的兩步程序,_,例如_ [3,127]來強制執行網絡“轉移學習能力。首先,所謂的快速學習步驟如通常所做的那樣,在網絡針對特定任務進行優化的情況下執行。其次,在全局學習步驟中進一步更新網絡參數,該步驟嘗試最小化不同任務之間的錯誤。
### 2.2空間卷積網絡
理論上,卷積網絡可以應用于任意維度的數據。它們的二維實例非常適合于單個圖像的結構,因此在計算機視覺中受到了相當大的關注。隨著大規模數據集和功能強大的計算機的可用性,視覺界最近看到ConvNets在各種應用中的使用激增。本節介紹最突出的2D ConvNet架構,它將相對新穎的組件引入2.1.3節中描述的原始LeNet。
- 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
- 六、自編碼器,變分自編碼器和生成對抗網絡
- 七、遷移學習
- 八、機器學習最佳實踐和故障排除
- 九、大規模訓練
- 十、參考文獻