強化初學筆記

lordimylife發表於2020-10-20


強化學習和監督學習不同,強化學習討論的問題是一個 智慧體(agent) 怎麼在一個複雜不確定的環境(environment)裡面去極大化它能獲得的獎勵,它可能會在狀態間隨機變換以獲得最優獎勵(reward)。它由兩部分組成:agent 和environment。

​ 在強化學習過程中,agent 跟environment 一直在互動。Agent 在環境裡面獲取到狀態,agent 會利用這個狀態輸出一個 action,一個決策。然後這個決策會放到環境之中去,環境會通過這個 agent 採取的決策,輸出下一個狀態以及當前的這個決策得到的獎勵。Agent 的目的就是為了儘可能多地從環境中獲取獎勵。

對於一個強化學習 agent,它有如下組成成分:

  1. 首先 agent 有一個 policy function ,agent 會用這個函式來選取下一步的動作。
  2. 然後它也可能生成一個 價值函式(value function) 。我們用價值函式來對當前狀態進行估價,它就是說你進入現在這個狀態,可以對你後面的收益帶來多大的
    影響。當這個價值函式大的時候,說明你進入這個狀態越有利。
  3. 另外一個組成成分是 模型(model) 。模型表示了 agent 對這個環境的狀態進行了理解,它決定了這個世界是如何進行的。

Policy 決定了這個 agent 的行為,它其實是一個函式,把輸入的狀態變成行為。這裡有兩種 policy:

  1. 一種是 stochastic policy(隨機性策略)。當你輸入一個狀態 的時候,輸出是一個概率。這個概率就是你所有行為的一個概率,然後你可以進一步對這個概率分佈進行取樣,得到真實的你採取的行為。比如說這個概率可能是有 70% 的概率往左,30% 的概率往右,那麼你通過取樣就可以得到一個 action。
  2. 一種是 deterministic policy(確定性策略) ,就是說你這裡有可能只是採取它的極大化,採取最有可能的動作。你現在這個概率就是事先決定好的。

​ Value Function價值函式是一個折扣的未來獎勵的加和,就是你通過進行某一種行為,然後你未來得到多大的獎勵。

​ 第三個組成部分是模型Model,模型決定了下一個狀態會是什麼樣的,就是說下一步的狀態取決於你當前的狀態以及你當前採取的行為。它由兩個部分組成,一個是probability,它這個轉移狀態之間是怎麼轉移的。另外是這個獎勵函式,當你在當前狀態採取了某一個行為,可以得到多大的獎勵。

根據強化學習 agent 的不同,我們可以把 agent 進行歸類。

  1. 基於價值函式的 agent。這一類 agent 顯式地學習的是價值函式,隱式地學習了它的策略。因為這個策略是從我們學到的價值函式裡面推算出來的。
  2. 基於策略的 agent,它直接去學習 policy,就是說你直接給它一個 state,它就會輸出這個動作的概率。在這個 policy-based agent 裡面並沒有去學習它的價值函式。
  3. 另外還有一種 agent 是把這兩者結合,把 value-based 和 policy-based 結合起來就有了 Actor-Critic agent 。這一類 agent 就把它的策略函式和價值函式都學習
    了,然後通過兩者的互動得到一個最佳的行為。

另外,我們是可以通過 agent 到底有沒有學習這個環境模型來分類。

  1. 第一種是 model-based(有模型) RL agent,它通過學習這個狀態的轉移來採取措施。
  2. 另外一種是 model-free(免模型) RL agent,它沒有去直接估計這個狀態的轉移,也沒有得到環境的具體轉移變數。它通過學習 value function 和 policy function
    進行決策。這種 model-free 的模型裡面沒有一個環境轉移的一個模型。

在強化學習裡面, Exploration 和 Exploitation 是兩個很核心的問題。

  1. Exploration 是說我們怎麼去探索這個環境,通過嘗試不同的行為來得到一個最佳的策略,得到最大獎勵的策略。
  2. Exploitation 是說我們不去嘗試新的東西,就採取已知的可以得到很大獎勵的行為。

相關文章