深度學習 GAN mode collapsing

2021-10-01 08:14:17 字數 1439 閱讀 5383

某個模式(mode)出現了大量的重複樣本,例如下圖所示:

上圖左側的藍色五角星表示真實樣本空間,黃色是生成的。生成的樣本缺乏多樣性,往往會不斷重複同樣的影象或者同型別的影象作為生成結果。比如上圖右側中,紅框裡面人物反覆出現。

我們再舉乙個例子:

上圖第一行中的target影象指代我們希望生成器能夠逼近的真實資料分布,即二維平面的八個點。但是隨著網路的不斷訓練,我們發現生成器產生的結果是在各個點之間跳躍的,但是每次只能產生其中乙個點的資料。

上圖就是典型的部分模式崩潰:生成網路只產生真實資料分布中的一部分資料,或者說會漏掉一小部分型別的資料。

為了避免前面提到的由於優化maxmin導致mode跳來跳去的問題,unrolledgan採用修改生成器loss來解決。具體而言,unrolledgan在更新生成器時更新k次生成器,參考的loss不是某一次的loss,是判別器後面k次迭代的loss。注意:判別器後面k次迭代不更新自己的引數,只計算loss用於更新生成器。這種方式使得生成器考慮到了後面k次判別器的變化情況,避免了在不同mode之間切換導致的模式崩潰問題。次處務必和迭代k次生成器,然後迭代1次判別器區分開。dragan則引入了博弈論中的無後悔演算法,改造其loss以解決mode collapse問題。ebgan則是加入vae的重構誤差以解決mode collapse。

mad-gan採用多個生成器,乙個判別器以保障樣本生成的多樣性。具體結構如下:

相比於普通gan,多了幾個生成器,且在loss設計的時候,加入乙個正則項。正則項使用余弦距離懲罰三個生成器生成樣本的一致性。

mrgan則新增了乙個判別器來懲罰生成樣本的mode collapse問題。具體結構如下:

輸入樣本x通過乙個encoder編碼為隱變數e(x),然後隱變數被generator重構,訓練時,loss有三個。dm和r(重構誤差)用於指導生成real-like的樣本。而dd則對e(x)和z生成的樣本進行判別,顯然二者生成樣本都是fake samples,所以這個判別器主要用於判斷生成的樣本是否具有多樣性,即是否出現mode collapse。

mini-batch discrimination在判別器的中間層建立乙個mini-batch layer用於計算基於l1距離的樣本統計量,通過建立該統計量,實現了乙個batch內某個樣本與其他樣本有多接近。這個資訊可以被判別器利用到,從而甄別出哪些是缺乏多樣性的樣本。對生成器而言,則要試圖生成具有多樣性的樣本。

深度學習(一)深度學習學習資料

持續更新 一 學習清單 1 收集了各種最新最經典的文獻,神經網路的資源列表 2 計算機視覺學習清單 3 機器學習學習清單 二 訓練資料 人臉資料 1 香港中文大學訓練資料集 此資料庫包含了20w張人臉,每張標註了5個特徵點 以及幾十種屬性 是否微笑 膚色 髮色 性別等屬性 2 68個人臉特徵點 3 ...

深度學習系列 深度學習簡介

機器學習 使用計算機系統利用經驗改善效能,是人工智慧領域的分支,也是實現人工智慧的一種手段。表徵學習關注如何自動找出表示資料的合適方式,以便更好地將輸入變換為正確的輸出。深度學習 具有多級表示的表徵方法,在每一級 原始資料開始 通過簡單的函式將該級的表示變換為更高階的表示。可以將深度學習看作多個簡單...

深度學習深度學習(一)開篇

深度學習 深度學習 記得9年前寫的一篇部落格,十年的程式設計師,一晃眼,差不多10年又快到了。這一輪的人工智慧,深度學習,他是我見到的乙個非常特殊的程式設計方式 用資料程式設計。是的,他絕對不像其他的程式語言,是完全乙個嶄新的天地,掌握她,絕對會帶來驚喜 你會發現以前感覺超級難的東西會忽然 哇,這個...