日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【GAN】如何生动有趣地对GAN进行可视化?Google的GAN Lab推荐你了解一下

發(fā)布時間:2025/3/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【GAN】如何生动有趣地对GAN进行可视化?Google的GAN Lab推荐你了解一下 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天將給大家介紹一個有趣的小工具—GAN Lab,這是一款對抗生成網(wǎng)絡(luò)的可視化工具,對新手非常友好,有助于快速理解GAN的工作流程和原理。

作者&編輯 | 小米粥

編輯 | 言有三

GAN Lab是谷歌開發(fā)的一款開源的GAN可視化工具,使用GAN Lab不需要安裝過程、不需要深度學(xué)習(xí)庫PyTorch或TensorFlow等、也不需要專門硬件GPU,通過網(wǎng)頁瀏覽器(推薦 Chrome)就可以打開,網(wǎng)址為:

https://poloclub.github.io/ganlab/

如果對源碼感興趣,可訪問github自行學(xué)習(xí):

https://github.com/poloclub/ganlab/

用戶可以利用 GAN Lab交互地訓(xùn)練生成模型并可視化動態(tài)訓(xùn)練過程的中間結(jié)果,用動畫來理解 GAN 訓(xùn)練過程中的每一個細(xì)節(jié),畫面簡潔美觀,筆者認(rèn)為這是GAN可視化工具中整體效果最好的,其主體界面如下:

GAN Lab主體包括三個部分:MODEL OVERVIEW GRAPH、LAYERED DISTRIBUTIONS、METRICS,其中MODEL OVERVIEW GRAPH將GAN模型可視化為圖片,展示了GAN的基本結(jié)構(gòu)、數(shù)據(jù)流,將輸入輸出數(shù)據(jù)進(jìn)行了可視化;LAYERED DISTRIBUTIONS可視化了真實樣本、生成器生成樣本、生成器梯度等內(nèi)容;METRICS記錄了迭代訓(xùn)練過程中的分布距離的度量。

1.?設(shè)置模型

首先,在界面的最上方,我們可以選擇不同的數(shù)據(jù)分布。需要強調(diào)的是:可視化工作只能在不超過三維的維度上展示,維度超過三維的數(shù)據(jù)無法全面展示,故整個GAN Lab中的噪聲noise、訓(xùn)練樣本real samples、生成樣本fake samples均為二維數(shù)據(jù)。部分關(guān)于GAN的實驗結(jié)果可能與數(shù)據(jù)維度有關(guān),這在GAN Lab中是無法得到體現(xiàn)的。

為了畫面簡潔,一些模型參數(shù)的調(diào)整按鈕是被隱藏的,若要將其完全顯示出來,請務(wù)必將MODEL OVERVIEW GRAPH旁的編輯按鈕點亮為黃色。

對于噪聲noise的分布,可以選擇1D 高斯分布、1D均勻分布、2D高斯分布、2D均勻分布,其中1D 表示樣本只在一個維度上表現(xiàn)為高斯/均勻分布,另一個維度保持為定值。當(dāng)把鼠標(biāo)放置到生成器Generator上時,GAN Lab會展示出從噪聲空間轉(zhuǎn)換成生成數(shù)據(jù)流形的動態(tài)過程,如下圖所示:

對于訓(xùn)練數(shù)據(jù)的分布,可以選擇GAN Lab內(nèi)置的四種類型,如下圖所示:

也可以自行使用繪圖的功能“描繪”出想要的訓(xùn)練數(shù)據(jù)分布,選擇第五種類型Draw one by yourself,在白板內(nèi)勾畫數(shù)據(jù)分布,然后點擊apply即可,效果如下圖所示:

GAN Lab提供的GAN是最簡單的GAN,它只支持單生成器單判別器的結(jié)構(gòu),并且兩者均為全連接層,對生成器Generator可設(shè)置隱層(hidden layers)的數(shù)目以及每個隱層內(nèi)的神經(jīng)元(neurons)的數(shù)目。若為了簡單,可使用已經(jīng)訓(xùn)練好的模型,只需在頁面上方選擇use pre-trained model即可。

對于損失函數(shù),GAN Lab提供了Log loss和LeastSq loss,其中前者為原始版本的GAN中的目標(biāo)函數(shù),后者為最小二乘GAN中的目標(biāo)函數(shù)。

對于生成器和判別器的迭代次數(shù),可以分別設(shè)置在每一輪迭代中,生成器/判別器需要訓(xùn)練的次數(shù),手動調(diào)整updates per epoch即可。

對于優(yōu)化算法,GAN Lab對生成器和判別器均提供了SGD和Adam兩種算法,只需在Optimizer中選擇即可,每種算法均可設(shè)置不同的學(xué)習(xí)速率,在Learning rate中選擇即可。

2.?模型訓(xùn)練

把模型的結(jié)構(gòu)、參數(shù)等信息設(shè)置完成后,即可在界面上方的控制臺控制模型的訓(xùn)練過程。

第一個按鈕Reset the model表示將模型完全重置,可重新設(shè)置參數(shù)。

第二個按鈕Run/Pause training表示開始/暫停訓(xùn)練過程,訓(xùn)練過程可視化內(nèi)容在不同的更新,同時數(shù)據(jù)流也會被展示出來。

第三個按鈕Slow-motion mode表示進(jìn)入慢動作模式,將其點亮為黃色后,GAN的運行流程可分步驟展示出來,在MODEL OVERVIEW GRAPH頁面,只有當(dāng)前步驟涉及到的節(jié)點和數(shù)據(jù)流會被明確展示出來,其他部分虛化顯示,有助于理解GAN正向計算和反向傳播運算流程,如下圖所示分別為判別器和生成器的慢動作模式:

第四個按鈕Train for one epoch可用于控制訓(xùn)練的節(jié)奏,即只訓(xùn)練一次,將其點亮為黃色后,可選擇只訓(xùn)練一次Generator,或只訓(xùn)練一次Discriminator,或兩者都分別訓(xùn)練一次Both,每點擊一次都會進(jìn)行一個epoch訓(xùn)練。

最后的epoch記錄了目前為止模型的迭代訓(xùn)練次數(shù)。

在METRICS部分,記錄了生成器和判別器的損失,同時還記錄了兩個分布的KL散度和JS散度(這里是通過網(wǎng)格化來計算),如下圖所示。需要注意,METRICS部分的函數(shù)圖像每經(jīng)過2000次epoch才更新一次。

3.?可視化數(shù)據(jù)

在MODEL OVERVIEW GRAPH模塊中,每個節(jié)點均被可視化。噪聲Noise節(jié)點的樣本(使用綠色表示)分布、訓(xùn)練數(shù)據(jù)集Real Samples節(jié)點的樣本(使用紫色表示)分布、生成數(shù)據(jù)Fake Samples節(jié)點的樣本(使用紫色表示)分布均被在二維平面清晰展示出來,如下圖所示:

在生成器Generator節(jié)點,生成數(shù)據(jù)的流形會被可視化展示出來,紫色部分表示數(shù)據(jù)流形的范圍,紫色程度的深淺表示了數(shù)據(jù)分布的概率高低,深紫色表示高概率,淺紫色表示低概率,如下圖所示:

在判別器Discriminator節(jié)點,判別器的整體預(yù)測結(jié)果被用熱圖(hot map)的形式可視化地展示了出來,其中綠色部分表示判別器認(rèn)為其為真實樣本,綠色越深表示判別器輸出越接近1;紫色部分表示判別器認(rèn)為其為虛假樣本,紫色越深表示判別器輸出越接近0;白色部分表示判別器輸出接近于0.5,也可理解為分類器的分類面,如下圖所示:

在判別器的預(yù)測結(jié)果Prediction of Samples節(jié)點,每一個真實樣本Real Samples和虛假樣本Fake Samples經(jīng)過判別器的輸出結(jié)果被展示出來,其顏色意義與上相同。

在生成器的梯度Gradients節(jié)點,可視化結(jié)果將虛假樣本即生成樣本、梯度共同展示出來,用直線段指示出每個虛假樣本計算得到的梯度方向,用線段的長度表示梯度的大小,如下圖所示:

LAYERED DISTRIBUTIONS將真實樣本、虛假樣本、虛假樣本的流形、判別器的結(jié)果圖、虛假樣本的梯度等5個節(jié)點共同展示在同一幅圖中,如下圖所示:

可以在LAYERED DISTRIBUTIONS模塊調(diào)整顯示的內(nèi)容來進(jìn)行有選擇性地展示,只需在下方的介紹中單擊real samples, fake samples, discriminator, generator, gradients等字樣即可,字樣下為實線表示節(jié)點的可視化內(nèi)容會在LAYERED DISTRIBUTIONS中展示,為虛線則不展示,如下圖所示:

4.?兩個演示

我們舉一個例子來看看如何通過GAN Lab來理解GAN的工作流程。首先,訓(xùn)練生成器會使虛假樣本(紫色)向真實樣本(綠色)靠攏,虛假樣本的梯度也表明訓(xùn)練使得兩個分布靠近,如下圖所示:

接著,訓(xùn)練判別器,判別器不會對樣本的分布產(chǎn)生影響,但是會對輸出熱圖產(chǎn)生影響,如下圖所示:

不斷迭代更新,最后真實樣本和虛假樣本幾乎重合,并且判別器在這些樣本點的輸出為0.5(白色),如下圖所示:

另外,我們可對數(shù)據(jù)樣本分析,理解模式崩潰問題,如下圖所示,所有生成的虛假樣本都聚到到一個點,生成器完全沒有擬合真實樣本的分布,這是可以通過GAN Lab體現(xiàn)出來的。

GAN Lab是目前已知的一款非常優(yōu)秀的GAN可視化軟件,簡單生動,適合于入門,但對于難度較高的問題,由于各種限制,它還無法做到完全的可視化。

[1]Minsuk K , Nikhil T , Polo C D H , et al. GAN Lab: Understanding Complex Deep Generative Models using Interactive Visual Experimentation[J]. IEEE Transactions on Visualization and Computer Graphics, 2018:1-1.

總結(jié)

這一部分給大家介紹了一個有趣的小工具—GAN Lab,這是一款對抗生成網(wǎng)絡(luò)的可視化工具,對新手非常友好,有助于快速理解GAN的工作流程和原理。

GAN群

有三AI建立了一個GAN群,便于有志者相互交流。感興趣的同學(xué)也可以微信搜索xiaozhouguo94,備注"加入有三-GAN群"。

另外,可關(guān)注作者本人知乎。

如何系統(tǒng)性學(xué)習(xí)GAN

有三AI公眾號輸出了大量的GAN相關(guān)的內(nèi)容,關(guān)于如何系統(tǒng)性學(xué)習(xí)GAN,請大家參考往期文章。

【雜談】如何系統(tǒng)性地學(xué)習(xí)生成對抗網(wǎng)絡(luò)GAN

在有三AI知識星球網(wǎng)絡(luò)結(jié)構(gòu)1000變中包含大量GAN的各類應(yīng)用和實戰(zhàn)相關(guān)的內(nèi)容,一些案例如下,感興趣可以深入學(xué)習(xí)了解。

轉(zhuǎn)載文章請后臺聯(lián)系

侵權(quán)必究

往期精選

  • 【雜談】有三AI知識星球最近都GAN了哪些內(nèi)容?

  • 【雜談】GAN對人臉圖像算法產(chǎn)生了哪些影響?

  • 【雜談】那些底層的圖像處理問題中,GAN能有什么作為?

  • 【完結(jié)】12篇GAN的優(yōu)化文章大盤點,濃濃的數(shù)學(xué)味兒

  • 【GAN優(yōu)化】長文綜述解讀如何定量評價生成對抗網(wǎng)絡(luò)(GAN)

  • 【雜談】除了生成圖像(造假),GAN如何給目標(biāo)檢測,圖像分割,圖像增強等問題打輔助?

總結(jié)

以上是生活随笔為你收集整理的【GAN】如何生动有趣地对GAN进行可视化?Google的GAN Lab推荐你了解一下的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。