七個不容易被發現的生成對抗網絡(GAN)用例

摘要: 驚了!GAN(生成對抗網絡)還能夠這樣用?php

像許多追隨AI發展的人同樣,我沒法忽略生成建模的最新進展,尤爲是圖像生成中生成對抗網絡(GAN)的巨大成功。看看下面這些樣本:它們與真實照片幾乎沒有區別!git

從2014年到2018年,面部生成的進展也很是顯着github

這些結果讓我感到興奮,但我心裏老是懷疑它們是否真的有用且普遍適用。基本上我「懷疑」,憑藉生成模型的全部功能,咱們並無真正將它們用於比高分辨率面部表情生成這些更實用的東西。固然,有些企業能夠直接基於圖像生成或風格轉移(如遊戲行業中的角色生成或關卡生成,從真實照片到動漫頭像的風格轉換),但我一直在尋找GAN和其餘生成方式更多領域模型的應用。我想經過生成模型,咱們不只能夠生成圖像,還能夠生成文本聲音音樂、結構化數據,如遊戲關卡藥物分子算法

使用RNN生成遊戲人物數據庫

在本文中,我將介紹7個用例。其中一些我已經親自確認它們的用處,其餘一些正在研究中,但這並不意味着它們不值得嘗試。全部這些使用生成模型建立的例子均可以應用於不一樣的領域,由於咱們的主要目標不是生成一些現實的東西,而是利用神經網絡的內在知識來完成新任務。服務器

1.數據加強

最明顯的應用是訓練模型:從咱們的數據生成新樣本以加強咱們的數據集。咱們如何檢查這種加強是否真的有幫助呢?有兩個主要策略:咱們能夠在「假」數據上訓練咱們的模型,並檢查它在真實樣本上的表現。對應的咱們在實際數據上訓練咱們的模型來作一些分類任務,而且檢查它對生成的數據的執行狀況。若是它在兩種狀況下都能正常工做,你能夠隨意將生成模型中的樣本添加到你的實際數據中並再次從新訓練,你應該指望得到性能。網絡

NVIDIA展現了這種方法的驚人實例:他們使用GAN來增長具備不一樣疾病的醫學腦CT圖像的數據集,而且代表僅使用經典數據的分類性能是78.6%的靈敏度和88.4%的特異性。經過添加合成數據加強,能夠增長到85.7%的靈敏度和92.4%的特異性。框架

https://arxiv.org/pdf/1803.01229.pdf機器學習

2.隱私保護

許多公司的數據多是祕密的,敏感的(包含患者診斷的醫療數據),但有時咱們須要與顧問或研究人員等第三方分享。若是咱們只想分享關於咱們的數據的通常信息,包括最重要的模式,對象的細節和形狀,咱們可使用生成模型來抽樣咱們的數據示例以與其餘人分享。這樣咱們就不會分享任何確切的機密數據,只是看起來徹底像它的東西。函數

更困難的狀況是咱們想要祕密共享數據。固然,咱們有不一樣的加密方案,如同態加密,但它們有已知的缺點,例如在10GB代碼中隱藏1MB信息。2016年,谷歌開闢了一條關於使用GAN競爭框架加密問題的新研究路徑,其中兩個網絡必須競爭建立代碼並破解它:

但最好的結果不是得到的代碼效率,咱們應該記住,經過神經網絡得到的表示一般包含有關輸入數據的最有用的信息,而且從這個壓縮數據咱們仍然能夠進行分類/迴歸/聚類。若是咱們將「壓縮」替換爲「加密」,那麼這個想法很明確:這是與第三方共享數據而不顯示任何數據集的驚人方式。它比匿名甚至假樣本生成強得多,多是下一件大事(固然使用區塊鏈)

3.異常檢測

變分自動編碼器(VAE)或GAN等主要生成模型由兩部分組成。VAE具備編碼器和解碼器,其中第一個對分佈進行建模,第二個重建。GAN由生成器和鑑別器組成,第一個模擬分佈,第二個判斷它是否接近訓練數據。咱們能夠看到,它們在某種程度上很是類似:有建模和判斷部分(在VAE中咱們能夠考慮將重建視爲某種判斷),建模部分應該學習數據分佈。若是咱們將一些不是來自訓練樣本分發,那麼判斷部分將會發生什麼?訓練有素的GAN鑑別器會告訴咱們0,而且VAE的重建偏差將高於訓練數據的平均值。這就是咱們接下來要說的:無監督異常探測器,它易於訓練和評估。在本文中你能夠找到例子是用於異常檢測,這裏能夠找到自動編碼的。我還添加了本身的基於自動編碼器的粗略草圖——用於在Keras中編寫的時間序列。

4.判別性建模

深度學習所作的一切都是將輸入數據映射到某個空間,在這個空間中,經過SVM或邏輯迴歸等簡單的數學模型能夠更容易地分離或解釋。生成模型也有本身的映射,咱們從VAE開始。Autoencoders將輸入樣本映射到一些有意義的潛在空間,基本上咱們能夠直接訓練一些模型。它有意義嗎?它是否與僅使用編碼器層和訓練模型直接進行分類有所不一樣?確實是。自動編碼器的潛在空間是複雜的非線性降維,而且在變分自動編碼器的狀況下也是多變量分佈,這能夠比一些隨機初始化更好地開始訓練判別模型。

GAN對於其餘任務來講有點難度。它們被設計爲從隨機種子生成樣本,而且不指望任何輸入。但咱們仍然能夠至少以兩種方式利用它們做爲分類器,第一個已經研究過的,就是利用鑑別器將生成的樣本分類到不一樣的類別,同時只是告訴它是真的仍是假的。咱們能夠指望從得到的分類器更好地規則化(由於它已經看到不一樣類型的噪聲和輸入數據的擾動)而且具備用於異常值/異常的額外類:

5.域遷移(Domain adaptation)

我認爲,這是最強大的用處之一。在實踐中,咱們幾乎從未擁有相同的數據源來訓練模型並在現實世界環境中運行它們。在計算機視覺中,不一樣的光線條件、相機設置或天氣可使很是準確的模型變得無用。在NLP/語音分析中,俚語或重音會破壞你在「語法正確」上訓練的模型的表現。在信號處理中,你極可能擁有徹底不一樣的設備來捕獲數據以訓練模型和生產。咱們知道機器學習模型執行是從一個條件到另外一個條件的映射,保留主要內容,但要更改細節。

例如,若是你正在處理應該在某種CCTV攝像機上工做的應用程序,可是你已經在高分辨率圖像上訓練了你的模型,那麼你能夠嘗試使用GAN來對圖像進行去噪處理並對其進行加強。我能夠從信號處理領域提供更激進的例子:有不少與手機加速度計數據相關的數據集,描述了不一樣的人的活動。可是,若是你想在腕帶上應用受過手機數據訓練的模型,該怎麼辦?GAN能夠嘗試幫助你還原不一樣類型的動做。通常來講,生成模型不是從噪聲中進行生成,而是一些預約義的先驗模型能夠幫助你進行域遷移,協方差轉換以及與數據差別相關的其餘問題。

6.數據處理

咱們在前一段談到了風格轉移。我不喜歡的是它的映射函數適用於整個輸入,若是我只想換一些照片的鼻子怎麼辦?或改變汽車的顏色?或者在不徹底改變的狀況下替換演講中的某些單詞?若是咱們想要這樣作,那麼咱們的對象就需用一些有限的因子來描述,例如,臉是眼睛,鼻子,頭髮,嘴脣等的組合,這些因素有它們本身的屬性如顏色、大小等。若是咱們能夠將帶有照片的像素映射到某些...咱們能夠調整這些因素並使鼻子更大或更小?有一些數學概念容許它:多樣性假設,對咱們來講好消息是,自動編碼器可能實現。

7.對抗訓練(Adversarial training)

你可能不一樣意我添加關於機器學習模型攻擊的文字,但它對生成模型(對抗性攻擊算法確實很是簡單)和對抗性算法影響很大。也許你熟悉對抗性例子的概念:模型輸入中的小擾動(甚至多是圖像中的一個像素)致使徹底錯誤的性能。其中一個最基本的方法叫作對抗性訓練:基本上是利用對抗性的例子來構建更準確的模型。

若是不深刻細節,這意味着咱們須要雙人遊戲:對抗模型須要最大化其影響力,而且存在須要最小化其損失的分類模型。看起來很像GAN,但出於不一樣的目的:使模型對對抗性攻擊更穩定,並經過某種智能數據加強和正規化提升其性能。

小貼士

在本文中,咱們已經介紹了幾個例子,說明GAN和其餘一些生成模型如何用於生成漂亮的圖像,旋律或短文本。固然,他們的主要長期目標是生成以正確狀況爲條件的真實世界對象,但今天咱們能夠利用他們的分佈建模和學習有用的表示來改進咱們當前的AI、保護咱們的數據、發現異常或適應更多現實世界的案例。我但願你會發現它們頗有用,並將適用於你的項目。

阿里雲雙十一1折拼團活動:已滿6人,都是最低折扣了

【滿6人】1核2G雲服務器99.5元一年298.5元三年 2核4G雲服務器545元一年 1227元三年

【滿6人】1核1G MySQL數據庫 119.5元一年

【滿6人】3000條國內短信包 60元每6月

參團地址:http://click.aliyun.com/m/1000020293/

原文連接

相關文章
相關標籤/搜索