強化學習一:模型基礎


本文介紹強化學習的基本概念及建模方法

什么是強化學習

強化學習主要解決貫續決策問題,強調一個智能體在不斷的跟環境交互的過程中通過優化策略從而在整個交互過程中獲得最多的回報。

圖中的大腦代表智能體agent,智能體根據當前環境\(s_t\)
選擇一個動作\(a_t\)執行,這個\(a_t\)作用於當前環境后,環境產生變化轉換到\(s_{t+1}\),同時環境給出一個針對當前動作的即時獎勵\(r_t\),然后智能體再根據最新的狀態選出一個新的動作去執行,循環往復,最終的目的是在整個決策流程中獲得最大數目的獎勵。

強化學習是怎么建模的

咱們通過一個井字棋的小游戲來說說強化學習的幾個基本概念,從而弄清楚RL的基本建模方法

如圖,游戲規則很簡單,在一個3x3的九宮格里,兩人輪流下子,誰的子最先形成三個一橫或者一豎或者一斜,就誰贏。以下引出RL的幾個建模要素:

  1. 環境的狀態\(S_t\)。這個游戲總共九個格子,每個格子有3種狀態,那么在一開始的狀態空間大小約為\(3^9=19683\),其后隨着游戲的進行狀態空間不斷變小。
  2. 動作空間\(A_t\)。共9個格子,每次落一子,故狀態空間為大小為9,且隨着游戲進行不斷變小。
  3. 環境的獎勵\(R_t\)。這個一般我們自己根據不同的的場景去設置,在這個游戲場景當中,我們設定如果當前這一步棋導致贏棋,那么給出針對這一步的獎勵為1,反之輸棋為0。若不輸不贏,則先手棋者得0.05,后手棋者得0.1。
  4. 執行策略π,也就是智能體執行動作依據的策略。通常用π(a|s)=\(P(A_t=a|S_t=s)\)來表示,即在當前狀態s的情況下,采取動作a的概率。
  5. 在當前狀態和策略下,采取某動作后的價值\(v_{\pi}(s)\)。當采取動作a后雖然給了一個瞬時獎勵r,但這個r病不能代表這個動作所帶來的真正價值。比如下象棋,當前這一步吃對方一個馬,瞬時獎勵很高,但因為這一步的行動導致后面策略丟帥輸棋了,那么這個動作的價值其實不是很高。那么一個動作的價值該怎么表示呢?答案就是瞬時獎勵+延時獎勵。一般用下面公式來表示:
    \(v_{\pi}(s) = E_{\pi}(R_{t+1} + {\gamma}R_{t+1} + {\gamma}^2R_{t+1} + ... |S_t=s)\)
  6. \({\gamma}\)。沒錯,就是上面那公式里的那個gamma,表示獎勵的折扣率,從公式上可以看出,離當前時間越遠的動作所導致的獎勵權重會越小。當取值為0時,說明價值僅由當前動作決定,當取值為1時,當前動作與后續動作帶來的獎勵同等重要。大多數時候,其取值在0到1之間,即瞬時獎勵的比重要大過后續的獎勵比重。
  7. 環境的狀態轉移模型\(P_{ss'}^a = P(S_{t+1}=s'| S_t=s, A_t=a)\)。用人話講就是在當前狀態下采取某動作后,環境的狀態轉向另一個狀態的概率分布。對於離散狀態空間來說就是一個狀態轉移概率矩陣,對於連續轉台空間來說,就是一個轉台轉移概率分布。
  8. 探索率\({\epsilon}\),這個字母的讀音是:艾普西隆。這個比率指在訓練中我們多大比例去執行策略給出的可以使價值最大化的動作,有多大的比率去隨機選擇一個動作探索未發現的空間。主要防止模型陷入過擬合。
以上就是強化學習建模的基本要素,當然不同的強化學習策略所用到的元素也不一樣。后面咱們再一一介紹。下節介紹馬爾科夫性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM