【強化學習】強化學習術語表(A-Z)

datamonday發表於2020-10-25

原題:The Complete Reinforcement Learning Dictionary——The Reinforcement Learning Terminology, A to Z
原文:HTML
作者:Shaked Zychlinski


每當我開始學習一門新的學科時,我發現最難應付的是它的新術語(terminology)。每個領域都有許多術語和定義,對於一個局外人來說是完全模糊的,並且會使一個新人的第一步相當困難。

當我第一次接觸強化學習時,我被每隔一行出現的新術語所淹沒,我總是驚訝於在這些複雜的單詞後面是多麼簡單和邏輯的想法。因此,我決定用我自己的話把它們都寫下來,這樣我就可以隨時查閱它們,以防忘記。這部詞典就是這樣誕生的。

這不是強化學習的簡介,而是一種輔助學習的工具。如果你希望在此欄位中開始自己的道路,我的建議如下:

  • 如果你正在尋找一個快速、10分鐘的速成課程,包括程式碼示例,請檢視我的Qrash課程系列:Introduction to RL and Q-LearningPolicy Gradients and Actor-Critics.
  • 如果想更深入,學習和編寫幾種不同的RL演算法並獲得更多的直覺,我推薦 Thomas Simonini 的系列教程和Arthur Juliani的系列教程
  • 如果你準備精通RL,可以閱讀Richard Sutton和Andrew Barto的強化學習的“聖經” ——Reinforcement Learning, an introduction。PDF格式免費(合法)下載地址:PDF

我將盡力嘗試繼續更新此詞典。如果我錯過了重要事項或遇到了問題,請隨時告訴我。


The Dictionary

  • Action-Value Function:See Q-Value
  • Actor-Critic:當試圖解決強化學習問題時,有兩種主要的方法可以選擇:計算每個狀態的值函式(Value Functions)Q-Values,並根據這些值選擇動作,或者直接計算策略(Policy),該策略定義了根據當前狀態應該採取的每個動作的概率,並根據它採取動作。演員-評論家(Actor-Critic)演算法結合了這兩種方法,以建立一個更穩健的方法。這裡可以找到一個很好的插圖解釋。
  • Advantage Function:優勢函式通常表示為 A ( s , a ) A(s, a) A(s,a),它是一種度量,在給定某個狀態(state)的情況下,評估某個動作(action)是好還是壞,更簡單地說,即從某個狀態中選擇某個動作的優勢是什麼。它在數學上定義為:
    A ( s , a ) = E [ r ( s , a ) − r ( s ) ] A(s,a) = E[r(s,a) - r(s)] A(s,a)=E[r(s,a)r(s)]
    其中 r ( s , a ) r(s,a) r(s,a) 是來自狀態 s s s 的動作 a a a 的預期獎勵, r ( s ) r(s) r(s) 是在選擇動作之前整個狀態 s s s 的預期獎勵。它也可以被定義為:
    A ( s , a ) = Q ( s , a ) − V ( s ) A(s,a) = Q(s,a) - V(s) A(s,a)=Q(s,a)V(s)
    其中 Q ( s , a ) Q(s,a) Q(s,a) 是 Q Value, V ( s ) V(s) V(s) 是 Value function.
  • Agent:代理是強化學習問題的學習和動作部分,它試圖最大化環境(environment)給予的獎勵(rewards)。簡單地說,代理就是你試圖設計的模型。
  • Bandits:這些被認為是強化學習任務中最簡單的一種,以 slot-machines 的暱稱 one-armed bandit 命名為 k-Armed Bandits。Bandits 只有一個狀態——考慮的獎勵只是眼前的一個。因此,Bandits 可以被認為是單一狀態的情景(episodes)。每個k-arms都被認為是一個動作,目標是學習在每個動作(或arm-pulling)後最大化預期j獎勵的策略。Contextual Bandits 是一項稍微複雜一點的任務,每個狀態可能不同,並影響動作的結果——因此每次情境都不同。儘管如此,這項任務仍然是一個單一狀態的階段性任務,一個環境不能對其他環境產生影響。
  • Bellman Equation:在形式上,貝爾曼方程定義了給定狀態(或 state-action pair)與其後繼狀態之間的關係。雖然存在許多形式,但在強化學習任務中通常遇到的最常見的形式是最佳 Q-Value 的貝爾曼方程,該方程由下式給出:
    Q ∗ ( s , a ) = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ   m a x a ′ Q ∗ ( s ′ , a ′ ) ] Q^*(s,a) = \sum_{s',r}p(s', r|s,a)[r+\gamma\ max_{a'}Q^*(s',a')] Q(s,a)=s,rp(s,rs,a)[r+γ maxaQ(s,a)]
    不存在不確定性時(意味著概率為1或0):
    Q ∗ ( s , a ) = r ( s , a ) + γ   m a x a ′ Q ∗ ( s ′ , a ′ ) Q^*(s,a) = r(s,a) + \gamma\ max_{a'}Q^*(s',a') Q(s,a)=r(s,a)+γ maxaQ(s,a)
    星號表示最佳值。一些演算法(例如 Q-Learning)將其學習過程作為基礎。
  • Continuous Tasks:強化學習任務不是由情景組成,而是永久存在。此任務沒有終端狀態。為簡單起見,通常假定它們由一個無休止的情景(never-ending episodes)組成。
  • Deep Q-Networks (DQN):See Q-Learning
  • Deep Reinforcement Learning:使用深度神經網路的強化學習演算法作為學習部分的逼近器(approximator)。這通常是為了處理可能的狀態和動作的數量快速變化,並且精確的解決方案不再可行的問題。
  • Discount Factor ( γ γ γ):折扣因子,通常表示為 γ γ γ,是一個乘以未來預期獎勵的因子,在[0,1]的範圍內變化。它控制著未來獎勵相對於眼前獎勵的重要性。折扣因子越低,未來的獎勵就越不重要,代理將傾向專注於只產生即時獎勵的動作。
  • Environment:代理之外的所有部分;代理可以或直接或間接地與之互動的一切。代理執行操作時,環境會發生變化;每一次這樣的變化都被認為是一次狀態轉換。代理執行的每一個動作都會產生代理收到的獎勵。
  • Episode:介於初始狀態和最終狀態之間的所有狀態;例如一局象棋。代理的目標是在一個情景(Episode)內獲得最大的總獎勵。在沒有終態的情況下,考慮無限的情景。重要的是,不同的情景是完全相互獨立的。
  • Episodic Tasks:由不同情景組成的強化學習任務,意味著,每個情景都有最終狀態。
  • Expected Return:有時稱為總體獎勵(overall reward),有時稱為G,是整個情景的預期獎勵。
  • Experience Replay:由於強化學習任務沒有預先生成的可以學習的訓練集,代理必須記錄它遇到的所有狀態轉換,以便以後可以從中學習。用於儲存這些內容的記憶體緩衝區(memory-buffer)通常被稱為 Experience Replay。這些記憶體緩衝區有幾種型別和架構,最常見的是 迴圈記憶體緩衝區(cyclic memory buffer),確保代理保持對其新行為的訓練,而不是對可能不再相關的事情的訓練;另一種是 基於儲存區取樣的記憶體緩衝區(reservoir-sampling-based memory),確保記錄的每個狀態轉換都有均勻的概率插入緩衝區。
  • Exploitation & Exploration:強化學習任務沒有預先生成的訓練集,他們可以從中學習——他們建立自己的經驗並“動態”學習。為了做到這一點,代理需要在許多不同的狀態下嘗試許多不同的動作,以便嘗試和學習所有可用的可能性,並找到使其整體獎勵最大化的路徑,這被稱為探索(Exploitation),因為代理探索環境。另一方面,如果代理所做的只是探索,它將永遠不會最大化整體獎勵——它還必須使用它學到的資訊來這樣做,這被稱為開發(Exploration),因為代理人利用其知識來最大化其獲得的回報。兩者之間的權衡是強化學習問題的最大挑戰之一,因為兩者必須平衡,以便代理既能充分探索環境,又能利用它所學的知識,並重復它發現的最有價值的路徑。
  • Greedy Policy, ε ε ε-Greedy Policy:貪婪策略意味著代理不斷執行被認為能產生最高預期回報的操作。顯然,這樣的策略根本不允許代理進行探索。為了仍然允許一些探索,通常使用ε-貪婪策略:選擇[0,1]範圍內的數字(稱為ε),並且在選擇動作之前,選擇[0,1]範圍內的隨機數。如果該數字大於ε,則選擇貪婪操作;但如果該數字小於ε,則選擇隨機操作。注意,如果ε=0,則策略成為貪婪策略,如果ε=1,則始終探索。
  • k-Armed Bandits: See Bandits
  • Markov Decision Process (MDP):馬爾可夫屬性意味著每個狀態只依賴於它的前一個狀態、從該狀態採取的選定動作以及在該動作執行後立即獲得的獎勵。數學表示為: s ′ = s ′ ( s , a , r ) s' = s'(s, a, r) s=s(s,a,r),其中 s ′ s' s 是未來狀態, s s s 是它的前一個狀態, a a a r r r 是動作和獎勵。不需要事先知道 s s s 之前發生了什麼——馬爾可夫屬性假設 s s s 包含了所有相關資訊。馬爾可夫決策過程是基於這些假設的決策過程。
  • Model-Based & Model-Free:基於模型和無模型是代理在試圖優化其策略時可以選擇的兩種不同方法。最好用一個例子來解釋:假設你正在學習如何玩21點(Blackjack)。你可以通過兩種方式做到這一點:第一種選擇是提前計算,在遊戲開始之前,所有狀態的獲勝概率,以及給定所有可能動作的所有狀態轉移概率(state-transition probabilities),然後簡單地按照你的計算動作。第二種選擇是在沒有任何先驗知識的情況下簡單地執行,利用 試錯法(trial-and-error)獲取資訊。注意,使用第一種方法,是在建模環境,而第二種方法不需要關於環境的資訊。這正是基於模型和無模型的區別;第一種方法是基於模型的,而後者是無模型的。
  • Monte Carlo (MC):蒙特卡羅方法是使用重複隨機抽樣(repeated random sampling)來獲得結果的演算法。它們在強化學習演算法中經常被用來獲得期望值(expected values);例如,通過一次又一次地返回到相同的狀態來計算狀態值函式(state Value function),並對每次收到的實際累積獎勵進行平均。
  • On-Policy & Off-Policy:每個強化學習演算法都必須遵循一些策略,以便決定在每個狀態下執行哪些操作。然而,演算法的學習過程在學習時不必考慮該策略。關注產生過去狀態動作決策的策略的演算法被稱為策略(on-policy)演算法,而忽略它的演算法被稱為無策略(off-policy)演算法。一個眾所周知的無策略演算法是 Q − L e a r n i n g Q-Learning QLearning,因為它的更新規則使用將產生最高 Q-Value 的動作,而實際使用的策略可能會限制該動作或選擇另一個動作。 Q − L e a r n i n g Q-Learning QLearning 的策略變體稱為 S a r s a Sarsa Sarsa,其中更新規則使用遵循的策略選擇的操作。
  • One-Armed Bandits:See Bandits。
  • One-Step TD:See Temporal Difference。
  • Policy ( π π π):策略,記為 π π π π ( a ∣ s ) π(a|s) π(as),是從某個狀態 s s s 到給定該狀態下選擇每個可能動作的概率的對映。例如,貪婪策略為每個狀態輸出具有最高預期 Q-Value 的動作。
  • Q-Learning:Q-Learning 是一種無策略強化學習演算法,被認為是最基本的演算法之一。在其最簡化的形式中,它使用一個表來儲存所有可能的狀態-動作對( state-action pairs)的所有Q-Values。它使用貝爾曼方程(Bellman equation)更新這個表,而動作選擇通常是用 ε-貪婪策略 進行的。最簡單的形式(狀態轉換和預期回報中沒有不確定性)的 Q-Learning 的更新規則是:

Q ( s , a ) = r ( s , a ) + γ   m a x a   Q ( s ′ , a ) Q(s,a) = r(s,a) + \gamma\ max_a\ Q(s', a) Q(s,a)=r(s,a)+γ maxa Q(s,a)

它的一個更復雜的版本 Deep Q-Network variant 更受歡迎,有時簡稱為 Deep Q-Learning 或 Q-Learning。這種變體用神經網路代替了狀態-動作表(state-action table),以便處理大規模任務,其中可能的狀態-動作對的數量可能是巨大的。可以在這裡找到這個演算法的教程。

  • Q Value (Q Function):通常記為 Q ( s , a ) Q(s, a) Q(s,a),有時帶 π π π 下標,有時在Deep RL中表示為 Q ( s , a ; θ ) Q(s, a; θ) Q(s,a;θ),Q Value是對總體預期回報的度量,假設代理處於狀態 s s s 並執行動作 a a a,然後按照某些策略 π π π 繼續執行,直到情景結束。Q 是 Quality 一詞的縮寫,數學上定義為:
    Q ( s , a ) = E [ ∑ n = 0 N γ n r n ] Q(s,a) = E[\sum^N_{n=0}\gamma^n r_n] Q(s,a)=E[n=0Nγnrn]
    其中 N N N 是從狀態 s s s 到結束狀態的狀態數, γ γ γ 是折扣因子, r 0 r^0 r0 是在狀態 s s s 中執行動作 a a a 後立即獲得的獎勵。

  • REINFORCE Algorithms:強化演算法是一類強化學習演算法,它們根據策略相對於策略引數的梯度來更新策略引數。該名稱通常只用大寫字母書寫,因為它最初是原始演算法組設計的首字母縮寫:REward Increment = Nonnegative Factor x Offset Reinforcement x Characteristic Eligibility

  • Reinforcement Learning (RL):與監督學習和無監督學習一樣,強化學習是機器學習和人工智慧的主要領域之一。它與一個任意存在的學習過程有關,這個任意存在被稱為代理(Agent),它周圍的世界被稱為環境(Environment)。代理尋求從環境中獲得最大的回報,並執行不同的動作,以瞭解環境如何響應並獲得更多的回報。RL任務的最大挑戰之一是將動作與延遲獎勵相關聯,延遲獎勵是代理在產生獎勵的動作完成後很久才收到的獎勵。因此,它被大量用於解決不同型別的遊戲,從井字棋、象棋、Atari 2600到圍棋和星際爭霸。

  • Reward:代理從環境中接收的數值,作為對代理操作的直接響應。代理的目標是最大化它在一個情景內獲得的整體獎勵,因此獎勵是代理採取所需行為的動機。所有的動作都會產生獎勵,獎勵可以大致分為三種:強調期望行為的積極獎勵;強調代理應該偏離的行為的消極獎勵;以及零獎勵,這意味著代理沒有做任何特殊或獨特的事情。

  • Sarsa:Sarsa 演算法基本上是Q-Learning演算法,為了使它成為一個線上演算法,做了一些修改。Q-Learning 更新規則基於最佳Q-Value 的貝爾曼方程(Bellman equation),因此在狀態轉換和預期回報沒有不確定性的情況下,Q-Learning 更新規則是:
    Q ( s , a ) = r ( s , a ) + γ   m a x a   Q ( s ′ , a ) Q(s,a) = r(s,a) + \gamma\ max_a\ Q(s', a) Q(s,a)=r(s,a)+γ maxa Q(s,a)
    為了將其轉換為基於策略的演算法,修改了最後一項:
    Q ( s , a ) = r ( s , a ) + γ   Q ( s ′ , a ) Q(s,a) = r(s,a) + \gamma\ Q(s', a) Q(s,a)=r(s,a)+γ Q(s,a)
    這裡,動作 a a a a ’ a’ a 由相同的策略選擇。演算法的名稱源自其更新規則,該規則基於 ( s , a , r , s ’ , a ’ ) (s,a,r,s’,a’) (s,a,r,s,a),所有這些都來自同一個策略。

  • State:代理在環境中遇到的每個場景都被正式稱為狀態。代理通過執行操作在不同狀態之間轉換。還值得一提的是標誌著一集結束的終端狀態。在達到終端狀態後,沒有可能的狀態,新的一集開始了。通常,終端狀態被表示為一種特殊狀態,在這種狀態下,所有動作都轉換到相同的終端狀態,獎勵為0。

  • State-Value Function:See Value Function。

  • Temporal-Difference (TD):時間差分是一種結合動態規劃和蒙特卡羅原理的學習方法;它像蒙特卡洛一樣“在飛行中”學習,但是像動態規劃一樣更新它的估計。最簡單的時域差分演算法之一,稱為一步時域或時域(0)。它根據以下更新規則更新值函式(Value Function):
    V ( s t ) = V ( s t ) + α [ r t + 1 + γ V ( s t + 1 ) − V ( s t ) V(s_t) = V(s_t) + \alpha [r_{t+1} + \gamma V(s_{t+1}) - V(s_t) V(st)=V(st)+α[rt+1+γV(st+1)V(st)
    其中 V V V 是值函式, s s s 是狀態, r r r 是獎勵, γ γ γ 是折扣因子, α α α 是學習率, t t t 是時間步長,等號用作更新運算子,而不是等式。方括號中的術語被稱為 時間差異誤差(temporal difference error)

  • Terminal State:See State。

  • Upper Confident Bound (UCB):UCB是一種探索方法,它試圖確保每個動作都得到很好的探索。考慮一個完全隨機的探索策略——也就是說,每個可能的動作都有相同的被選擇的機會。有些動作很有可能會比其他動作被探索得更多。選擇的動作越少,代理對其預期獎勵的信心就越低,其開發階段就可能受到損害。UCB的探索考慮了每一個動作被選擇的次數,並給那些不太被探索的動作額外的權重。從數學上對此進行形式化,所選擇的動作是通過:
    a c t i o n = a r g m a x a   [ R ( a ) + c l n t N ( a ) ] action = argmax_a\ [R(a) + c\sqrt{\frac{lnt}{N(a)}}] action=argmaxa [R(a)+cN(a)lnt ]
    其中, R ( a ) R(a) R(a) 是動作 a a a 的預期總回報, t t t 是採取的步驟數(總共選擇了多少個動作), N ( a ) N(a) N(a) 是選擇動作 a a a 的次數, c c c 是可配置的超引數。這種方法有時也被稱為 樂觀探索(exploration through optimism),因為它給不太被探索的行為一個更高的價值,鼓勵模型選擇它們。

  • Value Function:價值函式通常表示為 V ( s ) V(s) V(s),有時帶有 π π π 下標,它是對總體預期獎勵的一種度量,假設代理處於狀態 s s s,然後按照某個策略 π π π 繼續執行,直到情景結束。它在數學上定義為:
    V ( s ) = E [ ∑ n = 0 N γ n r n ] V(s) = E[\sum^N_{n=0} \gamma^n r_n] V(s)=E[n=0Nγnrn]
    雖然它看起來確實類似於 Q-Value 的定義,但是有一個隱含的,重要的區別:對於 n = 0 n=0 n=0 V ( s ) V(s) V(s) r 0 r^0 r0 的獎勵是在任何動作被執行之前處於狀態 s s s 的預期獎勵,而在Q-Value中, r 0 r^0 r0 是在某個動作被執行之後的預期獎勵。這種差異也產生了優勢函式(Advantage function)。

相關文章