1. 程式人生 > >GAN相關工作介紹

GAN相關工作介紹

GAN介紹

GenerativeAdversarial Nets

生成對抗網路的思想在2014年提出,在原始的paper中,作者用博弈論來闡釋GAN框架背後的思想。每一個GAN框架,都包含一個生成模型G和一個判別模型D,判別模型的任務是判斷給定影象是否看起來‘自然’,換句話說,是否像是機器生成的。而生成器的任務是,生成看起來‘自然’的影象,要求與原始資料分佈儘可能一致。作者在文中有一個形象的比喻:生成模型G就像小偷,要儘可能地提高自己的偷竊手段去欺騙身為警察的判別模型D,而D也要儘可能的訓練自己的火眼金睛去防止被欺騙。實現的方法是讓兩個網路相互競爭,其中生成器網路不斷捕捉訓練庫裡真實圖片的概率分佈,將輸入的隨機噪聲z轉變成新的樣本(也就是假資料)。判別器網路可以同時觀察真實和假造的資料,判斷這個資料到底是不是真的。所以,體現在公式上,就是下面這樣一個 minmax 的形式。


其中,D(x)代表x來自真實資料而不是生成器產生的資料的概率,通過訓練G使得log(1-d(g(z)))的值最小。

如圖所示,我們手上有真實資料(黑色點,data)和模型生成的偽資料(綠色線,model distribution,是由我們的 z 對映過去的)(畫成波峰的形式是因為它們都代表著各自的分佈,其中縱軸是分佈,橫軸是我們的 x)。而我們要學習的 D 就是那條藍色的點線,這條線的目的是把融在一起的 data 和 model 分佈給區分開。(寫成公式就是 data 和 model分佈相加做分母,分子則是真實的 data 分佈。我們最終要達到的效果是:D 無限接近於常數 1/2。換句話說就是要 Pmodel 和 Pdata 無限相似。這個時候,我們的 D 分佈再也沒法分辨出真偽資料的區別了。這時候,我們就可以說我們訓練出了一個爐火純青的造假者(生成模型)。)

GAN這種競爭的方式不再要求一個假設的資料分佈,而是直接進行取樣,從而真正達到了理論上可以完全逼近真實資料。這也是 GAN 最大的優勢。

雖然GAN不再需要預先建模,但這個優點也帶來了一些麻煩。

儘管它用一個noise z作為先驗,但生成模型如何利用這個z是無法控制的。也就是說,GAN 的學習模式太過於自由了,使得 GAN 的訓練過程和訓練結果很多時候都不太可控。在這篇paper中,每次學習引數的更新過程,被設為 D 更新 k 回,G 才更新 1 回,就是出於減少G 的“自由度”的考慮。


ConditionalGenerative Adversarial Nets

為了解決GAN太過自由的這個問題,一個很自然的思想便是給 GAN 加上一點點束縛,於是便有了Conditional Generative Adversarial Nets(CGAN)。這篇工作的改進非常直接,就是在D和G的建模中分別加入 條件變數 y。也因此,CGAN 可以看做把無監督的 GAN 變成有監督的模型的一種改進。後來這一方式也被證明非常有效。

Deep Generative Image Models using a LaplacianPyramid of Adversarial Networks

同樣,為了改進GAN 太自由的問題,還有一個想法就是不要讓 GAN 一次完成全部任務,而是一次生成一部分,分多次生成一張完整的圖片。本篇paper就是採用這樣的思想,在GAN 基礎上做出了改進。

採用了Laplacian Pyramid 實現了“序列化”,也因此起名做 LAPGAN 。

在學習序列中,LAPGAN 不斷地進行 downsample 和 upsample 操作,然後在每一個 Pyramid level 中,只將殘差傳遞給判別模型D進行判斷。這樣的“序列化+ 殘差結合”的方式,能有效減少 GAN 需要學習的內容和難度,從而達到了 “輔助”GAN 學習的目的。


這個圖中,當影象是較大畫素時,便需要進行Laplacian Pyramid 過程,並且在每一個Pyramidlevel ,傳給 D 的只是針對殘差的比較。另一方面,當畫素足夠小的時候,也就是最右邊的 step,則不再需要進行upsample和downsample的過程,這時給 D 的傳送則是未經處理的樣本和生成的影象。通過這種方法,能夠得到高解析度影象。

Unsupervised Representation Learning with DeepConvolutional Generative Adversarial Networks

DCGAN理論創新不大,但是工程經驗值得借鑑

LAPGAN 中指出 Batch Normalization(BN)被用在 GAN 中的 D 上會導致整個學習的崩潰,但是DCGAN中則成功將 BN 用在了 G 和 D 上。

學習了 ICLR 2016 論文《Generating Sentences From aContinuous Space》中的interpolate space的方式,將生成圖片中的hidden states都展示了出來,可以看出影象逐漸演變的過程。


比如本圖中,第六行從左至右,顯示了圖中窗戶生成的過程,

與此同時,他們還做了一個有創造性的工作,將向量計算運用在了影象上,得到了如下的一些結果。

比如沒有戴眼鏡的男人減去不戴眼鏡的男人加上不戴眼鏡的女人就得到了戴眼鏡的女人。

最後,我還運行了一下DCGAN的開原始碼,使用MNIST資料庫,得到了一些生成的圖片。程式執行的比較慢,跑了12個小時,大概進行了8個epoch。


這是訓練時第一個epoch中第99次迭代時生成的圖片,可見一開始還是比較模糊的。


這是第6個epoch中生成的圖片,可見已經比較清楚了。


這是使用現有模型測試生成的圖片,可見效果還是比較好的,完全看不出是機器生成的。


相關推薦

GAN相關工作介紹

GAN介紹 GenerativeAdversarial Nets 生成對抗網路的思想在2014年提出,在原始的paper中,作者用博弈論來闡釋GAN框架背後的思想。每一個GAN框架,都包含一個生成模型G和一個判別模型D,判別模型的任務是判斷給定影象是否看起來‘自然’,換句

Activiti - 工作相關概念介紹

工作流是什麼? 工作流(Workflow)是對工作流程及各操作步驟之間業務規則的抽象、概括描述 工作流建模: 將工作流程中的工作如何前後組織在一起的邏輯和規則,在計算機中以恰當的模型表達並對其實施計算 要解決的問題是為實現某個業務目標,利用計算機在多個參與者之間按某種預定規則自動傳遞

Spark各種模式的環境搭建及相關工作流程介紹

1前言 本篇部落格主要記錄的是Spark的3種執行模式及對應的模式環境搭建過程和流程介紹。3種模式都是經過實踐記錄詳細的操作過程和注意事項。 在進行環境的配置過程中,建議先理解每個模式下的工作流程,然後再進行環境搭建,這樣容易加深理解。由於Spark on

Pointet的讀後感(CVPR2016):1.相關工作介紹

最近看了一些點雲處理的文章,因為機器一直在跑程式碼,差不多是一天能夠訓練兩輪…伺服器每天都得前一天晚上把程式碼實現好,早上搶佔GPUO(∩_∩)O. 哈哈~研究僧多,GPU少! 接觸到Pointnet其實非常偶然,LZ在slam裡兜兜轉轉,一直想找一個好玩的方向

H3 BPM循環子表相關方法介紹

前臺 bpm 在表單中,控件類型為子表的數據項,其對於的前臺代碼其實就是Table下面簡單介紹遍歷子表的方法循環子表取、賦值方法://此方法的功能是將子表TravelExpensesList復制到子表FinancialAudit中//步驟解析://1、取到子表FinancialAudit的總行數//2

struts2相關簡單介紹

exceptio 1.2 ret image .cn 註意 head justify 結果類型 一 Struts2環境配置 1.準備jar包,核心jar包有: 2.創建Struts2項目並導入jar包 3.在Struts2項目中src下創建Struts.xm

有關https安全的相關內容介紹

思想 sca 信息安全 3.1 書包 版本號 firefox 可靠的 intern   Https 介紹什麽是Https   HTTPS(全稱:Hypertext Transfer Protocol over Secure Socket Layer),是以安全為目

webservice學習總結(一)-- WebService相關概念介紹

IT strong 資源 fire 求和 log AC service服務 為什麽 一、WebService是什麽? 基於Web的服務:服務器端整出一些資源讓客戶端應用訪問(獲取數據) 一個跨語言、跨平臺的規範(抽象) 多個跨平臺、跨語言的應用間通信整合的方案(實際)

大數據的一些相關知識介紹

data 文件存儲 大數 一個 yarn rdd .html 非結構化數據 代碼 什麽是大數據 大數據(big data),指無法在一定時間範圍內用常規軟件工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長

模型壓縮相關工作

image 理論 博客 article 數據 == 例如 iss 裁剪 總結的很好的一篇博客:https://blog.csdn.net/App_12062011/article/details/81665140 定點化:     百度搜“模型壓縮定點化”     http

Selenium3方法2-Timeout介面相關方法介紹

        WebDriver介面的manage()方法會返回一個Option介面。Option介面是這樣描述的:An interfacefor managing stuff you would do in a browser menu(用於管理您在瀏

Cloud一分鐘 | 馬雲發表致股東的公開信;5G算什麼?中國已著手研究6G相關工作...

Hello,everyone: 11月01日早,星期四,新的一天祝大家工作愉快! 一分鐘新聞時間: 完 1.微信群: 新增小編微信:tangguoyemeng,備註“進群+姓名+公司職位”即可,加入【雲端計算學習交流群】,和志同道合的朋友們共

關於gooogleman的聯絡方式以及gooogleman從事的工作介紹

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

AVDictionary結構體相關原始碼介紹

本文對AVDictionary結構體部分相關函式程式碼進行了介紹 本文研究分析AVDictionary相關程式碼 struct AVDictionary { int count; AVDictionaryEntry *elems; }; typedef st

訊普電子對於SIM卡座基礎效能的相關知識介紹

每一款產品生產出來,用途都是大不相同的。產品的效能決定了運用於不同領域。熟悉產品基礎的效能知識,可以方便根據自己的需要對商品進行選擇,挑選到合適的產品。在生活中,比如手機,膝上型電腦,移動衛星終端等很多地方,都有SIM卡座的身影存在。那麼它有哪些效能呢? SIM卡座是專門為SIM 卡量身定

2017CVPR、ICCV和NIPS在Person Reidentification方向的相關工作小結

  轉載自: https://blog.csdn.net/qq2414205893/article/details/78901517 論文閱讀小結(以下內容為論文閱讀筆記及總結) NIPS2017 6608-deep-subspace-clustering-netw

C# RichTextBox檔案拖拽自定義以及相關屬性介紹

c# RichTextBox是.net中一個非常不錯的控制元件,它支援格式化文字,圖片,表格,載入第三方控制元件的功能,但是很多時候它並不能滿足我們的需求,所以我們需要對它的功能進行調整或重寫 RichTextBox拖拽功能背景介紹 預設情況下RichTextBox的屬性面

EasyTrack專案管理軟體的四大版本和相關元件介紹

藍雲EasyTrack專案管理軟體,遵循PMBOK和PRINCE2等國際通用專案管理理論,產品特性涵蓋個人空間、管理駕駛艙、專案管理、專案組合管理、知識管理等,提供全面的專案管理解決方案。 藍雲EasyTrack分為快捷版、專業版、企業版、戰略版四個版本,客戶可根據所在的領域和實際需求選擇購買專案和專案組合

運維入門的相關知識介紹

  1 裝置   網線的線序接法,百兆和千兆網線,光纖線,思科路由,華為路由,交換機什麼的,包括一些VLAN組建,交換機和路由器之間的學習,一般我建議學習到CCNP就夠了,計算機硬體瞭解,一般你自己DIY過電腦,一般都     清楚明白。瞭解伺服器和普通PC的區別,伺

(轉)視訊播放相關協議介紹

作者:楊華連結:https://www.zhihu.com/question/20621558/answer/15661190來源:知乎著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。 作為自己的專業知識領域,我決定更新本答案。版權保留,不得商用,轉載必須在開始位置註明作者、出處。憑藉印