GAN的入門介紹
訓練D的過程:
訓練G的過程:
將G與D組成一個大的網絡,同時,固定住D的參數,使得輸出的scale越大越好。
算法:
其中,Learning D和Learning G時,採樣的noise sample不必相同。
GAN可以被視爲Structured Learning中的一種,下面是Structured Learning的定義。
將output視爲一個class時,Structured Learning可以視爲一類極端的One-shot/Zero-shot Learning,因爲輸出空間非常巨大,很多時候輸出是從未見過的類別。
Structured Learning需要有大局觀,需要將生成的各個components有序地組合起來,單看某一個component是沒有意義的。
傳統的Structured Learning有兩類方法:bottom-up和top-down,可以將bottom-up視爲generator,而將top-down視爲discriminator,這樣,GAN就可以理解爲這兩種方法的結合體。