強化學習七天打卡營學習筆記

2021-10-07 10:51:34 字數 3267 閱讀 5647

強化學習七天打卡營學習筆記

一、rl分類

根據環境是否可知可以分為 model-based rl & model-free rl,基於模型的rl的和無模型的rl;

按照學習目標可分為value-based & policy-based;

按照學習方式可以分為on-policy & off-policy

二、強化學習的演算法和環境

經典演算法:q-learning、sarsa、dqn、policy gradient、a3c、ddpg、ppo

環境分類:離散控制場景(輸出動作可數)、連續控制場景(輸出動作值不可數)

強化學習經典環境庫gym將環境互動介面規範化為:重置環境reset()、互動step()、渲染render()

強化學習框架庫parl將強化學習框架抽象為model、algorithm、agent三層,使得強化學習演算法的實現和除錯更方便和靈活。

三、七天的強化學習,主要體驗了如下幾種強化學習演算法:

1. sarsa 簡介

sarsa全稱是state-action-reward-state』-action』,目的是學習特定的state下,特定action的價值q,最終建立和優化乙個q**,以state為行,action為列,根據與環境互動得到的reward來更新q**,更新公式為:

sarsa在訓練中為了更好的探索環境,採用ε-greedy方式來訓練,有一定概率隨機選擇動作輸出。

【sarsa實戰】使用sarsa解決懸崖問題,找到繞過懸崖通往終點的路徑。–【離散狀態-離散動作】

相關理論和**實現講解可參考文後鏈結。

2.q-learning簡介

q-learning也是採用q**的方式儲存q值(狀態動作價值),決策部分與sarsa是一樣的,採用ε-greedy方式增加探索。

q-learning跟sarsa不一樣的地方是更新q**的方式。

sarsa是on-policy的更新方式,先做出動作再更新。

q-learning是off-policy的更新方式,更新learn()時無需獲取下一步實際做出的動作next_action,並假設下一步動作是取最大q值的動作。

q-learning的更新公式為:

**【q-learning實戰】**使用q-learning解決懸崖問題,找到繞過懸崖通往終端的最短路徑。–【離散狀態-離散動作】,與sarsa演算法相比,q-learning更大膽一些。

【上述兩種方法都是基於**型方法求解rl,適用於離散狀態-離散動作的問題場景】

3. dqn簡介

上節課介紹的**型方法儲存的狀態數量有限,當面對圍棋或機械人控制這類有數不清的狀態的環境時,**型方法在儲存和查詢效率上都受侷限,dqn的提出解決了這一侷限,使用神經網路來近似替代q**。

本質上dqn還是乙個q-learning演算法,更新方式一致。為了更好的探索環境,同樣的也採用ε-greedy方法訓練。

在q-learning的基礎上,dqn提出了兩個技巧使得q網路的更新迭代更穩定。

經驗回放 experience replay:主要解決樣本關聯性和利用效率的問題。使用乙個經驗池儲存多條經驗s,a,r,s』,再從中隨機抽取一批資料送去訓練。

固定q目標 fixed-q-target:主要解決演算法訓練不穩定的問題。複製乙個和原來q網路結構一樣的target q網路,用於計算q目標值。

**【dqn實踐】**使用dqn解決cartpole問題,移動小車使得車上的擺桿倒立起來。【狀態連續問題】

4.策略梯度方法求解rl——policy gradient

在強化學習中,有兩大類方法,一種基於值(value-based),一種基於策略(policy-based)

value-based的演算法的典型代表為q-learning和sarsa,將q函式優化到最優,再根據q函式取最優策略。

policy-based的演算法的典型代表為policy gradient,直接優化策略函式。

採用神經網路擬合策略函式,需計算策略梯度用於優化策略網路。

優化的目標是在策略π(s,a)的期望回報:所有的軌跡獲得的回報r與對應的軌跡發生概率p的加權和,當n足夠大時,可通過取樣n個episode求平均的方式近似表達。

優化目標對引數θ求導後得到策略梯度:

【policy gradient實踐】—reinforce演算法,使用reinforce解決 連續控制版本的cartpole問題,向小車提供推力使得車上的擺桿倒立起來【連續動作空間,連續狀態空間】。

5.ddpg簡介

(1)ddpg的提出動機其實是為了讓dqn可以擴充套件到連續的動作空間。

(2)ddpg借鑑了dqn的兩個技巧:經驗回放 和 固定q網路。

(3)ddpg使用策略網路直接輸出確定性動作。

(4)ddpg使用了actor-critic的架構。

2.強化學習入門(二)強化學習mdp四元組,q**的概念和更新策略

強化學習演算法 sarsa 解迷宮遊戲,**逐條詳解

3.強化學習演算法 dqn 解決 cartpole 問題,**逐條詳解

強化學習入門(三)將神經網路引入強化學習,經典演算法 dqn

強化學習演算法 policy gradient 解決 cartpole 問題,**逐條詳解

4.強化學習入門(四)策略梯度方法 policy gradient 求解強化學習問題

強化學習演算法 ddpg 解決 cartpole 問題,**逐條詳解,內含ddpg演算法,和小車-擺桿連續環境模型,class continuouscartpoleenv(gym.env):

5.強化學習入門(五)連續動作空間內,使用ddpg求解強化學習問題

強化學習演算法 ddpg 解決 cartpole 問題,**逐條詳解

PaddlePaddle深度學習七天打卡營學習心得

第一天打卡是乙個新冠疫情視覺化的專案,主要是爬取丁香園的統計資料並使用pyecharts繪製疫情分布圖。這個python的小專案讓我學習到了pyecharts這個強大的視覺化工具,可以將各種圖表優雅地呈現出來。pycharts api可參考 接下來三天都是影象識別相關的專案,分別是手勢識別,車牌識別...

強化學習7日打卡營學習總結和心得

課程收穫 在科科老師的講解下,了解到了強化學習的應用,了解到了基於價值的方法 saras,q learning 和基於策略的方法 reinforce演算法 還有應用在連續動作空間的演算法 ddpg 其中ddpg演算法和reinforce演算法還需要多看看起數學原理。強化學習個人感悟 強化學習就像是在...

Datawhale深度強化學習打卡

2.1策略迭代 有兩個步驟,第一步包括策略評估和策略優化,第二部進行策略的優化,代表演算法是sarsa 2.2值迭代 一直只進行bellman optimality equation,迭代出optimal value function後只做一次policy update。代表演算法是q learni...