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

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

0

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

本文作者: AI研習社-譯站 2019-01-10 10:32
導語:今天我們將學習 Q-Learning。 Q-Learning 是一種基于數(shù)值的強化學習算法。

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

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

Diving deeper into Reinforcement Learning with Q-Learning

作者 | Thomas Simonini

翻譯 | 斯蒂芬?二狗子

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

原文鏈接:

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


深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

本文是 Tensorflow 深度強化學習課程的一部分。??點擊這里查看教學大綱。

今天我們將學習 Q-Learning。 Q-Learning 是一種基于數(shù)值的強化學習算法。

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

在本文中,您將學習:

  • 什么是 Q-Learning

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


  大圖:騎士和公主

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

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

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

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

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

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

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

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

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

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

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

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


  介紹Q表

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

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

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

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

0表示不可以執(zhí)行的動作(如果你在左上角你不能向左或向上?。?/em>

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

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

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

如果在 state 狀態(tài)下給定的行動 action 是最佳策略,那么每個 Q 表評分為未來獎勵的最大期望。

為什么我們說“根據(jù)策略給出?”這是因為我們不能直接給出這種策略。而是通過改進我們的 Q 表以始終選擇最佳行動 action。

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

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

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


  Q學習算法:學習動作值函數(shù)

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

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

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

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

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


  Q學習算法過程

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

Q-Learning算法的偽代碼

步驟1:初始化Q值

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

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)


第2步:終身學習(或直到學習停止)

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


步驟3:選擇操作

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

但是......如果每個Q值都是零,那么在該采取什么行動?

這就是我們在上一篇文章中談到的探索/使用權(quán)衡的重要性。

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

  • 我們指定一個探索率“epsilon”,我們在開始時設(shè)置為1,即隨機執(zhí)行的step的速度。剛開始學習時,這個速率必須是最高值,因為我們對Q表的取值一無所知。這意味著我們需要通過隨機選擇我們的行動進行大量探索。

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

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


深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)


步驟4-5:評估!

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

我們采取我們在步驟3中選擇的操作,然后執(zhí)行此操作將返回一個新的狀態(tài)s'和獎勵r(正如我們在第一篇文章中的看到的強化學習過程那樣)。

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

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

更新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 ]

我們來舉個例子:

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

  • 一個奶酪= +1

  • 兩個奶酪= +2

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

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


第1步:初始化Q表

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

初始化的Q表


步驟2:選擇操作  
從起始位置,您可以選擇向右還是向下。我們有一個大的epsilon率(因為我們對環(huán)境一無所知),采用隨機選擇的方式。例如......向右移動。

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

我們采用隨機移動(例如,右)

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


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

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

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

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

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

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

更新后的Q表

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


  實現(xiàn)Q學習算法

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

使用numpy和OpenAI Taxi-v2?進行Q學習(教程)

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

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

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

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

colab.research.google.com  


  回顧......

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

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

  • 目標:最大化Q函數(shù)(給定狀態(tài)和行動的預(yù)期未來獎勵)。

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

  • 通過選擇所有可能的最佳行動來最大化預(yù)期獎勵。

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

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

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

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

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

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

下次我們將開展深度Q學習,這是2015年深度強化學習的最大突破之一。我們將訓練一個智能體玩Doom,并殺掉敵人!


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

長按鏈接點擊打開或點擊底部【深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)】:

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


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

【點擊跳轉(zhuǎn)】深度強化學習從入門到大師:簡介篇(第一部分)

用PyTorch來做物體檢測和追蹤

用 Python 做機器學習不得不收藏的重要庫

初學者怎樣使用Keras進行遷移學習

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

等你來譯:

強化學習:通往基于情感的行為系統(tǒng) 

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

高級DQNs:利用深度強化學習玩吃豆人游戲

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


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

深度強化學習從入門到大師:通過Q學習進行強化學習(第二部分)

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

知情人士

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