# 2020_CCU_Machine_Learning_hw3 ## Q1 : 請用參考程式以及CelebA 資料集訓練生成對抗網路,比較step 0, 50, 100, 200 的生成結果。 * 生成結果如下 * step 1 ![](https://i.imgur.com/KDwEAvA.png) * step 50 ![](https://i.imgur.com/UWt01sf.png) * step 100 ![](https://i.imgur.com/sDh3Dg5.png) * step 200 ![](https://i.imgur.com/iy3DHh6.png) * 整個過程如下 ![](https://media.giphy.com/media/MYCVr6ADp7S5BuCHkn/giphy.gif) * Generator & Discriminator loss ![](https://i.imgur.com/N2GPnCr.png) :::info * 結果 * 因為要比較 `step` 間的差異所以用 `Fixed_result` 來觀察。 * 可以發現隨著 `step` 數的增加,五官、輪廓等的人臉特徵也變得更明顯。 * `Generator` 的 `loss` 隨著 `step` 增加而減少,`Discriminator loss` 比較不穩定。 ::: --- ## Q2 : 觀察模型訓練過程Model Loss vs. Epoch 的圖,與CNN模型訓練時Loss曲線的差異。 * CNN Loss 曲線 * 此為愛文芒果比賽的數據 ![](https://i.imgur.com/Hce4Ik2.png) * GAN Loss 曲線 * 此為Q1的 Loss 曲線 ![](https://i.imgur.com/N2GPnCr.png) :::info * 結果 * 這 2 種的 `Loss` 曲線差異蠻大的,`CNN Loss` 曲線是 `training loss` 跟 `validation loss` 隨著 step 數增加而下降。 * `GAN Loss`曲線則是 `Generator Loss` 隨著step數增加而上升,`Discriminator Loss` 隨著step數增加而下降。 ::: --- ## Q3 : 使用Normal Distribution Generating Fake Images using N(0, 1)、N(-10, 1) 與Uniform Distribution U(0,1),比較生成結果的差異並討論原因。 * `N(0,1)` * 即 Q1 ,變化過程如下 ![](https://media.giphy.com/media/MYCVr6ADp7S5BuCHkn/giphy.gif) * Generator & Discriminator loss ![](https://i.imgur.com/N2GPnCr.png) * `N(-10,1)` * step 1 ![](https://i.imgur.com/PRwuHZG.png) * step 20 ![](https://i.imgur.com/zMsWgo2.png) * step 40 ![](https://i.imgur.com/eZnXaNo.png) * step 60 ![](https://i.imgur.com/PDd4MyQ.png) * 後段 loss ![](https://i.imgur.com/Xfgj0CR.jpg) * 整體 loss ![](https://i.imgur.com/1ySTEdu.png) :::info * 結果 * 因為後段的 `Discriminator loss` 歸零所以中斷訓練。 * 無法成功的訓練出模型。 ::: * `U(0,1)` * 過程如圖 ![](https://media.giphy.com/media/jtzpGpOP6upF6HoGBy/giphy.gif) * Loss 曲線 ![](https://i.imgur.com/TAfJ8kM.png) :::info * 結果 * 無法成功的訓練出模型。 ::: :::success * Q3 討論 * N(-10,1) 因為雜訊太高所以無法成功訓練模型。 * U(0,1) 也無法成功訓練出模型。 ::: --- ## Q4 : 使用其他外部的人臉dataset,比較是否能增進人臉生成的Quality。 * 30000 張照片( 原始 ) * 過程 ![](https://media.giphy.com/media/MYCVr6ADp7S5BuCHkn/giphy.gif) * Generator & Discriminator loss ![](https://i.imgur.com/N2GPnCr.png) * 41000 張照片 * 過程 ![](https://media.giphy.com/media/KHoV5bAzH7U3mmXCJK/giphy.gif) * Loss 曲線 ![](https://i.imgur.com/vhbYYAn.png) --- * 其他跑到一半掛掉的 Loss 曲線 * 41000 張照片跑到 epoch 157 :cry: ![](https://i.imgur.com/KeujVCF.png) * 載錯圖片,載成 jpg 檔的 46000 張 :cry: ![](https://i.imgur.com/1YWmjnZ.png) :::info * 結果 * 這個部分訓練了4次,不知道為什麼 kaggle server 有時候會無法讀取 output 。:cry: * 雖然資料比數沒差很多,但是可以發現 41000 張照片的模型產生出來的人臉品質高了一些,礙於 kaggle server quota 不足所以只跑個 41000 張做比較。 :::