導航:首頁 > 網路信息 > 生成式對抗網路gan有哪些發展

生成式對抗網路gan有哪些發展

發布時間:2023-08-21 02:36:21

A. 關於GAN生成式對抗網路中判別器的輸出的問題

...

摘要

生成式對來抗網路GAN(Generative adversarial networks)目前已經自成為人工智慧學界一個熱門的研究方向.GAN的基本思想源自博弈論的二人零和博弈,由一個生成器和一個判別器構成,通過對抗學習的方式來訓練.目的是估測數據樣本的潛在分布並生成新的數據樣本.在圖像和視覺計算、語音和語言處理、信息安全、棋類比賽等領域,GAN正在被廣泛研究,具有巨大的應用前景.本文概括了GAN的研究進展,並進行展望.在總結了GAN的背景、理論與實現模型、應用領域、優缺點及發展趨勢之後,本文還討論了GAN與平行智能的關系,認為GAN可以深化平行系統的虛實互動、交互一體的理念,特別是計算實驗的思想,為ACP(Artificial societies,computational experiments,and parallel execution)理論提供了十分具體和豐富的演算法支持.

更多
出版源

《自動化學報》 , 2017 , 43 (3) :321-332

B. GAN的基本介紹和變種

GAN,全稱為Generative Adversarial Nets,直譯為「生成式對抗網路」。GAN作為生成模型的代表,自2014年被Ian Goodfellow提出後引起了業界的廣泛關注並不斷涌現出新的改進模型,深度學習泰斗之一的Yann LeCun高度評價GAN是機器學習界近十年來最有意思的想法。

GAN始終存在訓練難、穩定性差以及模型崩塌(Model Collapse)等問題。產生這種不匹配的根本原因其實還是對GAN背後產生作用的理論機制沒有探索清楚。

在推動GAN應用方面,2017年有兩項技術是非常值得關注的。其中一個是CycleGAN,其本質是利用對偶學習並結合GAN機制來優化生成圖片的效果的,採取類似思想的包括DualGAN以及DiscoGAN等,包括後續的很多改進模型例如StarGAN等。CycleGAN的重要性主要在於使得GAN系列的模型不再局限於監督學習,它引入了無監督學習的方式,只要准備兩個不同領域的圖片集合即可,不需要訓練模型所需的兩個領域的圖片一一對應,這樣極大擴展了它的使用范圍並降低了應用的普及難度。

另外一項值得關注的技術是英偉達採取「漸進式生成」技術路線的GAN方案,這項方案的引人之處在於使得計算機可以生成1024*1024大小的高清圖片,它是目前無論圖像清晰度還是圖片生成質量都達到最好效果的技術,其生成的明星圖片幾乎可以達到以假亂真的效果(參考圖3)。英偉達這項由粗到細,首先生成圖像的模糊輪廓,再逐步添加細節的思想其實並非特別新穎的思路,在之前的StackGAN等很多方案都採用了類似思想,它的獨特之處在於這種由粗到細的網路結構是動態生成的而非事先固定的靜態網路,更關鍵的是產生的圖片效果特別好

首先,有一個一代的 generator,它能生成一些很差的圖片,然後有一個一代的 discriminator,它能准確的把生成的圖片,和真實的圖片分類,簡而言之,這個 discriminator 就是一個二分類器,對生成的圖片輸出 0,對真實的圖片輸出 1。

接著,開始訓練出二代的 generator,它能生成稍好一點的圖片,能夠讓一代的 discriminator 認為這些生成的圖片是真實的圖片。然後會訓練出一個二代的 discriminator,它能准確的識別出真實的圖片,和二代 generator 生成的圖片。以此類推,會有三代,四代。。。n 代的 generator 和 discriminator,最後 discriminator 無法分辨生成的圖片和真實圖片,這個網路就擬合了。

對抗樣本(adversarial examples)是機器學習模型的輸入,攻擊者故意設計它們以引起模型出錯;它們就像是機器的視覺錯覺。

對抗樣本指的是一個經過微小調整就可以讓機器學習演算法輸出錯誤結果的輸入樣本。在圖像識別中,可以理解為原來被一個卷積神經網路(CNN)分類為一個類(比如「熊貓」)的圖片,經過非常細微甚至人眼無法察覺的改動後,突然被誤分成另一個類(比如「長臂猿」)。

對抗訓練

對抗訓練是防禦對抗樣本攻擊的一種方法。將對抗樣本和正常樣本一起訓練是一種有效的正則化,可以提高模型的准確度,同時也能有效降低對抗樣本的攻擊成功率。不過這種防禦也只是針對同樣用來產生訓練集中的對抗樣本的方法。

確實在下圖中可以看到,訓練集是正常樣本和對抗樣本,測試集是正常樣本的紅線比訓練集和測試集都是正常樣本的錯誤率要降低,說明對抗訓練是有正則化的功能。

Figure 9

在訓練的時候直接生成對抗樣本是比較低效的,之前提到的FGSM是一個高效的對抗訓練方法。只需要改變目標函數就能在訓練每個正常樣本的同時也考慮了對抗樣本。模型訓練去給對抗樣本賦予和正常樣本原分類同樣的類別。

用經過FGSM訓練的網路,可以有效的防禦用FGSM產生的對抗樣本攻擊,但是如果換其他對抗攻擊方法,也會被攻破。

對抗樣本的工作思路,可以有以下兩個方面的意義:

結論

要為集成模型創建對抗樣本,因為梯度方法的問題,難度會加大。但是生成的演算法更為可行有效。

單個模型出現盲點可以由其他模型彌補,採用的會是輸出結果最好的模型數據。

我們發現當我們用動態創建的對抗模型來訓練演算法時,能夠解決這些對抗樣本的問題。這是因為當模型面對這些可能出現問題的對抗低概率區域時,可以產生更高的「免疫力」。這同時也支持了低概率區域的論點,在這些區域的對抗樣本更難處理。

DCGAN是繼GAN之後比較好的改進,其主要的改進主要是在網路結構上,到目前為止,DCGAN的網路結構還是被廣泛的使用,DCGAN極大的提升了GAN訓練的穩定性以及生成結果質量。

論文的主要貢獻是:

◆ 為GAN的訓練提供了一個很好的網路拓撲結構。

◆ 表明生成的特徵具有向量的計算特性。

D(x)表示D網路判斷真實圖片是否真實的概率(因為x是真實的,所以對於D來說,這個值越接近1越好)。而D(G(z))D(G(z))是為了D判斷G生成的圖片是否真實的概率。

G的目的:G應該希望自己生成的圖片「越接近真實越好」。也就是說,G希望D(G(z))D(G(z))盡可能得大,這是V(D,G)V(D,G)會變小。

D的目的:D的能力越強,D(x)D(x)應該越大,D(G(x))D(G(x))應該越小。因此D的目的和G不同,D希望V(D,G)V(D,G)越大越好。

DCGAN對卷積神經網路的結構做了一些改變,以提高樣本的質量和收斂的速度,這些改變有:

取消所有pooling層。G網路中使用轉置卷積(transposed convolutional layer)進行上采樣,D網路中用加入stride的卷積代替pooling。

在D和G中均使用batch normalization

去掉FC層,使網路變為全卷積網路

G網路中使用ReLU作為激活函數,最後一層使用tanh

D網路中使用LeakyReLU作為激活函數

DCGAN中的G網路示意:

DCGAN的生成器網路結構如上圖所示,相較原始的GAN,DCGAN幾乎完全使用了卷積層代替全鏈接層,判別器幾乎是和生成器對稱的,從上圖中我們可以看到,整個網路沒有pooling層和上采樣層的存在,實際上是使用了帶步長(fractional-strided)的卷積代替了上采樣,以增加訓練的穩定性。

DCGAN能改進GAN訓練穩定的原因主要有:

◆ 使用步長卷積代替上采樣層,卷積在提取圖像特徵上具有很好的作用,並且使用卷積代替全連接層。

◆ 生成器G和判別器D中幾乎每一層都使用batchnorm層,將特徵層的輸出歸一化到一起,加速了訓練,提升了訓練的穩定性。(生成器的最後一層和判別器的第一層不加batchnorm)

◆ 在判別器中使用leakrelu激活函數,而不是RELU,防止梯度稀疏,生成器中仍然採用relu,但是輸出層採用tanh

◆ 使用adam優化器訓練,並且學習率最好是0.0002,(我也試過其他學習率,不得不說0.0002是表現最好的了)

BigGAN在訓練中 Batch 採用了很大的 Batch,已經達到了 2048(我們平常訓練 Batch 正常都是 64 居多),在卷積的通道上也是變大了,還有就是網路的參數變多了,在 2048 的 Batch 下整個網路的參數達到了接近 16 億

C. GAN生成對抗網路(一)

GAN(Generative Adversarial Networks)是兩個網路的的組合, 一個網路生成模擬數據, 另一個網路判斷生成的數據是真實的還是模擬的。生成模擬數據的網路要不斷優化自己讓判別的網路判斷不出來, 判別的網路也要優化自己讓自己判斷得更准確。 二者關系形成對抗博弈,因此叫 對抗神經網路 (生成對抗網路)。實驗證明, 利用這種網路間的對抗關系所形成的網路, 在無監督及半監督領域取得了很好的效果, 可以算是用網路來監督網路的一個自學習過程。在GAN發明之前,變分自編碼器被認為是理論完美、實現簡單,使用神經網路訓練起來很穩定, 生成的圖片逼近度也較高, 但是人類還是可以很輕易地分辨出真實圖片與機器生成的圖片。

生成對抗網路包含了 2 個子網路: 生成網路(Generator, G)和判別網路(Discriminator,D), 其中生成網路負責學習樣本的真實分布,判別網路負責將生成網路采樣的樣本與真實樣本區分開來。

生成網路 G(𝐳) 生成網路 G 和自編碼器的 Decoder 功能類似, 從先驗分布 中采樣隱藏變數 ,通過生成網路 G 參數化的 分布, 獲得生成樣本 ,如下圖所示。 其中隱藏變數𝒛的先驗分布 可以假設屬於某中已知的分布,比如多元均勻分布 。

可以用深度神經網路來參數化, 如下圖所示, 從均勻分布 中采樣出隱藏變數𝒛, 經過多層轉置卷積層網路參數化的 分布中采樣出樣本 。

判別網路 D(𝒙) 判別網路和普通的二分類網路功能類似,它接受輸入樣本𝒙,包含了采樣自真實數據分布 的樣本 ,也包含了采樣自生成網路的假樣本 , 和 共同組成了判別網路的訓練數據集。判別網路輸出為𝒙屬於真實樣本的概率 ,我們把所有真實樣本 的標簽標注為1,所有生成網路產生的樣本 標注為0, 通過最小化判別網路預測值與標簽之間的誤差來優化判別網路參數。

我們的目標很明確, 既要不斷提升判斷器辨別真假圖像樣本的能力, 又要不斷提升生成器生成更加逼真的圖像,使判別器越來越難判別。
對於判別網路 D ,它的目標是能夠很好地分辨出真樣本 與假樣本 。即最小化圖片的預測值和真實值之間的交叉熵損失函數:

其中 代表真實樣本 在判別網路 的輸出, 為判別網路的參數集, 為生成樣本 在判別網路的輸出, 為 的標簽,由於真實樣本標注為真,故 , 為生成樣本的 的標簽,由於生成樣本標注為假,故 。 根據二分類問題的交叉熵損失函數定義:

因此判別網路的優化目標是:

去掉 中的負號,把 問題轉換為 問題,並寫為期望形式:

對於生成網路G(𝒛) ,我們希望 能夠很好地騙過判別網路 , 假樣本 在判別網路的輸出越接近真實的標簽越好。也就是說,在訓練生成網路時, 希望判別網路的輸出 越逼近 1 越好,此時的交叉熵損失函數:

把 問題轉換為 問題,並寫為期望形式:

再等價轉化為:

GAN的優化過程不像通常的求損失函數的最小值, 而是保持生成與判別兩股力量的動態平衡。 因此, 其訓練過程要比一般神經網路難很多。

把判別網路的目標和生成網路的目標合並,寫成min-max形式:

原GAN論文中:

這里為了好理解,把各個符號梳理的更清晰了,注意符號和網路參數的對應。
理想情況下 , 會有更精確的鑒別真偽數據的能力,經過大量次數的迭代訓練會使 盡可能模擬出以假亂真的樣本, 最終整個GAN會達到所謂的納什均衡, 即 對於生成樣本和真實樣本鑒別結果為正確率和錯誤率各佔50%。下面具體從理論層面來推導。

現在從理論層面進行分析, 通過博弈學習的訓練方式,生成器 G 和判別器 D 分別會達到什麼狀態。 具體地,來看以下 2 個問題:

首先我們通過 一維正態分布的例子給出一個直觀的解釋,如下圖所示,黑色虛線曲線代表了真實數據的分布 , 為某正態分布 , 綠色實線代表了生成網路學習到的分布 , 藍色虛線代表了判別器的決策邊界曲線, 圖中(a)(b)(c)(d)分別代表了生成網路的學習軌跡。在初始狀態,如圖 (a)所示, 分布與 差異較大,判別器可以很輕松地學習到決策邊界,即圖(a)中的藍色虛線,將來自 的采樣點判定為 0, 中的采樣點判定為 1。 隨著生成網路的分布 越來越逼近真實分布 ,判別器越來越困難將真假樣本區分開,如圖 (b)(c)所示。 最後,生成網路性能達到最佳,學習到的分布 ,此時從生成網路中采樣的樣本非常逼真, 判別器無法區分,即判定為真假樣本的概率均等,如圖(d)所示。

固定生成器G的參數 ,判別器D最佳能達到的狀態:

證明: 對於給定的生成器G,要讓判別器D達到最優,我們的目標是最大化損失函數,其積分形式為:

對於給定的 ,真實分布始終是固定的,所以 和 都是定值,於是對於判別器D,要找出

的最大值,其中 是判別器網路參數,對於函數 ,不難得到 在 處取得極大值且是最大值。因此可得 的極值點也為

故判別器 能達到的最佳狀態為定理中給出的式子。

現在考慮第二個問題。
JS 散度(Jensen–Shannon divergence)

對於KL散度, ,是不對稱的。但JS散度是對稱的。

當 達到 時,考慮此時 和 的 散度:

考慮到判別網路到達 時,此時的損失函數為:

於是我們可以得到:

對於生成網路 而言,目標是最小化損失函數,由於 ,因此 取得最小值僅在 時(此時 ), 取得最小值:

此時生成網路達到 狀態是:

即 的學到的分布 與真實分布 一致,網路達到納什均衡點,此時:

即對於生成器生成的圖像有0.5的概率被判定為真,也有0.5的概率被判定為假。

D. 生成式對抗網路GAN最近在NLP領域有哪些應用

  1. GAN最開始是設計用於生成連續數據,但是自然語言處理中我們要用來生成離散tokens的序列。因為生成器(Generator,簡稱G)需要利用從判別器(Discriminator,簡稱D)得到的梯度進行訓練,而G和D都需要完全可微,碰到有離散變數的時候就會有問題,只用BP不能為G提供訓練的梯度。在GAN中我們通過對G的參數進行微小的改變,令其生成的數據更加「逼真」。若生成的數據是基於離散的tokens,D給出的信息很多時候都沒有意義,因為和圖像不同。圖像是連續的,微小的改變可以在像素點上面反應出來,但是你對tokens做微小的改變,在對應的dictionary space裡面可能根本就沒有相應的tokens.

  2. 2.GAN只可以對已經生成的完整序列進行打分,而對一部分生成的序列,如何判斷它現在生成的一部分的質量和之後生成整個序列的質量也是一個問題。

E. 生成式對抗網路GAN(一)

上面這張圖很好的很好的闡述了生成式對抗網路的結構~~ 博弈論

此圖給出了生成性對抗網路的概述。目前最重要的是要理解GAN是使兩個網路協同工作的一種方式 - 而Generator和Discriminator都有自己的架構。為了更好地理解這個想法的來源,我們需要回憶一些基本的代數並問自己 - 我們怎麼能欺騙一個比大多數人更好地分類圖像的神經網路?

在我們詳細描述GAN之前,讓我們看一下類似的主題。給定一個訓練有素的分類器,我們可以生成一個欺騙網路的樣本嗎?如果我們這樣做,它會是什麼樣子?

事實證明,我們可以。

甚至更多 - 對於幾乎任何給定的圖像分類器,可以將圖像變換為另一個圖像,這將被高度置信地錯誤分類,同時在視覺上與原始圖像無法區分!這種過程稱為對抗性攻擊,生成方法的簡單性解釋了很多關於GAN的內容。
精心計算的示例中的對抗性示例,其目的是錯誤分類。以下是此過程的說明。左邊的熊貓與右邊的熊貓無法區分 - 但它被歸類為長臂猿。

圖像分類器本質上是高維空間中的復雜決策邊界。當然,在對圖像進行分類時,我們無法繪制這個邊界。但我們可以安全地假設,當訓練結束時,網路並不是針對所有圖像進行推廣的 - 僅針對我們在訓練集中的那些圖像。這種概括可能不是現實生活的良好近似。換句話說,它適用於我們的數據 - 我們將利用它。

讓我們開始為圖像添加隨機雜訊並使其非常接近零。我們可以通過控制雜訊的L2范數來實現這一點。數學符號不應該讓您擔心 - 出於所有實際目的,您可以將L2范數視為向量的長度。這里的訣竅是你在圖像中擁有的像素越多 - 它的平均L2范數就越大。因此,如果雜訊的范數足夠低,您可以預期它在視覺上難以察覺,而損壞的圖像將遠離矢量空間中的原始圖像。

為什麼?

好吧,如果HxW圖像是矢量,那麼我們添加到它的HxW雜訊也是矢量。原始圖像具有相當密集的各種顏色 - 這增加了L2規范。另一方面,雜訊是一組視覺上混亂的相當蒼白的像素 - 一個小范數的矢量。最後,我們將它們添加到一起,為損壞的圖像獲取新的矢量,這與原始圖像相對接近 - 但卻錯誤分類!

現在,如果原始類 Dog 的決策邊界不是那麼遠(就L2范數而言),這種加性雜訊將新圖像置於決策邊界之外。

您不需要成為世界級拓撲學家來理解某些類別的流形或決策邊界。由於每個圖像只是高維空間中的矢量,因此在其上訓練的分類器將「所有猴子」定義為「由隱藏參數描述的該高維斑點中的所有圖像矢量」。我們將該blob稱為該類的決策邊界。

好的,所以,你說我們可以通過添加隨機雜訊輕松欺騙網路。它與生成新圖像有什麼關系?

現在我們假設有兩個結構模型,相當於兩個神經網路:

這是關於判別網路D和生成網路G的價值函數(Value Function),訓練網路D使得最大概率地分對訓練樣本的標簽(最大化log D(x)),訓練網路G最小化log(1 – D(G(z))),即最大化D的損失。訓練過程中固定一方,更新另一個網路的參數,交替迭代,使得對方的錯誤最大化,最終,G 能估測出樣本數據的分布。生成模型G隱式地定義了一個概率分布Pg,我們希望Pg 收斂到數據真實分布Pdata。論文證明了這個極小化極大博弈當且僅當Pg = Pdata時存在最優解,即達到納什均衡,此時生成模型G恢復了訓練數據的分布,判別模型D的准確率等於50%。

接著上面最後一個問題:怎麼才能生成我指定的圖像呢?

指定標簽去訓練

顧名思義就是把標簽也帶進公式,得到有條件的公式:

具體怎麼讓CGAN更好的優化,這里不解釋,就是平常的優化網路了。

參考文章:

本文大部分翻譯此外文

通俗易懂

小博客的總結

唐宇迪大神

閱讀全文

與生成式對抗網路gan有哪些發展相關的資料

熱點內容
力控轉發數據客戶端模式如何建立 瀏覽:200
怎麼樣讓自己的網站不被別人看到 瀏覽:711
編程擴展效果如何 瀏覽:335
榮耀暢玩手環同步qq 瀏覽:475
怎麼向sql中添加資料庫 瀏覽:596
錄歌失敗重啟app什麼意思 瀏覽:522
壓縮文件包怎麼在微信發送 瀏覽:432
mysql資料庫怎麼插入時間值 瀏覽:191
微信視頻不能轉發朋友圈 瀏覽:596
影視後期的app有哪些 瀏覽:956
電子保單數據出錯什麼意思 瀏覽:368
如何以文件下載音樂 瀏覽:438
計算機網路章節練習 瀏覽:999
單片機的外部中斷程序 瀏覽:48
表格批量更名找不到指定文件 瀏覽:869
js的elseif 瀏覽:584
3dmaxvray視頻教程 瀏覽:905
imgtool工具中文版 瀏覽:539
java幫助文件在哪裡 瀏覽:965
win10切換輸入語言 瀏覽:696

友情鏈接