強化學習演算法 Q learning

2021-10-01 02:08:01 字數 1107 閱讀 8087

q-learning 演算法的步驟:

<1> 給定引數lamda和獎勵矩陣r

<2>令q為0

<3> for each episode

3.1 隨機選擇初始的狀態s

3.2 未達到目標狀態,則執行以下幾步:

(1)在當前狀態s的所有可能行為中選取乙個行為a

(2)按照q(s,a)=r(s,a)+lamda*max,其中s1表示下一時刻的狀態,a1表示下一時刻的動作;

來計算q(s,a);

q-learning演算法的短處:基本的q-learning演算法中智慧型體可以從任意的初始狀態通過自學習得到最優的策略,然而,它需要大量的空間和時間計算和儲存q(s,a),為得到最優值,每乙個q值都需要被遍歷到,為了解決這個問題,現有的研究通常是選擇放棄尋找最優解,而根據已有資訊選擇近似求解方法,乙個通常使用的方法就是根據過去的經驗生成乙個環境模型來產生q值估計的模擬經驗,或者通過神經網路與函式逼近相結合的方法。

dqn(加入了神經網路的q-learning)

(1)神經網路的作用:

將動作和狀態作為神經網路的輸入,經過神經網路的分析之後得到q值,這樣就沒有必要記錄q值;

第二種是輸入狀態值,輸出所有的動作值,然後按照q-learning的原則,直接選擇擁有最大值的動作;

(2)更新神經網路:

神經網路需要訓練才能輸出準確的q值,那麼在rl中怎麼訓練神經網路呢?首先,我們需要a1,a2整的正確的q值,這個q值用之前q-learning中的q現實來代替,同樣,我們還需要乙個q估計來實現神經網路的更新;

(3)dqn的兩大利器:

experience reply:記憶之前的經歷進行學習;

fixed q-targets:在dqn中,使用兩個結構相同但引數不同的神經網路,**q估計的神經網路具備最新的引數,**q現實的神經網路使用的引數是很久之前的。

dqn神經網路

為了使用tensorflow來實現dqn,比較推薦的方式是搭建兩個神經網路:

target-net:用於**q-target,它不會實時更新引數;

evel-net:用於**q-evel,這個神經網路擁有最新的神經網路引數;

強化學習 Q learning演算法

我們以乙個迷宮尋寶的遊戲為例來看什麼是 q learning。在這個遊戲中,agent 從乙個給定的位置開始,即起始狀態。在不穿越迷宮牆壁的前提下,在每個狀態時,都可以選擇上下左右四個方向走一步,或者原地不動,上下左右這四個動作的每乙個都會將 agent 帶到網格的乙個新的單元格,即新的狀態,在迷宮...

強化學習之Q learning演算法

以前在阿里雲上面搭了乙個wordpress部落格,最近快畢業了,阿里雲真的很貴,所以轉到csdn上寫部落格,主要是為了方便以後查詢。q learning演算法是強化學習的一種演算法,強化學習目前主要應用到遊戲中,主要是目的是訓練乙個知道怎麼做才能得到高分的model。強化學習的介紹很多,李巨集毅在上...

強化學習之Q learning

三要素 狀態 state 動作 action 獎賞 reward 更具具體情況自行進行給定。q更新公式 q是什麼?動作效用函式 action utility function 用於評價在某一狀態下採取某個動作的優劣。如果q訓練好了,之後 時就可以按照q進行選擇動作。詳解q更新函式 是學習速率 是折扣...