資源 | 谷歌開源TFGAN:輕量級生成對抗網絡工具庫

 2017-12-13 11:51:00.0

原標題:資源 | 谷歌開源TFGAN:輕量級生成對抗網絡工具庫

選自Google Blog

作者:Joel Shor

生成對抗網絡(GAN)自被 Ian Goodfellow 等人提出以來,以其優異的性能獲得人們的廣泛關注,並應用於一系列任務中。然而,對於廣大工程人員而言,應用新技術仍存在挑戰,谷歌最近開源的 TFGAN 庫解決了這個問題。

項目鏈接:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/gan

使用

  1. importtensorflow astf

  2. tfgan =tf.contrib.gan

訓練神經網絡通常需要定義一個損失函數,告訴網絡自己距離目標還有多遠。例如:圖像分類網絡通常會給出一個損失函數,對錯誤的分類做出懲罰判定;如果網絡錯將狗的圖片識別爲貓,則獲得高損失值。然而,並非所有問題都可以簡單地用損失函數來標量,特別是當問題涉及到人類感知上時,如圖像壓縮或文本轉語音系統等。生成對抗網絡(GAN)的出現解決了其中的很多問題,它是一種先進的機器學習方法,已被廣泛應用於從文本生成圖像、超分辨率和讓機器人學習抓取物體等任務中。但 GAN 的出現也引入了新的理論,爲軟件工程帶來了新的挑戰,我們很難跟上 GAN 研究的快速步伐。

GAN 生成文字的過程,它開始只能輸出隨機的噪聲,最終學會了生成 MNIST 數字。

爲使開發者更輕鬆地使用 GAN 進行實驗,谷歌最近開源了 TFGAN,一個實現輕鬆訓練和評估 GAN 的輕量級庫。它爲開發者輕鬆訓練 GAN 提供了基礎條件,提供經過完整測試的損失函數和評估指標,同時提供易於使用的範例,這些範例展示了 TFGAN 的表達能力和靈活性。谷歌還發布了一個包含高級 API 的教程,幫助人們快速上手,使用自己的數據訓練模型。

TFGAN 教程:https://github.com/tensorflow/models/blob/master/research/gan/tutorial.ipynb

上圖展示了對抗損失在圖像壓縮中的影響。最頂端一行圖片來自 ImageNet 數據集。中間一行展示了用傳統損失訓練的圖像壓縮神經網絡對圖像進行壓縮和解壓縮的結果。底行圖片展示了使用傳統損失和對抗性損失訓練的網絡進行圖像壓縮的結果。使用 GAN 損失函數的圖像更加清晰,包含更多細節,即使它可能會與原圖像的差距更大。

TFGAN 以幾種簡單的方式支持實驗。它提供簡單的函數調用,涵蓋大部分 GAN 用例,讓你僅用幾行代碼就可以用自己的數據運行模型。同時,它是以模塊化方式構建的,可以覆蓋更多的 GAN 結構設計。你可以自由選用自己想要的模塊——損失、評估、特徵、訓練等等,所有這一切都是互相獨立的。TFGAN 的輕量級設計意味着你既可以在原生 TensorFlow 代碼上使用它,也可以與其他框架一同使用。使用 TFGAN 編寫的 GAN 模型可以輕鬆獲取未來基礎設施改善帶來的便利。在這裏,你可以從大量已實現的損失和功能中進行選擇,無需重新編寫自己的模型。最後,這些代碼都經過了完整測試,你不必擔心使用 GAN 庫經常出現的數值或統計錯誤。

TFGAN 由以下幾個獨立存在的部分組成:

  • 核心:提供訓練 GAN 所需的主要基礎設施。訓練分四個階段進行,每個階段都可以通過自定義代碼或使用 TFGAN 庫調用來完成。

  • 功能:很多常見的 GAN 操作和歸一化技術可供使用,包括實例歸一化和條件化(conditioning)。

  • 損失:允許輕鬆利用已實現且經過完整測試的損失和懲罰機制進行實驗,如 Wasserstein 損失、梯度懲罰、互信息懲罰等。

  • 評估:使用 Inception Score 或 Frechet Distance 與預訓練的 Inception 網絡評估無條件生成模型。你還可以使用自己的預訓練分類器獲得更加具體的結果,或使用其他方法對條件生成模型進行評估。

  • 示例和教程:從示例中可以學習如何使用 TFGAN 讓 GAN 訓練變得更簡單,你也可以參考更復雜的示例來啓動自己的項目。這些內容包括無條件和條件 GAN、InfoGAN、現有網絡的對抗損失,以及圖像到圖像翻譯。

大多數神經文本轉語音系統(TTS)都會生成過於平滑的頻譜。當應用 Tacotron TTS 系統時,GAN 可以生成一些更加接近真實紋理的頻譜,從而減少結果音頻中的人工痕跡。

使用 TFGAN 還意味着你正在使用和大量谷歌研究者相同的基礎工具,這樣,你就可以從谷歌員工開發的前沿技術中受益。與此同時,所有人也都可以在 GitHub 上做出自己的貢獻,谷歌希望分享代碼的精神可以促進整個機器學習社區的發展。

原文地址:https://research.googleblog.com/2017/12/tfgan-lightweight-library-for.html


文章來源:機器之心