- 生成對抗網絡GAN:原理與實踐
- 言有三 郭曉洲
- 1200字
- 2023-11-09 18:51:34
1.2.6 隱式生成模型
隱式生成模型通常也是使用隱變量z來輔助構建的,即首先在一個固定的概率分布pz(z)(例如高斯分布、均勻分布等)中采樣獲得噪聲z,然后利用神經網絡將其映射為樣本x。這類想法與流模型、VAE是一致的,但是不同之處在于流模型之類的訓練方法為極大似然法,需要對概率密度函數p(x)或者似然函數logp(x)進行某種處理。隱式生成模型的核心目的同樣是使pg(x)接近pdata(x),它并沒有顯式對概率密度函數或似然函數進行建模或近似,但依舊可以通過訓練數據與pdata(x)間接交互,典型代表有GSN[9](生成隨機網絡)和GAN[10]。在隱式生成模型中,我們無法獲得p(x)的(近似)表達式,表達式是隱藏在神經網絡中的,模型只能生成樣本。
實踐表明,即使模型具有非常高的似然函數值但它仍舊可能生成質量不高的樣本。一個極端的例子是模型只記住了訓練集中的樣本,顯式生成模型不會總那么可靠。避開似然函數而獲得生成模型的另一條路線是使用兩組樣本檢驗(two sample test)。例如,生成模型可以生成大量樣本S1,訓練數據集存在大量樣本S2,我們可以檢查S1和S2是否來自同一概率分布,然后不斷優化生成模型使得兩組樣本能夠檢驗通過。與上述想法類似,實際上的隱式生成模型是先計算比較pg(x)和pdata(x)的某種差異,然后使得兩者的差異盡可能最小。在選擇這種比較差異時,可以分為基于密度比p(x)/q(x)和密度差p(x)-q(x)兩類方法。前一類可進一步分為概率類別估計(標準GAN)、散度最小化(fGAN)和比例匹配(b-GAN)等3種方法;第二類方法主要以IPM類方法為代表,包括WGAN、MMDGAN等模型。不同的比較差異方法則對應不同的損失函數,例如MMD、JS散度、最優傳輸距離等。需要說明的是,當選擇KL散度時,則得到了之前的極大似然法的優化目標Ex[logpθ(x)]。對于該優化目標的計算,顯式生成模型的做法是對其做分解、近似等計算上的處理,而隱式生成模型則通過兩類樣本和神經網絡直接擬合距離的數值。
以GAN為例,由于不存在顯式的概率密度函數pg(x),故GAN無法直接寫出似然函數而使用極大似然法。它直接使用生成器從噪聲中采樣并直接輸出樣本,然后借助判別器學習pdata(x)和pg(x)的距離,再訓練生成器使上述距離最小??梢钥闯觯珿AN是通過控制生成器來間接控制pg(x)的。相比完全可見置信網絡,GAN可以并行產生樣本,效率更高;玻爾茲曼機因為需要使用馬爾可夫鏈進行近似,故對概率分布有一定的要求。同樣地,流模型也要求變換函數x=g(z)可逆,噪聲與樣本維度相同,雖然雅可比矩陣的行列式容易求解,但GAN使用生成器作為生成函數則沒有可逆和維度上的限制,也沒有概率分布的限制;此外,GAN不需要馬爾可夫鏈的參與,不需要花很多精力產生一個樣本,相比于玻爾茲曼機和生成隨機網絡效率較高;GAN相比于變分自編碼器,也不需要對似然函數的變分下界進行處理。總體來看,GAN是一個非常簡潔、高效的模型,但不足之處在于難以訓練,理論上全局納什均衡幾乎不可能達到,并且容易模式崩潰,產生樣本的多樣性較差。