主頁 >  其他 > RL真的很簡單 手把手帶你入門強化學習

RL真的很簡單 手把手帶你入門強化學習

2021-04-11 11:22:50 其他

文章目錄

    • 1. 強化學習的應用場景
      • 1.1. 四個成熟場景
      • 1.2. 幾個強化學習仿真環境
        • 1.2.1. Gridworld
        • 1.2.2. Neural MMOs
        • 1.2.3. Lab
    • 2. 強化學習的基礎知識和常用術語
      • 2.1. 常用術語表
      • 2.2. 強化學習的目的
      • 2.3. 兩個基本模型
        • 2.3.1. 多臂賭博機
        • 2.3.2. 馬爾科夫決策程序
    • 3. 經典強化學習演算法和深度強化學習
      • 3.1. 經典強化學習演算法
      • 3.2. 深度強化學習
    • 4. 強化學習的學習資料

1. 強化學習的應用場景

1.1. 四個成熟場景

在入門強化學習之前,我們先來具體的看看,目前強化學習可以做一些什么事情,

如下面四張圖,分別是強化學習應用于:

  1. 王者榮耀絕悟挑戰;
  2. 訓練機械臂投籃;
  3. Alpha Go與柯潔下圍棋;
  4. 個性化序列推薦系統,
    在這里插入圖片描述

強化學習是機器學習的一個分支,它會訓練一個智能體用來探索周圍環境,在圖一的王者榮耀中,這個智能體是英雄,例如阿軻、公孫離;在圖二的投籃中,這個智能體是機械臂;在圖三中,這個智能體是下圍棋的Alpha Go;在圖四的推薦系統中,這個智能體是推薦演算法;

在這里插入圖片描述

智能體在一開始是很笨的,在與周圍環境的不斷互動中才會逐漸變得“聰明”起來,例如在上面的圖中,智能體首先是用很笨拙的方法去跨越障礙,在多次失敗之后,才學會了如何跳的更高去越過障礙物,

1.2. 幾個強化學習仿真環境

1.2.1. Gridworld

這里介紹三個Gridworld環境:

  1. Gym MiniGrid
    最基礎的GridWorld就是走迷宮,例如下圖紅色的智能體走到綠色的位置就算是找到了迷宮出口,除此之外還有其他的有意思的迷宮配置,可以玩一玩,
    在這里插入圖片描述

  2. Multi Drones Monitoring
    Multi Drones Monitoring是Multi-agent Reinforcement Learning中的一個小模塊,提供了多個基于智能體的grid world小環境
    在這里插入圖片描述

  3. MAgent
    這是一個用于研究環境中大量智能體的競爭和協作問題的GridWorld環境
    在這里插入圖片描述

1.2.2. Neural MMOs

Neural MMOs 是由OpenAI開源的一個大型的復雜MA游戲場景,在這張大地圖中,由于資源有限,agent要學著合作/競爭活下去
在這里插入圖片描述

1.2.3. Lab

Lab是一個由DeepMind開源的強化學習環境,是一張雷神之錘III競技場(Quake III Arena)的地圖,由兩個隊伍,每隊由兩個智能體組成,在室內和戶外兩個場景下以第一人稱視角競爭玩奪旗的游戲,
在這里插入圖片描述

2. 強化學習的基礎知識和常用術語

2.1. 常用術語表

英文中文解釋
RL強化學習即 Reinforcement Learning 的首字母縮寫
Agent智能體強化學習演算法,或強化學習演算法的作用目標
Environment環境Agent的作用空間,可以認為除Agent外的一切皆為環境,
Action行為也稱動作、策略、決策,指的是Agent的輸出,作用于環境
State / Observation狀態Observation指的是被Agent觀測到的部分環境的狀態,State指的是整個環境的狀態,一般情況下,未特定說明的“狀態”、“State”均指“Observation”,也就是被Agent觀測到的部分環境的狀態,表示為: S S S
Reward反饋量化后的反饋也稱獎勵,反饋指的是Action作用于Environment后,對環境中的某一個特定的變數產生的影響,表示為: R R R
Episode回合也稱試驗(Trial),是指一次完整的強化學習訓練
Trajectory軌跡是指在一個 episode 中產生的 Observation-Action 序列,表示為:
τ = ( s 0 , a 0 , s 1 , a 1 , . . . , s n , a n ) \tau=(s_0,a_0,s_1,a_1,...,s_n,a_n) τ=(s0?,a0?,s1?,a1?,...,sn?,an?)
Value Function價值函式是指某一個 π \pi π可以得到的反饋的期望,表示為: v π v_\pi vπ?
Policy Function策略函式策略(Policy)用于根據 Observation 確定具體的 Action,表示為: π \pi π
Stochastic Policy隨機性策略隨機性策略會得到多個Action以及它們的概率,對所有Action根據概率抽選,最終確定一個輸出Action
Deterministic Policy確定性策略確定性策略會得到多個Action以及它們的概率,但只輸出概率最高的那個Action
Exploration探索是指Agent會嘗試新的Action來得到可能存在的更優策略,即得到Reward更大的策略,
Exploitation利用是指Agent不再嘗試新的Action,只采取已知的可以得到最高Reward的策略,
Trade-Off權衡Agent在初始的時候需要偏向于Exploration來得到合適的策略,在學習的程序中高Reward的策略被逐漸學習出來,這時候就需要偏向于Exploitation,更多的利用已知的策略,而不是把時間浪費在找新策略上,
Planning規劃Planning是指Agent可以獲得整個環境的詳細資訊,此時 Agent 能夠計算出一個完美的模型,只需要知道當前的狀態,就能夠尋找到最優解,
Learning學習Learning是指 Agent 無法獲得完整的環境資訊,只能通過不斷地與環境互動,逐漸改進其策略,
Discount Factor折扣因子折扣因子是用于保證馬爾科夫決策程序即時性的一個引數,表示為:
γ \gamma γ
Bellman Equation貝爾曼方程貝爾曼等式是一種計算價值函式(Q和V)的工具,它描述了當前狀態與未來狀態的迭代關系
MAB多臂賭博機Multi-Armed Bandit,一個基礎的強化學習場景
MDP馬爾科夫決策程序Markov Decision Process,一個基礎的強化學習場景,是帶有 Action 和 Reward 的狀態轉移程序
Q / Action-Value FunctionQ 函式 / 動作值函式表示 Agent 在某個 State 采取某個 Action 時得到的累計 Reward 期望值
V / State-Value functionV 函式 / 狀態值函式表示 Agent 在某個 State 時具有的累計 Reward 期望值
Value Iteration價值迭代利用 V 函式求取最優策略的方法
Policy Iteration策略迭代利用 Q 函式求取最優策略的方法
Model-Free RL無模型的強化學習Model-Free RL 直接讓 Agent 在環境中做出 Action,通過不斷試錯來找到針對特定環境的最佳策略 π \pi π
Model-Based RL基于模型的強化學習Model-Based RL通過對環境進行理解,建立一個環境模型,Agent可以在模型中對下一步的狀態和反饋做出預測,找出最佳策略,再在現實環境中做出動作
Policy-Based RL基于概率的強化學習Policy-Based RL中Agent在某一狀態時的所有可能Action都有一定概率被選中,只是不同Action有不同的概率,最侄訓得到一個隨機性策略
Value-Based RL基于價值的強化學習Value-Based RL中會對Agent在某一狀態時的所有可能Action,按對應得到的Reward進行排序,并選用Reward最高的Action,最侄訓得到一個確定性策略
Monte-Carlo RL回合更新的強化學習MC 方法每次都需要采樣一條完整的軌跡 τ \tau τ 之后才能對 π \pi π v π v_\pi vπ? 進行更新
Temporal-Difference RL單步更新的強化學習TD 可以在每完成一步(得到一個Observation,采取一個Action并得到反饋值)之后就對策略或價值函式進行更新
On-Policy RL同軌強化學習On-Policy RL需要Agent直接與環境互動,即學習程序中所用到的資料與樣本,都是Agent從環境中觀測到的,
Off-Policy RL離軌強化學習Off-Policy RL不需要Agent直接與環境互動,即可以通過別的方法獲取資料進行學習,不需要Agent直接通過觀測環境獲得,

2.2. 強化學習的目的

強化學習中包含了兩個物體和三個關系,可以用下圖表示:
在這里插入圖片描述
在強化學習程序中,智能體(Agent)環境(Environment) 一直在互動,智能體(Agent)環境(Environment) 中獲取到 環境的狀態(State/Observation),并根據它做出一個 行為(Action),這個 行為(Action) 會導致 智能體(Agent) 所處的 環境的狀態(Observation) 發生變化,并且 智能體(Agent) 會從 環境(Environment) 的變化中得到一定的 反饋(Reward),該 反饋(Reward) 用于 智能體(Agent) 判斷自己剛才的 行為(Action) 是否合理,

顯而易見,Agent 采取的 Action 能獲得越高的 Reward,說明Agent越成功,強化學習的目的就是讓一個智能體(Agent) 在一個復雜不確定的環境(Environment)里面去極大化它能獲得的反饋(Reward),

2.3. 兩個基本模型

2.3.1. 多臂賭博機

多臂賭博機(Multi-Armed Bandit, MAB)問題可以說是強化學習的開端,最原始的強化學習演算法就是從多臂賭博機問題引出來的,目前為止,主流的Bandit演算法主要有兩類:(1)貪心演算法,例如: ? ? greedy \epsilon-\text{greedy} ??greedy;(2)置信演算法,例如:UCB(Upper Confidence Bound),

下面我們就來講講什么是多臂賭博機問題:

賭博機又稱老虎機,它是一種通過搖動搖臂(Arms)來獲得回報(Reward)的機器,每個賭博機只有一條搖臂,多個賭博機放在一起就是多臂賭博機,如下圖所示是一個3臂賭博機:
在這里插入圖片描述

上面的三個賭博機搖出金幣的概率分布各不相同,也就是說它們的期望 Reward 不同,我們希望構造一個 Agent,自動去找出搖動哪一個賭博機的搖臂可以獲得最高的 Reward,

我們把搖動三個賭博機的 Action 分別命名為 a = [0, 1, 2],每次搖動搖臂(pull arm)后都會獲得一個回報 r,多次搖動搖臂后動作 a 的值函式 q(a) 可以表示為: q ( a ) = E [ R t ∣ A t = a ] q(a)=\mathbb{E}[R_t | A_t=a] q(a)=E[Rt?At?=a]

注意在多臂賭博機問題中,由于每次搖動搖臂后Agent的State是不變的(Agent看到的還是那三個賭博機),因此動作值函式 q(s,a) 可以簡寫為 q(a)

在獲取了每個搖臂的 q(a) 之后,就可以利用Bandit演算法來選擇動作了,這里我們介紹兩種Bandit演算法(策略):

  1. ? ? \epsilon- ??貪心策略
    ? ? \epsilon- ??貪心策略設定一個概率值 ? \epsilon ?用于指定探索的程度,并規定下一個時間步要執行的動作有 1 ? ? 1-\epsilon 1??的概率選用能使 q q q 值最大的動作 a a a,有 ? \epsilon ?的概率選擇其他動作: a = { arg?max ? a q ( s , a ) , P(1- ? ) o t h e r w i s e , P( ? ) a=\begin{cases} \argmax_a q(s,a), \text{P(1-$\epsilon$)}\\ otherwise, \text{P($\epsilon$)}\\ \end{cases} a=????aargmax?q(s,a),P(1-?)otherwise,P(?)?
  2. UCB1策略
    UCB1策略計算了 q ( s , a ) q(s,a) q(s,a)的置信區間上界,即 q ( s , a ) q(s,a) q(s,a)的最大期望值,然后取能使 q ( s , a ) q(s,a) q(s,a)最大的動作: a = arg?max ? a ( q ( s , a ) + c ln ? n n a ) a=\argmax_a\biggl(q(s,a)+c\sqrt{\frac{\ln n}{n_a}}\biggr) a=aargmax?(q(s,a)+cna?lnn? ?)其中 q ( s , a ) q(s,a) q(s,a) 是指動作 a a a q q q值, c c c是一個可調引數用于指定探索的程度, n n n是指所有動作的執行次數, n a n_a na?是指動作 a a a的執行次數

此時有了 q(a) ,也有了利用 q(a) 來選擇 a 的策略,Agent就可以利用Bandit策略來根據 q(a) 選擇搖動哪個搖臂 a ,從而獲得最大的 r 了,

下面我們來模擬一個episode,在這個episode中我們利用了 ? \epsilon ? 為 0.1 的 ? ? \epsilon- ??貪心策略:

  1. 搖動3個搖臂各一次,得到 [ a 1 , a 2 , a 3 ] [a_1,a_2,a_3] [a1?,a2?,a3?] 的 Reward [ 2 , 4 , 6 ] [2,4,6] [2,4,6]
    q ( a 0 ) = E [ R 0 = 2 ∣ A 1 = a 1 ] = 2 q(a_0)=\mathbb{E}[R_0=2|A_1=a_1]=2 q(a0?)=E[R0?=2A1?=a1?]=2 q ( a 1 ) = E [ R 1 = 4 ∣ A 2 = a 2 ] = 4 q(a_1)=\mathbb{E}[R_1=4|A_2=a_2]=4 q(a1?)=E[R1?=4A2?=a2?]=4 q ( a 2 ) = E [ R 2 = 6 ∣ A 3 = a 2 ] = 6 q(a_2)=\mathbb{E}[R_2=6|A_3=a_2]=6 q(a2?)=E[R2?=6A3?=a2?]=6
  2. 根據 ? ? \epsilon- ??貪心策略,有0.9的概率選擇可以獲得最大q值的動作,0.1的概率選擇其他動作,假設此時選擇可以獲得最大q值的動作 q ( a 2 ) = 6 q(a_2)=6 q(a2?)=6,則有當前的最優動作為: a = arg?max ? a q ( a 2 ) = a 2 a=\argmax_a q(a_2)=a_2 a=aargmax?q(a2?)=a2?搖動 a 2 a_2 a2?得到 Reward 0 0 0 更新 q ( a 2 ) q(a_2) q(a2?) q ( a 0 ) = E [ R 0 = 2 ∣ A 1 = a 1 ] = 2 q(a_0)=\mathbb{E}[R_0=2|A_1=a_1]=2 q(a0?)=E[R0?=2A1?=a1?]=2 q ( a 1 ) = E [ R 1 = 4 ∣ A 2 = a 2 ] = 4 q(a_1)=\mathbb{E}[R_1=4|A_2=a_2]=4 q(a1?)=E[R1?=4A2?=a2?]=4 q ( a 2 ) = E [ R 2 = 6 , 0 ∣ A 4 = a 2 ] = 6 + 0 2 = 3 q(a_2)=\mathbb{E}[R_2=6,0|A_4=a_2]=\frac{6+0}{2}=3 q(a2?)=E[R2?=6,0A4?=a2?]=26+0?=3
  3. 根據 ? ? \epsilon- ??貪心策略,有0.9的概率選擇可以獲得最大q值的動作,0.1的概率選擇其他動作,假設此時選擇可以獲得最大q值的動作 q ( a 1 ) = 4 q(a_1)=4 q(a1?)=4,則有當前的最優動作為: a = arg?max ? a q ( a 1 ) = a 1 a=\argmax_a q(a_1)=a_1 a=aargmax?q(a1?)=a1?搖動 a 1 a_1 a1?得到 Reward 10 10 10 更新 q ( a 1 ) q(a_1) q(a1?) q ( a 0 ) = E [ R 0 = 2 ∣ A 1 = a 1 ] = 2 q(a_0)=\mathbb{E}[R_0=2|A_1=a_1]=2 q(a0?)=E[R0?=2A1?=a1?]=2 q ( a 1 ) = E [ R 1 = 4 , 10 ∣ A 5 = a 2 ] = 4 + 10 2 = 7 q(a_1)=\mathbb{E}[R_1=4,10|A_5=a_2]=\frac{4+10}{2}=7 q(a1?)=E[R1?=4,10A5?=a2?]=24+10?=7 q ( a 2 ) = E [ R 2 = 6 , 0 ∣ A 4 = a 2 ] = 6 + 0 2 = 3 q(a_2)=\mathbb{E}[R_2=6, 0|A_4=a_2]=\frac{6+0}{2}=3 q(a2?)=E[R2?=6,0A4?=a2?]=26+0?=3
  4. 根據 ? ? \epsilon- ??貪心策略,有0.9的概率選擇可以獲得最大q值的動作,0.1的概率選擇其他動作,假設此時選擇其他動作 q ( a 0 ) = 2 q(a_0)=2 q(a0?)=2,則有當前的動作為: a = arg?max ? a q ( a 0 ) = a 0 a=\argmax_a q(a_0)=a_0 a=aargmax?q(a0?)=a0?搖動 a 0 a_0 a0?得到 Reward 2 2 2 更新 q ( a 0 ) q(a_0) q(a0?) q ( a 0 ) = E [ R 0 = 2 , 2 ∣ A 6 = a 1 ] = 2 + 2 2 = 2 q(a_0)=\mathbb{E}[R_0=2,2|A_6=a_1]=\frac{2+2}{2}=2 q(a0?)=E[R0?=2,2A6?=a1?]=22+2?=2 q ( a 1 ) = E [ R 1 = 4 , 10 ∣ A 5 = a 2 ] = 4 + 10 2 = 7 q(a_1)=\mathbb{E}[R_1=4,10|A_5=a_2]=\frac{4+10}{2}=7 q(a1?)=E[R1?=4,10A5?=a2?]=24+10?=7 q ( a 2 ) = E [ R 2 = 6 , 0 ∣ A 4 = a 2 ] = 0 + 6 2 = 3 q(a_2)=\mathbb{E}[R_2=6, 0|A_4=a_2]=\frac{0+6}{2}=3 q(a2?)=E[R2?=6,0A4?=a2?]=20+6?=3
  5. 類似的,重復步驟2-4,Agent 就可以估算出三個搖臂的期望q值
  6. 學習結束后,Agent 只需搖動期望最高的一個搖臂即可得到最高的Reward,

到此,多臂賭博機問題就找到了求解方法,也就是最原始的強化學習,

2.3.2. 馬爾科夫決策程序

馬爾科夫決策程序(Markov Decision Process,MDP)是強化學習的基礎,相比于多臂賭博機問題,馬爾科夫決策程序多了狀態轉移及其決策程序,

我們先來認識一下狀態、狀態轉移以及決策三個概念:

  1. 狀態
    實際上狀態并沒有一個標準的定義,它可以是任何有助于馬爾科夫鏈做決策的量,
  2. 狀態轉移
    形象地說,把自己看著 Agent ,我們從早上醒來,看到的狀態是在臥室,刷牙時眼睛里看到的狀態是在衛生間,出門后是在路上,到辦公室后是在辦公室,Agent的狀態無時無刻不在改變,
  3. 決策
    所謂決策,就是Agent根據未來可能轉移到的狀態的好壞(通過Reward衡量),來決定是否要轉移到某個狀態,

下面就是一個馬爾科夫決策程序示意圖:
在這里插入圖片描述

在上圖中,我們可以找出多條軌跡,用來描述Agent的行為,例如: τ 1 = S 1 → a = a 1 , r = r 1 S 2 → a = a 2 , r = r 2 S 3 → a = a 3 , r = r 3 S 4 τ 2 = S 1 → a = a 4 , r = r 4 S 3 → a = a 3 , r = r 3 S 4 \begin{aligned} \tau_1 & = S_1 \xrightarrow{a=a_1,r=r_1}S_2\xrightarrow{a=a_2,r=r_2}S_3\xrightarrow{a=a_3,r=r_3}S_4 \\ \tau_2 & = S_1 \xrightarrow{a=a_4,r=r_4}S_3\xrightarrow{a=a_3,r=r_3}S_4 \\ \end{aligned} τ1?τ2??=S1?a=a1?,r=r1? ?S2?a=a2?,r=r2? ?S3?a=a3?,r=r3? ?S4?=S1?a=a4?,r=r4? ?S3?a=a3?,r=r3? ?S4?? τ 2 \tau_2 τ2?沒有進入過狀態 S 2 S_2 S2?,可能是因為Agent認為要遲到了,從 S 1 S_1 S1?轉移狀態到 S 2 S_2 S2?的Reward太低,所以直接轉移狀態到了 S 3 S_3 S3?

馬爾科夫決策程序的量化計算中有一個重要引數稱為折扣因子(Discount Factor) γ \gamma γ,之所以要引入這樣一個引數,有著以下三個理由:

  • 有些馬爾可夫程序是帶環的,沒有起始,折扣因子可以避免無窮的反饋;
  • 折扣因子可以使馬爾科夫程序模擬真實的人類行為,使馬爾科夫程序更加傾向于選擇近期的高Reward狀態;
  • 折扣因子是可以調整的,例如當折扣因子設為0時,就相當于只關注了下一步反饋,當折扣因子設為1時,就相當于對未來并沒有折扣,未來的每一步獲得的Reward都是一樣的,

在有了Agent所處的狀態 S S S、折扣因子 γ \gamma γ、狀態轉移時的回報 R R R之后,我們就可以用貝爾曼方程來定義馬爾科夫決策程序的折扣累計回報期望值了:

  1. 基于狀態值函式 V π ( s ) V_\pi(s) Vπ?(s)的定義
    在策略 π \pi π 下,狀態s的值函式定義為從狀態 S S S 出發,并采用策略 π \pi π 的折扣積累回報的期望 V π ( s ) = E π [ G t ∣ S t = s ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ] \begin{aligned}V_\pi(s) &=\mathbb{E}_\pi[G_t|S_t=s] \\ &=\mathbb{E}_\pi[\sum_{k=0}^{\infty}\gamma^k R_{t+k+1}|S_t=s] \\ \end{aligned} Vπ?(s)?=Eπ?[Gt?St?=s]=Eπ?[k=0?γkRt+k+1?St?=s]?
  2. 基于行為值函式 Q π ( s , a ) Q_\pi(s,a) Qπ?(s,a)的定義
    在策略 π \pi π 下,在狀態s采取動作a的行為值函式定義為從狀態 S S S 出發,并采用策略 π \pi π 的折扣積累回報的期望 Q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] \begin{aligned}Q_\pi(s,a) &=\mathbb{E}_\pi[G_t|S_t=s,A_t=a] \\ &=\mathbb{E}_\pi[\sum_{k=0}^{\infty}\gamma^k R_{t+k+1}|S_t=s,A_t=a] \\ \end{aligned} Qπ?(s,a)?=Eπ?[Gt?St?=s,At?=a]=Eπ?[k=0?γkRt+k+1?St?=s,At?=a]?

假設有如下的馬爾科夫決策程序:
在這里插入圖片描述
假設Agent正處于狀態 S 1 S_1 S1?,目標任務是Agent到達 S 4 S_4 S4?然后回到 S 1 S_1 S1?,則在 S 1 S_1 S1?時會有如下兩條軌跡可以完成該任務:
τ 1 = S 1 → a = a 1 , r = 2 S 2 → a = a 2 , r = 4 S 3 → a = a 3 , r = 9 S 4 → a = a 5 , r = 3 S 3 → a = a 6 , r = 7 S 1 \tau_1 = S_1\xrightarrow{a=a_1,r=2}S_2\xrightarrow{a=a_2,r=4}S_3\xrightarrow{a=a_3,r=9}S_4\xrightarrow{a=a_5,r=3}S_3\xrightarrow{a=a_6,r=7}S_1 τ1?=S1?a=a1?,r=2 ?S2?a=a2?,r=4 ?S3?a=a3?,r=9 ?S4?a=a5?,r=3 ?S3?a=a6?,r=7 ?S1? τ 2 = S 1 → a = a 4 , r = 6 S 3 → a = a 3 , r = 9 S 4 → a = a 5 , r = 3 S 3 → a = a 6 , r = 7 S 1 \tau_2 = S_1\xrightarrow{a=a_4,r=6}S_3\xrightarrow{a=a_3,r=9}S_4\xrightarrow{a=a_5,r=3}S_3\xrightarrow{a=a_6,r=7}S_1 τ2?=S1?a=a4?,r=6 ?S3?a=a3?,r=9 ?S4?a=a5?,r=3 ?S3?a=a6?,r=7 ?S1?設折扣因子的值為0.2,則這兩條軌跡的折扣累計回報期望為: Q π ( s , a ) τ 1 = E π [ G t ∣ S t = s , A t = a ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] = 1 5 ( 0. 2 0 × 2 + 0. 2 1 × 4 + 0. 2 2 × 9 + 0. 2 3 × 3 + 0. 2 4 × 7 ) = 0.63904 \begin{aligned}Q_\pi(s,a)_{\tau_1} &=\mathbb{E}_\pi[G_t|S_t=s,A_t=a] \\ &=\mathbb{E}_\pi[\sum_{k=0}^{\infty}\gamma^k R_{t+k+1}|S_t=s,A_t=a] \\ &=\frac{1}{5}(0.2^0\times 2 + 0.2^1\times4+0.2^2\times9+0.2^3\times3+0.2^4\times7)\\ &=0.63904 \\ \end{aligned} Qπ?(s,a)τ1???=Eπ?[Gt?St?=s,At?=a]=Eπ?[k=0?γkRt+k+1?St?=s,At?=a]=51?(0.20×2+0.21×4+0.22×9+0.23×3+0.24×7)=0.63904? Q π ( s , a ) τ 2 = E π [ G t ∣ S t = s , A t = a ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] = 1 4 ( 0. 2 0 × 6 + 0. 2 1 × 9 + 0. 2 2 × 3 + 0. 2 3 × 7 ) = 1.994 \begin{aligned}Q_\pi(s,a)_{\tau_2} &=\mathbb{E}_\pi[G_t|S_t=s,A_t=a] \\ &=\mathbb{E}_\pi[\sum_{k=0}^{\infty}\gamma^k R_{t+k+1}|S_t=s,A_t=a] \\ &=\frac{1}{4}(0.2^0\times 6 + 0.2^1\times9+0.2^2\times3+0.2^3\times7)\\ &=1.994 \\ \end{aligned} Qπ?(s,a)τ2???=Eπ?[Gt?St?=s,At?=a]=Eπ?[k=0?γkRt+k+1?St?=s,At?=a]=41?(0.20×6+0.21×9+0.22×3+0.23×7)=1.994?

顯然,當 Agent 處于狀態 S 1 S_1 S1? 時,應當采取動作 a 4 a_4 a4?才能獲取更高的 Reward,

3. 經典強化學習演算法和深度強化學習

3.1. 經典強化學習演算法

所謂經典強化學習演算法,指的是表格型的強化學習演算法,這種演算法適用于的狀態空間離散有限的馬爾科夫決策程序,有限代表有終止狀態,這樣 q ( s , a ) q_(s,a) q(?s,a)或者 v ( s ) v_(s) v(?s)的值均可以存盤在一張表格中,這就是表格型方法的名稱由來,

例如一張Q表格,用來存盤 q ( s , a ) q(s,a) q(s,a)
在這里插入圖片描述
上表中Q函式的值表示當Agent在某個State時選擇了某個Action,后續總共能得到多少Reward,根據這個表格,Agent就可以知道在當前的State下選擇哪個Action可以得到更大的Q值,

例如在Agent處于狀態 s 4 s_4 s4?時,選擇動作 a 4 a_4 a4?就會有最大的Q值: Q ( s t = s 4 , a t = a 4 ) = 23.5 Q(s_t=s_4,a_t=a_4)=23.5 Q(st?=s4?,at?=a4?)=23.5

常見的表格型強化學習方法有:

  1. 動態規劃 Dynamic Programing
    動態規劃 DP 是一種model-based的強化學習方法,它使用價值函式來結構化地組織對最優策略的搜索,由貝爾曼最優化方程計算最優價值函式,從而得到最優策略,DP又分為包括策略迭代、價值迭代兩種方法
  2. 蒙特卡洛 Monte Carlo
    蒙特卡洛 MC 是一種model-free的強化學習方法,它從馬爾可夫決策程序采樣樣本的經驗回報中學習價值函式,
  3. 時序差分 Temporal-Difference
    時序差分 TD 是一種model-free的強化學習方法,它結合了MC與DP演算法,采用自舉法(更新基于已存在的估計)更新,TD中兩個著名的方法是Saras(同軌時序差分控制)、Q-Learning(離軌時序差分控制)

推薦閱讀:強化學習 - 基于表格型的求解方法

3.2. 深度強化學習

深度強化學習方法就是利用神經網路提取輸入特征 或 用神經網路擬合值函式 Q ( s , a ) Q(s,a) Q(s,a) V ( s ) V(s) V(s),它適用于狀態空間連續或狀態數無窮多的馬爾科夫決策程序,

之所以提出深度強化學習方法,是因為:

  1. 神經網路具有很強的特征提取能力
    這樣的能力使得強化學習演算法可以直接從真實世界接收輸入,例如看游戲螢屏、看棋盤,
  2. 神經網路具有很強的泛化能力
    神經網路可以通過擬合離散資料泛化得到連續的空間,例如下圖:在這里插入圖片描述
    神經網路可以只根據這三個 q ( s , a ) q(s,a) q(s,a)值取泛化得到連續空間上的無窮多 q ( s , a ) q(s,a) q(s,a)值,

常見的深度強化學習演算法有:

  1. Policy Gradient
    包括:PG (Policy Gradient)、
    TRPO (Trust Region Policy Optimization)、
    PPO (Proximal Policy Optimization)、
    DPPO (Distributed Proximal Policy Optimization);
  2. Deep Q Network
    包括:DQN (Deep Q Network)、
    Dueling DQN (Dueling Deep Q Network)、
    Double DQN (Double Deep Q Network);
  3. Actor-Critic
    包括:AC (Actor-Critic)、
    A3C (Asynchronous Advantage Actor-Critic)、
    DDPG (Deep Deterministic Policy Gradient) 、
    TD3 (Twin Delayed Deep Deterministic policy gradient algorithm)、
    SAC (Soft Actor-Critic);

4. 強化學習的學習資料

視頻:

  • 【莫煩Python】強化學習 Reinforcement Learning
  • 【李宏毅】2020 最新課程 (完整版) 強化學習
  • Stanford CS234: Reinforcement Learning

書籍:

  • Reinforcement Learning: An Introduction (Second Edition)
  • 深入淺出強化學習:原理入門

論文:

  • Reinforcement Learning:A Survey
  • Reinforcement Learning An Introduction
  • A Brief Survey of Deep Reinforcement Learning
  • Deep Reinforcement Learing: An Overview
  • 主流強化學習演算法論文綜述:DQN、DDPG、TRPO、A3C、PPO、SAC、TD3

這一節推薦了很多相關資料,之所以要看這么多,不是因為強化學習本身很復雜,是因為不同人有不同理解,從不同角度對強化學習進行全方位的學習,才能有更深入和正確的理解,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/274824.html

標籤:其他

上一篇:leetcode島嶼數量(超級詳細注釋)(c語言)

下一篇:案例分享:Qt便攜式致病菌快速檢測儀(賬號管理、實驗程序、二維圖表、歷史資料、通訊管理、實驗報告、中英文等等)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more