好 我 們 就 繼 續 來 上 課 吧 好 感 謝 各 位 同 學 提 到 有 關 關 麥 的 問 題 那 我 這 個 我 再 自 己 研 究 一 下 好 了 那 我 猜 就 可 能 就 跟 同 學 說 的 一 樣 在 obs 那 邊 做 就 可 以 了 不 過 其 實 我 沒 有 那 麼 熟 悉 obs 這 樣 所 以 我 這 個 我 再 自 己 練 習 一 下 好 然 後 有 關 那 個 有 同 學 問 了 很 好 的 問 題 這 兩 個 問 題 其 實 是 同 一 個 第 一 個 問 題 是 看 到 s 的 時 候 不 是 只 對 應 一 個 a 嗎 如 果 不 希 望 它 做 a 那 actor 是 什 麼 都 不 做 嗎 不 希 望 它 做 a 是 指 actor 可 以 去 做 其 它 的 事 情 其 實 是 對 一 個 actor 而 言 什 麼 都 不 做 也 是 一 個 action 就 假 設 你 希 望 說 actor 有 機 會 什 麼 都 不 做 的 話 那 什 麼 都 不 做 也 是 一 個 action 所 以 在 剛 才 我 們 講 的 那 個 例 子 裡 面 space invaders 它 有 向 左 向 右 跟 開 火 三 個 action 那 假 設 你 希 望 它 今 天 還 有 一 個 可 能 的 action 是 可 能 的 狀 況 是 不 向 左 也 不 向 右 也 不 開 火 就 留 在 原 地 的 話 那 你 必 須 要 把 這 件 事 情 也 當 作 一 個 action 讓 機 器 來 選 那 不 希 望 它 做 a 的 意 思 就 是 希 望 它 去 做 其 它 的 action 比 如 說 你 不 希 望 它 向 左 那 就 是 向 右 開 火 都 可 以 好 那 有 同 學 問 說 可 以 在 一 個 環 境 同 時 決 定 想 做 的 動 作 與 不 想 做 的 動 作 嗎 可 以 你 可 以 說 在 某 一 個 環 境 下 我 想 要 開 火 然 後 不 想 要 向 右 那 它 就 會 開 火 的 分 數 非 常 非 常 地 大 非 常 想 開 火 然 後 不 想 向 右 就 是 向 右 的 分 數 非 常 非 常 小 那 你 今 天 action 是 隨 機 sample 的 所 以 action 你 給 那 個 observation 的 時 候 每 次 決 定 的 action 其 實 也 不 會 是 一 樣 的 但 是 這 些 action 的 分 數 會 決 定 它 出 現 的 可 能 性 所 以 假 設 你 說 非 常 想 要 開 火 非 常 不 想 向 右 那 就 想 要 開 火 的 分 數 很 大 想 要 開 火 機 率 就 會 變 得 很 高 那 向 右 的 機 率 就 會 變 很 低 然 後 同 學 問 說 actor 做 a1 的 話 會 有 正 的 分 數 那 希 望 最 大 化 所 有 action 的 分 數 的 話 為 什 麼 不 用 乘 負 號 我 看 一 下 希 望 actor 做 希 望 actor 做 a1 的 話 會 有 正 的 分 數 那 希 望 最 大 化 所 有 action 的 分 數 的 話 為 什 麼 不 用 乘 負 號 不 好 意 思 我 其 實 沒 有 完 全 理 解 這 個 問 題 我 們 並 不 是 要 最 大 化 所 有 action 的 分 數 我 們 要 最 大 化 的 是 所 有 的 action 執 行 完 之 後 我 們 可 以 得 就 action 執 行 完 之 後 我 們 可 以 得 到 的 reward 的 總 和 好 不 好 意 思 我 可 能 沒 有 回 答 到 那 個 蔡 同 學 的 問 題 那 如 果 你 有 問 題 的 話 你 等 一 下 可 以 再 表 示 表 達 的 再 試 著 用 另 外 一 種 方 式 表 達 一 下 我 看 看 有 沒 有 辦 法 回 答 你 好 好 那 我 們 就 繼 續 吧 講 到 目 前 為 止 你 可 能 覺 得 跟 supervise learning 沒 有 什 麼 不 同 那 確 實 就 是 沒 有 什 麼 不 同 接 下 來 真 正 的 重 點 是 在 我 們 怎 麼 定 義 a 上 面 好 那 接 下 來 的 重 點 就 是 怎 麼 定 義 a 了 那 先 講 一 個 最 簡 單 的 但 是 其 實 是 不 正 確 的 版 本 那 這 個 其 實 也 是 助 教 的 sample code 的 版 本 那 這 個 不 正 確 的 版 本 是 怎 麼 做 的 呢 這 個 不 正 確 版 本 是 這 個 樣 子 首 先 我 們 還 是 需 要 蒐 集 一 些 訓 練 資 料 就 是 需 要 蒐 集 s 跟 a 的 pair 怎 麼 蒐 集 這 個 s 跟 a 的 pair 呢 你 需 要 先 有 一 個 actor 這 個 actor 去 跟 環 境 做 互 動 它 就 可 以 蒐 集 到 s 跟 a 的 pair 那 這 個 actor 是 哪 裡 來 的 呢 你 可 能 覺 得 很 奇 怪 我 們 今 天 的 目 標 不 就 是 要 訓 練 一 個 actor 嗎 那 你 又 說 你 需 要 拿 一 個 actor 去 跟 環 境 做 互 動 然 後 把 這 個 actor 它 的 s 跟 a 記 錄 下 來 那 這 個 actor 是 哪 裡 來 的 呢 你 先 把 這 個 actor 想 成 就 是 一 個 隨 機 的 actor 好 了 就 它 是 一 個 它 就 是 一 個 隨 機 的 東 西 那 看 到 s1 然 後 它 執 行 的 行 為 就 是 亂 七 八 糟 的 就 是 隨 機 的 但 是 我 們 會 把 它 在 每 一 個 s 執 行 的 行 為 a 通 通 都 記 錄 下 來 好 那 通 常 我 們 在 這 個 蒐 集 資 料 的 話 你 不 會 只 把 actor 跟 環 境 做 一 個 episode 通 常 會 做 多 個 episode 然 後 期 待 你 可 以 蒐 集 到 足 夠 的 資 料 比 如 說 在 助 教 sample code 裡 面 可 能 就 是 跑 了 5 個 episode 然 後 才 蒐 集 到 足 夠 的 資 料 好 所 以 我 們 就 是 去 觀 察 某 一 個 actor 它 跟 環 境 互 動 的 狀 況 那 把 這 個 actor 它 在 每 一 個 observation 執 行 的 action 都 記 錄 下 來 然 後 接 下 來 我 們 就 去 評 價 每 一 個 action 它 到 底 是 好 還 是 不 好 評 價 完 以 後 我 們 就 可 以 拿 我 們 評 價 的 結 果 來 訓 練 我 們 的 actor 那 怎 麼 評 價 呢 我 們 剛 才 有 說 我 們 會 用 a 這 一 個 東 西 來 評 價 在 每 一 個 step 我 們 希 不 希 望 我 們 的 actor 採 取 某 一 個 行 為 那 最 簡 單 的 評 價 方 式 是 假 設 在 某 一 個 step s1 我 們 執 行 了 a1 然 後 得 到 reward r1 那 reward 如 果 如 果 是 正 的 那 也 許 就 代 表 這 個 action 是 好 的 那 如 果 reward 是 負 的 那 也 許 就 代 表 這 個 action 是 不 好 的 那 我 們 就 把 這 個 reward r1 r2 當 做 是 a a1 就 是 r1 a2 就 是 r2 a3 就 是 r3 an 就 是 rn 那 這 樣 等 同 於 你 就 告 訴 machine 說 如 果 我 們 執 行 完 某 一 個 action a1 那 得 到 的 reward 是 正 的 那 這 就 是 一 個 好 的 action 你 以 後 看 到 s1 就 要 執 行 a1 如 果 今 天 在 s2 執 行 a2 得 到 reward 是 負 的 就 代 表 a2 是 不 好 的 a2 就 代 表 所 以 以 後 看 到 s2 的 時 候 就 不 要 執 行 a2 好 那 這 個 那 這 個 version 0 它 並 不 是 一 個 好 的 版 本 為 什 麼 它 不 是 一 個 好 的 版 本 呢 因 為 你 用 這 一 個 方 法 你 把 a1 設 為 r1 a2 設 為 r2 這 個 方 法 認 出 來 的 network 它 是 一 個 短 視 近 利 的 actor 它 就 是 一 個 只 知 道 會 一 時 爽 的 actor 它 完 全 沒 有 長 程 規 劃 的 概 念 怎 麼 說 呢 因 為 我 們 知 道 說 每 一 個 行 為 其 實 都 會 影 響 互 動 接 下 來 的 發 展 也 就 是 說 actor 在 s1 執 行 a1 得 到 r1 這 個 並 不 是 互 動 的 全 部 因 為 a1 影 響 了 我 們 接 下 來 會 看 到 s2 s2 會 影 響 到 接 下 來 會 執 行 a2 也 影 響 到 接 下 來 會 產 生 r2 所 以 a1 也 會 影 響 到 我 們 會 不 會 得 到 r2 所 以 每 一 個 行 為 並 不 是 獨 立 的 每 一 個 行 為 都 會 影 響 到 接 下 來 發 生 的 事 情 好 而 且 我 們 今 天 在 跟 環 境 做 互 動 的 時 候 有 一 個 問 題 叫 做 reward delay 什 麼 是 reward delay 呢 就 是 有 時 候 你 需 要 犧 牲 短 期 的 利 益 以 換 取 更 長 程 的 目 標 如 果 在 下 圍 棋 的 時 候 如 果 你 有 看 天 龍 八 部 的 時 候 你 就 知 道 說 這 個 虛 竹 在 破 解 珍 瓏 棋 局 的 時 候 堵 死 自 己 一 塊 子 讓 自 己 被 殺 了 很 多 子 以 後 最 後 反 而 贏 了 整 局 棋 那 如 果 是 在 這 個 space invaders 的 遊 戲 裡 面 你 可 能 需 要 先 左 右 移 動 一 下 進 行 瞄 準 然 後 射 擊 才 會 得 到 分 數 而 左 右 移 動 這 件 事 情 是 沒 有 任 何 reward 的 左 右 移 動 這 件 事 情 得 到 的 reward 是 零 只 有 射 擊 才 會 得 到 reward 但 是 並 不 代 表 左 右 移 動 是 不 重 要 的 我 們 會 先 需 要 左 右 移 動 進 行 瞄 準 那 我 們 的 射 擊 才 會 有 效 果 所 以 有 時 候 我 們 會 需 要 犧 牲 一 些 近 期 的 reward 而 換 取 更 長 程 的 reward 所 以 今 天 假 設 我 們 用 version 0 那 會 發 生 什 麼 事 呢 會 發 生 說 今 天 machine 只 要 是 採 取 向 左 跟 向 右 它 得 到 的 reward 會 是 0 如 果 它 採 取 開 火 它 得 到 的 reward 就 會 只 有 開 火 的 時 候 它 得 到 的 reward 才 會 是 正 的 才 會 是 正 的 那 這 樣 machine 就 會 學 到 它 只 有 瘋 狂 狂 開 火 才 是 對 的 因 為 只 有 開 火 這 件 事 才 會 得 到 reward 其 它 行 為 都 不 會 得 到 reward 所 以 其 它 行 為 都 是 不 被 鼓 勵 的 只 有 開 火 這 件 事 是 被 鼓 勵 的 那 個 version 0 就 只 會 學 到 瘋 狂 開 火 而 已 那 version 0 是 助 教 的 範 例 程 式 那 這 個 當 然 也 是 可 以 執 行 的 那 只 是 它 的 結 果 不 會 太 好 而 已 那 助 教 範 例 十 程 式 之 所 以 是 version 0 是 因 為 我 不 知 道 為 什 麼 這 個 version 0 好 像 是 大 家 如 果 你 自 己 在 implement rl 的 時 候 你 特 別 容 易 犯 的 錯 誤 你 特 別 容 易 拿 自 己 implement 的 時 候 就 直 接 使 用 version 0 但 是 得 到 一 個 很 差 的 結 果 所 以 接 下 來 怎 麼 辦 呢 我 們 開 始 正 式 進 入 rl 的 領 域 真 正 來 看 policy gradient 是 怎 麼 做 的 所 以 我 們 需 要 有 version 1 好 在 version 1 裡 面 a1 它 有 多 好 不 是 在 取 決 於 r1 而 是 取 決 於 a1 之 後 所 有 發 生 的 事 情 我 們 會 把 a1 執 行 完 a1 以 後 所 有 得 到 的 reward r1 r2 r3 到 rn 通 通 集 合 起 來 通 通 加 起 來 得 到 一 個 數 值 叫 做 g1 然 後 我 們 會 說 a1 就 等 於 g1 我 們 拿 這 個 g1 來 當 作 評 估 一 個 action 好 不 好 的 標 準 剛 才 是 直 接 拿 r1 來 評 估 現 在 不 是 拿 g1 來 評 估 那 接 下 來 所 有 發 生 的 r 通 通 加 起 來 拿 來 評 估 a1 的 好 壞 因 為 我 們 執 行 完 a1 以 後 就 發 生 這 麼 一 連 串 的 事 情 那 這 麼 一 連 串 的 事 情 加 起 來 也 許 就 可 以 評 估 a1 到 底 是 不 是 一 個 好 的 action 所 以 以 此 類 推 a2 它 有 多 好 呢 就 把 執 行 完 a2 以 後 所 有 的 r r2 到 rn 通 通 加 起 來 得 到 g2 然 後 那 a3 它 有 多 好 呢 就 把 執 行 完 a3 以 後 所 有 的 r 通 通 加 起 來 就 得 到 g3 所 以 把 這 些 東 西 通 通 都 加 起 來 就 把 那 這 些 這 個 g 叫 做 cumulated 的 reward 叫 做 累 積 的 reward 把 未 來 所 有 的 reward 加 起 來 來 評 估 一 個 action 的 好 壞 那 像 這 樣 子 的 方 法 聽 起 來 就 合 理 多 了 所 以 這 個 g 是 cumulated 的 reward 那 g 是 什 麼 呢 g 就 是 gt 是 什 麼 呢 就 是 從 t 這 個 時 間 點 開 始 我 們 把 rt 一 直 加 到 rn 全 部 合 起 來 就 是 cumulated 的 reward gt 那 我 們 用 這 個 cumulated 的 reward 來 評 估 一 個 action 的 好 壞 好 那 當 我 們 用 cumulated 的 reward 以 後 我 們 就 可 以 解 決 version 0 遇 到 的 問 題 因 為 你 可 能 向 右 移 動 以 後 進 行 瞄 準 接 下 來 開 火 就 有 打 中 外 星 人 那 這 樣 向 右 這 件 事 情 它 也 有 cumulated reward 雖 然 向 右 這 件 事 情 沒 有 立 即 的 reward 假 設 a1 是 向 右 那 r1 可 能 是 0 但 接 下 來 可 能 會 因 為 向 右 這 件 事 導 致 有 瞄 準 導 致 有 打 到 外 星 人 那 cumulated 的 reward 就 會 正 的 那 我 們 就 會 知 道 說 其 實 向 右 也 是 一 個 好 的 action 這 個 是 version 1 但 是 你 仔 細 想 一 想 會 發 現 version 1 好 像 也 有 點 問 題 有 什 麼 樣 的 問 題 呢 這 個 假 設 這 個 遊 戲 非 常 地 長 你 把 rn 歸 功 於 a1 好 像 不 太 合 適 吧 就 是 當 我 們 採 取 a1 這 個 行 為 的 時 候 立 即 有 影 響 的 是 r1 接 下 來 有 影 響 到 r2 接 下 來 影 響 到 r3 那 假 設 這 個 過 程 非 常 非 常 地 長 的 話 那 我 們 說 因 為 有 做 a1 導 致 我 們 可 以 得 到 rn 這 個 可 能 性 應 該 很 低 吧 也 許 得 到 rn 的 功 勞 不 應 該 歸 功 於 a1 好 所 以 怎 麼 辦 呢 有 第 二 個 版 本 的 cumulated 的 reward 我 們 這 邊 用 g' 來 表 示 cumulated 的 reward 好 這 個 我 們 會 在 r 前 面 乘 一 個 discount 的 factor 這 個 discount 的 factor γ 也 會 設 一 個 小 於 1 的 值 有 可 能 會 設 比 如 說 0.9 或 0.99 之 類 的 所 以 這 個 g'1 相 較 於 g1 有 什 麼 不 同 呢 g1 是 r1 加 r2 加 r3 那 g'1 呢 是 r1 加 γr2 加 γ 平 方 r3 就 是 距 離 採 取 這 個 action 越 遠 我 們 γ 平 方 項 就 越 多 所 以 r2 距 離 a1 一 步 就 乘 個 γ r3 距 離 a1 兩 步 就 乘 γ 平 方 那 這 樣 一 直 加 到 rn 的 時 候 rn 對 g'1 就 幾 乎 沒 有 影 響 力 了 因 為 你 γ 乘 了 非 常 非 常 多 次 了 γ 是 一 個 小 於 1 的 值 就 算 你 設 0.9 0.9 的 比 如 說 10 次 方 那 其 實 也 很 小 了 所 以 你 今 天 用 這 個 方 法 就 可 以 把 離 a1 比 較 近 的 那 些 reward 給 它 比 較 大 的 權 重 離 我 比 較 遠 的 那 些 reward 給 它 比 較 小 的 權 重 所 以 我 們 現 在 有 一 個 新 的 a 這 個 新 的 a 這 個 評 估 這 個 action 好 壞 的 這 個 a 我 們 現 在 用 g'1 來 表 示 它 那 它 的 式 子 可 以 寫 成 這 個 樣 子 這 個 g't 就 是 summention over n 等 於 t 到 n 然 後 我 們 把 rn 乘 上 γ 的 n-t 次 方 所 以 離 我 們 現 在 採 取 的 action 越 遠 的 那 些 reward 它 的 γ 就 被 乘 越 多 次 它 對 我 們 的 g' 的 影 響 就 越 小 這 是 第 二 個 版 本 聽 到 這 邊 你 是 不 是 覺 得 合 理 多 了 呢 好 我 們 來 看 大 家 有 沒 有 問 題 要 問 的 好 有 同 學 說 怎 麼 有 點 像 蒙 地 卡 羅 不 錯 等 一 下 會 講 到 蒙 地 卡 羅 好 這 個 請 問 一 個 是 一 個 請 問 我 懂 了 請 問 一 個 大 括 號 是 一 個 episode 還 是 這 樣 藍 色 的 框 住 的 多 個 大 括 號 是 一 個 episode 好 一 個 大 括 號 不 是 一 個 episode 一 個 大 括 號 是 我 們 在 這 一 個 observation 執 行 這 一 個 action 的 時 候 這 個 是 一 筆 資 料 它 不 是 一 個 episode episode 是 很 多 的 很 多 次 的 observation 跟 很 多 次 的 action 才 合 起 來 才 是 一 個 episode g1 需 不 需 有 一 個 同 學 問 說 g1 需 不 需 要 做 標 準 化 之 類 的 動 作 這 個 問 題 太 棒 了 為 什 麼 呢 因 為 這 個 就 是 version 3 好 那 我 們 就 繼 續 講 version 3 吧 還 有 這 邊 還 有 一 個 問 題 是 越 早 的 動 作 就 會 累 積 到 越 多 的 分 數 嗎 越 晚 的 動 作 累 積 的 分 數 就 越 少 好 對 沒 錯 是 在 這 個 設 計 的 情 境 裡 面 是 越 早 的 動 作 就 會 累 積 到 越 多 的 分 數 但 是 這 個 其 實 也 是 一 個 合 理 的 情 境 因 為 你 想 想 看 比 較 早 的 那 些 動 作 對 接 下 來 的 影 響 比 較 大 到 遊 戲 的 終 局 沒 什 麼 外 星 人 可 以 殺 了 你 可 能 做 什 麼 事 對 結 果 影 響 都 不 大 所 以 比 較 早 的 那 些 observation 它 們 的 動 作 是 我 們 可 能 需 要 特 別 在 意 的 不 過 像 這 種 a 要 怎 麼 決 定 有 很 多 種 不 同 的 方 法 如 果 你 不 想 要 比 較 早 的 動 作 action 比 較 大 你 完 全 可 以 改 變 這 個 a 的 定 義 事 實 上 不 同 的 rl 的 方 法 其 實 就 是 在 a 上 面 下 文 章 有 不 同 的 定 義 a 的 方 法 看 來 仍 然 不 適 合 用 在 圍 棋 之 類 的 遊 戲 畢 竟 圍 棋 這 種 遊 戲 只 有 結 尾 才 有 分 數 好 這 是 一 個 好 問 題 這 個 我 們 現 在 講 的 這 些 方 法 到 底 能 不 能 夠 處 理 這 種 結 尾 才 有 分 數 的 遊 戲 呢 也 不 是 不 行 對 不 對 其 實 也 是 可 以 的 怎 麼 說 呢 假 設 今 天 只 有 rn 有 分 數 其 它 通 通 都 是 0 那 會 發 生 什 麼 事 那 會 發 生 說 今 天 我 們 採 取 一 連 串 的 action 只 要 最 後 贏 了 這 一 串 的 action 都 是 好 的 如 果 輸 了 這 一 連 串 的 action 通 通 都 算 是 不 好 的 而 你 可 能 會 覺 得 這 樣 做 感 覺 train network 應 該 會 很 難 train 確 實 很 難 train 但 是 就 我 所 知 最 早 的 那 個 版 本 的 alphago 它 是 這 樣 train 的 很 神 奇 它 就 是 這 樣 做 的 它 裡 面 有 用 到 這 樣 子 的 技 術 當 然 還 有 一 些 其 它 的 方 法 比 如 說 value network 等 等 那 這 個 等 一 下 也 會 講 到 那 最 早 的 alphago 它 有 採 取 這 樣 子 的 技 術 來 做 學 習 它 有 試 著 採 取 這 樣 的 技 術 看 起 來 是 學 得 起 來 的 拿 預 估 的 誤 差 當 reward 拿 有 一 個 同 學 說 那 其 實 alphago 可 以 拿 預 估 的 誤 差 當 reward 那 你 要 有 一 個 辦 法 先 預 估 誤 差 那 你 才 拿 它 來 當 reward 那 有 沒 有 辦 法 事 先 預 估 我 們 接 下 來 會 得 到 多 少 的 reward 呢 有 那 這 個 在 之 後 的 版 本 裡 面 會 有 這 樣 的 技 術 但 我 目 前 還 沒 有 講 到 那 一 塊 好 那 我 們 接 下 來 就 講 version 3 version 3 就 是 像 剛 才 同 學 問 的 要 不 要 做 標 準 化 呢 要 那 為 什 麼 呢 因 為 好 或 壞 是 相 對 的 好 或 壞 是 相 對 的 怎 麼 說 好 或 壞 是 相 對 的 呢 假 設 所 有 假 設 今 天 在 這 個 遊 戲 裡 面 你 每 次 採 取 一 個 行 動 的 時 候 最 低 分 就 預 設 是 10 分 那 你 其 實 得 到 10 分 的 reward 根 本 算 是 差 的 就 好 像 說 今 天 你 說 你 得 在 某 一 門 課 得 到 60 分 這 個 叫 做 好 或 不 好 還 是 不 好 呢 沒 有 人 知 道 因 為 那 要 看 別 人 得 到 多 少 分 數 如 果 別 人 都 是 40 分 你 是 全 班 最 高 分 那 你 很 厲 害 如 果 別 人 都 是 80 分 你 是 全 班 最 低 分 那 就 很 不 厲 害 所 以 reward 這 個 東 西 是 相 對 的 所 以 如 果 我 們 只 是 單 純 的 把 g 算 出 來 你 可 能 會 遇 到 一 個 問 題 假 設 這 個 遊 戲 裡 面 可 能 永 遠 都 是 拿 到 正 的 分 數 每 一 個 行 為 都 會 給 我 們 正 的 分 數 只 是 有 大 有 小 的 不 同 那 你 這 邊 g 算 出 來 通 通 都 會 是 正 的 有 些 行 為 其 實 是 不 好 的 但 是 你 仍 然 會 鼓 勵 你 的 model 去 採 取 這 些 行 為 所 以 怎 麼 辦 我 們 需 要 做 一 下 標 準 化 那 這 邊 先 講 一 個 最 簡 單 的 方 法 就 是 把 所 有 的 g' 都 減 掉 一 個 b 這 個 b 在 這 邊 叫 做 在 rl 的 文 獻 上 通 常 叫 做 baseline 那 這 個 跟 我 們 作 業 的 baseline 有 點 不 像 但 是 反 正 在 rl 的 文 獻 上 就 叫 做 baseline 就 對 了 我 們 把 所 有 的 g' 都 減 掉 一 個 b 目 標 就 是 讓 g' 有 正 有 負 特 別 高 的 g' 讓 它 是 正 的 特 別 低 的 g' 讓 它 是 負 的 好 但 是 這 邊 會 有 一 個 問 題 就 是 那 要 怎 麼 樣 設 定 這 個 baseline 呢 我 們 怎 麼 設 定 一 個 好 的 baseline 讓 g' 有 正 有 負 呢 那 這 個 我 們 在 接 下 來 的 版 本 裡 面 還 會 再 提 到 但 目 前 為 止 我 們 先 講 到 這 個 地 方 好 有 一 個 同 學 說 需 要 個 比 較 好 的 heuristic function 對 需 要 個 就 是 說 在 下 圍 棋 的 時 候 假 設 今 天 你 的 reward 非 常 地 sparse 那 你 可 能 會 需 要 一 個 好 的 heuristic function 如 果 你 有 看 過 那 個 最 原 始 的 那 個 深 藍 的 那 篇 paper 就 是 在 這 個 機 器 下 圍 棋 打 爆 人 類 之 前 其 實 已 經 在 西 洋 棋 上 打 爆 人 類 了 那 個 就 叫 深 藍 深 藍 就 有 蠻 多 heuristic 的 function 它 就 不 是 只 有 下 到 遊 戲 的 中 盤 才 知 道 才 得 到 reward 中 間 會 有 蠻 多 的 狀 況 它 都 會 得 到 reward 好 那 接 下 來 剛 才 講 的 是 大 概 念 接 下 來 就 會 實 際 告 訴 你 說 policy gradient 是 怎 麼 操 作 的 那 你 可 以 仔 細 讀 一 下 助 教 的 程 式 助 教 就 是 這 麼 操 作 的 首 先 你 要 先 random 初 始 化 隨 機 初 始 化 你 的 actor 你 就 給 你 的 actor 一 個 隨 機 初 始 化 的 參 數 叫 做 θ0 然 後 接 下 來 你 進 入 你 的 training iteration 假 設 你 要 跑 t 個 training iteration 好 那 你 就 拿 你 的 這 個 現 在 手 上 有 的 actor 一 開 始 是 這 個 θ0 一 開 始 很 笨 它 什 麼 都 不 會 它 採 取 的 行 為 都 是 隨 機 的 但 它 會 越 來 越 好 你 拿 你 的 actor 去 跟 環 境 做 互 動 那 你 就 得 到 一 大 堆 的 s 跟 a 你 就 得 到 一 大 堆 的 s 跟 a 就 把 它 互 動 的 過 程 記 錄 下 來 得 到 這 些 s 跟 a 那 接 下 來 你 就 要 進 行 評 價 你 用 a1 到 an 來 決 定 說 這 些 action 到 底 是 好 還 是 不 好 你 先 拿 你 的 actor 去 跟 環 境 做 互 動 蒐 集 到 這 些 觀 察 接 下 來 你 要 進 行 評 價 看 這 些 action 是 好 的 還 是 不 好 的 那 你 真 正 需 要 這 個 在 意 的 地 方 你 最 需 要 把 它 改 動 的 地 方 就 是 在 評 價 這 個 過 程 裡 面 那 助 教 程 式 這 個 a 就 直 接 設 成 immediate reward 那 你 寫 的 要 改 這 一 段 你 才 有 可 能 得 到 好 的 結 果 好 設 完 這 個 a 以 後 就 結 束 了 就 結 束 了 你 就 把 loss 定 義 出 來 然 後 update 你 的 model 這 個 update 的 過 程 就 跟 gradient descent 一 模 一 樣 的 會 去 計 算 l 的 gradient 前 面 乘 上 learning rate 然 後 拿 這 個 gradient 去 update 你 的 model 就 把 θi-1 update 成 θi 但 是 這 邊 有 一 個 神 奇 的 地 方 是 一 般 的 training 在 我 們 到 目 前 為 止 的 training data collection 都 是 在 for 迴 圈 之 外 比 如 說 我 有 一 堆 資 料 然 後 把 這 堆 資 料 拿 來 做 training 拿 來 update model 很 多 次 然 後 最 後 得 到 一 個 收 斂 的 參 數 然 後 拿 這 個 參 數 來 做 testing 但 在 rl 裡 面 不 是 這 樣 你 發 現 蒐 集 資 料 這 一 段 居 然 是 在 for 迴 圈 裡 面 假 設 這 個 for 迴 圈 你 打 算 跑 400 次 那 你 就 得 蒐 集 資 料 400 次 或 者 是 我 們 用 一 個 圖 像 化 的 方 式 來 表 示 這 個 是 你 蒐 集 到 的 資 料 就 是 你 觀 察 了 某 一 個 actor 它 在 每 一 個 state 執 行 的 action 然 後 接 下 來 你 給 予 一 個 評 價 但 要 用 什 麼 評 價 要 用 哪 一 個 版 本 這 個 是 你 自 己 決 定 的 你 給 予 一 個 評 價 說 每 一 個 action 是 好 或 不 好 你 有 了 這 些 資 料 這 些 評 價 以 後 拿 去 訓 練 你 的 actor 你 拿 這 些 評 價 可 以 定 義 出 一 個 loss 然 後 你 可 以 更 新 你 的 參 數 一 次 但 是 有 趣 的 地 方 是 你 只 能 更 新 一 次 而 已 一 旦 更 新 完 一 次 參 數 以 後 接 下 來 你 就 要 重 新 去 蒐 集 資 料 了 登 記 一 次 參 數 以 後 你 就 要 重 新 蒐 集 資 料 才 能 更 新 下 一 次 參 數 所 以 這 就 是 為 什 麼 rl 往 往 它 的 訓 練 過 程 非 常 花 時 間 蒐 集 資 料 這 件 事 情 居 然 是 在 for 迴 圈 裡 面 的 你 每 次 update 完 一 次 參 數 以 後 你 的 資 料 就 要 重 新 再 蒐 集 一 次 再 去 update 參 數 然 後 update 完 一 次 以 後 又 要 再 重 新 蒐 集 資 料 如 果 你 參 數 要 update 400 次 那 你 資 料 就 要 蒐 集 400 次 那 這 個 過 程 顯 然 非 常 地 花 時 間 那 你 接 下 來 就 會 問 說 那 為 什 麼 會 這 樣 呢 為 什 麼 我 們 不 能 夠 一 組 資 料 就 拿 來 update 模 型 update 400 次 然 後 就 結 束 了 呢 為 什 麼 每 次 update 完 我 們 的 模 型 參 數 以 後 update network 參 數 以 後 就 要 重 新 再 蒐 集 資 料 呢 那 我 們 那 這 邊 一 個 比 較 簡 單 的 比 喻 是 你 知 道 一 個 人 的 食 物 可 能 是 另 外 一 個 人 的 毒 藥 這 些 資 料 是 由 θi-1 所 蒐 集 出 來 的 這 是 θi-1 跟 環 境 互 動 的 結 果 這 個 是 θi-1 的 經 驗 這 些 經 驗 可 以 拿 來 更 新 θi-1 可 以 拿 來 update θi-1 的 參 數 但 它 不 一 定 適 合 拿 來 update θi 的 參 數 或 者 是 我 們 舉 一 個 具 體 的 例 子 這 個 例 子 來 自 棋 魂 的 第 八 集 大 家 看 過 棋 魂 吧 我 應 該 就 不 需 要 解 釋 棋 魂 的 劇 情 了 吧 這 個 是 進 藤 光 然 後 他 在 跟 佐 為 下 棋 然 後 進 藤 光 就 下 一 步 在 大 馬 在 小 馬 步 飛 這 小 馬 步 飛 具 體 是 什 麼 我 其 實 也 沒 有 非 常 地 確 定 但 這 邊 有 解 釋 一 下 就 是 棋 子 斜 放 一 格 叫 做 小 馬 步 飛 斜 放 好 幾 格 叫 做 大 馬 步 飛 好 阿 光 下 完 棋 以 後 佐 為 就 說 這 個 時 候 不 要 下 小 馬 步 飛 而 是 要 下 大 馬 步 飛 然 後 阿 光 說 為 什 麼 要 下 大 馬 步 飛 呢 我 覺 得 小 馬 步 飛 也 不 錯 這 個 時 候 佐 為 就 解 釋 了 如 果 大 馬 步 飛 有 100 手 的 話 小 馬 步 飛 只 有 99 手 接 下 來 是 重 點 之 前 走 小 馬 步 飛 是 對 的 因 為 小 馬 步 飛 的 後 續 比 較 容 易 預 測 也 比 較 不 容 易 出 錯 但 是 大 馬 步 飛 的 下 法 會 比 較 複 雜 但 是 阿 光 假 設 想 要 變 強 的 話 他 應 該 要 學 習 下 大 馬 步 飛 或 者 是 阿 光 變 得 比 較 強 以 後 他 應 該 要 下 大 馬 步 飛 所 以 你 知 道 說 同 樣 的 一 個 行 為 同 樣 是 做 下 小 馬 步 飛 這 件 事 對 不 同 棋 力 的 棋 士 來 說 也 許 它 的 好 是 不 一 樣 的 對 於 比 較 弱 的 阿 光 來 說 下 小 馬 步 飛 是 對 的 因 為 他 比 較 不 容 易 出 錯 但 對 於 已 經 變 強 的 阿 光 來 說 應 該 要 下 大 馬 步 飛 比 較 好 下 小 馬 步 飛 反 而 是 比 較 不 好 的 所 以 同 一 個 action 同 一 個 行 為 對 於 不 同 的 actor 而 言 它 的 好 是 不 一 樣 的 所 以 今 天 假 設 我 們 用 θi-1 蒐 集 了 一 堆 的 資 料 這 個 是 θi-1 的 trajectory 這 些 資 料 只 能 拿 來 訓 練 θi-1 你 不 能 拿 這 些 資 料 來 訓 練 θi 為 什 麼 不 能 拿 這 些 資 料 來 訓 練 θi 呢 因 為 假 設 假 設 就 算 是 從 θi-1 跟 θi 它 們 在 s1 都 會 採 取 a1 好 了 但 之 後 到 了 s2 以 後 它 們 可 能 採 取 的 行 為 就 不 一 樣 了 所 以 假 設 對 θ 假 設 今 天 θi 它 是 看 θi-1 的 這 個 trajectory 那 θi-1 會 執 行 的 這 個 trajectory 跟 θi 它 會 採 取 的 行 為 根 本 就 不 一 樣 所 以 你 拿 著 θi-1 接 下 來 會 得 到 的 reward 來 評 估 θi 接 下 來 會 得 到 的 reward 其 實 是 不 合 適 的 所 以 如 果 再 回 到 剛 才 棋 魂 的 那 個 例 子 同 樣 是 假 設 這 個 a1 就 是 下 小 馬 步 飛 那 對 於 變 強 以 前 的 阿 光 這 是 一 個 合 適 的 走 法 但 是 對 於 變 強 以 後 的 阿 光 它 可 能 就 不 是 一 個 合 適 的 走 法 所 以 今 天 我 們 在 蒐 集 資 料 來 訓 練 你 的 actor 的 時 候 你 要 注 意 就 是 蒐 集 資 料 的 那 個 actor 要 跟 被 訓 練 的 那 個 actor 最 好 就 是 同 一 個 那 當 你 的 actor 更 新 以 後 你 就 最 好 要 重 新 去 蒐 集 資 料 這 就 是 為 什 麼 gradient descent 它 非 常 花 時 間 的 原 因 好 我 們 來 看 一 下 同 學 有 沒 有 問 題 想 問 的 看 一 下 第 一 手 天 元 5-5 很 好 很 好 其 實 第 一 手 要 下 5-5 第 二 手 天 元 第 三 手 5-5 然 後 大 家 就 會 非 常 地 意 外 好 那 如 果 大 家 暫 時 沒 有 問 題 的 話 那 我 們 就 繼 續 剛 才 我 們 說 這 個 要 被 訓 練 的 actor 跟 要 拿 來 跟 環 境 互 動 的 actor 最 好 是 同 一 個 當 我 們 訓 練 的 actor 跟 互 動 的 actor 是 同 一 個 的 時 候 這 種 叫 做 on-policy 的 learning 那 我 們 剛 才 示 範 的 那 個 policy gradient 的 整 個 algorithm 它 就 是 on-policy 的 learning 那 但 是 還 有 另 外 一 種 狀 況 叫 做 off-policy 的 learning off-policy 的 learning 我 們 今 天 就 不 會 細 講 off-policy 的 learning 期 待 能 夠 做 到 的 事 情 是 我 們 能 不 能 夠 讓 要 訓 練 的 那 個 actor 還 有 跟 環 境 互 動 的 那 個 actor 是 分 開 的 兩 個 actor 呢 我 們 要 訓 練 的 actor 能 不 能 夠 根 據 其 他 actor 跟 環 境 互 動 的 經 驗 來 進 行 學 習 呢 那 off-policy 有 什 麼 好 處 呢 有 一 個 非 常 顯 而 易 見 的 好 處 我 們 剛 才 說 θi-1 蒐 集 到 的 這 些 資 料 不 能 拿 來 訓 練 θi 如 果 你 是 on-policy 的 learning 的 話 但 是 有 一 些 比 較 特 別 的 方 法 它 是 off-policy 的 learning 它 可 以 想 辦 法 讓 θi 去 根 據 θi-1 所 蒐 集 的 資 料 來 進 行 學 習 雖 然 θi 跟 θi-1 它 們 是 不 一 樣 的 它 們 能 力 是 不 一 樣 的 但 是 我 們 可 以 用 一 些 方 法 來 讓 θi 可 以 根 據 θi-1 所 蒐 集 到 的 資 料 所 蒐 集 到 的 互 動 的 結 果 進 行 學 習 那 這 樣 的 好 處 就 是 你 就 不 用 一 直 蒐 集 資 料 了 剛 才 說 reinforcement learning 一 個 很 卡 的 地 方 就 是 每 次 更 新 一 次 參 數 就 要 蒐 集 一 次 資 料 你 看 助 教 的 示 範 歷 程 是 更 新 400 次 參 數 400 次 參 數 相 較 於 你 之 前 train 的 network 沒 有 很 多 但 我 們 要 蒐 集 400 次 資 料 跑 起 來 也 已 經 是 很 卡 了 那 如 果 我 們 可 以 蒐 一 次 資 料 就 update 參 數 很 多 次 這 樣 不 是 很 好 嗎 所 以 off-policy 它 有 不 錯 的 優 勢 但 是 off-policy 要 怎 麼 做 呢 我 們 這 邊 就 不 細 講 有 一 個 非 常 經 典 的 off-policy 的 方 法 叫 做 proximal policy optimization 縮 寫 是 ppo 那 這 個 是 今 天 蠻 常 使 用 的 一 個 方 法 它 也 是 一 個 蠻 強 的 方 法 蠻 常 使 用 的 方 法 好 那 今 天 這 個 off-policy 的 重 點 是 什 麼 呢 off-policy 的 重 點 就 是 你 在 訓 練 的 那 個 network 要 知 道 自 己 跟 別 人 之 間 的 差 距 它 要 有 意 識 的 知 道 說 它 跟 環 境 互 動 的 那 個 actor 是 不 一 樣 的 那 至 於 細 節 我 們 就 不 細 講 那 我 有 留 那 個 上 課 的 錄 影 的 連 結 在 投 影 片 的 下 方 等 一 下 大 家 如 果 有 興 趣 的 話 再 自 己 去 研 究 ppo 那 如 果 要 舉 個 比 喻 的 話 就 好 像 是 你 去 問 克 里 斯 伊 凡 就 是 美 國 隊 長 怎 麼 追 一 個 女 生 然 後 克 里 斯 伊 凡 就 告 訴 你 說 他 就 示 範 給 你 看 他 就 是 actor to interact 他 就 是 負 責 去 示 範 的 那 個 actor 他 說 他 只 要 去 告 白 從 來 沒 有 失 敗 過 但 是 你 要 知 道 說 你 跟 克 里 斯 伊 凡 其 實 還 是 不 一 樣 人 帥 吃 草 人 醜 人 帥 不 是 人 帥 吃 草 人 帥 真 好 人 醜 吃 草 你 跟 克 里 斯 伊 凡 是 不 一 樣 的 所 以 克 里 斯 伊 凡 可 以 採 取 的 招 數 你 不 一 定 能 夠 採 取 你 可 能 要 打 一 個 折 扣 那 這 個 就 是 off-policy 的 精 神 你 的 actor to train 要 知 道 actor to interact 跟 它 是 不 一 樣 的 所 以 actor to interact 示 範 的 那 些 經 驗 有 些 可 以 採 納 有 些 不 一 定 可 以 採 納 至 於 細 節 怎 麼 做 那 過 去 的 上 課 錄 影 留 在 這 邊 給 大 家 參 考 好 那 還 有 另 外 一 個 很 重 要 的 概 念 叫 做 exploration exploration 指 的 是 什 麼 呢 我 們 剛 才 有 講 過 說 我 們 今 天 的 我 們 今 天 的 這 個 actor 它 在 採 取 行 為 的 時 候 它 是 有 一 些 隨 機 性 的 而 這 個 隨 機 性 其 實 非 常 地 重 要 很 多 時 候 你 隨 機 性 不 夠 你 會 train 不 起 來 為 什 麼 呢 舉 一 個 最 簡 單 的 例 子 假 設 你 一 開 始 初 始 的 actor 它 永 遠 都 只 會 向 右 移 動 它 從 來 都 不 會 知 道 要 開 火 如 果 它 從 來 沒 有 採 取 開 火 這 個 行 為 你 就 永 遠 不 知 道 開 火 這 件 事 情 到 底 是 好 還 是 不 好 唯 有 今 天 某 一 個 actor 去 試 圖 做 開 火 這 件 事 得 到 reward 你 才 有 辦 法 去 評 估 這 個 行 為 好 或 不 好 假 設 有 一 些 action 從 來 沒 被 執 行 過 那 你 根 本 就 無 從 知 道 這 個 action 好 或 不 好 所 以 你 今 天 在 訓 練 的 過 程 中 這 個 拿 去 跟 環 境 的 互 動 的 這 個 actor 它 本 身 的 隨 機 性 是 非 常 重 要 的 你 其 實 會 期 待 說 跟 環 境 互 動 的 這 個 actor 它 的 隨 機 性 可 以 大 一 點 這 樣 我 們 才 能 夠 蒐 集 到 比 較 多 的 比 較 豐 富 的 資 料 才 不 會 有 一 些 狀 況 它 的 reward 是 從 來 不 知 道 那 為 了 要 讓 這 個 actor 的 隨 機 性 大 一 點 甚 至 你 在 training 的 時 候 你 會 刻 意 加 大 它 的 隨 機 性 比 如 說 actor 的 output 不 是 一 個 distribution 嗎 有 人 會 刻 意 加 大 那 個 distribution 的 entropy 那 讓 它 在 訓 練 的 時 候 比 較 容 易 sample 到 那 些 機 率 比 較 低 的 行 為 或 者 是 有 人 會 直 接 在 這 個 actor 它 的 那 個 參 數 上 面 加 noise 直 接 在 actor 參 數 上 加 noise 讓 它 每 一 次 採 取 的 行 為 都 不 一 樣 好 那 這 個 就 是 exploration 那 exploration 其 實 也 是 rl training 的 過 程 中 一 個 非 常 重 要 的 技 巧 如 果 你 在 訓 練 過 程 中 你 沒 有 讓 network 盡 量 去 試 不 同 的 action 你 很 有 可 能 你 會 train 不 出 好 的 結 果 好 那 我 們 來 看 一 下 其 實 這 個 ppo 這 個 方 法 deepmind 跟 open ai 都 同 時 提 出 了 ppo 的 想 法 那 我 們 來 看 一 下 deepmind 的 ppo 的 demo 的 影 片 它 看 起 來 是 這 樣 子 的 好 那 這 個 是 deepmind 的 ppo 那 就 是 可 以 用 ppo 這 個 方 法 用 這 個 reinforcement learning 的 方 法 去 learn 什 麼 蜘 蛛 型 的 機 器 人 或 人 形 的 機 器 人 做 一 些 動 作 比 如 說 跑 起 來 或 者 是 蹦 跳 或 者 是 跨 過 圍 牆 等 等 好 那 接 下 來 是 openai 的 ppo 它 這 個 影 片 就 沒 有 剛 才 那 個 潮 它 沒 有 那 個 配 音 不 過 我 幫 它 配 個 音 好 了 這 個 影 片 我 叫 它 修 機 器 學 習 的 你 好 我 修 了 一 門 課 叫 做 機 器 學 習 但 在 這 門 課 裡 面 有 非 常 多 的 障 礙 我 一 直 遇 到 挫 折 那 個 紅 色 的 球 是 baseline 而 這 個 baseline 一 個 接 一 個 永 遠 都 不 會 停 止 然 後 我 train 一 個 network 很 久 我 colab 它 就 掉 線 啦 train 了 三 個 小 時 的 model 不 見 但 我 仍 然 是 爬 起 來 繼 續 地 向 前 我 想 開 一 個 比 較 大 的 模 型 看 看 可 不 可 以 train 得 比 較 好 一 點 但 是 結 果 發 生 什 麼 事 情 呢 out of memory 那 個 圈 圈 一 直 在 轉 它 就 是 不 跑 怎 麼 辦 但 我 還 是 爬 起 來 繼 續 向 前 結 果 private set 跟 public set 結 果 不 一 樣 真 的 是 讓 人 覺 得 非 常 地 生 氣 這 個 影 片 到 這 邊 就 結 束 了 嗎 沒 關 係 我 們 最 後 還 是 要 給 它 一 個 正 面 的 結 尾 就 算 是 遭 遇 到 這 麼 多 挫 折 我 仍 然 努 力 向 前 好 好 地 學 習 這 個 就 是 ppo 好 那 講 到 這 邊 正 好 告 一 個 段 落 那 其 他 的 部 分 我 們 就 只 好 下 週 再 講 那 其 實 到 目 前 為 止 講 的 東 西 其 實 做 作 業 也 算 是 蠻 足 夠 的 好 那 今 天 就 感 謝 大 家 線 上 收 聽 那 正 好 已 經 快 到 六 點 
Alright, let's continue with the class. Okay. I thank all students for bringing up the issue about the microphone. I'll look into this issue myself. So, I guess it's probably as the students stated. It can be done on the OBS side. But actually, I'm not that familiar with OBS. So, I'll practice this by myself. Okay, regarding that, A student has asked a very good question, These two questions are actually the same, The first question is, When you see 's', Isn't it only corresponding to one 'a'? If you don't want it to do 'a', then what does the Actor not do at all? Don't want it to perform a It means that the Actor can go and do other things Actually, for an Actor Doing nothing Is also considered an action Let's suppose you wish to say The Actor has the opportunity to do nothing Then, doing nothing also becomes an action So, in the example we just talked about Space Invaders It has three actions: moving to the left, moving to the right, and firing Now, suppose you hope There is one more possible action today, which is The scenario is not moving to the left, nor to the right And, not firing, just staying in place Then, you have to take this into account Also, treat it as an action for the machine to choose The meaning of not wanting it to do 'a' is Hoping it will do other actions For example, you don't want it to go left That could be going right or even firing Okay, a student asked if it is possible in one environment To decide the action you want to do and the action you don't want to do simultaneously It's possible You can say in a certain context I want to fire And then I don't want to turn right Then the score for firing will be very, very high Really want to fire And then not wanting to turn right is The score for turning right is very, very low If your action today is a random sample So, as for the Action When you provide an Observation The decided Action each time In fact, will not be the same But the scores of these Actions Will determine its probability of occurrence So, assuming you say you really want to open fire Really do not want to move to the right The score for wanting to open fire is quite large The probability of wanting to ignite becomes very high Then the chance to go right becomes very low Then a classmate asked, If actor takes action A1, we will have positive score If we want to maximize the score for all actions, Why not multiply by a negative sign Let me check Hope the Actor to act If the Actor acts in A1 It will score positive points If you wish to maximize the scores of all actions Why not multiply by negative sign Excuse me Actually, I don't fully understand this question We are not trying to maximize the points of all actions What we need to maximize is After all Actions have been executed What we can gain After the execution of Actions What we can gain is the sum of all Rewards Ok Sorry I might not have answered that question from the student named Tsai Then if you have any questions, You can express them later, Try expressing them in a different way, I'll see if I can answer you, Okay, Okay, let's continue, Up to this point, You might feel it's similar to Supervise Learning There is no difference Indeed, there is no difference The real point is how we define 'a' Okay, the next important point is how we define 'a' Let's start with the simplest one But it's actually incorrect This is actually the case as well The version of the teaching assistant's sample code. So how was this incorrect version made? This incorrect version looks like this. First, we still need to collect some training data. That is, we need to collect pairs of s and a. How do we collect these pairs of s and a? You need to have an actor first. This actor then interacts with the environment. It can collect the Pair of s and a Where does this Actor come from? You might find it strange Our goal for today Isn't it to train an Actor? Then you say you need to take an Actor To interact with the environment And then take this Actor Record its s and a Where did this Actor come from? First, consider this Actor as Let's think of it as a random Actor It is one Think of it as a random thing Then look at s1 And its behavior is all over the place It's random But we will record it Every single action 'a' performed in 's' All will be logged Well, usually when we collect this data You wouldn't just make one Episode with the Actor and the environment Usually, you would create multiple Episodes With the hope that you can gather enough data For example, in the teaching assistant's sample code Maybe it ran 5 episodes Then gathered enough data Well, so we just observe The condition of a certain actor interacting with the environment Then this actor It's actions in each observation Are all recorded And then, next up, we go on to assessing each action, deciding whether it's good or bad, after the assessment, we can use the results of our evaluation, to train our Actor, but how do we assess? we mentioned just now. We will use 'A' for evaluation To rate each step Whether we want our actor To take a particular action The simplest way to evaluate is Assuming, at some step s1 We performed a1 And then we received reward r1 If the Reward is positive Then it may signify that this Action is good If the Reward is negative Then it may signify that this Action isn't good So we consider this Reward as r1 r2 As A A1 is r1 A2 is r2 A3 is equivalent to r3 AN is equivalent to rN This is equivalent to telling the machine that If we execute a certain Action The Reward for a1 is positive Then this is a good Action When you see s1 in the future, you should perform a1 If you perform a2 in s2 today If the Reward is negative it means that a2 is a bad a2 which means that when you see s2 in the future do not execute a2 Okay, this This Version 0 it is not a good version Why isn't it a good version? Because you use this method You set A1 as r1 A2 is set as r2 The Network recognized by this method It is a short-sighted Actor It's just an Actor who only knows about short-term pleasure It has absolutely no concept of long-term planning How should I put it Because we know that each action Actually it will affect the development of the interaction afterwards That is to say, the Actor performs a1 in s1 and gets r1 This is not the whole interaction Because a1 affected what we will see next in s2 s2 will influence the next action a2 It also affects the r2 that will be produced next So a1 will also affect Will we get r2? So, each action is not independent Each action will affect what happens next Well, and when we interact with the environment today There is a problem called Reward Delay What is Reward Delay? Sometimes you need to sacrifice short-term benefits In exchange for longer-term goals If during a game of Go If you've watched 'The Demi-Gods and Semi-Devils', you would know that When the character Xu Zhu was trying to solve the Zhenlu Chess puzzle He sacrificed his own piece And allowed himself to lose many pieces But in the end, he won the entire game Now, what if it's in this context In the game of Space Invaders you may need to move left and right to aim first then you receive points for shooting and the act of moving left and right has no Reward moving left or right reaps no reward only shooting gets rewarded but that doesn't mean moving left and right is not important We will need to aim by moving left and right first Then our shooting will be effective So sometimes we will Need to sacrifice some short-term Rewards In exchange for longer-term Rewards So if we use Version 0 today What would happen? The thing that will happen is that the Machine today If it chooses to go left or right, The Reward it receives will be 0. If it chooses to fire, The Reward it will receive Only happens when it fires, The Reward it receives will then be positive. It will be positive. That's how the Machine will learn. It's only right for it to fire wildly. Because only the act of firing will receive a reward. No other activities get a reward. So, other kinds of behaviors are not encouraged. Only the action of firing is encouraged. Version 0 only learns to fire wildly. Version 0 is the teaching assistant's sample program. Of course, this can also be executed. That's just because the result won't be very good That's tutor example ten The reason why the program is Version 0 is because I don't know why this is Version 0 It seems like everyone If you are implementing rl by yourself You are particularly prone to make mistakes You are particularly prone when implementing by yourself Just directly use Version 0 But we got a very poor result So, what's next? We are officially entering the field of rl Let's seriously examine how Policy Gradient is implemented So we need a Version 1 Okay, within Version 1 How good is a1? It's not determined by r1 But by everything that happens after a1 We will take a1 After executing a1 All the Rewards obtained From r1, r2, r3, up to rN All gathered together All added up We obtain a value called G1 Then we would say A1 equals to G1 We use this G1 As a standard to evaluate whether an Action is good or not Earlier we directly used r1 for evaluation But not now We use G1 for evaluation Then we add up all the following r To evaluate the quality of A1 Because after we executed A1 A series of events occurred By adding up these series of events Perhaps we can assess A1 Whether or not it's a good action So, by this analogy How good is A2? After completing 'a2', All of the r, From r2 to rN, Add them all up to get G2, And how good is 'a3'? After executing 'a3', Add up all of the r, To get G3. So adding all these things up Then, take these to handle G Called the Cumulated Reward It's called accumulated Reward Add up all the future Rewards To assess the good or bad of an Action A method like this seems much more reasonable So this G is the cumulated reward What does G stand for? G is What is Gt? That starts from time point t We add rt continuously to rN All combined, it is Cumulated reward Gt We use this Cumulated Reward To evaluate the quality of an Action Alright, let's use this After the cumulated reward We can solve the problem encountered in Version 0 Because you might move to the right and then aim Next is to fire There are hits on aliens Then this movement to the right It also has Cumulated Reward Although moving to the right doesn't immediately provide a reward Assume a1 is to the right So r1 might be 0 But what happens next may be due to this turning right This results in having a target This results in hitting the alien Then the Cumulated Reward would be positive Then we will know that Actually, moving to the right is a good action This is Version 1 But if you think about it carefully, you'll realize It seems like Version 1 has some problems too. What kind of problems are there Let's assume this game is very long, Attributing rN to a1 seems inappropriate When we take action a1 What is immediately affected is r1 The following will affect r2 Next it affects r3 Now, suppose this process is very, very long Then we say because we have done a1 Which allows us to obtain rN. The chances of this happening should be fairly low Might get the credit of rN Credit should not be given to a1 So what should we do There is a second version of the Cumulated Reward We use G' here To represent the Cumulated Reward Well, we will do this before R Multiply by a discount factor This Discount Factor γ A value less than 1 will also be set There's a chance it'll be set up For instance, something like 0.9 or 0.99 So what's different about this G'1 compared to G1 G1 is r1 plus r2 plus r3 What does G'1 mean It consists of r1 plus gamma times r2 plus the square of gamma times r3 It means the farther the distance to take this action We have more γ squared terms Therefore, r2 is one step away from a1 Just multiply it by γ. R3 is two steps away from A1, Then multiply by γ squared When we keep adding up to rN rN has little effect on G'1 Because you have multiplied γ many, many times γ is a value less than 1 Even if you set it as 0.9 To the power of 10 times 0.9 That is also very small So if you use this method today, You can take those Rewards closer to a1 And give it more weight Those rewards that are farther from me Give it a smaller weight So now we have a new A At this new A's evaluation, Whether this action A is good or bad We now use G'1 to represent it Then its expression can be written like this This G't is just Summention over n equals to t until N Then we multiply rn by γ to the power of n-t So from where we are now The further the Action taken, the more those Rewards The more times γ is multiplied, The smaller its impact on our G' This is the second version Doesn't it sound more reasonable now that you've heard this far Okay, let's see if anyone has any questions Well, some students said it looks a bit like Monte Carlo. Not bad We will talk about Monte Carlo in a bit Okay I have a question about this Is one May I ask I got it Is a set of curly brackets considered an episode Or these multiple brackets surrounded by the blue It is an episode Okay, a big brace is not an Episode A big brace is In this Observation When executing this action This is a piece of data It is not an Episode There are many Episodes. Many observations It only makes sense with many actions combined That's just one episode Is G1 needed? A classmate asked Should G1 be normalized or something like that This is a great question Why is that Because this is Version 3. Okay, let's continue discussing Version 3 then Also, there's another issue here The earlier actions will accumulate more points, right? The later the action, the less cumulative score. Okay Yes, that's right In the scenario designed here Yes The earlier you act, the more points you will accumulate But this is actually a reasonable scenario. Because think about it The earlier actions tend to have a larger impact on what follows To the end of the game There is no alien that can kill Whatever you do might not greatly affect the outcome So, about those earlier Observations Their actions are something we might need to pay special attention to But how to decide such an A There are many different methods If you don't want previous actions to be more significant You can completely change this definition of A In fact, different RL (reinforcement learning) methods Actually, it is to write articles on A There are different ways to define A. It still seems inappropriate for games like Go. After all, in Go, a game only has a score at the end Well, that's a good question These methods we're talking about now Can it be handled? These kinds of games only score at the end It's not that it can't be done, right? In fact, it can also be done Well Let's assume today only rN has points Everything else is zero. What would happen then That could happen. Today we took a series of actions As long as you win in the end This series of Action is good If it loses This series of actions All are considered as bad And you may think of doing this It seems like the Train Network might be difficult to train It's indeed hard to train But from what I know The earliest version of AlphaGo This is how it's trained. It's magical It's done like this The techniques involved in it... Of course, there are some other methods Like the Value Network, etc We'll talk about this in a bit. The earliest AlphaGo It has adopted this kind of technique for learning. It has tried to adopt this technology It seems possible to learn Use the estimated error as Reward Take a student mentioned that actually, AlphaGo You can use the estimated error as a reward Then you need a way to estimate errors in advance Then you use it as a reward Is there a way to predict in advance How much Reward will we get next? There is, this will be in the later versions There would be such technology But I haven't talked about that part yet Alright, next let's discuss Version 3 Version 3 is just like what the student just asked Should we standardize it? Need Why is that so? Because good or bad is relative Good or bad is relative Saying something is good or bad is relative Assuming all Suppose for instance in this game Every time you take an action The default minimum score is 10 points Then you actually get a reward of 10 points It's just downright bad Just like saying today you say you got Got a score of 60 in a certain course Is this called good or not Or is it still not good No one knows Because it depends on how much points others have scored. If everyone else has 40 points You have the highest score in the class You are very talented If everyone else is scoring 80. You scored the lowest in the class That would be very lame So, rewards are relative So if we just simply calculate G You might encounter a problem Suppose in this game You may always get positive scores Each action will give us positive points There are just differences of varying degrees Then all the Gs calculated on your side will be positive Some behaviors are actually not good But you would still encourage your Model To adopt these actions So what do we do? We need to standardize it So the simplest method to start with is Subtract a 'b' from all the G' This b is called In RL literature, it's usually called Baseline. This doesn't quite resemble our assignment's Baseline But anyway, in RL literature It's called Baseline We subtracted a 'b' from all the G's. The goal is to make G' both positive and negative Especially high G' make it positive A particularly low G' makes it negative Okay, but there's a problem here How should this Baseline be set up? How do we set a good Baseline Letting G' have both positives and negatives We will mention this again in later versions But so far, let's just talk till this point, Okay, one of the students mentioned needing something better Heuristic Function Right, you need one That is, when playing Go Suppose your Reward is very Sparse today Then you might need a good one Heuristic Function If you have seen the original one That deep blue paper It's just before this machine defeated humans in Go In fact, it has already outperformed humans in chess. That one is called Deep Blue. Deep blue has quite a few heuristic functions. It's not just about getting to the middle of the game Only then will you get the reward There will be a lot of situations in the middle, and it will get a reward Alright, next up. What we just discussed was the basic concept Next, it will actually tell you that How does Policy Gradient work You can carefully read the teaching assistant's program This is how the teaching assistant operates. First, you need to initialize randomly Randomly initialize your Actor You give your Actor a randomly initialized parameter Called θ0 Then you move on to your Training Iteration Assume you have to run T training iterations Alright, just use yours then The actor you currently have in hand Initially, it's this θ0 He was quite clumsy at the start, he didn't know how to do anything Its behavior is always random But it will get better and better You use your Actor to interact with the environment Then you will get a bunch of 's' and 'a' You get a bunch of s and a And record its interaction process Get these s and a Then you need to proceed to evaluation You use A1 to AN to decide Whether these actions are good or not First, have your Actor interact with the environment Collect these observations Next, you need to proceed with evaluation Whether these actions are good or bad What you really need to care about The place you need to modify the most It's during the evaluation process This A in the tutorial code is set directly as Immediate Reward Then, you need to revise this part Only then can you possibly get a good result Ok, after setting this 'A' It's over, it's all over You should define the Loss, Then update your model This update process It's exactly the same as Gradient Descent We calculate the gradient of L Multiplied by the learning rate at the beginning Then use this Gradient to Update your Model Update θi-1 to θi But here's an interesting thing The typical training process In our training up to now Data Collection is always outside the For loop For example, I have a bunch of data And then use this pile of data for training Used for Update Modelled many times And finally get a convergent parameter Then use these parameters for testing But it's not like this in RL You've found this part about data collection It's actually in a For loop. Assuming this for loop You plan to run it 400 times Then you have to collect data 400 times Or we can represent it in a visualized way This is the data you have collected It's when you observe a certain actor It executes Action in every State Next, you provide an evaluation But which evaluation to use, which version to use This is for you to decide You give a review Saying whether each Action is good or bad Once you have these data, these evaluations Use this to train your actor You can use these reviews to define a Loss And then you can update your parameters once But the interesting part is You can only update once Once the parameters are updated once Next, you'll need to start collecting data again. After registering the parameters once You need to collect the data again Only then can you update the parameters next time So this is why RL Its training process often takes a lot of time The task of collecting data It's even in the For loop After you update the parameters once You have to collect your data again Then update the parameters And after updating once, You have to collect the data again If you need to update the parameters 400 times Then you'll need to collect the data 400 times This process is obviously very time-consuming Then you would probably ask Why is that so? Why can't we just take a set of data Then use it to Update the model, Update 400 times And then, it's over Why is it that every time we update our model parameters After updating the Network parameters We need to collect the data again As for us A simpler analogy here is You know a person's food Might be another person's poison These data are collected by θi-1 This is the result of θi-1 interacting with the environment. This is the experience of θi-1 These experiences can be used to update θi-1 It can be used to update the parameters of θi-1. But it's not necessarily suitable for updating the parameters of θi Or let's take a specific example This example comes from the eighth episode of Hikaru no Go Have you all watched Hikaru no Go? I suppose I won't need to explain the plot of 'Hikaru no Go' This is Mitsuto Inudo Then he is playing chess with Zuo Wei Then, Mitsumoto light advances to the next step In the big horse, in the small horse step fly What exactly is this small step forward? I am actually not very certain. But here is a bit of explanation which refers to the chess move of placing the piece diagonally, known as the knight's move Placing diagonally over several squares is called a big horse step. Alright, after Ah-Guang finishes his game of chess Jozo said not to use the pawn step at this time. Instead, you need to take a big step and fly Then Ah Guang asked why take a horse stance leap I think trotting is also good. This is when the decision is explained If Damabufei has 100 hands Xiaomabufei only has 99 moves Next is the key point Taking baby steps previously was correct Because Xiao Ma's next steps are easier to predict, It's also less likely to make a mistake But the pattern of large stride is more complex But if Ah Guang wants to become stronger He should probably learn the big horse stance Or Ah Guang becomes stronger He should take a deep step and fly So you know, the same action... The same task of performing a short horse step flight For chess players with different levels of skill Perhaps its goodness is different For the weaker Ah Guang, It's correct to go step by step Because he is less likely to make a mistake. But for Ah Guang, who has now become stronger, It would be better to take a big stride The down-stepped, flying-reversed move seems to be less good So, the same action, the same behavior For different Actors Its good is different So today, if we use θi-1 I have gathered a bunch of data This is the trajectory of θi-1 These data can only be used to train θi-1 You can't use these data to train θi Why can't we use this data to train theta i Because suppose, even if it's from θi-1 to θi They would all adopt a1 in s1 But after getting to s2 The actions they might take could be different So suppose for θ Assuming θi today It looks at the trajectory of θi-1 Then this Trajectory will be executed by θi-1 The behavior it will take with θi is totally different So you're holding θi-1, and the Reward you will get next To evaluate the Reward that θi will receive next Actually, it's inappropriate So if we go back to the example of Hikaru no Go Similarly, assume this a1 is the low horse stance For Ah Guang before he got stronger This is an appropriate approach. But for Ah Guang who improves himself It might not be an appropriate approach So today when we are collecting data When training your actor What you need to pay attention to is the Actor who gathers the data With the actor being trained Ideally, it should be the same one When your Actor is updated You should then recollect the data That's why we use the Gradient Descent The reason why it takes so much time Alright, let's see if any students have any questions Let's have a look First move is Tengen 5-5 Very good, very good Actually, the first move should be 5-5 The second player took the center point Third hand 5-5 And then everyone will be very surprised Okay, if there are no questions for now Then we just continue We just said... This actor that needs to be trained And the Actor that needs to interact with the environment It's best if it's the same one When we train the Actor When it is the same as the interacting Actor This is called On-policy learning The one we just demonstrated The entire algorithm of policy gradient It's on-policy learning But there's another situation called Off-policy learning We won't delve into Off-policy learning today Off-policy Learning What we hope to achieve is Can we allow the Actor that needs to be trained And the actor that interacts with the environment They're two separate actors The actor that we want to train Is it possible to interact with other actors and the environment based on experience For learning purposes So what's the advantage of Off-policy? There's a very obvious benefit The data that we just mentioned θi-1 has collected Can't use it to train θi If you are doing On-policy learning But there are some special methods It is an off-policy learning He could try to manipulate θi. Learn from the data collected according to θi-1 Even though θi and θi-1 are different Their capabilities are different But we can use some methods So theta i can be based on the data collected by theta i-1. The results of the interactions it has collected Engage in learning The advantage of this is You don't have to keep collecting data We just talked about Reinforcement Learning One challenging part is Each time you update a parameter, you have to collect data again. You see the teaching assistant's demonstration process is updated 400 times parameters Comparing the 400 parameters to the Network you previously trained Doesn't have many However, we need to collect 400 data points It's already lagging when running What if we can collect data once The parameters have been updated many times Isn't that great So, off-policy has some nice advantages But how do we do off-policy We won't go into detail here. There is a very classic off-policy method. Called Proximal Policy Optimization The abbreviation is PPO. This one is a method often used today It's also a very powerful method It's a quite common method Okay, so what is the key point of this Off-policy today? The key point of Off-policy is The Network you are training Need to know the gap between you and others It needs to be aware The Actor it interacts with the environment is different As for the details, we won't go into them. Then I left the link to the class recording At the bottom of the slideshow If you guys are interested later And then research PPO by yourself If you need an example It's like you asking Chris Evans, who is Captain America How to pursue a girl And then Chris Evans tells you It will demonstrate to you He is the Actor To Interact He is the actor responsible for demonstrating He said he just needs to confess Never failed But you need to understand You and Chris Evan are still different A handsome person eats grass, an ugly person Good looks doesn't mean one should eat grass It's so nice to be handsome, ugly ones can only eat grass You are different from Chris Evan So, these are the moves Chris Evans can take. You may not be able to take action you may have to make a discount. This represents the spirit of Off-policy Your Actor to Train Need to know Actor To Interact It is different from it So the experiences that Actor To Interact demonstrates Some could be adopted Not all proposals can be accepted As for how to do the details The past class recordings are kept here For your reference Okay, there is another important concept. It's called Exploration What does exploration mean? As we've mentioned before Today, Our today's Actor When it takes action It has some randomness. And this randomness is actually very important. Often times your randomness is not sufficient You won't be able to train Why? Let's take the simplest example Assume you initially start with an Actor It will always only move to the right It never knows when to fire If it has never taken the action of shooting You'll never know about the act of opening fire Whether it's good or bad Only a certain Actor today Trying to get a reward from starting a fire Then you can evaluate whether this action is good or bad Assume there are some Actions that have never been executed In that case, you will have no idea at all. Whether this action is good or not So in the process of training today This is the Actor that interacts with its environment. Its randomness is very important You would actually expect this actor to interact with the environment Its randomness can be increased In this way, we can gather More, richer data To avoid certain situations Its Reward is never known In order to increase the randomness of this actor Even when you are in training You would deliberately increase its randomness For example, the output of Actor Isn't it a distribution? Some people would deliberately increase it That Distribution's Entropy Allow it to during the training It's easier to sample those behaviors with lower probabilities Or someone might directly in this Actor Add noise to its parameters Directly add Noise to the Actor parameters Let it have different behavior each time Okay, this is Exploration Then, Exploration It's also part of the RL training process A very important skill If you are in the process of training You did not let the Network try different Actions as much as possible There's a high likelihood you won't train a good result Alright, let's take a look Actually, this PPO method DeepMind and Open AI Who simultaneously proposed the idea of PPO Let's have a look, DeepMind's PPO demo video It appears like this Okay, this is DeepMind's PPO Then you can use the PPO method Using this Reinforcement Learning method What is Learn? Spider-like robots or humanoid robots Do some actions For instance, running or hopping Or cross over the wall, etc. Alright, next up is Open AI's PPO. This video doesn't have the vibe as before It doesn't have that dubbing But I'll add some sounds for it. I call this video. As someone who studies machine learning Fine, I took a course called Machine Learning But within this course There are a lot of obstacles, I've been facing lots of setbacks That red ball is the Baseline And this Baseline follows one after another It will never stop. And then I trained a network for a long time My colab disconnects has lost the Model trained for three hours But I still get up and keep going forward I want to create a larger model See if you can train it a bit better But what happens as a result Out Of Memory That circle keeps spinning It just doesn't run What should we do? But I still got up Continue forward The result is the Private Set and the Public Set The result is different Really makes people very angry Is this video over at this point It's okay, we still have to give it a positive ending in the end Even if I encounter so many frustrations I'm still striving forward and learning well This is PPO Well, this is a good place to pause For the other parts, we would I guess we will talk next week So, what we've discussed so far Actually doing homework should be quite sufficient Alright, thank you all for listening online today Well, it's almost six o'clock 