stylegan筆記(網絡結構,基礎模型等)progan


一、progan,https://zhuanlan.zhihu.com/p/93748098

stylegan的前身是progan,Progressive Growing of GANs for Improved Quality, Stability, and Variation

ProGAN 最大的貢獻在於提出了一種新的訓練方式,即,我們不要一上來就學那么難的高清圖像生成,這樣會讓 Generator 直接崩掉,而是從低清開始學起,學好了再提升分辨率學更高分辨率下的圖片生成。

從4x4到8x8一直提升到1024x1024,循序漸進,即能有效且穩定地訓練出一個高質量的高分辨率生成器模型。

在某清晰度階段訓練好后,如何提升模型輸出的分辨率后繼續訓練呢,下面是模型的整體結構,4-8-16-32-64-128-256-512-1024,無論是生成器還是判別器,在某清晰階段訓練好后,只要各加上三層(表格中從上往下加),接着訓練就好啦~

 

 

 

更具體地說,一開始的 4x4 分辨率階段的訓練結束后,接下來的訓練循環進行以下兩步:

  1. 加入新層,提升分辨率訓練,使新層 fade in,舊層 fade out。
  2. 新層完全加入,正常訓練。

 二、stylegan

(1)第一個是Mapping network,即下圖 (b)中的左部分,由隱藏變量 z 生成 中間隱藏變量 w的過程,這個 w 就是用來控制生成圖像的style,即風格,為什么要多此一舉將 z 變成 w 呢,后面會詳細講到。

(2)第二個是Synthesis network,它的作用是生成圖像,創新之處在於給每一層子網絡都喂了 A 和 B,A 是由 w 轉換得到的仿射變換,用於控制生成圖像的風格,B 是轉換后的隨機噪聲,用於豐富生成圖像的細節,即每個卷積層都能根據輸入的A來調整"style",通過B來調整細節。

(3)整個網絡結構還是保持了 PG-GAN (progressive growing GAN) 的結構。

 

左側是progan的網絡結構,右側是stylegan的

層和分辨率越低,它所影響的特征就越粗糙。簡要將這些特征分為三種類型:

1、粗糙的——分辨率不超過82,影響姿勢、一般發型、面部形狀等;
2、中等的——分辨率為162至322,影響更精細的面部特征、發型、眼睛的睜開或是閉合等;
3、高質的——分辨率為642到10242,影響顏色(眼睛、頭發和皮膚)和微觀特征;

三、stylegan---第一部分,mapping network

1.添加 Mapping Network 的目標將輸入向量編碼轉為中間向量,並且中間向量后續會傳給生成網絡得到 18 個控制向量,使得該控制向量的不同元素能夠控制不同的視覺特征。

 

2.為何要加 Mapping Network 呢?因為如果不加這個 Mapping Network 的話,后續得到的 18個控制向量之間會存在特征糾纏的現象——比如說我們想調節 8*8 分辨率上的控制向量

(假 設它能控制人臉生成的角度),但是我們會發現 32*32 分辨率上的控制內容(譬如膚色)也被改變了,這個就叫做特征糾纏。所以 Mapping Network 的作用就是為輸入向量的特征解纏提供一條學習的通路。

 

3.為何 Mapping Network 能夠學習到特征解纏呢?簡單來說,如果僅使用輸入向量來控制視覺特征,能力是非常有限的,因此它必須遵循訓練數據的概率密度

例如,如果黑頭發的人的圖像在數據集中更常見,那么更多的輸入值將會被映射到該特征上。因此,該模型無法將部分輸入(向量中的元素)映射到特征上,這就會造成特征糾纏。

然而,通過使用另一個神經網絡,該模型可以生成一個不必遵循訓練數據分布的向量,並且可以減少特征之間的相關性。(沒看懂)

 

 



 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM