強化學習之Q learning

2021-08-18 02:06:55 字數 1132 閱讀 1144

三要素:狀態(state),動作(action),獎賞(reward)。更具具體情況自行進行給定。

q更新公式:

q是什麼?動作效用函式(action-utility function),用於評價在某一狀態下採取某個動作的優劣。如果q訓練好了,之後**時就可以按照q進行選擇動作。

詳解q更新函式:

α是學習速率;γ是折扣因子;由公式可知,α控制保留之前效果的比例,α越大,保留之前的訓練效果就越少。r為獎勵,是當前狀態下,進行當前動作的獎勵;maxa q(s』,a)是記憶裡根據當前狀態和動作選擇的下乙個狀態的所有動作裡q值最大的乙個。γ控制眼前利益(r)和記憶裡的利益(maxa q(s』,a))的比例,γ越大,agent越傾向於相信過去,重視以往的經驗,γ越小,則傾向於重視眼前利益。

但是下乙個狀態的下乙個動作如何選擇呢?如果使用greedy貪婪演算法,那麼就只使用經驗(即,exploitation),不會進行探索不同的action。所以就出現了ε-greedy貪婪演算法,該演算法允許agent以一定的概率探索新的action(即exploration)。

ε-greedy貪婪演算法:

賦予agentε概率去探索新的action。具體是:首先找到以往最好的action,賦予概率1-ε,然後對所有的action平分ε概率。

所以選擇下乙個action的一種做法為:

##選擇動作

r = random.random()

s = 0.0

for i in range(len(actions)):

s += pro[i]

if s>= r: return actions[i]

return actions[len(actions)-1]

2018-4-20更新

其實,第二項就是 td error(時間差分誤差)。

強化學習之Q learning演算法

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

強化學習演算法 Q learning

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,其中s...

強化學習 Q learning演算法

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