0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Pytorch實(shí)現(xiàn)頻譜歸一化生成對(duì)抗網(wǎng)絡(luò)(SN-GAN)

冬至子 ? 來(lái)源:思否AI ? 作者:思否AI ? 2023-10-18 10:59 ? 次閱讀

自從擴(kuò)散模型發(fā)布以來(lái),GAN的關(guān)注度和論文是越來(lái)越少了,但是它們里面的一些思路還是值得我們了解和學(xué)習(xí)。所以本文我們來(lái)使用Pytorch 來(lái)實(shí)現(xiàn)SN-GAN

譜歸一化生成對(duì)抗網(wǎng)絡(luò)是一種生成對(duì)抗網(wǎng)絡(luò),它使用譜歸一化技術(shù)來(lái)穩(wěn)定鑒別器的訓(xùn)練。譜歸一化是一種權(quán)值歸一化技術(shù),它約束了鑒別器中每一層的譜范數(shù)。這有助于防止鑒別器變得過于強(qiáng)大,從而導(dǎo)致不穩(wěn)定和糟糕的結(jié)果。

SN-GAN由Miyato等人(2018)在論文“生成對(duì)抗網(wǎng)絡(luò)的譜歸一化”中提出,作者證明了sn - gan在各種圖像生成任務(wù)上比其他gan具有更好的性能。

SN-GAN的訓(xùn)練方式與其他gan相同。生成器網(wǎng)絡(luò)學(xué)習(xí)生成與真實(shí)圖像無(wú)法區(qū)分的圖像,而鑒別器網(wǎng)絡(luò)學(xué)習(xí)區(qū)分真實(shí)圖像和生成圖像。這兩個(gè)網(wǎng)絡(luò)以競(jìng)爭(zhēng)的方式進(jìn)行訓(xùn)練,它們最終達(dá)到一個(gè)點(diǎn),即生成器能夠產(chǎn)生逼真的圖像,從而欺騙鑒別器。

以下是SN-GAN相對(duì)于其他gan的優(yōu)勢(shì)總結(jié):

  • 更穩(wěn)定,更容易訓(xùn)練
  • 可以生成更高質(zhì)量的圖像
  • 更通用,可以用來(lái)生成更廣泛的內(nèi)容。

模式崩潰

模式崩潰是生成對(duì)抗網(wǎng)絡(luò)(GANs)訓(xùn)練中常見的問題。當(dāng)GAN的生成器網(wǎng)絡(luò)無(wú)法產(chǎn)生多樣化的輸出,而是陷入特定的模式時(shí),就會(huì)發(fā)生模式崩潰。這會(huì)導(dǎo)致生成的輸出出現(xiàn)重復(fù),缺乏多樣性和細(xì)節(jié),有時(shí)甚至與訓(xùn)練數(shù)據(jù)完全無(wú)關(guān)。

GAN中發(fā)生模式崩潰有幾個(gè)原因。一個(gè)原因是生成器網(wǎng)絡(luò)可能對(duì)訓(xùn)練數(shù)據(jù)過擬合。如果訓(xùn)練數(shù)據(jù)不夠多樣化,或者生成器網(wǎng)絡(luò)太復(fù)雜,就會(huì)發(fā)生這種情況。另一個(gè)原因是生成器網(wǎng)絡(luò)可能陷入損失函數(shù)的局部最小值。如果學(xué)習(xí)率太高,或者損失函數(shù)定義不明確,就會(huì)發(fā)生這種情況。

以前有許多技術(shù)可以用來(lái)防止模式崩潰。比如使用更多樣化的訓(xùn)練數(shù)據(jù)集?;蛘呤褂谜齽t化技術(shù),例如dropout或批處理歸一化,使用合適的學(xué)習(xí)率和損失函數(shù)也很重要。

Wassersteian損失

Wasserstein損失,也稱為Earth Mover’s Distance(EMD)或Wasserstein GAN (WGAN)損失,是一種用于生成對(duì)抗網(wǎng)絡(luò)(GAN)的損失函數(shù)。引入它是為了解決與傳統(tǒng)GAN損失函數(shù)相關(guān)的一些問題,例如Jensen-Shannon散度和Kullback-Leibler散度。

Wasserstein損失測(cè)量真實(shí)數(shù)據(jù)和生成數(shù)據(jù)的概率分布之間的差異,同時(shí)確保它具有一定的數(shù)學(xué)性質(zhì)。他的思想是最小化這兩個(gè)分布之間的Wassersteian距離(也稱為地球移動(dòng)者距離)。Wasserstein距離可以被認(rèn)為是將一個(gè)分布轉(zhuǎn)換為另一個(gè)分布所需的最小“成本”,其中“成本”被定義為將概率質(zhì)量從一個(gè)位置移動(dòng)到另一個(gè)位置所需的“工作量”。

Wasserstein損失的數(shù)學(xué)定義如下:

對(duì)于生成器G和鑒別器D, Wasserstein損失(Wasserstein距離)可以表示為:

Jensen-Shannon散度(JSD): Jensen-Shannon散度是一種對(duì)稱度量,用于量化兩個(gè)概率分布之間的差異

對(duì)于概率分布P和Q, JSD定義如下:

JSD(P∥Q)=1/2(KL(P∥M)+KL(Q∥M))

M為平均分布,KL為Kullback-Leibler散度,P∥Q為分布P與分布Q之間的JSD。

JSD總是非負(fù)的,在0和1之間有界,并且對(duì)稱(JSD(P|Q) = JSD(Q|P))。它可以被解釋為KL散度的“平滑”版本。

Kullback-Leibler散度(KL散度):Kullback-Leibler散度,通常被稱為KL散度或相對(duì)熵,通過量化“額外信息”來(lái)測(cè)量?jī)蓚€(gè)概率分布之間的差異,這些“額外信息”需要使用另一個(gè)分布作為參考來(lái)編碼一個(gè)分布。

對(duì)于兩個(gè)概率分布P和Q,從Q到P的KL散度定義為:KL(P∥Q)=∑x P(x)log(Q(x)/P(x))。KL散度是非負(fù)非對(duì)稱的,即KL(P∥Q)≠KL(Q∥P)。當(dāng)且僅當(dāng)P和Q相等時(shí)它為零。KL散度是無(wú)界的,可以用來(lái)衡量分布之間的不相似性。

1-Lipschitz Contiunity

1- lipschitz函數(shù)是斜率的絕對(duì)值以1為界的函數(shù)。這意味著對(duì)于任意兩個(gè)輸入x和y,函數(shù)輸出之間的差不超過輸入之間的差。

數(shù)學(xué)上函數(shù)f是1-Lipschitz,如果對(duì)于f定義域內(nèi)的所有x和y,以下不等式成立:

|f(x) — f(y)| <= |x — y|

在生成對(duì)抗網(wǎng)絡(luò)(GANs)中強(qiáng)制Lipschitz連續(xù)性是一種用于穩(wěn)定訓(xùn)練和防止與傳統(tǒng)GANs相關(guān)的一些問題的技術(shù),例如模式崩潰和訓(xùn)練不穩(wěn)定。在GAN中實(shí)現(xiàn)Lipschitz連續(xù)性的主要方法是通過使用Lipschitz約束或正則化,一種常用的方法是Wasserstein GAN (WGAN)。

在標(biāo)準(zhǔn)gan中,鑒別器(也稱為WGAN中的批評(píng)家)被訓(xùn)練來(lái)區(qū)分真實(shí)和虛假數(shù)據(jù)。為了加強(qiáng)Lipschitz連續(xù)性,WGAN增加了一個(gè)約束,即鑒別器函數(shù)應(yīng)該是Lipschitz連續(xù)的,這意味著函數(shù)的梯度不應(yīng)該增長(zhǎng)得太大。在數(shù)學(xué)上,它被限制為:

∥∣D(x)?D(y)∣≤K?∥x?y

其中D(x)是評(píng)論家對(duì)數(shù)據(jù)點(diǎn)x的輸出,D(y)是y的輸出,K是Lipschitz 常數(shù)。

WGAN的權(quán)重裁剪:在原始的WGAN中,通過在每個(gè)訓(xùn)練步驟后將鑒別器網(wǎng)絡(luò)的權(quán)重裁剪到一個(gè)小范圍(例如,[-0.01,0.01])來(lái)強(qiáng)制執(zhí)行該約束。權(quán)重裁剪確保了鑒別器的梯度保持在一定范圍內(nèi),并加強(qiáng)了利普希茨連續(xù)性。

WGAN的梯度懲罰: WGAN的一種變體,稱為WGAN-GP,它使用梯度懲罰而不是權(quán)值裁剪來(lái)強(qiáng)制Lipschitz約束。WGAN-GP基于鑒別器的輸出相對(duì)于真實(shí)和虛假數(shù)據(jù)之間的隨機(jī)點(diǎn)的梯度,在損失函數(shù)中添加了一個(gè)懲罰項(xiàng)。這種懲罰鼓勵(lì)了Lipschitz約束,而不需要權(quán)重裁剪。

譜范數(shù)

從符號(hào)上看矩陣

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編碼器
    +關(guān)注

    關(guān)注

    44

    文章

    3529

    瀏覽量

    133304
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    313

    瀏覽量

    20844
  • 頻譜儀
    +關(guān)注

    關(guān)注

    7

    文章

    338

    瀏覽量

    35768
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    794

    瀏覽量

    13010
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    pytorch怎么在pycharm中運(yùn)行

    部分:PyTorch和PyCharm的安裝 1.1 安裝PyTorch PyTorch個(gè)開源的機(jī)器學(xué)習(xí)庫(kù),用于構(gòu)建和訓(xùn)練神經(jīng)
    的頭像 發(fā)表于 08-01 16:22 ?531次閱讀

    PyTorch如何實(shí)現(xiàn)多層全連接神經(jīng)網(wǎng)絡(luò)

    PyTorch實(shí)現(xiàn)多層全連接神經(jīng)網(wǎng)絡(luò)(也稱為密集連接神經(jīng)網(wǎng)絡(luò)或DNN)是個(gè)相對(duì)直接的過程,涉及定義
    的頭像 發(fā)表于 07-11 16:07 ?601次閱讀

    如何在PyTorch實(shí)現(xiàn)LeNet-5網(wǎng)絡(luò)

    PyTorch實(shí)現(xiàn)LeNet-5網(wǎng)絡(luò)個(gè)涉及深度學(xué)習(xí)基礎(chǔ)知識(shí)、PyTorch框架使用以及網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-11 10:58 ?417次閱讀

    pytorch中有神經(jīng)網(wǎng)絡(luò)模型嗎

    當(dāng)然,PyTorch個(gè)廣泛使用的深度學(xué)習(xí)框架,它提供了許多預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型。 PyTorch中的神經(jīng)網(wǎng)絡(luò)模型 1. 引言 深度學(xué)習(xí)是
    的頭像 發(fā)表于 07-11 09:59 ?527次閱讀

    PyTorch神經(jīng)網(wǎng)絡(luò)模型構(gòu)建過程

    PyTorch,作為個(gè)廣泛使用的開源深度學(xué)習(xí)庫(kù),提供了豐富的工具和模塊,幫助開發(fā)者構(gòu)建、訓(xùn)練和部署神經(jīng)網(wǎng)絡(luò)模型。在神經(jīng)網(wǎng)絡(luò)模型中,輸出層是尤為關(guān)鍵的部分,它負(fù)責(zé)將模型的預(yù)測(cè)結(jié)果以合適
    的頭像 發(fā)表于 07-10 14:57 ?303次閱讀

    PyTorch的介紹與使用案例

    學(xué)習(xí)領(lǐng)域的個(gè)重要工具。PyTorch底層由C++實(shí)現(xiàn),提供了豐富的API接口,使得開發(fā)者能夠高效地構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型。PyTorch
    的頭像 發(fā)表于 07-10 14:19 ?228次閱讀

    生成對(duì)抗網(wǎng)絡(luò)(GANs)的原理與應(yīng)用案例

    生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Networks,GANs)是種由蒙特利爾大學(xué)的Ian Goodfellow等人在2014年提出的深度學(xué)習(xí)算法。GANs通過構(gòu)建兩個(gè)
    的頭像 發(fā)表于 07-09 11:34 ?451次閱讀

    如何使用PyTorch建立網(wǎng)絡(luò)模型

    PyTorch個(gè)基于Python的開源機(jī)器學(xué)習(xí)庫(kù),因其易用性、靈活性和強(qiáng)大的動(dòng)態(tài)圖特性,在深度學(xué)習(xí)領(lǐng)域得到了廣泛應(yīng)用。本文將從PyTorch的基本概念、網(wǎng)絡(luò)模型構(gòu)建、優(yōu)化方法、實(shí)際
    的頭像 發(fā)表于 07-02 14:08 ?246次閱讀

    使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò)

    PyTorch個(gè)流行的深度學(xué)習(xí)框架,它以其簡(jiǎn)潔的API和強(qiáng)大的靈活性在學(xué)術(shù)界和工業(yè)界得到了廣泛應(yīng)用。在本文中,我們將深入探討如何使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò),包括從基礎(chǔ)概念到高級(jí)
    的頭像 發(fā)表于 07-02 11:31 ?430次閱讀

    深度學(xué)習(xí)生成對(duì)抗網(wǎng)絡(luò)GAN)全解析

    GANs真正的能力來(lái)源于它們遵循的對(duì)抗訓(xùn)練模式。生成器的權(quán)重是基于判別器的損失所學(xué)習(xí)到的。因此,生成器被它生成的圖像所推動(dòng)著進(jìn)行訓(xùn)練,很難知道生成
    發(fā)表于 03-29 14:42 ?3895次閱讀
    深度學(xué)習(xí)<b class='flag-5'>生成對(duì)抗</b><b class='flag-5'>網(wǎng)絡(luò)</b>(<b class='flag-5'>GAN</b>)全解析

    基于國(guó)產(chǎn)AI編譯器ICRAFT部署YOLOv5邊緣端計(jì)算的實(shí)戰(zhàn)案例

    人工智能領(lǐng)域中各種算法模型的不斷研究和改進(jìn)。隨著深度學(xué)習(xí)的興起,包括卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、生成對(duì)抗網(wǎng)絡(luò)GAN)、
    的頭像 發(fā)表于 01-03 10:17 ?2336次閱讀
    基于國(guó)產(chǎn)AI編譯器ICRAFT部署YOLOv5邊緣端計(jì)算的實(shí)戰(zhàn)案例

    電磁循跡中什么是歸一化

    更要求這些采集值有跡可循,歸一化便是種很好的方法,先將所有采集到的值縮小到0-1范圍內(nèi),再適當(dāng)放大(常見的放大倍數(shù)為100)。 這樣既能更容易的由電磁值分析出路況,又不會(huì)因?yàn)閿?shù)據(jù)過小而失真。 歸一化的代碼
    的頭像 發(fā)表于 11-28 15:50 ?731次閱讀

    如何在PyTorch中使用擴(kuò)散模型生成圖像

    除了頂尖的圖像質(zhì)量,擴(kuò)散模型還帶來(lái)了許多其他好處,包括不需要對(duì)抗性訓(xùn)練。對(duì)抗訓(xùn)練的困難是有據(jù)可查的。在訓(xùn)練效率的話題上,擴(kuò)散模型還具有可伸縮性和并行性的額外好處。
    發(fā)表于 11-22 15:51 ?422次閱讀
    如何在<b class='flag-5'>PyTorch</b>中使用擴(kuò)散模型<b class='flag-5'>生成</b>圖像

    歸一化LMS算法自適應(yīng)濾波器的MATLAB仿真與DSP實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《歸一化LMS算法自適應(yīng)濾波器的MATLAB仿真與DSP實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 10-13 10:08 ?0次下載
    <b class='flag-5'>歸一化</b>LMS算法自適應(yīng)濾波器的MATLAB仿真與DSP<b class='flag-5'>實(shí)現(xiàn)</b>

    圖像分類的主流深度神經(jīng)網(wǎng)絡(luò)模型有哪些 深度神經(jīng)網(wǎng)絡(luò)搜索方法總結(jié)

    生成對(duì)抗網(wǎng)絡(luò)(Generative adversarial net,GAN)是另種常見的基于深度學(xué)習(xí)技術(shù)的生成模型,包括
    發(fā)表于 10-12 10:24 ?1314次閱讀
    圖像分類的主流深度神經(jīng)<b class='flag-5'>網(wǎng)絡(luò)</b>模型有哪些 深度神經(jīng)<b class='flag-5'>網(wǎng)絡(luò)</b>搜索方法總結(jié)