強化學習 Pytorch篇

2021-10-07 12:50:59 字數 1339 閱讀 3251

首先祭出強化學習中的基礎方法q-learning,演算法流程如下圖所示:

q-learning是乙個不斷摸索,最終找到最優的方法。個人理解是這樣的:

首先q表是乙個初值都為0 的表,被學習體只能隨意摸索。當得到reward之後,乘以學習率 alpha ,更新q表。這樣,在下一次走到這一步的時候,就能夠根據maxq(s』,:)來決定選擇,其 gammar可以理解為眼界,gammar取值為0~1,極端的,當gammar為1時,表示可以看到後續多步的結果;當gammar為0的時候,則表示只能看到眼前的利益。epsilon 表示貪心,假設epsilon為0.9,則表示90%的概率最選擇獲得最大reward的action,10%的概率選擇其他action。這裡選取貪心是為了避免陷入區域性最優的尷尬。而maxq(s』,:)則表示演算法會朝著最快獲得最大reward的方向前進。off-policy

與之相對應的是sarsa演算法,其演算法流程為:

q_learning 和 sarsa演算法很多地方都是相同的構架,不同之處在於q-learning選取max

q(s′

,:)maxq(s',:)

maxq(s

′,:)

,而sarsa則是根據貪婪策略來進行選擇。

sarsa(λ

\lambda

λ)相比於sarsa又多加入了一張**,用以記錄走過的路徑。同時該路徑上的值會隨著每次迭代的進行衰減。所以在演算法上,主程式迴圈不用進行修改,只在更新表的時候,額外在更新乙個路徑**,同時讓路徑**中的值進行衰減即可,演算法流程圖如下圖所示:

前面的演算法都是基於q表的,但是在很多實際例子中,乙個學習需要的狀態很多,或者達到最後reward所需的步驟很多,這都會造成q表逐漸增大。因此,總是基於q表的方法就有些捉襟見肘了,而神經網路確可以很好的完成這個工作,我們需要幹的是給神經網路乙個state,然後讓他自己產生所有的action,然後在結合q-learning演算法即可。

dqn的精華還有乙個fixed-q target, 也就是說使用兩個神經網路,其中乙個動態更新q值,另乙個則隔一定步驟之後在進行copyq值,平常是凍結狀態。q估計採用的是最新的神經網路,q現實採用的是fix_q的神經網路

強化學習篇 強化學習案例詳解一

一 前述 本文通過乙個案例來講解q learning 二 具體 1 案例 假設我們需要走到5房間。轉變為如下圖 先構造獎勵,達到5,即能夠走得5的action則說明獎勵比較高設定成100,沒有達到5說明獎勵比較低,設定成0。q learning實現步驟 2 案例詳解 第一步的q 1,5 最開始的q矩...

強化學習 強化學習基礎

為了應對車載網路中通訊環境快速變化的難題,可以使用強化學習進行解決,這裡對強化學習的基礎進行整理。主要的應用場景為車載網路中資源分配問題。本文源自莫煩python 強化學習章節,有需要請查閱原文 20200413補充了一些內容,來自這篇部落格,是李巨集毅的深度強化學習的筆記。強化學習的主要構成有 a...

強化學習 1 1 0 強化學習介紹

abstract 本文介紹reinforcement learning的具體特點和與其他機器學習演算法不同之處,本文是乙個骨架性的文章,所有專有名詞都保持英文原始單詞,具體內容會在後續中給出詳細解答。keywords reinforcement learning,situation,action,e...