增強學習(強化學習)算例之Q learning

2021-08-19 23:08:48 字數 909 閱讀 2610

我認為本文是學習率為1的q-learning。為什麼這麼講呢?

根據q-learning演算法:

程式設計師們有些什麼好玩兒的程式分享? - 嶽大禹的回答

看到這道題題主希望用簡單的例子介紹q-learning,於是就想通過小鳥的例子,介紹一下q-learning的過程。

提到q-learning,我們需要先了解q的含義。

例如: 那麼這個q是怎麼訓練得來的呢,貼一段偽**。

repeat (for each episode): //每一次遊戲,從小鳥出生到死亡是乙個episode

initialize s //小鳥剛開始飛,s為初始位置的狀態

repeat (for each step of episode):

根據當前q和位置s,使用一種策略,得到動作a //這個策略可以是ε-greedy等

做了動作a,小鳥到達新的位置s',並獲得獎勵r //獎勵可以是1,50或者-1000

q(s,a) ← (1-α)*q(s,a) + α*[r + γ*maxq(s',a)] //在q中更新s

s ← s'

until s is terminal //即到小鳥死亡為止

1.「根據當前q和位置s,使用一種策略,得到動作a,這個策略可以是ε-greedy等。」

這裡便是題主所疑惑的問題,如何在探索與經驗之間平衡?假如我們的小鳥在訓練過程中,每次都採取當前狀態效用值最大的動作,那會不會有更好的選擇一直沒有被探索到?小鳥一直會被桎梏在以往的經驗之中。而假若小鳥在這裡每次隨機選取乙個動作,會不會因為探索了太多無用的狀態而導致收斂緩慢?

以此也可以看出,q-learning並非每次迭代都沿當前q值最高的路徑前進。

根據上面的偽**,就可以寫出q-learning的**了。

再看房間探索的乙個例子,我認為這個是學習率為1 :

具體**實現:

強化學習 強化學習基礎

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

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

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

強化學習之Q learning

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