C語言中文網 目錄
TensorFlow
1 TensorFlow是什么
2 TensorFlow安裝和下載
3 第一個TensorFlow程序
4 TensorFlow程序結構
5 TensorFlow常量、變量和占位符
6 TensorFlow矩陣基本操作
7 TensorFlow TensorBoard數據流圖可視化
8 TensorFlow代碼自動升級為1.0版本
9 TensorFlow XLA
10 TensorFlow指定CPU和GPU設備
11 TensorFlow與深度學習
12 TensorFlow常用Python擴展包
13 回歸算法有哪些
14 TensorFlow損失函數
15 TensorFlow優化器
16 TensorFlow csv文件讀取數據
17 TensorFlow實現簡單線性回歸
18 TensorFlow實現多元線性回歸
19 TensorFlow邏輯回歸處理MNIST數據集
20 感知機與神經網絡
21 TensorFlow常用激活函數(6種)
22 TensorFlow實現單層感知機
23 TensorFlow實現反向傳播算法
24 TensorFlow多層感知機實現MINIST分類
25 TensorFlow多層感知機函數逼近
26 TensorFlow超參數
27 TensorFlow Keras
28 CNN卷積神經網絡
29 三維卷積神經網絡預測MNIST數字
30 卷積神經網絡分類圖片
31 遷移學習
32 DeepDream網絡
33 TensorFlow實現文本情感分析
34 VGG網絡濾波器
35 VGGNet、ResNet、Inception和Xception
36 預建深度學習提取特征及實現
37 TensorFlow實現InceptionV3
38 TensorFlow WaveNet聲音合成
39 TensorFlow視頻分類(6種方法)
40 RNN循環神經網絡
41 神經機器翻譯(seq2seq RNN)
42 注意力機制(基于seq2seq RNN)
43 RNN訓練模型并生成文本
44 RNN循環神經網絡實現預測比特幣價格
45 主成分分析法(PCA)
46 k均值聚類算法
47 SOM自組織映射法
48 受限玻爾茲曼機訓練
49 推薦系統的實現(基于RBM)
50 基于DBN實現情緒檢測
51 自編碼器
52 標準自編碼器
53 稀疏自編碼器
54 去燥自編碼器
55 卷積自編碼器
56 堆疊自編碼器
57 強化學習
58 OpenAI Gym安裝和使用
59 全連接神經網絡實現玩Pac-Man游戲
60 Q learning實現Cart-Pole平衡游戲
61 DQN算法(深度Q網絡)
62 David Silver策略梯度算法
63 深度學習在移動端的應用
64 Android移動端部署TensorFlow mobile
65 iPhone移動端部署TensorFlow mobile
66 移動端優化TensorFlow代碼
67 GAN生成式對抗網絡
68 GAN生成式對抗網絡虛構MNIST圖像
69 DCGAN虛構MNIST圖像
70 DCGAN虛構名人面孔和其他數據集
71 VAE變分自編碼器
72 CapsNet膠囊網絡
73 TensorFlow分布式
74 TensorFlow GPU的安裝和使用
75 TensorFlow分布式
76 TensorFlow分布式訓練MNIST分類器
77 TensorFlow Serving運行Docker容器
78 TensorFlow分布式在谷歌云平臺運行
79 TensorFlow分布式在谷歌CloudML運行
80 TensorFlow分布式在Microsoft Azure上運行
81 TensorFlow分布式在Amazon AWS上運行
首頁 > TensorFlow 閱讀:103

去燥自編碼器(TensorFlow)實現詳解

< 上一頁稀疏自編碼器 卷積自編碼器下一頁 >

前兩節中探討的兩個自編碼器屬于欠完備自動編碼機,因為隱藏層的維度比輸入(輸出)層低。去噪自編碼器屬于過完備自編碼器,隱藏層的維數大于輸入層時效果會更好。

去噪自編碼器從受損(噪聲)輸入中學習,它向編碼器網絡提供有噪聲的輸入,然后將解碼器的重構圖像與原始輸入進行比較,這就會“教會”網絡去學習如何對輸入去噪。不再只是進行像素比較,為了去噪,它也會學習相鄰像素的信息。

準備工作

去噪自編碼器也具有 KL 散度懲罰項,它不同于稀疏自編碼器的主要有兩個方面,首先,隱藏層的單元數 n_hidden 大于輸入層的單元數 m,即 n_hidden>m;其次,編碼器的輸入是受損輸入,要做到這一點,這里構造了一個給輸入添加噪聲的受損函數:

具體做法

  1. 導入必要的模塊,導入 TensorFlow 和 numpy 處理輸入數據,導入 matplotlib 繪圖,等等:


     
  2. 加載來自 TensorFlow 示例的數據。本章所有示例都使用了標準的 MNIST 數據庫,這樣不同自動編碼機之間就有了對比的基準:


     
  3. 定義類 DenoisingAutoEncoder,與前面的 SparseAutoEncoder 類相似。在這里,定義一個受噪聲影響的圖像的占位符,將這個噪聲圖像送入編碼器;重構誤差是原始清晰圖像和解碼器輸出之間的差異,這里保留了稀疏懲罰項,因此,fit 函數參數包括原始圖像和噪聲圖像:


     
  4. 也可以為自動編碼機對象添加噪聲...將使用類中定義的受損方法:self._X_noisy=self.corrupt(self._X)*0.3+self._X*(1-0.3),此時 fit 函數修改如下:


     
  5. 使用前面定義的受損函數來生成一個噪聲圖像,并提供給會話:


     
  6. 隨著網絡的學習,重構損失在減少:



    效果圖如下:


     
  7. 當將來自測試數據集中的噪聲圖像提供給訓練好的網絡時,可進行圖像重構:


     
    得到以下結果:

< 上一頁稀疏自編碼器 卷積自編碼器下一頁 >

精美而實用的網站,提供C語言、C++、STL、Linux、Shell、Java、Go語言等教程,以及socket、GCC、vi、Swing、設計模式、JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo