DualGan 學習筆記

2021-09-24 05:57:50 字數 1711 閱讀 8865

這篇文章的靈感**是xia et al 提出的一篇做機器翻譯的文章nip dual。這篇文章的乙個例子很好的解釋了對偶的思想。首先假設我們有兩個人a和b,a會英文不會法語,b會法語不會英文。a要和b進行交流,a寫了一段話,通過翻譯器ga翻譯成法語,但a看不懂法語,只能將翻譯的結果直接發給b;b收到這段話之後,用自己的理解整理了一下,通過翻譯器gb翻譯成英文直接發給a;a收到之後,要檢查b是否真正理解自己說的話。如此往復幾次,a和b都能確認對方理解了自己。在這個例子中,翻譯器a和b分別是兩個生成器,a和b分別擔任了判別器的角色。

原始gan存在的問題

在wgan這篇文章中系統的闡述了原始gan存在的一些問題。

(1)當我們通過最小化難訓練、無法優化g的問題

由於實際上pg與pdata很難有不可忽略的重疊,當d太強時,我們發現js散度就固定是常數log2,c(g)就為乙個固定值,所以導致g梯度消失。當d太弱時,會導致g梯度不准,四處亂跑。所以g和d必須同步得很好才行。

(2)原始gan提出了優化方案:通過最小化梯度不穩定、模型崩潰的問題

在原始gan的距離度量 方式下,g的loss可以被化簡成一下形式:

從上面這個式子,我們可以看到在最優d時,我們想要最小化生成器loss就既要減小kl散度又要同時增大js散度,這就產生了矛盾導致梯度不穩定

第二,即便是前面那個正常的kl散度項也有毛病。因為kl散度不是乙個對稱的衡量,

換言之,第一種錯誤對應的是缺乏多樣性,第二種錯誤對應的是缺乏準確性。這一放一打之下,生成器寧可多生成一些重複但是很「安全」的樣本,也不願意去生成多樣性的樣本,因為那樣一不小心就會產生第二種錯誤,得不償失。這種現象就是大家常說的collapse mode。

wgan進行優化後g和d的損失函式:

dualgan的思想

判別器損失:

z,z'為雜訊。形式與wgan一致。

生成器損失:

網路結構

生成器使用u-net。

判別器使用patchgan

拓展:防止判別器過於自信

(1)單邊標籤平滑

d的優化目標從1變成0.9

(2)樣本雜訊

對輸入d的樣本新增雜訊來挑戰d。使真假樣本的流形更加接近,同時防止d輕易找到完全分離真假樣本的判別器邊界。

**

學習筆記 雜湊學習筆記

hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...

學習筆記 CentOS 學習筆記01

簡單的做個課堂筆記 虛擬機器用的是vmware,系統是centos cd etc sysconfig network scripts pwdls 顯示列表 cat ifcfg eth0 檢視檔案內容 vi ifcfg eth0 進入vi編輯器 onboot no 原始設定 x逐字刪除 d刪除整行 a...

筆記 spring cloud 學習筆記

1 spring cloud 是什麼 spring cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具 例如配置管理,服務發現,斷路器,智慧型路由,微 控制匯流排 分布式系統的協調導致了樣板模式,使用spring cloud開發人員可以快速地支援實現這些模式的服務和應用程式。他們將在任...