強化學習入門(二)強化學習MDP四元組,Q表格的概念和更新策略

本文內容源自百度強化學習 7 日入門課程學習整理
感謝百度 PARL 團隊李科澆老師的課程講解


一、強化學習MDP四元組

<S,A,P,R>

S:狀態 state
A:動作 action
R:獎勵 reward
P:狀態轉移概率 probability

1.1 狀態轉移概率

p[st+1,rtst,at]p[s_{t+1} , r_t | s_t, a_t]

在 t 時刻,處於 sts_t 的狀態,選擇了ata_t 的動作,的情況下:

轉移到 st+1s_{t+1} 狀態,並且獲得 rtr_t 獎勵,的概率

該狀態轉移概率符合 “馬爾可夫”

因爲 st+1s_{t+1} 的狀態僅僅與 sts_t 相關,與 st1s_{t-1} ,還是 st2s_{t-2} 都沒有關係

還取決於智能體與環境交互的動作 ata_t,有了一個決策過程在裏面

所以這個過程叫做 “馬爾可夫決策過程” Markov Decision Process,簡稱 MDP,是序列決策的經典表達方式

根據狀態(環境)變化,產生的一系列的決策過程,就是與環境的交互產生的經驗

1.2 如何描述環境

使用 P 函數 和 R 函數

  • P函數:probability function:p[st+1,rtst,at]p[s_{t+1} , r_t | s_t, a_t]
    • 反映了一個環境的隨機性:一個狀態下作出決策後,可能有多種結果,不同結果存在不同的概率
  • R函數:reward function:r[st,at]r[s_t,a_t]

在動態規劃下,P函數和R函數都是已知的,即 Model-based,我們可以根據現有條件作出最優規劃

1.3 Mode-free 試錯探索

在強化學習的實際環境中,P 函數 和 R 函數都是未知的,所以是 Mode-free

價值函數 V(st) 表示在 t 時刻的狀態的優劣

用 Q(st , at) 值表示,在 st 狀態下做動作 at 能拿到(最大)的獎勵(的概率)

二、Q 表格

1.1 Q 值表格概念

Q 表示狀態動作價值

是累積的經驗,取得成功所需的知識

例如:

在某一狀態 S 下,我們可以採取 2 個動作:A 和 B

採取 A 動作以後,100% 獲得 10 分

採取 B 動作以後,90% 獲得 5 分,10% 獲得 15 分

那麼 Q(S,A) = 100% * 10 = 10,Q(S,B) = 90% * 5 + 10% * 15 = 6

以上的例子中,之所以我們知道概率分佈,是因爲這個 Q 表是訓練後的結果

Q 表中累積的學習到的知識,所以應用的時候,我們很自然的會在 S 狀態下選擇 A 的動作

以獲得最大的回報

但是上面的例子僅僅是一次選擇

在實際中,我們會面對多次選擇,於是我們要看的是做了一系列選擇以後,最終的回報最大的,纔是最優路徑

所以要把(預估)後續的所有 收益 及其對應 概率 ,都累計到當前狀態下做計算

所以在強化學習中,環境給到的 reward ,即環境的反饋就非常重要!

1.2 Q 表格的目標導向型

我們要看的是總收益,來更新 Q 表格

例子:救護車闖紅燈

假設每個交通燈,正常通過是 0 分,闖紅燈時 -1 分,一共有 10 個紅綠燈路口

那麼對於一個普通的汽車來說,通過這一段路最高的分數就是 0,即每次都不闖紅燈

但是對於救護車來說,我要用最短的時間把病人及時送到醫院,可以獲得 1000 分,病人死亡則 0 分

這時候最優的方法是每次都闖紅燈,前面獲得 -10,最後獲得 1000,總分 990

這個例子中每一步設定的 Q(s,a) 不能只看當前這一步的收益,要看未來總收益:

G = R1+R2+R3+R4+…+RT

例子:股票投資

關注累積收益,但是股票交易是永續進行的,所以無法考慮未來收益只和

我們無法得到 t 時刻預期的未來總收益:

Gt= Rt+1+Rt+2+Rt+3+…

所以要引如 “衰減因子”

Gt= Rt+1+γRt+22Rt+3+…

這裏的 衰減因子 γ 取值範圍 0~1,等於 1 的時候即看到最後一步,等於 0 的時候即只看後一步

約後面的收益對當前的價值影響越小

1.3 實踐:懸崖問題(快速到達目的地)

問題描述:

在一張地圖上,我們要從起點 S 到達終點 G,每走一步 reward 爲 -1(因爲我們希望越快到達越好)
掉下懸崖一次 reward 爲 -100(所以我們希望避免發生),並回到起點
到達終點 G 的時候遊戲結束

設定 reward 的衰減因子 γ

當前時刻 t,可獲得的收益預期總計:
Gt = Rt+1 + γRt+2 + γ2Rt+3 + … = k=0γkRt+k+1\sum_{k=0}^{\infty}γ^kR_{t+k+1}

  • γ 取 0 代表目光短淺

  • γ 取 1 代表目光過於長遠

我們選擇一條路走完以後,就可以知道這條路徑上每一個狀態路徑的價值

所以多次嘗試以後,就可以做出更優的選擇

而不斷地嘗試,即在更新 Q 值表格,由這個表格指導每一步動作

所以這個表格的維度是 (狀態總數,每個狀態下的動作總數),初始化的時候都爲 0

Agent 和環境的交互,就是不斷更新 Q 表格


三、強化學習更新 Q 表格

核心:用下一個狀態的 Q 值來更新當前狀態的 Q 值
這裏利用到了統計裏面的 Bootstrapping (自舉)算法
強化學習中叫做:時序差分更新方法

我的理解是:

由於每一次都用下一個狀態來更新這一個狀態,於是最後的累積 reward 會向前傳遞,最終影響整個路徑
類似於多重條件反射(反射鏈條)

例子:斯坦福的狀態價值迭代小遊戲

https://cs.stanford.edu/people/karpathy/reinforcejs/gridworld_td.html

可以看到遊戲中,小球不斷試錯,最後產生價值判斷,終點的 +1 reward 會不斷影響周邊的格子

然後這個影響力會往起點延伸,最終形成一條最優路徑

3.1 Temporal Difference 時序差分(TD單步更新)

公式:

Q(St,At)  Q(St,At) + α[Rt+1 + γQ(St+1,At+1) + Q(St,At)]Q(S_t,A_t)\ \leftarrow\ Q(S_t,A_t)\ +\ α[R_{t+1}\ +\ γQ(S_{t+1},A_{t+1})\ +\ Q(S_t,A_t)]

  • 當前值:Q(St,At)Q(S_t,A_t)

  • 目標值:Rt+1 + γQ(St+1,At+1)R_{t+1}\ +\ γQ(S_{t+1},A_{t+1})

    • 我們希望 “當前值” 可以不斷逼近 “目標值”

    • 目標值:即未來收益只和(reward)

    • Target = Gt = Rt+1 + γRt+2 + γ2Rt+3 = k=0γkRt+k+1Target\ =\ G_t\ =\ R_{t+1}\ +\ γR_{t+2}\ +\ γ^2R_{t+3}\ =\ \sum_{k=0}^{\infty}γ^kR_{t+k+1}

    • Gt = Rt+1 + γRt+2 + γ2Rt+3 + γ3Rt+4= Rt+1 + γ(Rt+2 + γRt+3 + γ2Rt+4)= Rt+1 + γGt+1 \begin{aligned} G_t\ &=\ R_{t+1}\ +\ γR_{t+2}\ +\ γ^2R_{t+3}\ +\ γ^3R_{t+4} \\ &=\ R_{t+1}\ +\ γ(R_{t+2}\ +\ γR_{t+3}\ +\ γ^2R_{t+4}) \\ &=\ R_{t+1}\ +\ γG_{t+1} \end{aligned}

    • Q(St+1,At+1)Q(S_{t+1},A_{t+1}) 就近似等於 Gt+1G_{t+1}

  • 軟更新:α[Rt+1 + γQ(St+1,At+1) + Q(St,At)]α[R_{t+1}\ +\ γQ(S_{t+1},A_{t+1})\ +\ Q(S_t,A_t)]

    • 通過參數 α 來控制每次更新的幅度(可以理解爲學習速率 learning rate)
    • α 爲 0,則表示不更新
    • α 爲 1,則表示完全更新

所以這個更新公式,用到的是:

當前時刻的 St,At,下一時刻的 Rt,St+1,At+1(與環境交互後產生)

這就組成了 Sarsa 算法

3.2 與環境交互

  1. 根據Q表選動作(agent)
  • 預測/評估:sample()
  • 執行動作(帶有探索概率):sample()
  1. 與環境交互(enviroment)
  • 獲得 State 和 Reward
  • 獲得下一步的動作預測和決策
  1. 更新 Q 表(agent)
  • 學習:learn()

四、相關方法和策略

4.1 Epsilon Greedy 方法

權衡探索和利用之間的概率:

  • 利用 Exploitation:最優選(概率 ε)
  • 探索 Exploration:隨機選(概率 1-ε)
  1. 假設 ε 設置爲 0.1
  2. 在當前狀態下,選擇最優的選擇提取出來
  3. 然後 90% 在最優選擇中隨機選一個動作
  4. 10% 在所有選擇中隨機選一個動作

如果沒有探索,那我們無法找到比當前最優 更優 的選擇

在 Sarsa 算法中,由於在動作選擇上一定存在 “探索” 的可能性,所以最終優化的路徑是一條保守的路徑,而不是最優的路徑!

4.2 On-Policy 和 Off-Policy 策略

  • On-Policy:用於優化的,是實際會被執行的策略

    • 比如 Sarsa
    • 在學習過程中,只存在一種策略
    • 這種策略用作 Action 的選取
    • 這種策略也用作優化(更新 Q 表)
    • 先採樣下一步,再更新 Q 表
    • 由於需要兼顧探索,所以策略 π 並不穩定
  • Off-Policy:用於優化的,

    • 比如 Q-Learning
    • 保留兩種策略
    • 行爲策略(μ):Behavior Policy,用於大膽地探索環境,執行動作,獲取經驗
    • 目標策略(π):Target Policy,使用 最優策略 來進行優化(更新Q表),但是這個策略不一定被執行
    • 先更新 Q 表,再採樣下一步
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章