-
Value-Based Methods
- 蒙地卡羅或者Q-learning。
- 利用每個狀態或者狀態-動作配對的值,然後根據任何狀態,可以選擇具有最佳值的動作。
- 針對數量有限的動作。
-
Policy-Based Methods
- 直接從狀態映射到動作,不用擔心值的表示法,然後直接優化策略。
- 當動作空間是連續性,或者需要隨機策略時使用。
- 問題點: 很難計算策略到底有多好。
-
Actor-Crtiic Methods
- 透過值函數的概念,利用狀態或者狀態-動作配對的值,來評估一個策略的優劣。
- 典型策略梯度更新規則所使用的得分函數。
- 對於每個階段性任務,可以使用階段回報Gt作為得分函數的值。
- Gt表示該階段後續時間內獲得的獎勵折扣和。
- 每個階段完成後,就更新強化算法。
- 但如果任務不是階段性任務該怎麼辦? 要什麼時候進行策略更新?
- 需要更好的得分函數,在與環境互動時能夠在線計算的函數。
- 將階段回報Gt換成當時狀態動作對的動作值。
- 利用時間差分法迭代來更新動作值。
- 該流程可以更策略更新同步執行,不需要等到整個階段完才執行。
- 可以用於非階段或連續性任務。
- 對於大多數複雜的問題,都是需要處理連續狀態和動作空間。
- 通過Q學習和函數逼近來估算動作值。
- 動作值函數的更新規則,是delta_W來進行更新。
- theta跟w是不同參數向量,但是他們很相似,分別表示一種函數的逼近。
- theta表示策略Pi在給定狀態時採取某個動作的機率。
- w表示該狀態採取該動作的值。
- 先不管更新規則,只看函數。
- Pi(行動者): 控制強化智能學習智能體的行為或動作方式。
- q(評論者): 衡量這些動作的效果,即是對這個動作進行評價。
- 行動者和評論者這兩個逼近器,可以單獨分別設計他們,或許可使用兩個神經網路。
- 如何開發一個完整架構來訓練行動者和評論者
- 一開始,行動者會遵守某個隨機策略來執行動作。
- 評論者觀察該動作並提供回饋,告訴行動者這樣的動作有多糟糕。
- 行動者根據反饋更新策略,並再次行動。
- 評論者繼續提供再多回饋,並同時更新自己的備註或者值函數,以便提供更好的回饋。
- 反覆持續此流程,直到行動者達到一定的標準,或者已經沒有什麼改進。
流程
-
元件:
- 策略逼近器Pi是由Theta參數化。
- 值函數逼近器q是由w參數化。
-
流程:
- 每個時間步t,都會從環境抽樣當前狀態表示為St。
- 行動者根據策略生成動作At
- At送到環境產生下個狀態St+1跟獎勵Rt+1。
- 評論者根據Rt+1計算行動者在狀態St採取動作At的q值。
- 行動者根據這個q值來更新策略參數Theta。
- 根據這些更新的參數,行動者產生下個動作At+1。
- 最後評論者,更新自己的值函數。
- 每個時間步,都重複此流程。
- Policy update的不穩定性。
- 雖然透過alpha學習率來控制梯度下降的步長(一次只走一小步)。
- 但整個gradient大小會受到得分函數q^的影響,q^值可能變化很大,因為他是基於單個獎勵,這樣可能會導致學習步長不一致。
- 利用優勢函數來解決得分函數q^的影響。
- 假設q值抽樣來自某個分布(高斯分佈)。
- 這個分布針對的是動作空間,因此預期值本質上就等同狀態值。
- 新的得分函數(優勢函數) = 每個Q值 - 均值(狀態值)
- 優勢函數
- Q值: 在狀態s採取動作a預期可獲得的獎勵。
- 優勢函數告訴我們在狀態預期之外,我們預期會獲得多少的額外獎勵。
- 即我們採取該動作(而不是隨機任意動作)會獲得什麼。
- 優勢函數不僅會穩定學習過程,而且可以更好的區分動作。
- 利用優勢函數替換狀態動作值。
- 最自然的方式就是定義另外一個狀態值函數v^,參數形式為w'。
- 這表示評論者要學習兩個值函數的變化Q^, v^。
- 實際上,透過TD誤差可以很好的估算優勢函數,如此一來,評論者只要學習一個值函數的變化v^。
- 行動者-評論者方法是一個基於策略方法的變形。
- 行動者表示策略,評論者表示值函數,告訴行動者他的策略有多好。
- 因為可以單獨分別選擇行動者跟評論者的表示法,讓我們在設計強化學習的智能體有更多的靈活性。