- 智能體如何根據任何環境的狀態作出合適的動作響應。
- 策略(Policy): 一個mapping方式,將state映射到action。
- 決定性策略: 輸入一個state只會對應到某個action。
- 隨機性策略: 輸入一組(state, action),輸出機率(智能體會根據此state做此action的機率)。
- 例子
- 決定性策略都可以轉化成隨機性策略
- 將透過網格世界這個例子來講解如何定義最佳策略。
- 環境是個九宮格的世界, 其中有兩格是山。
- 智能體從左上出發,目標是最短時間內達到右下角的出口。
- 每走一步reward = -1。
- 若碰到山reward = -3。
- 達到終點reward = 5。
- 先從一個最糟糕的策略開始,就是智能體經過九宮格的每一個。
- 產生裝狀態值 -6
- 接下來智能體向右一格,當作出發點,仍採用最糟糕的策略,需經過每一個。
- 產生裝狀態值 -5
- 依此,完成九宮格所有的狀態值。
- 狀態值函數
- 對於每個狀態s,它都告訴我們
- 如果智能體是從該狀態s開始
- 然後在所有的時間步都是根據此該策略選擇動作
- 預期的折扣回報會是多少
- 狀態值函數始終對應特定的策略
- 如果我們更改策略,就會更改狀態值函數
- 上個例子,九宮格中的每一個狀態值的計算其實有很多重複的計算步驟。
- 減省計算的方式,是透過遞迴的方式,由尾倒推回去。
- 任何時間的狀態值為
- 當下的即時獎勵(reward=-1) + 下個時間的狀態值(2)。
- 為了簡便,我們假設折扣率=1。
- 但通常都是要考慮到折扣率,也就是下個時間的狀態值要乘上折扣率才行。
- 貝爾曼方程式: 將上面的概念轉化成方程式。
- 九宮格例子,我們做了下列簡化
- 它始终沿着所选方向移动(而一般 MDP 则不同,智能体并非始终能够完全控制下个状态将是什么)
- 可以确切地预测奖励(而一般 MDP 则不同,奖励是从概率分布中随机抽取的)
- 對於更加複雜的環境,我們無法確定即時獎勵跟下個狀態。
- 兩種不同policy所產生的九宮格狀態值函數。
- 右邊九宮格中任何一格狀態值皆大於左邊。
-
定義: 如果要說某個policy比較優秀,那就是在這個policy下所有時刻的狀態都優於另外一個policy。
- 通常很容易找到滿足這樣狀況的policy。
-
定義: 肯定存在一個最優策略,比其他所有策略都好。
- 最優策略並不一定是唯一。
-動作值函數: - 對於每一個狀態s跟動作a,都會生成一個動作值。 - 智能體從狀態s開始並選擇動作獲得的期望這扣回報。 - 然後使用該策略在未來所有的時間步動作。
- 注意事項
- 再次比較狀態值函數跟動作值函數。
- 例子1: 狀態從左上角開始,動作採用向下移動,所產生的動作函數。
- 例子2: 狀態從左邊第2格開始,動作採用向上移動,所產生的動作函數。
- 九宮格的最終所有動作函數值。
- 再次定義。
- 要如何找出最優的策略。
- 流程: 透過互動找出最佳的動作值函數,再從最佳的動作值函數找出最優的策略。
- 這一節先假設我們已經找到最動作值函數。
- 主要目的是學習如何從最佳的動作值函數找出最優的策略。
- step1:
- 對於九宮格中的每一次,我們找出最佳的動作值,並決定對應的動作。
- step2:
- 對於九宮格中左邊第二格,所有動作值都是相同,因此可以任意選擇一個方向,都會產生最優策略。
- 透過上述步驟,我們很快地從最佳的動作值函數找出最優的策略
- 推導流程:
-
策略: 確定性跟隨機性兩種。
-
狀態值函數: 智能体从状态s开始,然后在所有时间步根据相同策略选择动作的预期回报。
-
貝爾曼方程-1:
-
最優性:
- 什麼叫優(定義): 如果要說某個policy比較優秀,那就是在這個policy下所有時刻的狀態都優於另外一個policy。
- 最优策略肯定存在,但并不一定是唯一的。
- 所有最优策略都具有相同的状态值函数v*
-
動作值函數:
- 所有最优策略具有相同的动作值函数q*,称之为最优动作值函数。
-
最優策略:
- 智能體很快地從最佳的動作值函數找出最優的策略。
-
貝爾曼方程-2: