圖 2
以生成小狗的假圖片爲例。如上圖所示,輸入一個隨機噪聲,送入生成器模型將產生一張小狗的假圖片,而後將假圖與真圖配對,打上標籤(假圖爲0,真圖爲1),用於訓練判別器,經初步訓練,判別器已有了必定的精度。此後,保持判別器參數不變,不斷調整生成器參數直至判別器沒法區分生成器生成的假圖與真圖;而後,保持生成器參數不變,調整判別器參數直至判別器能最大程度地區分生成器生成的假圖與真圖。如此重複上述兩個步驟,最終生成器將能產生人眼沒法分辨的圖片。
公式(1)
上式中 G( ) 表示生成器,輸出一張生成圖片,D( ) 表示判別器,輸出判別爲真圖的機率,x 爲真圖,z 爲噪聲。即咱們訓練 D 使其有最大的判別精度(使上式中第一項和第二項都最大),又訓練 G 使其能生成最容易騙過判別器的圖片(使上式第二項最小)。
初識CycleGan
Gan 能生成與訓練集風格相似的圖片,但沒法指定具體的圖片。以上文生成小狗圖片爲例,生成器可能一直輸出同一張最像小狗的圖片,而沒法針對輸入圖片輸出對應的小狗圖片。CycleGan 有效解決了這個問題。網絡
圖 3
上圖是 CycleGan 的原理圖解。圖(a)中 X,Y 對應兩個領域,咱們但願將 X 領域中的圖片轉換爲 Y 領域中的圖片;G,F 分別對應正向和逆向 Gan 中的兩個生成器,即 G 將 X 領域中的圖片 x 轉換爲 Y 領域中的圖片 G(x),而後用判別器 DY 判別是否屬於 Y 領域的圖片,以此構成生成對抗網絡,此即爲 Gan 的基本結構。圖(b)相較圖(a)增長了部分結構,即要求 G(x) 再通過逆向 Gan 中的生成器 F 生成 F(G(x)),使之與原輸入 x 儘量接近,即 cycle-consistency loss 儘可能小,由此便可解決 Gan 沒法針對性地輸出對應圖片的問題。圖(b)過程 x->G(x)->F(G(x))≈x,咱們將之稱爲 forward cycle consistency。爲了提升訓練效果,相似地,咱們又訓練從 Y 領域到 X 領域的轉換,如圖(c)過程 y->F(y)->G(F(y))≈y, 咱們稱之爲 backward cycle consistency。
對於 Unpaired 問題來講,只是用普通 GAN 的話能夠學到的模型有不少種。種類數目爲領域 X 和領域 Y 之間的隨機映射數目,因此只是用普通 GAN 損失函數沒法保證輸入 x 可以獲得對應領域的 y。而 Cycle 一致性的出現,下降了隨機映射的數目,從而保證獲得的輸出再也不是隨機的,所以可以實現圖片從一個領域到另外一個領域的轉換。 項目源碼地址:momodel.cn/explore/5d7…機器學習
Mo 人工智能俱樂部 是由人工智能在線建模平臺(網址:momodel.cn)的研發與產品團隊發起、致力於下降人工智能開發與使用門檻的俱樂部。團隊具有大數據處理分析、可視化與數據建模經驗,已承擔多領域智能項目,具有從底層到前端的全線設計開發能力。主要研究方向爲大數據管理分析與人工智能技術,並以此來促進數據驅動的科學研究。