丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能 正文
發(fā)私信給AI研習(xí)社-譯站
發(fā)送

0

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

本文作者: AI研習(xí)社-譯站 2019-01-10 10:32
導(dǎo)語(yǔ):今天我們將學(xué)習(xí) Q-Learning。 Q-Learning 是一種基于數(shù)值的強(qiáng)化學(xué)習(xí)算法。

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 :

Diving deeper into Reinforcement Learning with Q-Learning

作者 | Thomas Simonini

翻譯 | 斯蒂芬?二狗子

校對(duì) | 斯蒂芬?二狗子       審核 | 醬番梨         整理 | 菠蘿妹

原文鏈接:

https://medium.freecodecamp.org/diving-deeper-into-reinforcement-learning-with-q-learning-c18d0db58efe


深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

本文是 Tensorflow 深度強(qiáng)化學(xué)習(xí)課程的一部分。??點(diǎn)擊這里查看教學(xué)大綱

今天我們將學(xué)習(xí) Q-Learning。 Q-Learning 是一種基于數(shù)值的強(qiáng)化學(xué)習(xí)算法。

本文是關(guān)于深度強(qiáng)化學(xué)習(xí)的免費(fèi)系列博客文章的第二部分。有關(guān)更多信息和更多資源,請(qǐng)查看  課程的教學(xué)大綱。 請(qǐng)參閱  此處的第一篇文章。

在本文中,您將學(xué)習(xí):

  • 什么是 Q-Learning

  • 如何用Numpy實(shí)現(xiàn)它


  大圖:騎士和公主

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

假設(shè)你是一名騎士,你需要拯救被困在上面地圖上所示城堡中的公主。

您可以一次移動(dòng)一個(gè)圖塊。敵人不能移動(dòng),但是騎士和敵人落在同一塊地磚上就會(huì)死。目標(biāo)是使騎士盡可能以最快的路線前往城堡。這可以使用“積分”系統(tǒng)來評(píng)估。

騎士每走一步都減去1分 (使用每一步-1策略有助于我們的Agent快速到達(dá)終點(diǎn))。

  • 果 騎士 觸碰一個(gè)敵人,將失去100分,然后這一集結(jié)束。

  • 如果 騎士 在到達(dá)城堡并獲勝,將得到100分。

  • 問題是:如何做才能創(chuàng)建一個(gè)的 Agent 完成這個(gè)任務(wù)?

這里的第一個(gè)策略:讓 Agent 不斷嘗試移動(dòng)到每個(gè)瓷磚上,然后為每個(gè)瓷磚著色。綠色表示“安全”,紅色表示“不安全”。

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

相同的地圖,但著色顯示哪些瓷磚可以安全訪問

然后,我們可以告訴 Agent 只在綠色瓷磚上移動(dòng)。

但問題是這樣做并沒有對(duì)問題有幫助。當(dāng)綠色瓷磚彼此相鄰時(shí),我們無(wú)法分辨哪個(gè)瓷磚更好。所以 Agent 在試圖找到城堡過程會(huì)因此陷入死循環(huán)!


  介紹Q表

這是第二個(gè)策略:創(chuàng)建一個(gè)表格,我們將計(jì)算每種狀態(tài) state 下采取的每種行動(dòng) action的最大的未來預(yù)期獎(jiǎng)勵(lì)。

多虧了這個(gè)策略,我們將知道對(duì)每種狀態(tài)采取的最佳行動(dòng)是什么。

每個(gè) state(瓷磚片)允許四種可能的動(dòng)作。它們分別是向左,向右,向上或向下移動(dòng)。

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

0表示不可以執(zhí)行的動(dòng)作(如果你在左上角你不能向左或向上!)

在計(jì)算方面,我們可以將此網(wǎng)格轉(zhuǎn)換為表格。

這個(gè)表格被稱為 Q 表(“Q”表示動(dòng)作的“質(zhì)量”)。列表示是四個(gè)動(dòng)作(左,右,上,下)。行表示的是狀態(tài)。每個(gè)單元格的值將是該給定狀態(tài)和行動(dòng)的最大未來預(yù)期獎(jiǎng)勵(lì)。

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

如果在 state 狀態(tài)下給定的行動(dòng) action 是最佳策略,那么每個(gè) Q 表評(píng)分為未來獎(jiǎng)勵(lì)的最大期望。

為什么我們說“根據(jù)策略給出?”這是因?yàn)槲覀儾荒苤苯咏o出這種策略。而是通過改進(jìn)我們的 Q 表以始終選擇最佳行動(dòng) action。

可以把這個(gè) Q-table 認(rèn)為是一個(gè)游戲的“備忘單”。通過找到“備忘單”行中的最高分,我們知道每個(gè)狀態(tài)(Q 表中的每一行)最好的行動(dòng)是什么。  

Yeah!我們解決了城堡問題!但是等等......我們?nèi)绾斡?jì)算 Q 表中每個(gè)元素的值?  

要給出此 Q 表的每個(gè)值,可以使用 Q-learning 算法。  


  Q學(xué)習(xí)算法:學(xué)習(xí)動(dòng)作值函數(shù)

動(dòng)作值函數(shù)(或“ Q 函數(shù)”)有兩個(gè)輸入:“狀態(tài)”和“動(dòng)作”。它返回該動(dòng)作在該狀態(tài)下的預(yù)期未來獎(jiǎng)勵(lì)。

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

我們可以把這個(gè) Q 函數(shù)作為一個(gè)閱讀指南,通過滾動(dòng) Q 表找到與我們的狀態(tài)相關(guān)的行,以及與我們的動(dòng)作相關(guān)聯(lián)的列。它返回匹配的 Q 值。這個(gè)值就是“預(yù)期的未來獎(jiǎng)勵(lì)”。

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

在我們探索環(huán)境之前,Q 表中的值是固定的初始值(一般為0)。在我們探索環(huán)境時(shí),通過使用Bellman方程迭代更新Q(s,a),Q 表中的值將趨近于更好(見下文?。?nbsp; 


  Q學(xué)習(xí)算法過程

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

Q-Learning算法的偽代碼

步驟1:初始化Q值

我們構(gòu)建一個(gè)Q表,有  m 列  (m = 行動(dòng)數(shù))和  n  行(n =狀態(tài)數(shù))。我們將值初始化為0。

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)


第2步:終身學(xué)習(xí)(或直到學(xué)習(xí)停止)

該過程將重復(fù)步驟3到5,直到算法運(yùn)行次數(shù)為的 episode 的最大值(由用戶指定)或直到我們手動(dòng)停止訓(xùn)練。


步驟3:選擇操作

根據(jù)當(dāng)前的Q值 選擇 當(dāng)前狀態(tài)下行動(dòng) Action  a。

但是......如果每個(gè)Q值都是零,那么在該采取什么行動(dòng)?

這就是我們?cè)谏弦黄恼轮姓劦降奶剿?使用權(quán)衡的重要性。

我們的想法是,在開始時(shí),我們將使用epsilon貪心策略:

  • 我們指定一個(gè)探索率“epsilon”,我們?cè)陂_始時(shí)設(shè)置為1,即隨機(jī)執(zhí)行的step的速度。剛開始學(xué)習(xí)時(shí),這個(gè)速率必須是最高值,因?yàn)槲覀儗?duì)Q表的取值一無(wú)所知。這意味著我們需要通過隨機(jī)選擇我們的行動(dòng)進(jìn)行大量探索。

  • 生成一個(gè)隨機(jī)數(shù)。如果這個(gè)數(shù)字> epsilon,那么我們將進(jìn)行“ 使用”(這意味著我們使用已知的方法來選擇每一步的最佳動(dòng)作)。否則,我們會(huì)進(jìn)行探索。

  • 我們的想法是,在Q函數(shù)訓(xùn)練開始時(shí)我們必須有一個(gè)較大的epsilon。然后,隨著Agent變得做得越來越好,逐漸減少它。


深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)


步驟4-5:評(píng)估!

采取行動(dòng)action a  并觀察結(jié)果狀態(tài) s' 和獎(jiǎng)勵(lì) r。 并更新函數(shù)Q(s,a)。

我們采取我們?cè)诓襟E3中選擇的操作,然后執(zhí)行此操作將返回一個(gè)新的狀態(tài)s'和獎(jiǎng)勵(lì)r(正如我們?cè)诘谝黄恼轮械目吹降膹?qiáng)化學(xué)習(xí)過程那樣)。

然后,使用Bellman方程更新Q(s,a):

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

更新Q(state,action)代碼可以寫成如下所示:

New Q value =
  Current Q value +
  lr * [Reward + discount_rate * (highest Q value between possible actions from the new state s’ ) — Current Q value ]

我們來舉個(gè)例子:

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

  • 一個(gè)奶酪= +1

  • 兩個(gè)奶酪= +2

  • 大堆奶酪= +10(劇集結(jié)束)

  • 如果吃到鼠毒= -10(劇集結(jié)束)


第1步:初始化Q表

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

初始化的Q表


步驟2:選擇操作  
從起始位置,您可以選擇向右還是向下。我們有一個(gè)大的epsilon率(因?yàn)槲覀儗?duì)環(huán)境一無(wú)所知),采用隨機(jī)選擇的方式。例如......向右移動(dòng)。

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

我們采用隨機(jī)移動(dòng)(例如,右)

發(fā)現(xiàn)了一塊奶酪(+1),則更新的Q值并記錄向右的行動(dòng)。通過Bellman方程來進(jìn)行計(jì)算。


步驟4-5:更新Q函數(shù)

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

  • 首先,計(jì)算Q值的變化ΔQ(start, right)

  • 然后將Q值與ΔQ(start, right)的和乘以學(xué)習(xí)率。

學(xué)習(xí)率可以看視為該學(xué)習(xí)網(wǎng)絡(luò)更新Q值的速度。如果學(xué)習(xí)率為1,則新估計(jì)值將是新的Q值。

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

更新后的Q表

好!我們剛剛更新了我們的第一個(gè)Q值?,F(xiàn)在我們需要一次又一次地這樣做,直到學(xué)習(xí)停止。


  實(shí)現(xiàn)Q學(xué)習(xí)算法

我們制作了一個(gè)視頻,我們實(shí)現(xiàn)了一個(gè)學(xué)習(xí)與Numpy一起玩Taxi-v2的Q學(xué)習(xí)代理。

使用numpy和OpenAI Taxi-v2?進(jìn)行Q學(xué)習(xí)(教程)

現(xiàn)在我們知道Q-Learning是如何工作的,我們將逐步實(shí)現(xiàn)Q學(xué)習(xí)算法。代碼的每個(gè)部分在下面的Jupyter筆記本中都能找到。

您可以在Deep Reinforcement Learning Course repo中訪問它  。

或者您可以直接在Google Colaboratory上訪問它:

Q-learning實(shí)現(xiàn)Frozen Lake

colab.research.google.com  


  回顧......

  • Q-learning是一種基于數(shù)值的強(qiáng)化學(xué)習(xí)算法,用于使用q函數(shù)找到最優(yōu)的動(dòng)作選擇策略。

  • 它根據(jù)動(dòng)作值函數(shù)評(píng)估要采取的動(dòng)作,該動(dòng)作值函數(shù)確定處于某種狀態(tài)的值并在該狀態(tài)下采取某種動(dòng)作。

  • 目標(biāo):最大化Q函數(shù)(給定狀態(tài)和行動(dòng)的預(yù)期未來獎(jiǎng)勵(lì))。

  • Q表幫助我們找到每個(gè)狀態(tài)的最佳行動(dòng)。

  • 通過選擇所有可能的最佳行動(dòng)來最大化預(yù)期獎(jiǎng)勵(lì)。

  • Q表示來自特定狀態(tài)下某個(gè)動(dòng)作的質(zhì)量。

  • 函數(shù)Q(state, action) → return該狀態(tài)下該動(dòng)作的預(yù)期未來獎(jiǎng)勵(lì)。

  • 可以使用Q學(xué)習(xí)來估計(jì)該函數(shù),Q學(xué)習(xí)使用Bellman方程迭代地更新Q(s,a)

  • 在我們探索環(huán)境之前:Q表給出了相同的任意值進(jìn)行初始化→但是當(dāng)我們探索環(huán)境時(shí)→Q給了我們更好的近似值。

就這樣!不要忘記自己實(shí)現(xiàn)代碼的每個(gè)部分 - 嘗試修改我給你的代碼非常重要。

嘗試添加epoch,改變學(xué)習(xí)速度,并使用更復(fù)雜的環(huán)境(例如使用8x8瓷磚的Frozen-lake)。玩得開心!

下次我們將開展深度Q學(xué)習(xí),這是2015年深度強(qiáng)化學(xué)習(xí)的最大突破之一。我們將訓(xùn)練一個(gè)智能體玩Doom,并殺掉敵人!


想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻(xiàn)?

長(zhǎng)按鏈接點(diǎn)擊打開或點(diǎn)擊底部【深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)】:

https://ai.yanxishe.com/page/TextTranslation/1394


AI研習(xí)社每日更新精彩內(nèi)容,觀看更多精彩內(nèi)容:雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

【點(diǎn)擊跳轉(zhuǎn)】深度強(qiáng)化學(xué)習(xí)從入門到大師:簡(jiǎn)介篇(第一部分)

用PyTorch來做物體檢測(cè)和追蹤

用 Python 做機(jī)器學(xué)習(xí)不得不收藏的重要庫(kù)

初學(xué)者怎樣使用Keras進(jìn)行遷移學(xué)習(xí)

一文帶你讀懂 WaveNet:谷歌助手的聲音合成器

等你來譯:

強(qiáng)化學(xué)習(xí):通往基于情感的行為系統(tǒng) 

如何用Keras來構(gòu)建LSTM模型,并且調(diào)參 

高級(jí)DQNs:利用深度強(qiáng)化學(xué)習(xí)玩吃豆人游戲

用于深度強(qiáng)化學(xué)習(xí)的結(jié)構(gòu)化控制網(wǎng)絡(luò) (ICML 論文講解)


雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

深度強(qiáng)化學(xué)習(xí)從入門到大師:通過Q學(xué)習(xí)進(jìn)行強(qiáng)化學(xué)習(xí)(第二部分)

分享:
相關(guān)文章

知情人士

AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識(shí),讓語(yǔ)言不再成為學(xué)習(xí)知識(shí)的門檻。(原雷鋒字幕組)
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說