---
# System prepended metadata

title: 0614 AIV NLP&GAN (I)

---

# 0614 AIV NLP&GAN (I)

[cyclegan.ipynb](https://drive.google.com/file/d/1WsQ8ybWLjiks9j_qDXQCEXbjCdrhTy_Q/view?usp=sharing)
[dcgan.ipynb](https://drive.google.com/file/d/140y8H3UCXX6AhyXXUrUB22ksWrqaDrJR/view?usp=sharing)
[datasets for cyclegan](https://people.eecs.berkeley.edu/~taesung_park/CycleGAN/datasets/)

- idea:
    - 聊天室裡與粉絲互動的文字生成機器（Chatbot)
    - 根據不同名人聊天室，產生該相關風格
    - 也可能在對話稀少中，主動提引討論對話
    - 最大問題在於 NLP 的 Loss Function... 應該要找找看是否有人用過 NLP @ GAN
    

- 生成：
    - RNN Generator
    - pre_train/transformer generative model
    - gan

- 為什麼介紹 GAN:
    - GAN 在影像上的功能是可以生成特定主題圖片 $\Rightarrow$ NLP 生成特定粉絲團風格的句子？內容不拘，但是可能是五月天的紛絲調調，或者是蔡依林粉絲的調調。
    - CycleGAN: 可以將一張圖片內容不變，只改變某一種特性。$\LARGE \Rightarrow$ 原本的 chatbot 的一句話產生特定粉絲群的風格？
    - CGAN (Conditional GAN): 比如說，在 DCGAN 產生 MNIST，現在在 Latent code 加入一個 $z_0 \in \{0, 1, 2, ..., 9\}$ 可以控制要產生哪一個字。  $\LARGE \Rightarrow$ 可以偵測到對話稀少時，或其他情境狀態時，該發動的話語，不過這個是 Supervised Learning.... 
- GAN basic
    - basic: 
        - GAN $\Rightarrow$ DCGAN $\Rightarrow$ WGAN
        - loss function 的演變
        - 收斂速度、model collapse 等討論：不建議
    - CGAN @image
        - 比如說，在 DCGAN 產生 MNIST，現在在 Latent code 加入一個 $z_0 \in \{0, 1, 2, ..., 9\}$ 可以控制要產生哪一個字。(如果需要的是 Disriminator，可能要用到 SGAN)
    - CycleGAN @image
        - 輸入不一樣了，不是一個沒有結構的隨機向量 latent code，而是一個結構性資料圖片。
        - 輸出：風格轉換了。
        - 比如馬兒輸入，被生成為斑馬圖片，除了斑紋上身，其他都內容細節都沒有變化。
        - 基本上 CycelGAN 會有多種 loss: discriminator loss （確認變成斑馬）, consistency loss （會不會除了變成斑馬，其他細節都不對了？）, Identity loss (這個在 NLP 上有嗎) 

- GAN 的影像應用到 NLP:
    - GAN 主要是 Generator and Discriminator 兩個模型的對抗。傳統上以影像最多應用。
    - 如果要用在 NLP，則 Generator 可以考慮 RNN, transformer 系列等... Discriminator 當然也可以同樣改用這些，但是說不定 DNN 就可以搞定。



GAN 介紹
|GAN#|Networks|Input|Output|Loss|Goal|Remark
|--|--|--|--|--|--|--|--|
|GAN|$D(x)$|||loss='binary_crossentropy'<br>optimizer=Adam()||$D^* = \frac{P_r}{P_r + P_g}$ <br> $J_G = - J_D = JS(P_R\|P_G)$...三體
||$G(x)$|||loss='binary_crossentropy'<br> optimizer=Adam()||
|DCGAN|$D(x)$|||loss='binary_crossentropy'<br>optimizer=Adam()||$D^* = \frac{P_r}{P_r + P_g}$ <br> $J_G = KL(P_R\|P_G)-JS(P_R\|P_G)$
||$G(x)$|||loss='binary_crossentropy'<br>optimizer=Adam()||but, no real x input, this is ns-gan|
|WGAN|$D(x)$|||||
||$G(x)$|||||
|SGAN|$D_{sup}(x)$|||loss='categorical_crossentropy'<br>optimizer=Adam()||
||$D_{unsup}(x)$|||loss='binary_crossentropy'<br>optimizer=Adam()||
||$G(x)$|||loss='binary_crossentropy'<br>optimizer=Adam()||
|CGAN|$D(x)$|||||
||$G(x)$|||||
|CycleGAN|$D(x)$|||loss='binary_crossentropy’  or 'mse'<br>optimizer=Adam()||
||$G(x)$|||$G_{AB}(A_{pic})$ <br> $G_{BA}(B_{pic})$ <br> $G_{BA}(G_{AB}(A_{pic}))$ <br> $G_{AB}(G_{BA}(B_{pic}))$|| ** NLP 中的 loss definition, 比對基礎？？？
||Identity|||$G_{AB}(B_{pic})$ <br> $G_{BA}(A_{pic})$||** NLP 有這個特性嗎？


鐘點計畫：
- 6/9 討論 0.5 hr $\rightarrow$ **0.5hr**
- 6/10 ~ 6/14 study 20 hr $\rightarrow$ **1.5 hr**
- 如果對於上述的 GAN有興趣討論：1.5 hr or more
- Basic Transform introduction: 2 hr

    

