1. 程式人生 > >強化學習的方法總結與分類

強化學習的方法總結與分類

        強化學習中有多種不同的方法,比如說比較知名的控制方法 Q learning,Policy Gradients,還有基於對環境的理解的 model-based RL 等等。瞭解強化學習中常用到的幾種方法,以及他們的區別, 對我們根據特定問題選擇方法時很有幫助。接下來我們通過分類的方式來了解他們的區別。

        第一種分類方法可分為不理解環境(Model-Free RL)和理解環境(Model-Based RL),其區別如下:

Model-Free RL Model-Based RL
描述

從環境中得到反饋然後學習

只能按部就班, 一步一步等待真實世界的反饋, 再根據反饋採取下一步行動.

可建立虛擬模型,事先理解環境,進行偽現實世界建模

可通過想象來預判斷接下來將要發生的所有情況. 然後選擇這些想象情況中最好的那種

主要方法 Q learning,Sarsa,Policy Gradients Q learning,Sarsa,Policy Gradients

        第二種分類方法可分為基於概率(Policy-Based RL)和 基於價值(Value-Based RL),其區別如下:

Policy-Based RL Value-Based RL
描述

最直接, 可通過感官分析所處的環境, 直接輸出下一步要採取的各種動作的概率, 然後根據概率採取行動, 所以每種動作都有可能被選中, 只是可能性不同

可利用概率分佈在連續動作中選取特定動作

輸出所有動作的價值, 根據最高價值來選擇動作

對於選取連續的動作無能為力

主要方法 Policy Gradients,... Q learning,Sarsa,...

        我們還能結合這兩類方法的優勢之處, 創造更牛逼的一種方法, 叫做 Actor-Critic , actor 會基於概率做出動作, 而 critic 會對做出的動作給出動作的價值, 這樣就在原有的 policy gradients 上加速了學習過程.

         第三種分類方法可分為回合更新(Monte-Carlo update)和單步更新(Temporal-Difference update),其區別如下:

Monte-Carlo update Temporal-Difference update
描述 例如玩遊戲時,從開始到結束一整個回合更新一次 相當於在遊戲過程中每一步都進行更新
主要方法 基礎版Policy Gradients,Monte-Carlo learning Q learning,Sarsa,升級版Policy Gradients

        因為單步更新更有效率, 所以現在大多方法都是基於單步更新.

        第四種分類方法可分為線上學習(On-Policy)和離線學習(Off-Policy),其區別如下:

On-Policy Off-Policy
描述 必須本人在場,且本人邊玩邊學習

可以選擇自己玩或者看著別人玩,後者學習別人的行為準則

不必要邊玩邊學習, 可以儲存下記憶, 再通過離線學習來學習之前的記憶.

主要方法 Sarsa,Sarsa(入) Q learning,Deep-Q-Network