好 我 們 就 開 始 來 上 課 吧 那 上 週 講 到 哪 裡 呢 上 週 講 到 wgan 我 們 還 說 實 際 上 呢 如 果 你 要 實 做 wgan 的 話 其 實 有 很 多 不 同 的 做 法 那 今 天 看 起 來 呢 效 果 最 好 的 其 實 是 spectral normalization 很 多 人 會 縮 寫 成 這 個 sngan sn 就 是 spectral normalization 的 意 思 好 但 是 雖 然 說 已 經 有 wgan 但 其 實 並 不 代 表 說 gan 就 一 定 特 別 好 train gan 仍 然 是 以 很 難 把 它 train 起 來 而 聞 名 的 那 為 什 麼 gan 很 難 被 train 起 來 呢 它 有 一 個 本 質 上 困 難 的 地 方 我 們 來 想 想 看 discriminator 跟 generator 它 們 各 自 在 做 的 事 情 是 什 麼 discriminator 做 的 事 情 是 要 分 辨 真 的 圖 片 跟 產 生 出 來 的 也 就 是 假 的 圖 片 的 差 異 這 是 discriminator 在 做 的 事 情 而 generator 在 做 的 事 情 它 是 要 去 產 生 假 的 圖 片 騙 過 discriminator 而 事 實 上 這 兩 個 network 這 個 generator 跟 discriminator 它 們 是 互 相 砥 礪 才 能 互 相 成 長 的 只 要 其 中 一 者 發 生 什 麼 問 題 停 止 訓 練 另 外 一 個 人 就 會 跟 著 停 下 訓 練 就 會 跟 著 變 差 跟 著 慘 掉 所 以 今 天 假 設 你 在 train discriminator 的 時 候 一 下 子 沒 有 train 好 你 的 discriminator 沒 有 辦 法 分 辨 真 的 跟 產 生 出 來 的 圖 片 的 差 異 那 generator 它 就 失 去 了 可 以 進 步 的 目 標 generator 就 沒 有 辦 法 再 進 步 了 generator 沒 有 辦 法 再 進 步 了 discriminator 也 會 跟 著 停 下 來 的 如 果 generator 沒 有 辦 法 再 進 步 它 沒 有 辦 法 再 產 生 更 真 實 的 圖 片 那 discriminator 就 沒 有 辦 法 再 跟 著 進 步 了 所 以 discriminator 跟 generator 它 們 在 訓 練 的 時 候 只 要 其 中 一 者 不 再 進 步 另 外 一 個 人 就 會 跟 著 停 下 來 但 是 到 目 前 為 止 大 家 已 經 train 過 了 很 多 次 的 network 你 有 辦 法 保 證 說 你 train 下 去 它 的 loss 就 一 定 會 下 降 嗎 不 一 定 對 不 對 你 要 讓 network train 起 來 往 往 你 需 要 調 一 下 hyperparameter 才 有 可 能 把 它 train 起 來 那 今 天 這 個 discriminator 跟 generator 它 們 互 動 的 過 程 是 自 動 的 一 旦 在 某 一 個 步 驟 你 discrimi 因 為 我 們 不 會 在 中 間 每 一 次 train discriminator 的 時 候 你 都 換 hyperparameter 所 以 只 能 祈 禱 說 每 次 train discriminator 的 時 候 它 的 loss 都 是 有 下 降 的 那 如 果 有 一 次 沒 有 下 降 那 整 個 training 很 有 可 能 就 會 變 就 會 慘 掉 整 個 discriminator 跟 generator 彼 此 砥 礪 的 這 個 過 程 就 可 能 會 停 下 來 所 以 今 天 generator 跟 discriminator 在 train 的 時 候 它 們 必 須 要 棋 逢 敵 手 就 任 何 一 個 人 放 棄 了 這 一 場 比 賽 另 外 一 個 人 也 就 玩 不 下 去 了 所 以 gan 本 質 上 它 的 training 仍 然 不 是 一 件 容 易 的 事 情 當 然 它 是 一 個 非 常 重 要 的 技 術 所 以 雖 然 它 是 一 個 前 瞻 的 技 術 有 人 可 能 會 覺 得 說 你 不 要 把 這 種 你 自 己 都 不 見 得 train 的 起 來 的 network 放 到 那 個 作 業 裡 面 但 是 我 覺 得 說 這 是 一 個 重 要 的 前 瞻 的 技 術 所 以 我 們 還 是 應 該 要 讓 大 家 有 機 會 接 觸 這 種 最 前 瞻 的 技 術 你 至 少 可 以 知 道 說 train gan 不 是 一 件 那 麼 容 易 的 事 情 當 然 其 實 從 另 外 一 個 角 度 而 言 因 為 很 多 人 都 在 做 類 似 的 研 究 所 以 在 網 路 上 你 可 以 找 到 滿 坑 滿 谷 相 關 的 程 式 所 以 其 實 從 這 個 角 度 而 言 它 其 實 也 沒 有 你 想 像 的 那 麼 困 難 不 過 train gan 仍 然 不 是 一 件 容 易 的 事 就 是 了 好 你 可 以 在 網 路 上 找 到 滿 坑 滿 谷 的 gan 的 tips 那 這 些 有 沒 有 用 呢 不 好 說 不 好 說 就 是 把 一 些 相 關 的 跟 train gan 的 訣 竅 有 關 的 文 獻 還 有 連 結 列 在 這 邊 其 實 就 給 大 家 自 己 參 考 好 那 train gan 最 難 的 其 實 是 要 拿 gan 來 生 成 文 字 就 如 果 你 要 拿 gan 生 成 一 段 文 字 這 個 會 是 最 困 難 的 為 什 麼 用 gan 生 成 一 段 文 字 會 是 最 困 難 的 呢 我 們 知 道 說 如 果 你 要 生 成 一 段 文 字 那 你 可 能 會 有 一 個 sequence to sequence 的 model 你 有 一 個 decoder 那 這 個 decoder 會 產 生 一 段 文 字 那 我 們 現 在 這 個 sequence to sequence 的 model 就 是 我 們 的 generator 這 個 在 過 去 在 講 transformer 的 時 候 這 是 一 個 decoder 那 它 現 在 在 gan 裡 面 它 就 扮 演 了 generator 的 角 色 負 責 產 生 我 們 要 它 產 生 的 東 西 比 如 說 一 段 文 字 那 你 說 這 個 會 跟 原 來 的 gan 在 影 像 上 的 gan 有 什 麼 不 同 呢 就 最 high level 來 看 就 演 算 法 來 看 可 能 沒 有 太 大 的 不 同 因 為 接 下 來 你 就 是 訓 練 一 個 discriminator discriminator 把 這 段 文 字 讀 進 去 去 判 斷 說 這 段 文 字 是 真 正 的 文 字 還 是 機 器 產 生 出 來 的 文 字 而 decoder 就 是 想 辦 法 去 騙 過 discriminator generator 就 是 想 辦 法 去 騙 過 discriminator 你 去 調 整 你 的 這 個 generator 的 參 數 想 辦 法 讓 discriminator 覺 得 generator 產 生 出 來 的 東 西 是 真 正 的 但 是 真 正 的 但 是 這 邊 的 難 點 在 哪 裡 呢 這 邊 的 難 點 在 於 你 如 果 要 用 gradient descent 去 train 你 的 decoder 去 讓 discriminator output 分 數 越 大 越 好 你 會 發 現 你 做 不 到 為 什 麼 你 做 不 到 呢 大 家 知 道 說 在 計 算 這 個 微 分 的 時 候 所 謂 的 gradient 所 謂 的 微 分 其 實 就 是 某 一 個 參 數 它 有 變 化 的 時 候 對 你 的 目 標 造 成 了 多 大 的 影 響 我 們 現 在 來 想 想 看 假 設 我 們 改 變 了 decoder 的 參 數 我 們 de 這 個 generator 也 就 是 decoder 的 參 數 有 一 點 小 小 的 變 化 的 時 候 到 底 對 discriminator 的 輸 出 有 什 麼 樣 的 影 響 好 decoder 的 參 數 如 果 有 一 點 小 小 的 變 化 那 它 現 在 輸 出 的 這 個 distribution 也 會 有 小 小 的 變 化 那 因 為 這 個 變 化 很 小 所 以 它 不 會 影 響 最 大 的 那 一 個 token 是 什 麼 東 西 我 知 道 說 token 可 能 對 於 各 位 同 學 來 說 你 可 能 會 覺 得 有 點 抽 象 那 如 果 你 要 想 得 更 具 體 一 點 token 就 是 你 現 在 在 處 理 這 個 問 題 處 理 產 生 這 個 sequence 的 單 位 那 token 呢 是 人 訂 的 了 所 以 假 設 我 們 今 天 在 產 生 一 個 中 文 的 句 子 的 時 候 我 們 是 每 次 產 生 一 個 character 一 個 方 塊 字 那 方 塊 字 就 是 我 們 的 token 那 假 設 你 在 處 理 英 文 的 時 候 你 每 次 產 生 一 個 英 文 的 字 母 那 字 母 就 是 你 的 token 假 設 你 一 次 是 產 生 一 個 英 文 的 詞 英 文 的 詞 和 詞 之 間 是 以 空 白 分 開 的 那 就 是 詞 就 是 你 的 token 好 所 以 token 的 定 義 是 你 自 己 決 定 的 看 你 要 拿 什 麼 樣 的 東 西 當 做 你 產 生 一 個 句 子 的 單 位 好 那 今 天 呢 這 個 distribution 只 有 小 小 的 變 化 在 取 max 的 時 候 在 找 分 數 最 大 那 個 token 的 時 候 你 會 發 現 分 數 最 大 的 那 個 token 是 沒 有 改 變 的 你 distribution 只 有 小 小 的 變 化 所 以 分 數 最 大 的 那 個 token 是 同 一 個 那 對 discriminator 來 說 它 輸 出 的 分 數 它 輸 出 是 一 模 一 樣 的 這 樣 輸 出 的 分 數 就 沒 有 改 變 所 以 你 會 發 現 說 當 decoder 的 參 數 有 一 點 變 化 的 時 候 discriminator 輸 出 是 沒 有 改 變 的 所 以 你 根 本 就 沒 有 辦 法 算 微 分 你 根 本 就 沒 有 辦 法 做 gradient descent 有 同 學 可 能 會 說 欸 這 個 這 邊 不 是 max 是 因 為 max 造 成 不 能 做 gradient descent 嗎 那 那 個 cnn 裡 面 不 是 有 那 個 max pooling 嗎 那 怎 麼 還 可 以 做 gradient descent 這 個 問 題 就 留 給 你 自 己 深 思 一 下 為 什 麼 在 這 個 地 方 有 max 不 能 做 gradient descent 而 在 cnn 有 max pooling 卻 可 以 做 gradient descent 好 但 是 就 算 是 不 能 做 gradient descent 你 也 不 用 害 怕 記 不 記 得 我 們 上 週 有 講 說 遇 到 不 能 用 gradient descent train 的 問 題 就 當 做 reinforcement learning 的 問 題 硬 做 一 下 就 結 束 了 所 以 你 確 實 可 以 用 reinforcement learning 來 train 你 的 generator 在 你 要 產 生 一 個 sequence 的 時 候 你 可 以 用 reinforcement learning 來 train 你 的 generator 但 這 會 發 生 什 麼 問 題 呢 reinforcement learning 是 以 難 train 而 聞 名 gan 也 是 以 難 train 而 聞 名 這 樣 的 東 西 加 在 一 起 就 大 炸 裂 這 樣 train 不 起 來 非 常 非 常 地 難 訓 練 所 以 要 用 gan 產 生 一 段 文 字 過 去 一 直 被 認 為 是 一 個 非 常 大 的 難 題 所 以 有 很 長 一 段 時 間 沒 有 人 可 以 成 功 地 把 generator 訓 練 起 來 沒 有 人 成 功 的 可 以 訓 練 一 個 generator 用 gan 的 方 式 訓 練 一 個 generator 產 生 文 字 通 常 你 需 要 先 做 pretrain 那 pretrain 這 件 事 情 其 實 我 們 等 一 下 馬 上 就 會 提 到 如 果 你 現 在 還 不 知 道 pretrain 是 什 麼 的 話 也 沒 有 關 係 總 之 過 去 你 沒 有 辦 法 用 正 常 的 方 法 讓 gan 產 生 一 段 文 字 直 到 有 一 篇 paper 叫 做 scrachgan 它 的 title 就 開 宗 明 義 跟 你 炫 耀 說 它 可 以 train language gans form scrach form scrach 就 是 不 用 pretrain 的 意 思 好 所 以 它 可 以 用 它 可 以 直 接 從 隨 機 的 初 始 化 參 數 開 始 train 它 的 generator 然 後 讓 generator 可 以 產 生 文 字 那 它 怎 麼 做 到 的 呢 最 關 鍵 的 就 是 爆 調 hyperparameter 跟 一 大 堆 的 tips 那 你 可 以 想 像 這 就 是 google 的 paper 它 爆 收 了 參 數 以 後 然 後 再 加 上 了 這 邊 就 講 了 很 多 的 tips 比 如 說 呢 這 個 橫 軸 是 它 們 的 major 這 個 叫 做 fed 那 這 個 是 用 在 文 字 上 的 我 們 今 天 就 不 講 這 不 重 要 總 之 這 個 值 越 低 越 好 一 開 始 要 有 一 個 叫 做 seqgan-step 的 技 術 沒 這 個 完 全 train 不 起 來 然 後 接 下 來 有 一 個 很 大 的 batch size 多 大 呢 通 常 就 是 上 千 沒 有 那 個 你 自 己 在 家 沒 辦 法 這 麼 做 的 discriminator 加 regularization embedding 要 pretrain 改 一 下 reinforcement learning 的 algorithm 最 後 就 有 scratchgan 就 可 以 從 真 的 把 gan train 起 來 然 後 讓 它 來 產 生 sequence 好 那 今 天 有 關 gan 的 部 分 我 們 只 是 講 了 一 個 大 概 那 如 果 你 想 要 學 最 完 整 的 內 容 我 在 這 邊 留 下 一 個 連 結 給 大 家 參 考 那 其 實 有 關 generative 的 model 不 是 只 有 gan 而 已 還 有 其 他 的 比 如 說 vae 比 如 說 flow-based model 那 我 在 這 邊 也 列 了 兩 個 影 片 的 連 結 給 大 家 參 考 那 我 想 強 調 一 下 就 是 這 邊 的 影 片 連 結 並 不 是 說 我 要 趕 快 去 把 我 一 定 要 看 過 這 些 影 片 連 結 才 能 夠 學 習 接 下 來 的 內 容 因 為 機 器 學 習 可 以 講 的 東 西 實 在 太 多 了 所 以 如 果 假 設 你 沒 有 太 多 的 時 間 那 你 唯 一 真 正 需 要 聽 的 只 有 我 上 課 講 的 內 容 上 課 講 的 內 容 是 self-contained 它 本 身 是 consistent 的 你 只 要 每 一 堂 課 都 有 聽 你 接 下 來 的 內 容 你 應 該 都 可 以 依 序 聽 下 去 應 該 都 可 以 聽 懂 然 後 在 上 課 中 會 放 一 些 影 片 的 連 結 這 個 就 等 於 是 額 外 分 出 去 的 分 支 如 果 你 真 的 很 有 興 趣 的 話 可 以 進 行 深 入 的 研 究 那 為 什 麼 我 們 不 再 講 更 多 東 西 呢 因 為 在 上 課 的 設 計 呢 這 個 課 程 的 內 容 是 以 真 正 能 夠 對 你 有 幫 助 以 實 務 為 導 向 的 就 假 設 你 想 要 train 一 個 generator 你 想 讓 機 器 可 以 產 生 東 西 你 有 很 多 方 法 你 可 以 用 gan 你 可 以 vae 可 以 用 flow-based model 我 們 這 邊 就 選 擇 告 訴 你 gan 所 以 以 後 你 如 果 有 人 叫 你 train 一 個 generative model 你 有 辦 法 去 train 它 那 你 如 果 想 要 深 入 研 究 你 可 以 在 研 究 vae 跟 flow-based model 那 有 人 可 能 會 問 說 為 什 麼 選 擇 gan 為 什 麼 不 是 選 擇 其 他 的 model 呢 一 個 最 直 覺 一 個 是 一 個 最 直 接 的 理 由 是 gan 的 performance 是 比 較 好 的 如 果 你 要 產 生 非 常 好 的 圖 片 的 話 你 還 是 今 天 要 用 gan 通 常 vae 或 flow-based model 它 們 產 生 的 結 果 都 是 跟 gan 有 非 常 大 的 一 段 差 距 它 們 通 常 都 是 plan 說 我 經 過 了 一 番 努 力 暴 調 了 一 堆 參 爆 弄 了 一 堆 tips 最 後 可 以 跟 gan 差 不 多 而 已 所 以 gan 通 常 它 產 生 出 來 的 結 果 還 是 比 較 好 的 那 你 可 能 會 說 gan 比 較 難 train 這 個 比 較 難 train 吧 vae 或 flow 會 不 會 比 較 好 train 這 個 是 如 果 你 真 的 有 實 做 vae 或 flow 的 話 它 們 沒 有 比 較 好 train 老 實 說 你 可 能 會 覺 得 說 從 它 的 式 子 上 看 起 來 gan 很 神 祕 有 一 個 discriminator generator 它 們 要 互 動 然 後 像 flow-based model vae 它 們 都 比 較 像 是 直 接 train 一 個 一 般 的 模 型 它 們 有 一 個 很 明 確 的 objective 但 你 實 際 上 train 起 來 會 發 現 說 它 們 也 沒 有 那 麼 容 易 成 功 地 被 訓 練 起 來 它 們 的 objective 裡 面 有 很 多 項 它 們 的 loss 裡 面 有 很 多 項 然 後 把 每 一 項 都 平 衡 才 能 夠 有 好 的 結 果 但 要 達 成 平 衡 也 非 常 地 困 難 跟 gan 我 覺 得 train 的 難 度 是 不 遑 多 讓 所 以 我 們 這 邊 就 選 擇 gan 呢 作 為 我 們 課 堂 上 介 紹 的 生 成 式 的 generative 的 model 那 至 於 其 他 model 你 可 以 再 多 多 如 果 你 有 興 趣 你 可 以 再 自 己 涉 獵 好 那 有 講 到 這 邊 也 許 有 同 學 會 想 說 為 什 麼 我 們 要 特 別 用 一 些 提 出 一 些 新 的 做 法 來 做 generative 這 件 事 如 果 我 們 今 天 的 目 標 就 是 輸 入 一 個 gaussian 的 random 的 variable 輸 入 一 個 gaussian 從 gaussian 的 這 個 random variable sample 出 來 的 vector 把 它 變 成 一 張 圖 片 那 我 們 能 不 能 夠 用 supervised learning 的 方 法 來 做 呢 怎 麼 做 也 就 說 我 有 一 堆 圖 片 我 把 這 些 圖 片 拿 出 來 每 一 個 圖 片 都 去 配 一 個 vector 都 去 配 一 個 從 gaussian distribution sample 出 來 的 vector 那 接 下 來 呢 接 下 來 就 當 做 supervised learning 的 方 法 硬 做 就 結 束 了 這 樣 子 大 家 懂 嗎 就 是 train 一 個 nerwork 這 個 network 你 已 經 說 這 張 圖 片 就 是 對 到 這 個 vector 這 張 圖 片 就 是 對 到 這 個 vector train 一 個 network 輸 入 一 個 vector 輸 出 就 是 它 對 應 的 圖 片 把 對 應 的 圖 片 當 做 你 訓 練 的 目 標 訓 練 下 去 就 結 束 了 能 不 能 這 麼 做 呢 能 這 麼 做 真 的 有 這 樣 子 的 生 成 式 的 模 型 那 難 的 點 是 說 如 果 這 邊 純 粹 放 隨 機 的 向 量 train 起 來 結 果 會 很 差 你 可 能 根 本 連 train 都 train 不 起 來 所 以 怎 麼 辦 你 需 要 有 一 些 特 殊 的 方 法 至 於 什 麼 樣 特 殊 的 方 法 你 要 有 一 些 特 殊 的 方 法 去 安 排 這 些 vector 那 至 於 有 什 麼 特 殊 的 方 法 我 在 這 邊 一 樣 放 兩 篇 論 文 的 連 結 大 家 發 現 說 這 都 不 是 很 舊 的 論 文 像 這 個 什 麼 gradient original network 這 個 是 去 年 去 年 20 年 7 月 的 文 章 這 都 是 比 較 新 的 論 文 和 比 較 新 的 方 法 那 我 把 連 結 放 在 這 邊 給 大 家 參 考 好 那 接 下 來 我 們 要 講 的 就 是 gan 的 評 量 怎 麼 說 怎 麼 看 說 我 們 現 在 產 生 出 來 的 generator 它 好 或 者 是 不 好 呢 那 要 評 估 一 個 generator 的 好 壞 並 沒 有 那 麼 容 易 那 最 直 覺 的 做 法 也 許 是 找 人 來 看 你 要 知 道 今 天 這 個 generator 產 生 出 來 的 圖 片 到 底 像 不 像 動 畫 的 人 物 那 就 找 人 直 接 來 看 也 許 就 結 束 了 所 以 其 實 很 長 一 段 時 間 尤 其 是 人 們 剛 開 始 研 究 generative 這 樣 的 技 術 的 時 候 很 長 一 段 時 間 沒 有 好 的 measure 那 時 候 要 評 估 generator 的 好 壞 都 是 人 眼 看 然 後 直 接 用 吹 的 這 樣 就 說 在 paper 最 後 就 放 幾 張 圖 說 你 看 這 個 我 覺 得 應 該 是 比 文 獻 上 目 前 結 果 都 還 要 好 太 棒 了 這 應 該 是 state-of-the-art 然 後 就 結 束 了 這 樣 子 所 以 發 現 比 較 早 年 的 gan 的 paper 它 沒 有 數 字 整 篇 paper 裡 面 沒 有 這 個 measure 沒 有 accuracy 它 就 是 放 幾 張 圖 片 告 訴 你 說 這 個 應 該 是 比 過 去 的 文 章 都 好 然 後 就 結 束 了 但 是 你 知 道 這 樣 顯 然 是 不 行 的 嘛 就 是 完 全 用 人 來 看 顯 然 有 很 多 的 問 題 比 如 說 不 客 觀 不 穩 定 等 等 諸 多 的 問 題 所 以 有 沒 有 比 較 客 觀 而 且 自 動 的 方 法 來 想 辦 法 量 一 個 generator 的 好 壞 呢 如 果 針 對 特 定 的 一 些 任 務 是 有 辦 法 設 計 一 些 方 法 的 舉 例 來 說 在 作 業 6 裡 面 我 們 就 是 要 叫 大 家 生 成 二 次 元 人 物 的 頭 像 那 在 作 業 裡 面 一 個 評 估 的 標 準 就 是 我 們 跑 一 個 動 畫 人 物 人 臉 偵 測 的 系 統 然 後 看 說 你 提 供 的 那 些 圖 片 裡 面 抓 到 幾 個 動 畫 人 物 的 人 臉 那 如 果 你 提 供 1000 張 圖 片 裡 面 抓 到 900 個 人 臉 跟 提 供 1000 張 圖 片 抓 到 300 個 人 臉 那 顯 然 900 個 人 臉 的 那 一 個 generator 它 做 出 來 的 結 果 是 比 較 好 的 但 是 這 是 針 對 作 業 6 的 設 計 那 如 果 是 跟 一 般 的 case 呢 如 果 我 們 不 侷 限 在 我 們 的 作 業 跟 一 般 的 case 我 隨 便 訓 練 了 一 個 generator 它 不 一 定 是 產 生 動 畫 人 物 的 因 為 它 產 生 別 的 它 專 門 產 生 貓 專 門 產 生 狗 專 門 產 生 斑 馬 等 等 那 我 們 怎 麼 知 道 它 做 得 好 不 好 呢 那 有 一 個 方 法 呢 是 一 樣 跑 一 個 影 像 的 分 類 系 統 把 你 的 gan 產 生 出 來 的 圖 片 丟 到 一 個 的 影 像 的 分 類 系 統 裡 面 看 它 產 生 什 麼 樣 的 結 果 影 像 分 類 系 統 輸 入 是 一 張 圖 片 我 們 這 邊 叫 做 y 輸 出 呢 是 一 個 機 率 分 布 我 們 這 邊 叫 它 p ( c│y ) p ( c│y ) 是 一 個 機 率 的 分 布 然 後 接 下 來 我 們 就 看 說 這 個 機 率 的 分 布 如 果 越 集 中 就 代 表 說 現 在 產 生 的 圖 片 可 能 越 好 雖 然 我 們 不 知 道 這 邊 產 生 的 圖 片 裡 面 有 什 麼 東 西 不 知 道 它 是 貓 還 是 狗 還 是 斑 馬 我 們 不 知 道 它 是 什 麼 但 是 如 果 丟 到 了 一 個 影 像 分 類 系 統 以 後 它 輸 出 來 的 結 果 它 輸 出 來 的 這 個 分 布 非 常 集 中 代 表 影 像 分 類 系 統 它 非 常 肯 定 它 現 在 看 到 什 麼 樣 的 東 西 它 非 常 肯 定 它 看 到 了 狗 它 非 常 肯 定 它 看 到 了 斑 馬 然 後 代 表 說 你 產 生 出 來 的 圖 片 也 許 是 比 較 接 近 真 實 的 圖 片 所 以 影 像 辨 識 系 統 才 辨 識 得 出 來 如 果 你 產 生 出 來 的 圖 片 是 一 個 四 不 像 根 本 看 不 出 是 什 麼 動 物 那 影 像 辨 識 系 統 就 會 非 常 地 困 惑 它 產 生 出 來 的 這 個 機 率 分 布 就 會 非 常 地 平 坦 非 常 地 平 均 分 布 那 如 果 是 平 均 分 布 的 話 那 就 代 表 說 你 的 gan 產 生 出 來 的 圖 片 可 能 是 比 較 奇 怪 的 所 以 影 像 辨 識 系 統 才 會 辨 識 不 出 來 好 所 以 這 個 是 靠 影 像 辨 識 系 統 來 判 斷 你 產 生 出 來 的 圖 片 好 壞 這 是 一 個 可 能 的 做 法 但 是 光 用 這 個 做 法 是 不 夠 的 光 用 這 個 做 法 會 有 什 麼 問 題 呢 光 用 這 個 做 法 你 會 被 一 個 叫 做 這 個 evaluation 的 方 法 評 估 的 方 法 會 被 一 個 叫 做 mode collapse 的 問 題 騙 過 去 什 麼 叫 mode collapse 呢 mode collapse 是 說 你 在 train gan 的 時 候 你 有 時 候 train 著 train 著 就 會 遇 到 一 個 狀 況 是 假 設 這 些 藍 色 的 星 星 是 真 正 的 資 料 的 分 布 紅 色 的 星 星 是 你 的 gan 你 的 generative 的 model 它 的 分 布 你 會 發 現 說 generative model 它 輸 出 來 的 圖 片 來 來 去 去 就 是 那 幾 張 來 來 去 去 就 是 那 幾 張 可 能 單 一 張 拿 出 來 你 覺 得 好 像 還 做 得 不 錯 但 讓 它 多 產 生 幾 張 就 露 出 馬 腳 發 現 說 原 來 它 就 是 程 咬 金 只 有 三 斧 頭 原 來 產 生 出 來 就 只 有 那 幾 張 圖 片 而 已 那 以 下 是 一 個 mode collapse 的 例 子 啦 就 是 我 們 在 這 個 上 週 有 看 到 說 我 就 train 了 一 個 generator 讓 它 產 生 二 次 元 的 人 物 那 train 著 train 著 train 到 最 後 我 就 發 現 變 成 這 樣 的 一 個 狀 況 這 一 張 臉 越 來 越 多 越 來 越 多 而 且 它 還 有 不 同 的 髮 色 這 個 髮 色 比 較 偏 紅 這 個 髮 色 比 較 偏 黃 越 來 越 多 最 後 就 通 通 都 是 這 張 臉 那 這 就 是 一 種 mode collapse 的 現 象 那 為 什 麼 會 有 mode collapse 這 種 現 象 發 生 呢 就 直 覺 上 你 還 是 比 較 容 易 理 解 你 可 以 想 成 說 這 個 地 方 就 是 discriminator 的 一 個 盲 點 當 generator 學 會 產 生 這 種 圖 片 以 後 它 discr 它 就 永 遠 都 可 以 騙 過 discriminator discriminator 沒 辦 法 看 出 說 這 樣 子 的 圖 片 是 假 的 那 這 是 一 個 discriminator 的 盲 點 generator 抓 到 這 個 盲 點 就 硬 打 一 發 就 發 生 mode collapse 的 狀 況 那 可 是 到 底 要 怎 麼 避 免 mode collapse 的 狀 況 呢 我 認 為 今 天 其 實 還 沒 有 一 個 非 常 好 的 解 答 舉 例 來 說 我 們 在 上 週 給 大 家 看 到 了 began 的 結 果 就 是 會 產 生 網 球 狗 那 個 結 果 那 是 google 做 的 它 也 爆 收 了 參 數 但 就 算 是 它 爆 收 了 參 數 它 發 現 最 終 它 仍 然 沒 有 辦 法 真 的 避 免 mode collapse 的 狀 況 就 began train 到 最 後 還 是 mode collapse 那 began 那 邊 paper 怎 麼 解 決 這 個 問 題 呢 其 實 很 簡 單 model 在 generator 在 訓 練 的 時 候 一 路 上 都 會 把 那 個 train point 存 下 來 在 mode collapse 之 前 把 training 停 下 來 就 train 到 mode collapse 然 後 就 把 之 前 的 model 拿 出 來 用 就 結 束 了 這 樣 所 以 就 算 是 強 如 google 爆 收 參 數 現 在 還 是 沒 有 辦 法 徹 底 解 決 mode collapse 的 問 題 好 不 過 mode collapse 這 種 問 題 你 至 少 你 知 道 有 這 個 問 題 你 可 以 看 得 出 有 這 個 問 題 你 的 generator 總 是 產 生 這 張 臉 的 時 候 你 不 會 說 你 的 generator 是 個 好 的 generator 你 知 道 說 發 生 了 一 些 狀 況 你 的 generator 不 是 特 別 地 好 但 是 有 另 外 一 種 跟 mode collapse 還 是 有 點 像 但 是 更 難 被 偵 測 到 的 問 題 叫 做 mode dropping mode dropping 的 意 思 是 說 你 的 真 實 的 資 料 分 布 可 能 是 這 個 樣 子 但 是 你 的 產 生 出 來 的 資 料 只 有 真 實 資 料 的 一 部 分 單 純 看 產 生 出 來 的 資 料 你 可 能 會 覺 得 還 不 錯 而 且 分 布 它 的 這 個 多 樣 性 也 夠 但 你 不 知 道 說 真 實 的 資 料 它 的 多 樣 性 的 分 布 其 實 是 更 大 的 我 這 邊 舉 一 個 例 子 好 那 這 邊 呢 是 一 個 真 實 的 例 子 就 有 個 同 學 他 train 了 這 個 人 臉 生 成 的 gan 那 它 在 某 一 個 iteration 的 時 候 它 的 generator 產 生 出 這 些 人 臉 你 會 覺 得 說 沒 有 問 題 而 且 人 臉 的 多 樣 性 也 夠 有 男 有 女 有 向 左 看 有 向 右 看 各 式 各 樣 的 人 臉 都 有 好 這 個 是 第 t 個 iteration 的 時 候 generator 你 也 不 覺 得 它 的 多 樣 性 有 問 題 但 如 果 你 再 看 下 一 個 iteration generator 產 生 出 來 的 圖 片 是 這 樣 子 的 你 有 沒 有 發 現 問 題 它 的 膚 色 有 問 題 啊 所 以 它 之 前 你 看 有 男 有 女 沒 有 問 題 但 是 它 膚 色 偏 白 啊 這 邊 膚 色 偏 黃 啊 你 沒 弄 好 人 家 都 覺 得 你 的 generator 有 種 族 歧 視 所 以 在 這 種 mode dropping 的 問 題 是 不 太 容 易 被 偵 測 出 來 的 事 實 上 今 天 到 底 今 天 這 些 非 常 好 的 gan began progress gan progress gan 可 以 產 生 非 常 真 實 人 臉 這 些 gan 到 底 有 沒 有 mode dropping 的 問 題 可 能 還 是 有 的 如 果 你 看 多 了 gan 產 生 出 來 的 人 臉 你 會 發 現 說 雖 然 非 常 真 實 但 好 像 來 來 去 去 就 是 那 麼 幾 張 臉 而 已 它 有 一 個 非 常 獨 特 的 特 徵 是 你 看 多 了 以 後 就 覺 得 這 個 臉 好 像 是 被 生 成 出 來 的 所 以 今 天 也 許 mode dropping 的 問 題 都 還 沒 有 獲 得 本 質 上 的 解 決 好 但 是 我 們 會 需 要 去 量 說 現 在 我 們 的 generator 它 產 生 出 來 的 圖 片 到 底 多 樣 性 夠 不 夠 所 以 怎 麼 做 呢 過 去 有 一 個 做 法 呢 一 樣 是 藉 助 我 們 的 image classify 你 就 把 一 堆 圖 片 就 很 像 你 的 generator 產 生 1000 張 圖 片 把 這 1000 張 圖 片 裡 都 丟 到 image classify 裡 面 看 它 被 判 斷 成 哪 一 個 class 每 張 圖 片 都 會 給 我 們 一 個 distribution 給 我 們 一 個 distribution 你 把 所 有 的 distribution 平 均 起 來 接 下 來 看 看 平 均 的 distribution 長 什 麼 樣 子 如 果 平 均 的 distribution 非 常 集 中 就 代 表 現 在 多 樣 性 不 夠 如 果 什 麼 圖 片 丟 進 去 你 的 影 像 分 類 系 統 都 說 是 看 到 class 2 看 到 裡 面 有 class 2 這 樣 的 東 西 那 代 表 說 每 一 張 圖 片 也 許 都 蠻 像 的 你 的 多 樣 性 是 不 夠 的 那 如 果 另 外 一 個 case 不 同 張 圖 片 丟 進 去 不 同 張 你 的 generator 產 生 出 來 的 圖 片 丟 到 image classifier 的 時 候 它 產 生 出 來 的 輸 出 的 分 布 都 非 常 地 不 同 你 平 均 完 以 後 發 現 平 均 完 後 的 結 果 是 非 常 平 坦 的 那 這 個 時 候 代 表 什 麼 這 個 時 候 代 表 說 也 許 你 的 多 樣 性 是 足 夠 的 那 你 會 發 現 說 在 評 估 的 標 準 上 當 我 們 用 這 個 image 的 classifier 來 做 評 估 的 時 候 diversity 跟 quality 好 像 是 有 點 互 斥 的 因 為 我 們 剛 才 在 講 quality 的 時 候 我 們 說 越 集 中 代 表 quality 越 高 但 是 diversity 是 越 平 坦 越 分 布 越 平 均 代 表 diversity 越 大 不 過 我 要 強 調 一 下 這 個 quality 跟 diversity 它 們 評 估 的 範 圍 不 一 樣 quality 是 只 看 一 張 圖 片 一 張 圖 片 丟 到 classifier 的 時 候 分 布 有 沒 有 非 常 地 集 中 而 diversity 看 的 是 一 堆 圖 片 它 分 布 的 平 均 一 堆 圖 片 你 的 image classifier 輸 出 的 平 均 如 果 輸 出 越 平 均 那 就 代 表 如 果 輸 出 的 這 個 平 均 越 平 均 的 話 這 邊 有 兩 個 平 均 啦 那 我 想 大 家 應 該 知 道 我 的 意 思 如 果 輸 出 的 平 均 越 平 均 的 話 就 代 表 說 現 在 的 diversity 越 大 那 過 去 有 一 個 非 常 常 被 使 用 的 分 數 叫 做 inception score 那 它 的 縮 寫 呢 是 is 所 謂 inception score 顧 名 思 義 就 是 這 邊 用 的 這 個 cnn 是 用 一 個 叫 做 inception network 來 做 的 所 以 叫 inception score 那 這 個 inception score 呢 是 怎 麼 訂 出 來 的 呢 你 就 量 一 下 用 inception network 量 一 下 quality 如 果 quality 高 那 個 diversity 又 大 那 inception score 就 會 比 較 大 不 過 在 作 業 裡 面 我 們 並 不 會 用 inception score 為 什 麼 我 們 不 用 inception score 呢 你 想 想 看 假 設 把 你 產 生 出 來 的 二 次 元 人 物 丟 到 inception net 裡 面 它 的 輸 出 可 能 就 是 都 看 到 人 臉 嘛 你 可 能 diversity 很 大 產 生 不 同 的 髮 色 產 生 不 同 的 眼 睛 的 顏 色 的 人 物 但 是 對 inception network 來 說 它 都 是 人 臉 啊 所 以 你 可 能 算 出 來 diversity 其 實 是 小 的 所 以 inception score 在 我 們 這 個 作 業 中 可 能 是 不 適 用 的 那 在 我 們 的 作 業 中 會 採 取 另 外 一 個 evaluation 的 measure 叫 fréchet 的 inception distance 這 個 東 西 是 什 麼 呢 它 的 縮 寫 叫 做 fid 這 個 東 西 是 什 麼 呢 你 先 把 你 產 生 出 來 的 二 次 元 的 人 物 啊 丟 到 inception net 裡 面 那 如 果 你 把 這 個 二 次 元 人 物 一 路 丟 丟 丟 丟 到 最 後 讓 那 個 inception network 輸 出 它 的 類 別 那 你 得 到 的 可 能 就 是 人 臉 那 每 一 張 二 次 元 的 人 物 看 起 來 都 是 人 臉 那 我 們 不 要 拿 那 個 類 別 我 們 拿 進 入 softmax 之 前 的 hidden layer 的 輸 出 進 入 softmax 之 前 你 的 network 不 是 會 產 生 一 個 向 量 嗎 那 可 能 是 上 千 維 長 度 是 上 千 維 的 一 個 向 量 把 那 個 向 量 拿 出 來 代 表 這 張 圖 片 那 如 果 我 們 拿 出 來 的 是 一 個 向 量 而 不 是 最 後 的 類 別 那 雖 然 最 後 分 類 的 類 別 可 能 是 一 樣 的 但 是 在 決 定 最 後 的 類 別 之 前 這 個 向 量 就 算 都 是 人 臉 可 能 還 是 不 一 樣 的 可 能 會 隨 著 膚 色 髮 型 這 個 向 量 還 是 會 有 所 改 變 的 所 以 我 們 就 不 取 最 後 的 類 別 只 取 這 個 inception network 中 間 的 其 實 是 最 後 一 層 的 這 個 hidden layer 的 輸 出 來 代 表 一 張 圖 片 那 在 這 個 投 影 片 上 啊 所 有 紅 色 的 點 代 表 你 把 真 正 的 圖 片 丟 到 inception network 以 後 拿 出 來 的 向 量 那 這 個 向 量 其 實 非 常 高 維 度 是 上 千 維 的 那 我 們 就 把 它 假 設 我 們 可 以 把 它 畫 在 二 維 的 平 面 上 好 那 這 個 藍 色 的 點 呢 藍 色 的 點 是 你 自 己 的 gan 你 自 己 的 generator 產 生 出 來 的 圖 片 它 丟 到 inception network 以 後 進 入 softmax 之 前 的 向 量 把 它 畫 出 來 假 設 是 長 這 個 樣 子 接 下 來 呢 你 就 假 設 這 兩 組 資 料 假 設 真 實 的 圖 片 跟 產 生 出 來 的 圖 片 它 們 都 是 gaussians 的 distribution 然 後 去 計 算 這 兩 個 gaussians distribution 之 間 的 fréchet 的 distance 就 結 束 了 那 至 於 fréchet 的 distance 是 什 麼 你 有 興 趣 再 自 己 看 一 下 文 獻 反 正 在 作 業 裡 面 我 們 的 judge systerm 會 幫 大 家 算 好 好 但 是 這 邊 因 為 它 是 一 個 distance 所 以 這 個 值 就 是 越 小 越 好 嘛 距 離 就 是 越 小 越 好 距 離 越 小 代 表 這 兩 組 圖 片 越 接 近 那 當 然 就 是 產 生 出 來 的 品 質 越 高 但 這 邊 你 一 定 心 裡 還 是 有 很 多 問 號 第 一 個 問 號 就 是 當 做 gaussians distribution 沒 問 題 嗎 這 個 應 該 不 是 gaussians distribution 吧 嗯 會 有 問 題 就 這 樣 子 然 後 另 外 一 個 問 題 就 是 如 果 你 要 準 確 的 得 到 你 的 network 它 的 分 布 那 你 可 能 需 要 產 生 大 量 的 sample 才 能 做 到 那 這 需 要 一 點 運 算 量 那 這 個 也 是 要 做 fid 不 可 避 免 的 問 題 所 以 其 實 我 們 在 作 業 裡 面 我 們 不 會 只 看 我 們 也 不 會 只 看 fid 只 看 fid 其 實 結 果 會 怪 怪 的 怪 怪 的 因 為 你 你 假 設 你 的 這 個 輸 出 的 分 布 一 定 是 gaussians 嘛 那 它 實 際 上 不 是 gaussians 硬 假 設 它 是 gaussians 沒 有 怪 怪 的 嗎 會 怪 怪 的 所 以 我 們 是 同 時 看 fid 跟 動 畫 人 物 人 臉 的 這 個 偵 測 出 來 的 人 臉 的 數 目 這 兩 個 指 標 我 會 同 時 看 這 兩 個 指 標 那 這 樣 可 以 得 到 比 較 合 理 而 精 確 的 結 果 好 那 fid 算 是 今 天 比 較 常 用 的 一 種 measure 那 有 一 篇 paper 叫 做 are gans created equal a large scale study 那 你 可 以 想 見 說 這 個 也 是 google 做 的 啦 那 就 是 爆 做 了 各 式 各 樣 不 同 的 gan 有 那 個 時 候 它 就 列 舉 了 好 多 不 同 的 各 式 各 樣 的 gan 那 每 一 個 gan 當 然 它 的 這 個 訓 練 的 這 個 objective 訓 練 的 那 個 loss 有 點 不 太 一 樣 我 這 邊 就 不 細 講 各 式 各 樣 的 gan 每 一 種 gan 它 都 用 不 同 的 random seed 去 跑 過 很 多 次 以 後 看 看 結 果 怎 麼 樣 那 以 下 呢 下 面 這 個 圖 呢 就 是 在 四 個 不 同 的 資 料 庫 上 面 得 到 的 結 果 那 橫 軸 這 邊 代 表 的 是 不 同 的 gan 那 這 邊 的 值 啊 是 越 小 越 好 它 是 f 它 是 fi 欸 我 這 邊 怎 麼 寫 成 fit 呢 不 好 意 思 這 我 寫 錯 了 不 好 意 思 不 好 意 思 我 記 得 改 一 下 這 個 不 是 fit 這 個 是 fid 這 個 是 fid 的 分 數 那 這 個 fid 的 分 數 就 是 越 小 越 好 啦 那 你 會 發 現 說 這 邊 每 一 個 方 法 呢 它 都 不 是 只 得 到 一 個 數 值 它 都 得 到 一 個 分 布 為 什 麼 它 得 到 是 一 個 分 布 呢 因 為 你 要 用 那 個 不 同 的 random seed 去 跑 啊 用 不 同 random seed 去 跑 每 次 跑 出 來 的 結 果 都 不 太 一 樣 那 這 邊 混 了 一 個 不 是 gan 的 做 法 混 了 一 個 vae 在 這 裡 那 你 會 發 現 說 如 果 比 較 這 些 gan 的 方 法 跟 vae 的 方 法 vae 的 方 法 顯 然 是 比 較 穩 定 的 不 同 的 random seed 看 起 來 差 距 還 是 比 較 小 的 那 gan 的 方 法 不 同 random seed 差 距 是 很 大 的 那 你 又 可 以 很 明 顯 地 看 出 vae 跟 gan 它 的 這 個 好 的 程 度 啊 不 在 同 一 個 量 級 上 gan 呢 可 以 產 生 遠 比 vae 更 好 的 結 果 不 過 你 會 發 現 說 不 同 的 gan 好 像 結 果 差 不 多 所 以 這 邊 就 那 抬 頭 就 是 are gans created equal 然 後 看 起 來 所 有 的 gan 都 差 不 多 然 後 農 場 文 最 喜 歡 這 種 文 章 啊 它 就 會 說 啊 所 有 的 gan 都 差 不 多 啦 所 以 那 跟 gan 有 關 的 研 究 都 是 白 忙 一 場 但 是 其 實 事 實 上 也 未 必 是 如 此 如 果 你 仔 細 看 那 篇 文 章 的 話 在 做 實 驗 的 時 候 所 有 這 些 不 同 的 gan 用 的 network 架 構 都 是 同 一 個 它 只 是 爆 收 了 那 個 random seed 跟 learning rate 而 已 所 以 network 架 構 還 是 同 一 個 那 所 以 我 們 不 知 道 說 是 不 是 有 某 些 network 架 構 特 別 favor 某 些 某 些 種 類 的 gan 或 者 是 某 些 種 類 的 gan 會 不 會 在 不 同 的 network 架 構 上 表 現 得 比 較 比 較 穩 定 比 如 說 如 果 你 看 wgan 的 話 wgan 最 原 始 的 paper 它 標 榜 的 其 實 是 它 network 架 構 胡 亂 設 計 它 胡 亂 兜 個 什 麼 100 層 的 generator 就 很 沒 有 必 要 弄 一 個 100 層 的 generator 它 也 train 得 起 來 所 以 也 許 wgan 是 在 不 同 的 generator 不 同 的 network 架 構 的 時 候 比 較 穩 定 那 你 試 不 同 的 random seed 可 能 沒 有 特 別 穩 定 等 等 之 類 的 不 知 道 這 篇 paper 並 沒 有 給 我 們 這 方 面 的 答 案 好 那 其 實 剛 才 那 些 measure 也 完 全 也 並 沒 有 完 全 解 決 gan 的 問 題 evaluation 的 問 題 因 為 還 有 什 麼 evaluation 的 問 題 呢 你 想 想 看 以 下 的 狀 況 假 設 這 是 你 的 真 實 資 料 你 不 知 道 怎 麼 回 事 訓 練 了 一 個 generator 它 產 生 出 來 的 data 跟 你 的 真 實 資 料 一 模 一 樣 所 以 如 果 你 不 知 道 真 實 資 料 長 什 麼 樣 子 你 光 看 這 個 generator 的 輸 出 你 會 覺 得 太 棒 了 它 做 得 很 棒 那 fid 算 出 來 一 定 是 非 常 小 的 但 問 題 是 這 個 是 你 要 的 嗎 如 果 它 產 生 出 來 的 圖 片 都 跟 資 料 庫 裡 面 的 訓 練 資 料 的 一 模 一 樣 訓 練 資 料 就 在 你 手 上 直 接 從 訓 練 資 料 裡 面 sample 一 些 image 出 來 不 是 更 好 幹 嘛 要 train generator 我 們 train generator 其 實 是 希 望 它 產 生 新 的 圖 片 啊 資 料 集 裡 面 訓 練 資 料 裡 面 沒 有 的 人 臉 啊 如 果 訓 練 資 料 裡 面 有 一 模 一 樣 的 人 臉 直 接 用 訓 練 資 料 裡 面 的 人 臉 就 好 了 何 必 用 gan 呢 所 以 有 時 候 你 的 gan 產 生 出 來 的 結 果 很 好 也 許 你 在 作 業 裡 面 fid 算 出 來 也 很 低 然 後 人 臉 辨 識 系 統 也 給 你 很 高 的 分 數 但 是 它 不 一 定 是 一 個 好 的 gan 那 像 這 種 問 題 就 不 是 我 們 作 業 的 measure 可 以 偵 測 的 但 是 它 是 一 個 問 題 那 怎 麼 解 呢 你 可 能 會 說 那 我 們 就 把 我 們 generator 產 生 出 來 的 圖 片 跟 真 實 資 料 比 個 相 似 度 吧 看 看 是 不 是 一 樣 嘛 如 果 很 多 張 都 一 樣 就 代 表 說 generator 只 是 把 那 個 訓 練 資 料 背 起 來 而 已 它 沒 有 很 厲 害 但 是 那 如 果 我 問 另 外 一 個 問 題 假 設 你 的 generator 學 到 的 是 把 所 有 訓 練 資 料 裡 面 的 圖 片 都 左 右 反 轉 呢 那 它 也 是 什 麼 事 都 沒 有 做 啊 假 設 它 學 到 就 是 把 訓 練 資 料 裡 面 所 有 的 圖 片 都 左 右 翻 轉 那 你 會 覺 得 嗯 它 看 起 來 很 棒 它 實 際 上 也 是 什 麼 事 都 沒 有 做 但 問 題 是 你 比 相 似 度 的 時 候 又 比 不 出 來 所 以 gan 的 evaluation 是 非 常 地 困 難 的 還 甚 至 光 要 如 何 評 估 一 個 generator 做 得 好 不 好 這 件 事 情 都 是 一 個 可 以 研 究 的 題 目 如 果 你 真 的 很 有 興 趣 的 話 這 邊 放 了 一 篇 相 關 的 文 章 啦 裡 面 就 列 舉 了 二 十 幾 種 gan generator 的 評 估 的 方 式 給 大 家 參 考 好 那 接 下 來 呢 我 們 要 講 conditional 的 generation 那 也 許 我 們 講 了 conditional 的 generation 以 後 再 下 課 然 後 接 下 來 就 是 讓 助 教 來 講 一 下 gan 的 作 業 好 那 什 麼 是 conditional 的 generation 呢 剛 才 我 們 講 的 那 個 generator 到 目 前 為 止 我 們 講 的 generator 它 輸 入 都 是 一 個 隨 機 的 分 布 而 已 那 這 個 不 見 得 非 常 有 用 我 們 現 在 想 要 更 進 一 步 的 是 我 們 可 以 操 控 generator 的 輸 出 我 們 給 它 一 個 condition x 讓 它 根 據 x 跟 z 來 產 生 y 那 這 樣 的 conditional generation 有 什 麼 樣 的 應 用 呢 比 如 說 你 可 以 做 文 字 對 圖 片 的 生 成 那 如 果 你 要 做 文 字 對 圖 片 的 生 成 它 其 實 是 一 個 supervised learning 的 問 題 你 需 要 一 些 label 的 data 你 需 要 去 蒐 集 一 些 圖 片 蒐 集 一 些 人 臉 然 後 這 些 人 臉 都 要 有 文 字 的 描 述 告 訴 我 們 說 這 個 是 紅 眼 睛 這 個 是 黑 頭 髮 這 個 是 黃 頭 髮 這 個 是 有 黑 眼 圈 等 等 告 訴 我 們 這 樣 子 我 們 要 這 樣 的 label 的 資 料 才 能 夠 訓 練 這 種 conditional 的 generation 所 以 在 text to image 這 樣 的 任 務 裡 面 我 們 的 x 就 是 一 段 文 字 那 你 可 能 問 說 一 段 文 字 怎 麼 輸 入 給 generator 呢 那 就 要 問 你 自 己 了 你 要 怎 麼 做 都 可 以 以 前 會 用 rnn 把 它 讀 過 去 然 後 得 到 一 個 向 量 再 丟 到 generator 今 天 也 許 你 可 以 把 它 丟 到 一 個 這 個 transformer 的 encoder 裡 面 去 把 encoder output 這 些 向 量 通 通 平 均 起 來 丟 到 generator 裡 面 去 怎 麼 樣 都 可 以 反 正 你 用 什 麼 方 法 都 可 以 只 要 能 夠 讓 generator 讀 一 段 文 字 就 行 好 那 你 期 待 說 你 輸 入 red eyes 然 後 呢 機 器 就 可 以 畫 一 個 紅 眼 睛 的 角 色 但 每 次 畫 出 來 的 角 色 都 不 一 樣 那 這 個 畫 出 來 什 麼 樣 的 角 色 取 決 於 什 麼 呢 取 決 於 你 sample 到 什 麼 樣 的 z sample 到 不 一 樣 的 z 畫 出 來 的 角 色 就 不 同 但 是 通 通 都 是 紅 眼 睛 的 這 個 就 是 text to image 想 要 做 的 事 情 真 的 可 以 做 到 這 樣 子 的 事 情 嗎 可 以 這 個 過 去 有 這 個 作 業 啦 這 學 期 雖 然 沒 有 但 過 去 有 這 個 作 業 就 是 輸 入 紅 頭 髮 這 個 是 之 前 助 教 做 的 結 果 輸 入 紅 頭 髮 輸 入 綠 眼 睛 那 產 生 的 結 果 就 是 這 個 樣 子 產 生 各 式 各 樣 紅 頭 髮 綠 眼 睛 的 角 色 輸 入 藍 頭 髮 紅 眼 睛 就 產 生 各 式 各 樣 藍 頭 髮 紅 眼 睛 的 角 色 你 發 現 那 個 有 時 候 機 器 也 是 會 犯 錯 的 啦 比 如 說 這 邊 有 一 個 異 色 瞳 雖 然 說 要 畫 紅 眼 睛 但 它 覺 得 畫 一 隻 紅 色 的 眼 睛 就 可 以 矇 混 過 去 另 外 一 隻 眼 睛 仍 然 是 藍 色 的 那 要 怎 麼 做 conditional 的 gan 呢 我 們 現 在 的 generator 有 兩 個 輸 入 一 個 是 從 normal distribution sample 出 來 的 z 另 外 一 個 是 x 也 就 是 一 段 文 字 那 我 們 的 generator 會 產 生 一 張 圖 片 y 那 我 們 需 要 一 個 discriminator 那 如 果 按 照 我 們 過 去 所 學 過 的 東 西 discriminator 它 就 是 吃 一 張 圖 片 y 當 作 輸 入 輸 出 一 個 數 值 這 個 數 值 代 表 輸 入 的 圖 片 多 像 真 實 的 圖 片 是 真 實 的 還 是 生 成 的 那 怎 麼 訓 練 這 個 discriminator 呢 你 就 說 如 果 看 到 真 實 的 圖 片 你 就 輸 出 1 如 果 看 到 生 成 的 圖 片 就 輸 出 0 你 就 可 以 訓 練 discriminator 然 後 discriminator 跟 generator 反 覆 訓 練 也 許 你 就 可 以 去 把 generator 訓 練 出 來 但 這 樣 的 方 法 沒 辦 法 真 的 解 conditional gan 的 問 題 為 什 麼 呢 因 為 如 果 我 們 只 有 train 這 個 discriminator 這 個 discriminator 只 會 看 y 當 做 輸 入 的 話 那 generator 會 學 到 的 是 它 會 產 生 可 以 騙 過 discriminator 的 非 常 清 晰 的 圖 片 它 會 產 生 清 晰 的 圖 片 但 是 跟 輸 入 完 全 沒 有 任 何 關 係 因 為 對 generator 來 說 它 只 要 產 生 清 晰 的 圖 片 就 可 以 騙 過 discriminator 了 它 何 必 要 去 管 input 文 字 敘 述 是 什 麼 呢 你 的 discriminator 又 不 看 文 字 的 敘 述 所 以 它 根 本 就 不 需 要 管 文 字 的 敘 述 你 不 管 輸 入 什 麼 文 字 就 無 視 這 個 x 反 正 就 是 產 生 一 個 圖 片 可 以 騙 過 discriminator 就 結 束 了 但 這 顯 然 不 是 我 們 要 的 所 以 在 conditional gan 裡 面 你 要 做 有 點 不 一 樣 的 設 計 你 的 discriminator 不 是 只 吃 圖 片 y 它 還 要 吃 condition x 所 以 你 的 discriminator 它 有 y 作 為 輸 入 有 x 作 為 輸 入 然 後 產 生 一 個 數 值 那 這 個 數 值 不 只 是 看 y 好 不 好 光 圖 片 好 沒 有 用 光 圖 片 好 discriminator 還 是 不 會 給 高 分 什 麼 樣 的 情 況 下 discriminator 才 會 給 高 分 呢 一 方 面 圖 片 要 好 另 外 一 方 面 圖 片 跟 x 就 是 文 字 的 敘 述 它 們 必 須 要 配 得 上 這 個 圖 片 跟 文 字 的 敘 述 必 須 要 是 相 配 的 discriminator 才 會 給 高 分 那 怎 麼 樣 訓 練 這 樣 的 discriminator 呢 那 你 需 要 文 字 跟 影 像 成 對 的 資 料 所 以 conditional gan 一 般 的 訓 練 是 需 要 這 個 pair 的 data 的 是 需 要 有 標 註 的 資 料 的 是 需 要 成 對 資 料 的 有 這 些 成 對 資 料 那 你 就 告 訴 你 的 discriminator 說 看 到 這 些 真 正 的 成 對 的 資 料 就 給 它 一 分 看 到 red eyes 但 是 搭 配 欸 這 邊 我 也 不 知 道 為 什 麼 會 是 這 個 樣 子 不 過 沒 有 關 係 反 正 我 這 邊 本 來 就 是 沒 有 要 放 什 麼 特 別 的 東 西 就 放 個 亂 七 八 糟 的 圖 而 已 好 可 能 red eyes 跟 機 器 產 生 出 來 的 圖 片 那 就 是 給 0 分 然 後 訓 練 下 去 就 可 以 產 生 就 可 以 做 到 conditional gan 那 其 實 在 實 作 上 啊 光 是 這 樣 子 拿 這 樣 子 的 positive sample 還 有 negative sample 來 訓 練 這 樣 的 discriminator 其 實 你 得 到 的 結 果 往 往 不 夠 好 光 是 告 訴 discriminator 說 這 樣 子 的 狀 況 是 好 的 這 樣 子 的 狀 況 是 不 好 的 這 樣 是 不 夠 的 你 還 需 要 加 上 一 種 不 好 的 狀 況 是 已 經 產 生 好 的 圖 片 但 是 文 字 敘 述 配 不 上 的 狀 況 所 以 你 通 常 會 把 你 的 訓 練 資 料 拿 出 來 然 後 故 意 把 文 字 跟 圖 片 亂 配 故 意 配 一 些 錯 的 然 後 告 訴 你 的 discriminator 說 看 到 這 種 狀 況 你 也 要 說 是 不 好 的 用 這 樣 子 的 資 料 你 才 有 辦 法 把 discriminator 訓 練 好 然 後 generator 跟 discriminator 反 覆 的 訓 練 你 最 後 才 會 得 到 好 的 結 果 這 個 就 是 conditional gan 好 在 目 前 的 例 子 裡 面 都 是 看 一 段 文 字 產 生 圖 片 那 conditional gan 的 應 用 不 只 看 一 段 文 字 產 生 圖 片 啦 也 可 以 看 一 張 圖 片 產 生 圖 片 那 看 一 張 圖 片 產 生 圖 片 也 有 很 多 的 應 用 比 如 說 給 它 房 屋 的 設 計 圖 然 後 讓 你 的 generator 直 接 把 房 屋 產 生 出 來 給 它 黑 白 的 圖 片 然 後 讓 它 把 顏 色 著 上 給 它 這 個 素 描 的 圖 讓 它 把 它 變 成 實 景 實 物 那 給 它 這 個 白 天 的 圖 片 讓 它 變 成 晚 上 的 圖 片 有 時 候 你 會 給 它 比 如 說 起 霧 的 圖 片 讓 它 變 成 沒 有 霧 的 圖 片 把 霧 去 掉 好 所 以 conditional gan 除 了 輸 入 文 字 產 生 影 像 以 外 也 可 以 輸 入 影 像 產 生 影 像 那 像 這 樣 子 的 應 用 啊 叫 做 image 的 translation 那 有 人 又 叫 做 pix2pix 這 個 pix 就 是 pixel 就 是 像 素 的 縮 寫 啦 所 以 叫 做 pix2pix 好 那 怎 麼 做 呢 跟 剛 才 講 的 從 文 字 產 生 影 像 沒 有 什 麼 不 同 現 在 只 是 從 影 像 產 生 影 像 把 文 字 的 部 分 用 影 像 取 代 掉 而 已 那 當 然 同 樣 的 做 法 同 樣 要 產 生 這 樣 的 generator 產 生 一 張 圖 片 輸 入 一 張 圖 片 產 生 一 張 圖 片 你 當 然 可 以 用 supervised learning 的 方 法 那 在 文 獻 上 你 會 發 現 說 如 果 你 用 supervised learning 的 方 法 你 得 不 到 非 常 好 的 結 果 通 常 你 用 supervised learning 的 方 法 訓 練 一 個 圖 片 生 圖 片 的 generator 你 產 生 出 來 的 結 果 可 能 是 這 個 樣 子 就 是 這 是 你 的 generator 的 輸 入 那 這 個 是 你 generator 的 輸 出 那 你 會 發 現 說 它 非 常 地 模 糊 為 什 麼 它 非 常 地 模 糊 呢 你 可 以 直 覺 想 成 說 因 為 同 樣 的 輸 入 可 能 對 應 到 不 一 樣 的 輸 出 就 好 像 我 們 在 講 gan 剛 開 始 的 開 場 的 時 候 講 的 那 個 例 子 今 天 在 同 一 個 轉 角 那 個 小 精 靈 可 能 左 轉 也 可 能 右 轉 最 後 學 到 的 就 是 同 時 左 轉 跟 右 轉 那 對 於 image to image 的 case 也 是 一 樣 的 輸 入 一 張 圖 片 輸 出 有 不 同 的 可 能 機 器 學 到 的 generator 學 到 的 就 是 把 不 同 的 可 能 平 均 起 來 結 果 變 成 一 個 模 糊 的 結 果 所 以 這 個 時 候 我 們 需 要 用 gan 來 train 你 需 要 加 一 個 discriminator discriminator 它 是 輸 入 一 張 圖 片 還 有 輸 入 condition 然 後 它 會 同 時 看 這 個 圖 片 跟 這 個 condition 有 沒 有 匹 配 來 決 定 它 的 輸 出 那 這 個 是 文 獻 上 用 gan 的 輸 出 從 右 上 角 這 篇 paper 截 取 出 來 的 那 你 會 發 現 說 如 果 單 純 用 gan 的 話 它 有 一 個 小 問 題 所 以 它 產 生 出 來 的 圖 片 呢 比 較 真 實 但 是 它 的 問 題 是 它 的 創 造 力 呢 想 像 力 過 度 豐 富 它 會 產 生 一 些 輸 入 沒 有 的 東 西 沒 有 叫 它 輸 入 的 東 西 舉 例 來 說 這 是 一 個 房 子 左 上 角 明 明 沒 有 其 他 東 西 這 邊 它 卻 在 屋 頂 上 加 了 一 個 不 知 道 是 煙 囪 還 是 窗 戶 的 東 西 那 文 獻 上 如 果 你 要 做 到 最 好 啊 往 往 就 是 gan 跟 supervised learning 同 時 使 用 啦 那 同 時 使 用 往 往 可 以 給 你 最 好 的 結 果 那 所 謂 同 時 使 用 的 意 思 就 是 generator 在 訓 練 的 時 候 一 方 面 它 要 去 騙 過 discriminator 這 是 它 的 一 個 目 標 但 同 時 它 又 想 要 產 生 一 張 圖 片 跟 標 準 答 案 越 像 越 好 它 同 時 去 做 這 兩 件 事 那 往 往 產 生 出 來 的 結 果 是 最 好 的 那 conditional gan 還 有 很 多 應 用 啦 這 邊 給 大 家 看 一 個 莫 名 其 妙 的 應 用 就 是 給 gan 呢 聽 一 段 聲 音 啦 然 後 呢 它 產 生 一 個 對 應 的 圖 片 啦 什 麼 意 思 呢 比 如 說 給 它 聽 一 段 狗 叫 聲 看 它 能 不 能 夠 畫 出 一 隻 狗 啦 好 那 我 剛 才 講 說 conditional gan 需 要 這 個 label 的 資 料 需 要 成 對 的 資 料 那 這 個 聲 音 跟 影 像 成 對 的 資 料 其 實 並 沒 有 那 麼 難 蒐 集 因 為 你 可 以 爬 到 大 量 的 影 片 那 影 片 裡 面 有 影 像 有 畫 面 也 有 聲 音 訊 號 那 你 就 知 道 說 這 一 個 畫 面 這 一 幀 這 一 幀 的 圖 片 這 一 幀 的 畫 面 對 應 到 這 一 小 段 聲 音 這 一 幀 的 畫 面 對 應 到 這 一 小 段 聲 音 把 這 些 資 料 蒐 集 起 來 你 就 可 以 train 一 個 conditional gan 聽 一 段 聲 音 讓 它 想 像 它 聽 到 的 場 景 是 什 麼 樣 子 的 好 那 這 個 是 我 們 實 驗 室 有 個 同 學 做 的 然 後 這 個 是 一 個 真 正 的 demo 這 個 是 一 個 那 個 真 正 的 demo 啦 那 機 器 聽 這 樣 的 聲 音 好 這 聽 起 來 有 點 像 是 這 個 電 視 機 壞 掉 的 聲 音 那 機 器 覺 得 它 聽 到 什 麼 呢 剛 才 那 一 段 聲 音 機 器 覺 得 它 聽 到 一 個 小 溪 聽 到 一 個 小 瀑 布 或 者 是 我 們 再 聽 另 外 一 段 聲 音 機 器 覺 得 它 聽 到 一 艘 快 艇 在 海 上 奔 馳 當 然 我 有 點 擔 心 說 欸 這 個 會 不 會 機 器 並 沒 有 真 的 學 到 聲 音 跟 圖 片 之 間 的 關 係 會 不 會 它 只 是 把 它 在 訓 練 資 料 裡 面 有 看 過 的 圖 片 存 起 來 而 已 所 以 我 決 定 把 聲 音 調 大 你 聽 看 看 結 果 會 怎 樣 所 以 我 們 把 聲 音 調 大 接 下 來 真 的 很 大 聲 哦 好 然 後 聲 音 越 來 越 大 你 就 發 現 說 這 個 溪 流 裡 面 的 水 花 就 越 來 越 多 從 一 條 小 溪 變 成 尼 加 拉 瓜 瀑 布 然 後 剛 才 的 這 個 快 艇 的 例 子 也 是 一 樣 就 把 快 艇 的 聲 音 變 大 你 聽 看 看 會 怎 樣 當 聲 音 越 來 越 大 的 時 候 你 發 現 快 艇 旁 邊 的 水 花 就 越 來 越 多 好 像 快 艇 開 得 越 來 越 快 不 過 我 要 承 認 這 個 其 實 是 稍 微 cherry pick 的 結 果 就 稍 微 挑 過 的 結 果 很 多 時 候 覺 得 generator 產 生 出 來 的 東 西 就 是 這 個 樣 子 啦 不 知 所 云 這 樣 這 就 給 它 一 個 鋼 琴 聲 然 後 它 好 像 想 畫 一 個 鋼 琴 但 又 沒 有 很 清 楚 這 個 是 給 它 聽 狗 叫 聲 啦 好 像 想 畫 一 個 動 物 但 又 不 知 道 要 畫 些 什 麼 這 個 是 聲 音 到 影 像 的 產 生 好 那 我 看 到 最 近 最 驚 人 的 conditional gan 的 應 用 啊 是 有 人 用 conditional gan 產 生 會 動 的 圖 片 我 們 知 道 在 哈 利 波 特 裡 面 那 些 人 物 的 畫 像 是 會 動 的 是 會 說 話 的 那 samsung 呢 就 做 了 一 個 類 似 的 應 用 用 gan 做 的 給 它 一 張 圖 片 比 如 說 蒙 娜 麗 莎 的 畫 像 然 後 就 可 以 讓 蒙 娜 麗 莎 開 始 講 話 這 個 是 conditional gan 的 其 中 一 個 應 用 我 把 論 文 放 在 這 邊 給 大 家 參 考 好 那 講 到 這 邊 呢 正 好 告 一 個 段 落 也 許 我 們 先 休 息 一 下 我 們 十 分 鐘 後 再 回 來 那 等 一 下 呢 助 教 會 講 作 業 6 
Well, let's start the class Where did we leave off last week? We talked about WGAN last week We also mentioned actually, If you want to implement a WGAN In fact, there are many different methods. Today, it seems like The most effective one Actually, it's Spectral Normalization Many people abbreviate it as SNGAN SN stands for Spectral Normalization Ok but though we already have WGAN But it doesn't necessarily mean Training GAN is not always easy GAN is still based on It's famous for being hard to train So why is GAN hard to train It has an inherently difficult place Let's think about the Discriminator and the Generator What are they each doing? What the Discriminator does Which are to distinguish between real images and generated ones That is, the difference in fake images This is what the Discriminator is doing What the Generator is doing It aims to generate fake images. Deceived the Discriminator In fact, these two networks This Generator and Discriminator They sharpen each other Only then can they grow together As long as one of them What problems have arisen to stop training Another person will stop training as well It would deteriorate as a result Fall with it So today Assume you're training the Discriminator Suddenly it's not well trained Your Discriminator can't distinguish The difference is really with the generated images That Generator It loses the goal for improvement The generator cannot progress any further The Generator can't make any more progress The discriminator will also stop. If the Generator can't make progress It can't generate more realistic images Then the Discriminator can't progress with it So the Discriminator and the Generator. During their training As long as one of them no longer progresses Another person will stop accordingly But so far Everyone has trained the network many times Can you ensure that when you train Does its Loss definitely decrease? It's not necessarily right or wrong You need to get the network trained Often, you need to tune the Hyperparameter That's the only way to get it trained The Discriminator and Generator we are discussing today Their interaction process is automatic Once at a certain step. You Discrimi Because we won't be in the middle Every time you train the Discriminator. You have changed Hyperparameter So, all we can do is pray Every time we train the Discriminator Its loss is consistently decreasing If there is a time when it does not decrease The whole training It's very likely that it may end up terribly The entire Discriminator and Generator The process of honing each other It may stop So today, the Generator and Discriminator During the training They must meet their match If any person gives up this competition When one person gives up, the game ends So the essence of GAN's training It's still not an easy task Naturally, it's an incredibly important technique So even though it's a visionary technology There might be people who think Don't consider this kind of A network you might not even be able to train yourself Put it into that task But I think This is a significant forward-looking technology. So, we still Everyone should have a chance To get in touch with these cutting-edge technologies At least you can know that Training GAN is not an easy task Of course, from another perspective Because many people are doing similar research. So, on the internet You can find piles of relevant programs So actually from this perspective Actually, it's not as difficult as you might think But regarding Train GAN Still, it's not an easy task. Good, you can find heaps of it on the internet Tips for GAN So are these useful? It's hard to tell, hard to tell It's about making some relevant Literature related to the trick of training GAN The link is listed here Just for your own reference Okay, that's the hardest part of training a GAN Actually, we are going to use GAN to generate text If you want to generate a piece of text with GAN This would be the most challenging part Why use GAN to generate a piece of text? Will be the most difficult we know that If you want to generate a piece of text Then you might encounter a scenario where The Sequence To Sequence model You have a Decoder Then this decoder will generate a piece of text So currently, this one It's a Sequence To Sequence model It's our Generator This in the past When talking about Transformer This is a Decoder What it's doing now. In GAN It plays the role of generator Responsible for generating what we want it to generate For example, a paragraph text Then you said this will correspond with the original GAN What is different about GANs in imaging? From a high-level perspective Looking at the algorithm There might not be a big difference Because what follows is. You just train a Discriminator The Discriminator reads this text Judge that this text is real text Or the text generated by the machine And the Decoder is trying to trick the Discriminator The Generator is trying to deceive the Discriminator You adjust the parameters of your generator Try to make the Discriminator think What the Generator creates is real But the real But where is the difficulty here? The difficulty here is If you are going to use Gradient Descent To train your Decoder To make the Discriminator output a larger score is better You will find out that you can't do it Why can't you do it? As everyone knows When calculating this differential The so-called Gradient The so-called differential Actually, it's just a parameter when it changes How much impact has this had on your goal Now, let's think about it Assuming we changed the parameters of the Decoder Our Generator Which are parameters of the Decoder When there is a slight change Regarding the output of the Discriminator What kind of impact does it have? Good parameters of the Decoder If there is a small change The distribution it's outputting now There will be slight changes The variation here is quite small So it won't affect the maximum What is that Token I know what you mean by 'Token' It might be for you, students You might find this a bit abstract If you want to think more concretely The token is what you're dealing with in this problem Handling the unit generating this sequence What about the Token It's human-ordered So assuming today When creating a sentence in Chinese We generate one Character each time A block letter That square character is our Token Assume you are dealing with English You generate an English letter each time The letters are your tokens Suppose you do it once It's to generate an English word The space between English words Is separated by a blank space That is, the word is your token Okay, so the definition of Tokens It's up to you to decide. It depends on what you want to use Consider it as a unit to generate a sentence Okay, so today This Distribution only has slight changes When choosing the Max When looking for the token with the highest score You'll notice The Token with the highest score Nothing has changed Only a slight change in your distribution. So the token with the highest score is the same one As for the Discriminator It outputs scores Its output is exactly the same. In this way, the output scores have not changed So you would find out When the parameters of the Decoder change slightly The output of the Discriminator doesn't change So you can't calculate the derivative at all You can't do Gradient Descent at all Some students might say Hey, this part here isn't Max Is this inability to perform Gradient Descent because of Max? Isn't there a Max Pooling in that CNN How can we still perform Gradient Descent This question is for you to think about Why in this location But Max can't do Gradient Descent There's Max Pooling in CNN Yet you can do Gradient Descent Ok, but even if we can't do Gradient Descent You don't need to be scared. Do you remember we mentioned last week Encountering problems that can't be trained using Gradient Descent Treating it as a Reinforcement Learning problem Just force it to finish So, you can definitely use Reinforcement Learning Come to train your generator When you want to generate a sequence You can use Reinforcement Learning To train your Generator But what problem might occur Reinforcement Learning is famous for being difficult to train. GAN is also famous for being difficult to train Things like this added together It will explode and can't be trained anymore Is extremely hard to train So, GAN is needed to generate a paragraph of text It has always been considered It's a huge challenge So there's quite a long time No one can successfully train the Generator No one has succeeded in training a Generator Using the GAN method. Train a Generator to produce text Usually, you need to do pre-training Speaking of pre-training In fact, we're going to mention it soon If you still don't know what Pretrain is But that's okay In short, you couldn't do it with normal methods in the past Let GAN generate a piece of text Until a paper called ScrachGAN was published Its Title readily brags about it to you It can train Language GANs from Scratch Form Scratch means not using Pretrain Alright, so it can be used It can start directly from random initialization parameters Train its Generator Then let the Generator produce text So, how did they manage to do that? The most critical thing is Explode the Hyperparameter Along with a bunch of Tips You can imagine This is Google's paper After it has drastically gathered all the parameters And then add on A lot of tips have been discussed here For instance The horizontal axis represents their major. This is called FED. This one is used for text. We won't talk about that today This is not important Anyway, the lower this value, the better Initially, you need a technique called SeqGAN-Step Without it, you can't fully conduct a training Then there's a large batch size next. How big is it? It's usually in the thousands Without that You can't do this at home Adding Regularization to the Discriminator Embedding needs to be Pretrained Change the Reinforcement Learning Algorithm In the end, there's ScratchGAN. You can actually train the GAN Then let it generate a sequence Alright, regarding the part of GAN today We just gave a rough explanation If you want to learn the most comprehensive content I will leave a link here for everyone to refer to About the Generative Model It's not just GAN There are others Such as VAE For example, FLOW-Based Model Here, I've also listed two video links For everyone's reference What I want to emphasize is The video link here is not to say I need to hurry and I definitely need to check these video links So you can learn the upcoming content Because there is simply too much to talk about in machine learning So if Assuming you don't have much time What you really need to listen to is Only the content I talked about in class The content of the class is self-contained It is intrinsically consistent All you need to do is listen to every class Your upcoming content You should be able to listen in order Should all understand And during the class Links to some videos will be posted This is equivalent to an extra branch split off If you are really interested You can carry out in-depth research Then why don't we talk more about other things? Because of the design in class The content of this course It is truly able to help you With a practice-oriented approach Assume that you want to train a generator You want the machine to generate something You have many methods You can use GAN You can use VAE We can use a Flow-Based Model We chose to introduce GAN on our side So in the future If someone calls you Training a Generative Model You can train it If you want to delve deeper into this You can study VAE and FLOW-Based Model. Then some people might ask Why choose GAN? Why not choose other models? The most intuitive one One is One of the most direct reasons is The performance of GAN is better If you want to generate very good pictures Or you still want to use GAN today Usually, VAE or FLOW-Based Model They produce results it has a significant gap with GAN They usually are planned I've put in a lot of effort A bunch of parameters have been wildly adjusted A bunch of tips are provided. In the end, it could be almost as good as a GAN Therefore, GANs usually The result it produced is comparatively good You might say GAN is harder to train This is harder to train Would VAE or FLOW be easier to train This is If you really have implemented VAE or FLOW Honestly, they are not easier to train You might think Looking at its formula GAN is quite mysterious There is a Discriminator Generator They need to interact Then like FLOW-Based Model VAE They are more like... Directly train a general model They have a very clear Objective But you'll find out when you actually train it They aren't so easily trained successfully Their Objective includes many items There are many items in their Loss And balance every aspect Can yield good results But achieving balance is very difficult And GAN. I think the difficulty level of training is quite challenging So we choose GAN here As we introduced in class The Generative Model in terms of generative aspect As for other Models. You can do more If you're interested You can explore further Okay, having said this far Some students might wonder Why do we need to use some specific things? Introducing some new approaches Let's talk about Generative If our goal today is Enter a Gaussian random variable Input a Gaussian From this Gaussian Random Variable The Vector sampled Transform it into an image. Can we use this to We use the method of Supervised Learning How to do it In other words, I have a bunch of images I took out these images Assign a Vector to each picture Match one for each of them From the Gaussian Distribution The vector sampled from it So, what's next? Next, consider it as a method of Supervised Learning Finish it off hard Do you all understand? Is to train a network This network. You have already referred to this picture That is mapped to this Vector This picture corresponds to this Vector Train a network Input a Vector The output is its corresponding picture Use the corresponding images as your training target Once trained, it's finished Is this feasible? The fact that you can do it There are really such generative models The difficult part is If there's Simply throwing random vectors The training result would be very poor You may not even be able to train So what do we do You need some special methods As for what kind special method You need to have some special methods To arrange these vectors As for any special methods I also put the links of two papers here Everyone noticed that these are not very old papers Something like this Gradient Original Network This was last year An article from July 2020 These are newer papers and newer methods I have put the link here for everyone to reference Okay, next we're going to talk about It's the evaluation of GANs. How should I put it How do you see it The Generator we are currently producing Is it good or not? How to evaluate the quality of a Generator It's not that easy The most intuitive approach Maybe we should have someone look at it You need to know The images generated by this Generator today Does it look like an animated character? Then have someone come and see directly Perhaps it's over So actually it's a long period of time Especially when people started researching When using a technology like Generative There hasn't been a good measure for a long time That's when you need to evaluate the quality of the Generator It's all what the human eye sees. And just use it directly like this So in the end of the paper, just post a few images Look at this I think it's probably different from what's mentioned in the paper The results so far have been favorable Fantastic This should be state-of-the-art And then it ends like this So, it's found that the GAN's paper from earlier years It doesn't have numbers This Measure is not mentioned in the entire Paper There is no Accuracy It essentially shows you several images saying This is probably better than the previous articles And then it ends But you know it's obviously not going to work It's like completely viewing with human eyes Clearly, there are many issues For instance, being biased Unstable and many other problems So is there a more objective And the automatic method Trying to measure the quality of a Generator is not easy If you're dealing with specific tasks There are ways to design some methods For example Inside assignment 6 We just want everyone to generate avatars of 2D characters A standard of assessment in the homework is We are running an animation character face detection system And look at those pictures you provided. Managed to capture the faces of several animated characters If you provide 1000 images within Capturing 900 faces And providing 1000 images Capturing 300 faces It's evident that there are 900 human faces A generator. The outcomes it creates tend to be better But this is designed for Homework 6 Then what if it's a typical Case If we're not confined to our homework Compared to standard cases I've casually trained a Generator. It doesn't necessarily generate cartoon characters Because it creates something else. It specializes in generating cats Specifically creates dogs. Specifically generate zebras and so on So how do we know? Is it doing well? There is a method It's the same as running an image classification system The images generated by your GAN Throw it into an image classification system See what kind of result it produces The input to the image classification system is an image. We call it y over here And the output? It's a probability distribution We call it P ( c│y ) here P ( c│y ) is a probability distribution Then we will see what happens next If this probability distribution is more concentrated. It signifies that the generated image might be getting better Even though we do not know the images generated here There's something inside. Not knowing if it's a cat or a dog or a zebra We don't know what it is But if it is thrown into an image classification system The results it produced The distribution it outputs is very concentrated Represents image classification system It's very certain What it sees now It is very sure it saw a dog. It's pretty certain it sees a zebra. And that means The pictures you generate It might be closer to a real image So the image recognition system can recognize it If the image you generate looks nothing like it should It's impossible to tell what kind of animal it is Then the image recognition system will be very confused. The probability distribution it produces Will be very flat. It's very evenly distributed And what if it's evenly distributed That means your GAN The image generated It might be a bit peculiar So the image recognition system cannot recognize it Alright, so this is based on the image recognition system To judge the quality of your generated photos This is a possible approach But just using this approach is not enough What problems will there be with this method alone Just by using this method you would be subjected to something called This evaluation method The evaluation method will be affected by one It's called the problem of Mode Collapse, fooling it. What is 'Mode Collapse'? Mode Collapse refers to When you are training GAN sometimes when you are training There will be a situation where. Suppose these are blue stars It's the actual data distribution The red star is your GAN Your Generative Model Its distribution You'll realize the Generative Model The pictures it outputs back and forth, It's just those few pictures It's just those few over and over. Maybe take out a single one You seem to be doing quite well But letting it generate a few more reveals the truth. Find out that It turns out it only has three axes, just like Cheng Yaojin It turns out that only a few pictures were originally produced. Here's an example of Mode Collapse As we mentioned last week I trained a Generator Let it produce two-dimensional characters Then train, train, train to the end. I found it turned into this kind of situation This face is getting more and more. More and more And it has different hair colors This hair color tends to be more reddish This hair color is more yellowish Increasingly In the end, it's all this face So this is a phenomenon called Mode Collapse Why would there be Mode Collapse Why does this phenomenon occur Intuitively, you would understand it more easily You can think of it as, This place is a blind spot of the Discriminator After the Generator learns to generate this kind of picture It's Discrete It can always deceive the discriminator The discriminator can't determine it from the looks. Such pictures are fake This is a blind spot of a Discriminator The Generator catches this blind spot and strikes hard. Then a situation of Mode Collapse occurs So how exactly do we avoid this? The situation of Mode Collapse I think there is not a really good answer yet today For example We showed everyone last week BEGAN's result Will generate the result of a tennis dog That is made by Google It also exploded the parameters But even if its parameters have exploded It discovers eventually It still can't truly avoid it. The situation of Mode Collapse Until the final BEGAN Train, Or it's Mode Collapse. How did BEGAN solve this problem in the paper? Actually, it's very simple. The Model was in the process of training the Generator It will save that Train Point all the way Before Mode Collapse Stop the Training Train until Mode Collapse And then you use the previous Model That's all there is to it So even the powerful Google can blow up parameters Still can't completely solve it now The problem of Mode Collapse Well, but there is the issue of Mode Collapse At least you are aware of this problem. You can see there's a problem When your Generator keeps generating the same face You wouldn't say your Generator It's a good Generator You know that some situations have occurred Your Generator is not particularly good But there is another kind It's a bit like Mode Collapse But the more complex problem that's harder to detect It's called Mode Dropping The meaning of Mode Dropping is Your real data distribution may look like this But the data you generate, Only a part of the real data Simply observing the generated data You might think it's not bad And the distribution Its diversity is sufficient But you don't know the real data Its diversity distribution Actually, it's bigger Let me give you an example Okay, and here Is a real example There's a student He trained this face-generating GAN Then at some point in Iteration Its generator creates these faces You might think No problem. Also, the diversity of human faces is sufficient There are both men and women. Looking to the left Looking to the right All types of faces are available Okay, this is the Generator at the Tth Iteration Don't you feel the same? Its diversity has problems But if you look at the next Iteration This is what the image generated by the Generator looks like Have you noticed a problem There's a problem with its skin color So beforehand It's okay to have both men and women But its skin tone is quite pale The skin color here is yellowish If you don't do it well, everyone will think Your Generator is racist So in this kind of Mode Dropping problem Less likely to be detected Actually, what exactly today, These excellent GANs today BEGAN Progress GAN Progress GAN These GAN can generate very realistic faces Is there a problem with Mode Dropping? It might still exist If, you have seen too many The face generated by GAN You will find that Although very realistic But it seems to be going in circles It's just a few faces It has a very unique characteristic After you see it enough, you'll start to feel that This face seems like it was generated So maybe the problem of Mode Dropping today None of these have truly been resolved yet Okay, but we need to measure Now, our Generator the pictures it generates Whether the diversity is enough or not So how do we proceed There was a method in the past Still, it's all thanks to our Image Classify You just dump a pile of pictures Just like your Generator generates 1000 images Take these 1000 pictures All thrown into Image Classify See which class it's categorized into Each image It will give us a Distribution Give us a distribution You average all the Distributions Let's see what the average distribution looks like If the average distribution is very concentrated It indicates a lack of diversity If you throw any image into it. Your image classification system says It sees Class 2 Seeing something like Class 2 inside. That implies Each image may seem quite similar Your diversity is not enough What if we consider another case Throw different pictures in Different pictures The image your Generator creates When thrown into the Image Classifier The distribution of its output They're all very different. It turns out when you take the average The outcome after averaging is remarkably flat What does it mean at this point At this point, it means that Perhaps your diversity is sufficient You would find that in evaluation standards When we use this image classifier When doing the evaluation Diversity and quality seem to be somewhat mutually exclusive Because we were discussing Quality earlier We say The more concentrated it is, the higher the quality But the flatter the Diversity The more distributed, the more balanced. The greater the Diversity indicator, However, I want to emphasize that quality is different from diversity. They don't evaluate the same range Quality is only checking once on a picture When a picture is thrown into Classifier Is the distribution very concentrated While diversity looks at a bunch of images The average of its distribution The average output of your Image Classifier for many pictures If the output is more uniform That means If the output is average Speaking of averages There are two averages here I think everyone should understand what I mean If the output average is even more average It means that the current diversity is getting larger In the past, there was a score that was used very often Is called the Inception Score The abbreviation of it is IS The so-called Inception Score As the name suggests, this CNN is what we're using here It was done using something called Inception Network So it's called Inception Score. What about this Inception Score? How was it decided? You just measure it Measure the Quality with Inception Network If the quality is high That Diversity is bigger Then the Inception Score will be larger. But in the homework We are not going to use the Inception Score Why don't we use the Inception Score? Just think about it. Assume the 2D characters you've created Throw it into the Inception Net Its output might be all faces You might have a large Diversity Generate different hair colors Generating characters with different eye colors But for the Inception Network They are all human faces So you might find that the Diversity is actually small So Inception Score is used in our assignment It may not be suitable Then in our assignment We will adopt another Evaluation Measure Called Fréchet's Inception Distance What is this thing? Its abbreviation is FID What exactly is this You first generate your two-dimensional characters Throw it into the Inception Net So if you toss this 2D character all the way Put it at the end. Allow the Inception Network to output its classification What you might end up with could be a human face Every 2D character looks like a human face Let's not take that category We take the outputs of the Hidden Layer before entering Softmax Before entering Softmax Your network will generate a vector, right? Which could be in the thousands of dimensions A vector with thousands of dimensions Take out that vector This represents the picture But if we're taking out a vector And not the final category Even though the final category of classification may be the same But before deciding the final category Even if this vector is all about human faces Might still be different It may vary with skin color and hairstyle This vector will still undergo some changes So we don't take the last category Just take the middle part of this Inception Network Actually, it is the output of the last Hidden Layer To represent an image On this slide All of the red dots Meaning, you have the actual image After being input into the Inception Network The vector that is taken out This vector is actually very high-dimensional It's in the thousands of dimensions. Let's assume it then We can draw it on a two-dimensional plane Okay, what about this blue point? The blue dot is your own GAN Your own Generator The picture that was generated After it's thrown into the Inception Network Vector before entering Softmax Draw it out Assuming it looks like this What comes next You assume these two sets of data. Assuming real pictures and generated pictures They all follow Gaussian distribution And then calculate the distance between these two Gaussian Distributions Fréchet's Distance it's over Then what is the Fréchet Distance? If you are interested, read the literature yourself Anyway, in your assignment Our Judge System will calculate it correctly for everyone Okay, but here Because it is a distance So, the smaller this value, the better? The smaller the distance, the better The smaller the distance The closer these two sets of pictures are Then of course, the higher the quality of the output But you must still have a lot of questions in your head The first question is Is it okay to treat it as a Gaussians Distribution This shouldn't be a Gaussian distribution, right? Yeah, there will be issues, just like this And another problem is If you want to accurately get the distribution of your network Then you might need to produce a large number of samples to achieve it This requires some computational power So, doing FID is an inevitable issue So, actually, inside our assignments We won't just look We won't just look at FID Just focusing on FID The results may actually come out odd It's strange because you You're assuming that the distribution of your output is definitely Gaussians Actually, it's not about Gaussians Assuming it is Gaussians Is there anything odd? It would be strange So, we look at FID at the same time Related to this animated character's face The number of detected faces These two indicators I will look at these two indicators simultaneously. In this way, more reasonable and precise results can be obtained Okay, FID is a commonly used measure today There's a paper called. Are GANs Created Equal, A Large Scale Study Then you can imagine this is also done by Google Then it's exploded into various kinds of GAN. There is At that time, it listed many different ones All kinds of GANs. For each GAN Of course, its training objective The training loss seems a bit different I won't go into detail here Various types of GANs Each type of GAN It uses different random seeds After running many times Let's see how the result is. As for what comes next This picture below These are the results obtained on four different databases The x-axis here represents different GANs So, the value here The smaller the better It is F It is FI Eh, how did I write FIT here Sorry, I made a mistake Sorry, sorry I remember to modify it This doesn't fit This is FID This is the FID score. The lower the FID score, the better. Then you will find that. For every method here. It's not just about obtaining a single value. It always gets a distribution Why did it end up with a distribution? Because you need to run it with a different random seed Running with different Random Seeds The results are different every time Here we've blended a technique that isn't GAN There's a mixed VAE in here Then you will find out When comparing these GAN methods and VAE methods The method of VAE is obviously more stable Different Random Seeds The gap seems relatively small The method of GAN The difference between different Random Seeds is significant Then you can clearly see VAE and GAN The extent of its goodness They are not on the same scale What about GAN? It can yield results much better than VAE But you'll find that different GANs The result seems to be similar So, over here Then the title is 'Are GANs Created Equal' And all the GANs seem alike And Farm Text loves this kind of article It would say Ah, all GANs are pretty much the same. So, all the research related to GAN has been fruitless But in fact, this may not be the case If you read the article carefully While conducting experiments All these different GANs use various network architectures They are all the same It just exploded in popularity Only Random Seed and Learning Rate The network structure remains the same So we don't know what to say Are there any particular network structures Favoring certain things. Certain types of GAN Or certain types of GANs Will it work on different Network architectures? The performance is relatively stable For example, if you look at WGAN The original paper of WGAN What it really boasts about is its haphazard Network design It randomly crafts a 100-layer Generator It's not necessary to have a 100-layer Generator It can also be trained. So maybe WGAN is different in each Generator Different Network architectures are more stable If you try different Random Seeds Which might not be particularly stable and so on I don't know This paper didn't give us an answer to this. Good. Well, those Measures actually But it didn't completely solve the problem of GAN It's an evaluation problem Because there are still Evaluation issues Consider the following situation Suppose this is your real data You don't know what's going on Trained a generator The Data it generates It's identical to your real data So, if you don't know what the real data looks like Just by looking at the outputs of this Generator You will feel it's wonderful It does a great job What about the result of FID calculation It must be very small But, is this what you really want? If the images it creates are all similar to those in the database Exactly the same as the training data The training data is in your hands Directly from the training data Wouldn't it be better to sample some images Why should we train the Generator We train the Generator hoping that it generates A new image, in fact In the dataset Faces that are not in the training data If the training data have identical faces Just use the faces from the training data Why use GAN? Sometimes the results generated by your GAN are very good Perhaps you're doing it in your assignment The FID is calculated to be very low And the facial recognition system also gives you a high score But it's not necessarily a good GAN Questions like these It can't be detected by the Measure in our assignment But it is a problem How to solve this? You might say Then we just put The images that our Generator generates Compare it with real data for similarity Check to see if it is the same If many are the same, it indicates The Generator just memorizes the training data It's not that impressive But what if I ask another question Suppose what your Generator has learnt is Flip all images in the training data horizontally But it hasn't done anything either Assuming what it has learned Flip all the images in the training data from left to right Then, you might think Hmm, it looks great In fact, they essentially do nothing But the problem is when you compare similarities It's not comparable again So the Evaluation of GANs It's extremely difficult Even how to evaluate it is a challenge The quality of a generator is this matter Each one is a potential topic of research If you are really interested Here's a relevant article We've listed over twenty types Evaluation method of GAN Generator For your reference Okay, what's next We need to discuss Conditional Generation Perhaps after we discussed the conditional Generation Before the next class And then the assistant will talk about the GAN assignment next. Okay, so what is Conditional Generation? The Generator we just discussed So far, we've talked about the Generator Its input is only a random distribution This is not necessarily very useful We now want to go further we can control the output of the Generator We give it a condition x Let it generate y based on x and z So, this kind of Conditional Generation Any kind of application For instance, you can generate pictures from text If you want to generate an image from text Actually, it's a Supervised Learning problem you need some labeled data You need to gather some pictures Collect some faces and these faces all need text descriptions tell us This one has red eyes This one has black hair This one has blond hair This has dark circles and so on Tell us this way We need data with such kind of labels Only then can you train these Conditional generations So, in tasks like Text To Image Our x is a piece of text Then you might ask How to input a piece of text into the Generator It's up to you You can do it any way you want In the past, we would use RNN to read it And then get a vector Then throw it into the Generator Today maybe you can throw it into a Into the Encoder of this Transformer Average all these vectors of the Encoder Output Throw it into the Generator it's okay anyway You can use any method As long as the Generator can read a paragraph, it's fine Okay, so you expect to input 'Red Eyes' And then The machine can draw a character with red eyes But each time, the character drawn is different So, what kind of character is drawn What does it depend on? It depends on what kind of z you Sample Different z sampled The character drawn is different But they all have red eyes This is what Text To Image wants to do Can it really do such a thing It's possible In the past, there was this assignment Although there isn't any this semester But there was this assignment in the past The input is red hair This is the result from the previous assistant Input red hair Input green eyes The result produced is like this Generating all kinds of characters with red hair and green eyes Input blue hair, red eyes It will generate a variety of characters with blue hair and red eyes You realized Sometimes machines can make mistakes too For instance, there's an odd iris over here Even though we're talking about drawing red eyes But it thinks that drawing a red eye can get away with it The other eye remains blue How to do Conditional GANs? Our current Generator has two inputs one is from Normal Distribution The sampled z The other one is x Which is a passage of text Then our Generator will generate a picture y. We need a Discriminator If we follow what we learned before Discriminator It consumes an image y as an input Output a value This value represents the input image Images that look real It's real. Or is it generated Then how do we train this Discriminator? You say if you see a real picture You then output 1 If you look at the generated images Outputs 0 You can then train the Discriminator and then the Discriminator and Generator train repeatedly Perhaps, you can go ahead and train the Generator But this method Can't truly solve the problem of Conditional GAN Why is that Because if we only train this Discriminator If this Discriminator only considers y as input, What the Generator is going to learn is It will generate something that can deceive the Discriminator A very clear image It will generate clear images But it has nothing to do with the input Because for the generator It just needs to produce clear images You can defraud the Discriminator Why should it care what the input text description is? Your discriminator does not consider textual descriptions So it doesn't need to care about the text description No matter what text you input Just ignore this x In any case, it generates an image If you can fool the Discriminator, it's over But obviously this is not what we want. So, in Conditional GAN You want to do a slightly different design Your Discriminator doesn't only digest images y It also needs to take in Condition x. So, your Discriminator It takes 'y' as an input With x as an input Then it generates a value. This metric is not just about whether y is good or not The light picture is good It's no use Just a good picture. The Discriminator will still not give high scores Under what conditions does the Discriminator award high scores? On one hand, the picture has to be good On the other hand, the image is related to x It's a textual narrative They must be well-matched The image must match the accompanying text The discriminator will give a high score So, how do we train such a Discriminator? Then, you need data that pairs text and images So for Conditional GAN Typical training. Pair data is needed We need annotated data It does require paired data There are these paired data Then you tell your Discriminator that When you see these real paired data Give it one point. Saw Red Eyes However, when you combine it with Eh, I don't know why it would look like this here But it doesn't matter Anyway, I wasn't planning to put anything special in here Just post a messy picture Okay, possibly the image produced by Red Eyes and the machine That is to give zero points. And then keep training to generate You can achieve Conditional GAN In the actual implementation though Simply put Use this kind of Positive Sample And also Negative Sample To train such a Discriminator The results you get are often not good enough Just telling the Discriminator This kind of situation is good Such a situation is not good This is not enough You also need to consider an unfavorable situation The images that have already been produced But the description doesn't match the text So you would usually take out your training data Then purposely mismatch text with pictures Intentionally making some mistakes And then tell your Discriminator that Seeing this situation, You also have to say it's not good. With this kind of data. So you can train the Discriminator properly Then the Generator and the Discriminator repeated training You only get good results at the end. This is the Conditional GAN. Well, in the current examples, they are all Generate picture from a piece of text Then, the application of Conditional GAN It's not just about generating an image from a piece of text You can also look at a picture Generates images Look at a picture to generate a picture There are also many applications. For instance Give it a blueprint of the house And let your Generator directly generate the house Give it a black and white picture. And let it color Presenting this sketch Make it into a real scene, a real object Then give it a picture of the day To turn it into a night picture Sometimes you will give it For example, pictures of fog to turn it into a fogless picture to remove the fog Okay, so Conditional GAN Besides generating images from text input Can also input images to generate images What about applications like this? This is called Image Translation Someone also called it Pix2pix This Pix is Pixel It's an abbreviation for pixels So it's called Pix2pix Okay, so how do we do that? Like what I mentioned earlier, generating images from text There is no difference Now it's just generating images from images. Just replacing the text part with images Of course, we use the same method Need to generate a similar Generator Generate an image Input an image, generate an image Of course, you can use the method of supervised learning You will find in the literature that If you use the method of Supervised Learning You won't get particularly good results Usually, you use a Supervised Learning method Train a generator that can generate images from images The result you generate might look like this This represents the input to your Generator This is the output of your Generator You will notice that it's incredibly blurry Why is it so blurred? You can intuitively think that Because of the same input It might correlate to different outputs Just like when we first started talking about GAN The example I talked about at the beginning Today, at the same corner That little creature might turn left It might turn right as well What is learned at the end It's like making a left turn and a right turn at the same time Then, in the case of Image To Image It's the same Input an image Outputs have different possibilities What the machine learns What the Generator has learned It's about averaging different possibilities So, the result becomes a vague one So at this moment, we need to use GAN to train You need to add a Discriminator The Discriminator takes an image as the input And there's the input Condition Then it will look at this picture and this condition simultaneously Is there a match? Determine its output This is a document using the output of GAN Taken from the paper in the top-right corner You will find that If you simply use GAN There's a small problem So the images it generates More realistic But its problem is its creativity. Overactive imagination It will produce things that are not in the input Without any input from it For example This is a house There is clearly nothing in the top left corner But it's on the roof over here It added a thing which looks like a chimney or a window If you want to do the best according to the literature It's often GAN and Supervised Learning Use both at the same time While using at the same time. This often yields the best results The so-called simultaneous use means When the Generator is training On one hand, it needs to trick the Discriminator. This is its goal But at the same time, it wants to generate an image the closer it is to the standard answer, the better It is doing these two things simultaneously The results produced are often the best There are many applications for Conditional GAN Here's a bizarre application for everyone to see It's for the GAN Listening to a piece of audio And then It produces a corresponding picture What does that mean For example, let it hear a dog barking See if it can draw a dog Okay, I just mentioned that Conditional GAN needs this Label data It requires paired data This paired data of sound and image Actually, it's not that hard to collect Because you can crawl a lot of videos There are images and visuals in the video There are also audio signals Then you'll know what to say This scene, this frame This frame of the picture The frame of this image Correlated to this small segment of sound This frame of picture corresponds to this short clip of sound Collect these data You can train a Conditional GAN. Listen to a sound Let it imagine the scene it hears What would it look like? Okay, this was done by a classmate in our lab And this is a real demo This is a real demo That machine hears these sounds Well, this sounds a bit like the noise of a broken television What does the machine think it heard? The machine thinks about the sound just now It hears a creek Hearing a small waterfall Or we could listen to another sound The machine senses it hears a speedboat racing on the sea Of course, I'm a bit worried Hey, could this mean that the machine hasn't really learned The relationship between sound and images Could it be that it just It simply stores the photos it has already seen from the training data So I've decided to turn up the volume Listen to see what the result would be So we turn up the volume The next part will be really loud Okay, then the sound gets louder and louder. Then you'll find out that The water splashes in this stream become more and more From a small stream Turn into Niagara Falls The example with the speedboat earlier is the same. We will increase the sound of the speedboat You try and listen, see what happens When the sound gets louder and louder. You notice more and more splashes of water by the speedboat The speedboat seems to be going faster and faster But I have to admit This is actually a slightly cherry-picked result It's a slightly selective result. Often feel the things produced by the Generator This is what it looks like It's quite puzzling Give it a piano sound Then it seems like it wants to draw a piano But still not very clear This is for it to listen to the bark of a dog Like trying to draw an animal But don't know what to draw This is the generation of image from sound. Okay, the most astonishing thing I've seen lately is The applications of Conditional GAN Some people use Conditional GAN to generate moving images We know in Harry Potter The portraits of those characters are moving It can speak What about Samsung A similar application has been made Made with GAN. Give it an image For instance, the portrait of Mona Lisa Then you can let Mona Lisa start talking This is one of the applications of the Conditional GAN I've placed my thesis here for everyone's reference Ok, speaking up to here It ends a paragraph Maybe we should take a break We'll be back in ten minutes What about later? The teaching assistant will talk about assignment 6 