---
# System prepended metadata

title: GAN
tags: [basic]

---

---
tags: basic
---

# GAN

在Generator 和Discriminator 密切的溝通過後，產生的圖片越來越真。最終，輸入的圖片與真實圖片差異太小，Discriminator 根本無法分辨，於是就開始死記圖片的特徵，導致有新的假圖片輸入進去之後辨認率不高（最終的辨認率只有70%），與此同時Generator 的成長也到極限

## loss function

### Binary cross entropy

如果針對某一個樣本
模型估計兩個類別的機率是 p 和 1-p
實際上這個樣本兩個類別的機率是 q 和 1-q
照兩個機率分布的差異就是用binary cross entropy來度量
H(p,q)=-(p log(q)+(1-p) log (1-a))

### Discriminator

$$\widetilde{V}=\frac{1}{m}\sum\limits_{i=1}^{m}logD(x^i)+\frac{1}{m}\sum\limits_{i=1}^{m}log(1-D(\widetilde{x}^i))$$
這是binary cross entrophy，前半是真實影像的cross entropy，後半是Generator生出來影像的cross entropy，discriminator想最大化上面的整個數學式
* real sample p=1, 1-p=0, $q=D(x^i)$
* generated image p=0, 1-p=1, $q=D(\widetilde{x})$

### Generator

$$\frac{1}{m}\sum\limits_{i=1}^{m}log(1-D(G(z^i)))$$
這邊不是cross entrophy，沒有物理意義。Generator想最小化上方的式子

## Mode collapse

在GAN，我們期望Generator產生範圍內的數字，但是Generator為了騙過Discriminator，只會產生一部分的值
這邊還要再問老師，我一知半解，不知道這樣的缺點是甚麼?

## JS divergence

真實data跟G*的距離，越少越好

## 資料來源

[GAN](https://medium.com/hoskiss-stand/gan-note-791358c3b10b)
[Cross entropy](https://zhuanlan.zhihu.com/p/89391305)