iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 23
0
Google Developers Machine Learning

「Google Machine Learning」學習筆記系列 第 23

GAN Lab(1) - GAN 簡介

看到可視化的網站 GAN Lab,就會讓人想研究學習看看。這個網站是由喬治亞理工學院(Georgia Tech)與 Google Big Picture 團隊和 Google People + AI Research(PAIR)合作建立的。操作介面跟 tensorflow playground 有點像。

不過操作前要先學習一下 GAN 的基礎,才知道這在幹麻。所以就先整理一下囉。

生成對抗網路(Generative Adversarial Network,GAN)

生成對抗網路由一個生成網路與一個鑑別網路組成。生成網路從潛在空間(latent space)中隨機取樣作為輸入,其輸出結果需要盡量模仿訓練集中的真實樣本。鑑別網路的輸入則為真實樣本或生成網路的輸出,其目的是將生成網路的輸出從真實樣本中盡可能分辨出來。而生成網路則要盡可能地欺騙判別網路。兩個網路相互對抗、不斷調整參數,最終目的是使判別網路無法判斷生成網路的輸出結果是否真實。

所以我們知道,會有二個網路系統需要訓練

  • 鑑別網路(discriminative network):就是由輸入的資料(真實樣本,假樣本)來訓練。由這二者的歸類差異再去修正權重。
  • 生成網路(generative network):的訓練目標是從 noise 空間產生假的資料來"欺騙"鑑別者網路,如果欺騙失敗就再調整權重。

訓練的期望是,隨著這兩個網路的對抗訓練,兩個網路都越來越好,最終結果是一個能生成現實輸出的網路。

這二個網路角色的架構圖如下:

  • 鑑別器(Discriminator):鑑別器的行為就像法官一樣,它可以決定輸入是來自生成者還是來自真正的訓練集。
  • 生成器(Generator):會從 noise 空間取出樣本來,產生一個假的資料,交給鑑別器去判定。

當鑑別器將假樣本歸類為真實樣本時,生成器的損失值減小(對於鑑別器而言是不好的,但對於生成器來說是好的)。


圖片來源:Thalles Silva

生成模型跟監督式機器學習網路的差別是,監督式機器學習網路會查看某種複雜的輸入(例如看一張圖片),並產生簡單的輸出(例如這是一個"人臉"之類的標籤)。而生成模型的目標與此相反:獲取一小部分輸入(也許是幾個隨機數),並生成複雜的輸出(例如逼真的面部圖像)。

像這位小朋友的照片是 thispersondoesnotexist 網站產生的假樣本。你看的出來嗎?

哈,下面的參考,不知不覺就列出了一堆,慢慢再學習了解。

好,第23天,結束。
/images/emoticon/emoticon19.gif

參考
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


上一篇
物件偵測Yolo筆記(4) - Colab Demo 2
下一篇
GAN Lab(2) - GAN Lab 介面
系列文
「Google Machine Learning」學習筆記31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言