【轉】強化學習(二)
原文地址:https://www.hhyz.me/2018/08/13/2018-08-13-RL2/
強化學習(RL,基於MDP)的求解policy的方式一般分為三種:
- Value <—critic
- Policy <—actor
- Value + Policy <— Actor-critic
策略梯度
強化學習是一個通過獎懲來學習正確行為的機制. 家族中有很多種不一樣的成員, 有學習獎懲值, 根據自己認為的高價值選行為, 比如 Q learning, Deep Q Network, 也有不通過分析獎勵值, 直接輸出行為的方法, 這就是今天要說的 Policy Gradients 了. 甚至我們可以為 Policy Gradients 加上一個神經網路來輸出預測的動作. 對比起以值為基礎的方法, Policy Gradients 直接輸出動作的最大好處就是, 它能在一個連續區間內挑選動作, 而基於值的, 比如 Q-learning, 它如果在無窮多的動作中計算價值, 從而選擇行為, 這, 它可吃不消.
有了神經網路當然方便, 但是, 我們怎麼進行神經網路的誤差反向傳遞呢? Policy Gradients 的誤差又是什麼呢? 答案是! 哈哈, 沒有誤差! 但是他的確是在進行某一種的反向傳遞. 這種反向傳遞的目的是讓這次被選中的行為更有可能在下次發生. 但是我們要怎麼確定這個行為是不是應當被增加被選的概率呢? 這時候我們的老朋友, reward 獎懲正可以在這時候派上用場,
現在我們來演示一遍, 觀測的資訊通過神經網路分析, 選出了左邊的行為, 我們直接進行反向傳遞, 使之下次被選的可能性增加, 但是獎懲資訊卻告訴我們, 這次的行為是不好的, 那我們的動作可能性增加的幅度 隨之被減低. 這樣就能靠獎勵來左右我們的神經網路反向傳遞. 我們再來舉個例子, 假如這次的觀測資訊讓神經網路選擇了右邊的行為, 右邊的行為隨之想要進行反向傳遞, 使右邊的行為下次被多選一點, 這時, 獎懲資訊也來了, 告訴我們這是好行為, 那我們就在這次反向傳遞的時候加大力度, 讓它下次被多選的幅度更猛烈! 這就是 Policy Gradients 的核心思想了. 很簡單吧.
Policy gradient 是 RL 中另外一個大家族, 他不像 Value-based 方法 (Q learning, Sarsa), 但他也要接受環境資訊 (observation), 不同的是他要輸出不是 action 的 value, 而是具體的那一個 action, 這樣 policy gradient 就跳過了 value 這個階段. 而且個人認為 Policy gradient 最大的一個優勢是: 輸出的這個 action 可以是一個連續的值, 之前我們說到的 value-based 方法輸出的都是不連續的值, 然後再選擇值最大的 action. 而 policy gradient 可以在一個連續分佈上選取 action.
介紹的 policy gradient 的第一個演算法是一種基於 整條回合資料 的更新, 也叫 REINFORCE 方法. 這種方法是 policy gradient 的最基本方法, 有了這個的基礎, 我們再來做更高階的.
log(Policy(s,a))*V
中的 log(Policy(s,a))
表示在 狀態 s
對所選動作 a
的吃驚度, 如果 Policy(s,a)
概率越小, 反向的 log(Policy(s,a))
(即 -log(P)
) 反而越大. 如果在 Policy(s,a)
很小的情況下, 拿到了一個 大的 R
, 也就是 大的 V
, 那 -log(Policy(s, a))*V
就更大, 表示更吃驚, (我選了一個不常選的動作, 卻發現原來它能得到了一個好的 reward, 那我就得對我這次的引數進行一個大幅修改). 這就是 log(Policy)*V
的物理意義啦
策略梯度
Actor Critic
我們有了像 Q-learning 這麼偉大的演算法, 為什麼還要瞎折騰出一個 Actor-Critic? 原來 Actor-Critic 的 Actor 的前生是 Policy Gradients, 這能讓它毫不費力地在連續動作中選取合適的動作, 而 Q-learning 做這件事會癱瘓. 那為什麼不直接用 Policy Gradients 呢? 原來 Actor Critic 中的 Critic 的前生是 Q-learning 或者其他的 以值為基礎的學習法 , 能進行單步更新, 而傳統的 Policy Gradients 則是回合更新, 這降低了學習效率.
結合了 Policy Gradient (Actor) 和 Function Approximation (Critic) 的方法. Actor 基於概率選行為, Critic 基於 Actor 的行為評判行為的得分, Actor 根據 Critic 的評分修改選行為的概率.
或者說詳細點, 就是 Actor 在運用 Policy Gradient 的方法進行 Gradient ascent 的時候, 由 Critic 來告訴他, 這次的 Gradient ascent 是不是一次正確的 ascent, 如果這次的得分不好, 那麼就不要 ascent 那麼多.