# 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