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

李澤南發表於2017-12-13

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

專案連結:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/gan

使用

import tensorflow as tf
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

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


上圖展示了對抗損失在影象壓縮中的影響。最頂端一行圖片來自 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、現有網路的對抗損失,以及影象到影象翻譯。

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


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

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

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

相關文章