任務場景算法
在生成器模型中,條件變量y其實是做爲一個額外的輸入層(additional input layer),它與生成器的噪聲輸入p(z)組合造成了一個聯合的隱層表達;網絡
在判別器模型中,y與真實數據x也是做爲輸入,並輸入到一個判別函數當中。實際上就是將z和x分別於y進行concat,分別做爲生成器和判別器的輸入,再來進行訓練。less
目標函數:機器學習
gans:函數
CGAN:學習
pix-2-pix:編碼
把待轉換的圖像x做爲額外的輸入,分別加進判別器和生成器中。生成器輸入的是隨機噪聲z以及待轉換的圖像x。spa
在positive狀況下,判別器輸入的是待轉換圖像x以及與x對應的真實數據y,這時判別器儘可能使得輸出爲1;翻譯
在negative狀況下,判別器輸入的是待轉換圖像x以及生成器生成的圖像G(x,z)。也就是說,生成器不僅輸入了隨機噪聲z,還輸入了待轉換圖像x,加入了這個條件,就能夠實現定向生成;設計
判別器也再也不只是判別某一張圖像是否真實,而是判別待轉換圖像x與轉換後圖像G(x,z)是不是真實的圖像對。
創新點
一、加入約束項(L1 distance encourages less blurring) ---- 生成的圖像是否是接近GT。
與L2相比,文章採用了模糊更少的L1 distance(1範數能夠致使稀疏解,2範數致使稠密解):
二、generator add skip connections(U-Net)
圖像到圖像轉換問題的一個特徵定義是將高分辨率輸入網格映射到高分辨率輸出網格。輸入和輸出的表面外觀雖不一樣,但二者都是相同底層結構的渲染。所以,生成器的設計中輸入的結構大體與輸出的結構對齊。
以前的結構都是基於以下圖的編碼-解碼網絡,先通過幾個降採樣層,到達一個瓶頸後通過一個逆過程獲得最終的輸出。網絡要求全部的信息流經過網絡的全部層。對於許多圖像翻譯問題,輸入和輸出之間共享了大量低級別的信息,所以最好將這些信息直接穿過網絡。爲了使得生成器可以規避這樣的信息瓶頸,遵循「U-Net」的形狀,添加跳躍鏈接。假使網絡有n層,網絡的第i層都和n-i層有一個鏈接:
3.patchGAN
一般判斷都是對生成樣本總體進行判斷,好比對一張圖片來講,就是直接看整張照片是否真實。並且Image-to-Image Translation中不少評價是像素對像素的,因此在這裏提出了分塊判斷的算法,在圖像的每一個N×N塊上去判斷是否爲真,最終平均給出結果。
判別器在圖像上卷積,最終平均全部的值做爲D的最終輸出值;
N能夠比圖像的大小小得多,而且效果仍然很好;
小的patchGAN的參數更少,運行更快,而且可以應用到任意大小的圖像中。。
當n=1時就是pix-2-pix
Optimization and inference
擴展
L0範數是指向量中非0的元素的個數
L1範數是指向量中各個元素絕對值之和
L2範數是指向量各元素的平方和而後求平方根。
在機器學習中,以0範數和1範數做爲正則項,能夠求得稀疏解,可是0範數的求解是NP-hard問題; 以2範數做爲正則項能夠獲得稠密解,而且因爲其良好的性質,其解的定義很好,每每能夠獲得閉式解,因此用的不少。
一句話總結就是:L1會趨向於產生少許的特徵,而其餘的特徵都是0,而L2會選擇更多的特徵,這些特徵都會接近於0。L1在特徵選擇時候很是有用,而L2就只是一種規則化而已。