此書借自市圖, 係東吳資管系黃日鉦教授所著, 全書理論性較強, 但每章末尾則有 Python 程式實例, 對各種機器學習演算法有簡明公式推導與歸納整理, 看來是從多年教學資料彙整而得, 篇幅不大故顯得很精煉, 可說是極精華之作 :
# 人工智慧與深度學習-理論與 Python 實踐 (碁峰, 2020)
Source : 博客來
特別是序言後面的八張彩圖, 描繪了各種目標函數與機率分配圖形, 以及神經元與機器學習演算法如 LSTM 與 Attention 等運作原理之圖解, 非常有價值.
最後一章強化學習摘要如下 :
- 強化學習是一種特殊的學習過程, 與監督與非監督學習截然不同, 強化學習開始時沒有任何資料可供訓練與學習, 它是利用代理人 (agent) 對環境 (environment) 以嘗試錯誤法 (try-and-error) 來收集樣本資料, 據此來獲得最佳的結果. 代理人從與環境的互動中獲取報酬 (rewards), 強化學習的目標是讓代理人透過不斷試誤學習最佳化策略, 經由探索環境得到未來最大期望累積報酬 (expected cumulative rewards).
狀態是指, 可以提供給代理人關於環境的所有訊息, 包括過去所有訊息之摘要, 故狀態具有馬可夫鏈的性質. - 強化學習假設代理人與環境互動時, 環境如何回應代理人的行動是由我們未知的模型所決定, 代理人可以在某個狀態 s 採取特定行動 a 以轉換到另一個狀態, 而狀態的轉換是由狀態間的轉換機率 (transition probabilities) 所決定, 整個強化學習可視為一個馬可夫鏈過程, 因此強化學習可以視為如下的軌跡 (trajectory) :
s0, a0, r1, s1, a1, r2, s2, a2, r3, .... rt+1, .... - 在深度強化學習中, 若資訊是不完整或未知, 稱為 model-free 強化學習; 反之若資訊完全已知則稱為 model-based 強化學習, 這可用動態規劃來得到最佳解. 其中 model-free 強化學習又可分為 value-based 與 policy-based 這兩大類, 其細類如下圖所示 :Model-free 強化學習都是直接從 episode 中學習, 不需要馬可夫鏈的轉換機率與報酬等資訊. 蒙地卡羅 (Monte-Carlo) 法是從完整的 episode 中進行參數更新, 而 TD (temporal difference, 拔靴法) 則是從 episode 中進行抽樣 (不是完整), 亦即可從不完整的 episode 中進行學習. TD 法又可分 on-policy 與 off-policy 兩種, 差別為代理人是否為實際的學習者, 是的話為 on-policy, 否的話即為 off-policy. Off-policy 的主要方法為 Q-Learning. 以政策為基礎的方法分為 DFO/evolution 與政策梯度 (policy gradient) 兩種, 前者針對不可微分函數, 後者 (policy gradient) 直接學習最佳化策略, 不需透過價值函數.
- 馬可夫決策過程 (Markov Decision Process, MDP) 是一種離散時間的隨機控制過程, 結果的產出是部分隨機與部分決策者控制所形成. 強化學習的問題可以用馬可夫決策過程來表示, 因為所有強化學習的狀態都有馬可夫性質, 亦即每一個狀態發生的機率都只受前一期狀態的影響, 而不受更早的狀態影響.
- 一個 episode 可以表示為 (s, a, s', r), 即代理人在狀態 s 決定採取行動 a, 此行動導致進入狀態 s', 並獲得報酬 r.
- 報酬函數定義了強化學習問題之目的, 在每一個時間, 環境都會給代理人特定的報酬 (可能正也可能負), 代理人的目標則是決定如何行動以使整體報酬最大化. 故報酬是代理人政策改變之依據, 代理人會選擇能使報酬最高的那個政策. 但報酬是一個目前狀態下的概念, 若要考慮整體或長時間報酬, 必須考慮狀態的價值函數.
- 一般求解馬可夫決策過程 (MDP) 有兩個目的 :
(1). 在給定政策下估計狀態的價值函數及狀態行動價值 (又稱預測目的).
(2). 估計狀態的價值函數及狀態行動價值來求得最佳化政策 (又稱為控制目的) - 政策為代理人的行為函數, 指導代理人如何在特定時間及給定的狀態下採取行動. 強化學習中一般而言設定政策是隨機的, 因此 MDP 下的政策只依據當時的狀態, 與過去的歷史政策無關, 故可將政策視為定態 (stationary).
- 在強化學習中會使用行為政策 (behavior policy) 來產生訓練的資料, 而目標政策即為代理人想要使用的政策, 當行為政策與目標政策相同時稱為 on-policy, 否則稱為 off-policy.
- 狀態價值函數 (又稱 Q 函數) 是用來衡量一個狀態多好, 或是一組狀態行動下可獲得多少報酬的指標. 報酬是一次的狀態行動下所獲得的立即性回饋, 而價值函數則是在長期行動下所得之平均報酬概念.
- 在強化學習中, 已知的資訊包括目前狀態, 可行動方案, 與過去報酬. 未知資訊為機率轉換模型與報酬結構. 通常會假設機率轉換模型滿足馬可夫鏈轉換模型, 以及報酬結構為 episode (s, a, s') 的固定報酬. 強化學習的目的之一是預測, 利用預測來估計特定的政策, 看看其長期報酬是否為最大, 即求出價值函數的最大值.
- Bellman 方程式是價值函數 (Q 函數) 的一種表示法, 它將價值函數分解為目前的報酬加上未來折現後的報酬, 其求解方法有三種 : 動態規劃, 蒙地卡羅法, 與 TD 法. 在計算 Bellman 方程式最佳解時, 為了避免搜尋空間過大導致的維度詛咒 (curse of dimensionality) 問題, 必須使用 Q-Learning 與 SARSA 方法來進行 Q 值計算, Q-Learning 為 off-policy 方法, 是以 one-step (一步) 的方式緩步改善 Q 值. 理論上 Q-Learning 學習中, 只要計算 Q(s, a) 的次數夠多且學習率夠小, 基本上不論如何選擇行動均會收斂到最佳政策. 然而 Q-Learning 與 SARSA 都有在訊訓練時容易出現震盪的問題, 這是因為一個小的行動改變, 都有可能會造成估計的行動價值產生劇烈的變化.
- Q-Learning 雖然是強化學習中最經典的一種方法, 但在實務上存在許多問題, 例如高估行動價值等. 此外, 因為 Q-Learning 是一種表格方法, 它是根據過劇狀態來更新 Q 值, 若某個狀債未曾出現過, Q-Learning 就無法解決, 亦即 Q-Learning 沒有預測能力. 而 DQN (Deep Q-Learning Network) 則可解決此問題, 它結合了深度神經網路與 Q 函數, 將 Q-Learning 的學習視為一個回歸問題, 故可找到一個函數來近似 Q 函數, 透過計算其誤差函數之梯度下降來更新參數, 將 Q-Learning 原本的 on-policy 學習轉成 off-policy 學習>
沒有留言:
張貼留言