看到可視化的網站 GAN Lab,就會讓人想研究學習看看。這個網站是由喬治亞理工學院(Georgia Tech)與 Google Big Picture 團隊和 Google People + AI Research(PAIR)合作建立的。操作介面跟 tensorflow playground 有點像。
不過操作前要先學習一下 GAN 的基礎,才知道這在幹麻。所以就先整理一下囉。
生成對抗網路(Generative Adversarial Network,GAN)
生成對抗網路由一個生成網路與一個鑑別網路組成。生成網路從潛在空間(latent space)中隨機取樣作為輸入,其輸出結果需要盡量模仿訓練集中的真實樣本。鑑別網路的輸入則為真實樣本或生成網路的輸出,其目的是將生成網路的輸出從真實樣本中盡可能分辨出來。而生成網路則要盡可能地欺騙判別網路。兩個網路相互對抗、不斷調整參數,最終目的是使判別網路無法判斷生成網路的輸出結果是否真實。
所以我們知道,會有二個網路系統需要訓練
訓練的期望是,隨著這兩個網路的對抗訓練,兩個網路都越來越好,最終結果是一個能生成現實輸出的網路。
這二個網路角色的架構圖如下:
當鑑別器將假樣本歸類為真實樣本時,生成器的損失值減小(對於鑑別器而言是不好的,但對於生成器來說是好的)。
生成模型跟監督式機器學習網路的差別是,監督式機器學習網路會查看某種複雜的輸入(例如看一張圖片),並產生簡單的輸出(例如這是一個"人臉"之類的標籤)。而生成模型的目標與此相反:獲取一小部分輸入(也許是幾個隨機數),並生成複雜的輸出(例如逼真的面部圖像)。
像這位小朋友的照片是 thispersondoesnotexist 網站產生的假樣本。你看的出來嗎?
哈,下面的參考,不知不覺就列出了一堆,慢慢再學習了解。
好,第23天,結束。
參考
GAN Lab
Training GANs using Google Colaboratory
生成對抗網路(Generative Adversarial Network,GAN)
GAN Lab: Understanding Complex Deep Generative Models using Interactive Visual Experimentation
https://www.thispersondoesnotexist.com/
A Style-Based Generator Architecture for Generative Adversarial Networks
Generative Adversarial Networks
教電腦畫畫:初心者的生成式對抗網路(GAN)入門筆記(TensorFlow + Python3)
A Beginner's Guide to Generative Adversarial Networks (GANs)
An intuitive introduction to Generative Adversarial Networks (GANs)
ThisPersonDoesNotExist.com uses AI to generate endless fake faces