丁香五月天婷婷久久婷婷色综合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網(wǎng)絡(luò)(DQN)介紹

本文作者: AI研習(xí)社-譯站 2019-07-31 15:04
導(dǎo)語(yǔ):原始的深度強(qiáng)化學(xué)習(xí)是純強(qiáng)化學(xué)習(xí),其典型問(wèn)題為馬爾科夫決策過(guò)程(MDP)。


深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

原標(biāo)題 |  Deep Reinforcement Learning. Introduction. Deep Q Network (DQN) algorithm.

作者 |  Markus Buchholz

譯者 |  qianyuhappy、AI小山

  1.引言

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

由DeepDream生成的圖像

原始的深度強(qiáng)化學(xué)習(xí)是純強(qiáng)化學(xué)習(xí),其典型問(wèn)題為馬爾科夫決策過(guò)程(MDP)。馬爾科夫決策過(guò)程包含一組狀態(tài)S和動(dòng)作A。狀態(tài)的轉(zhuǎn)換是通過(guò)概率P,獎(jiǎng)勵(lì)R和一個(gè)折衷參數(shù)gamma決定的。概率轉(zhuǎn)換P反映了轉(zhuǎn)換和狀態(tài)轉(zhuǎn)變的獎(jiǎng)勵(lì)之間的關(guān)系,狀態(tài)和獎(jiǎng)勵(lì)僅依賴(lài)上一時(shí)間步的狀態(tài)和動(dòng)作。

強(qiáng)化學(xué)習(xí)為Agent定義了環(huán)境,來(lái)實(shí)現(xiàn)某些動(dòng)作以最大化獎(jiǎng)勵(lì)(這些動(dòng)作根據(jù)policy采?。?。對(duì)Agent的優(yōu)化行為的基礎(chǔ)由Bellman方程定義,這是一種廣泛用于求解實(shí)際優(yōu)化問(wèn)題的方法。為了解決Bellman優(yōu)化問(wèn)題,我們使用了一種動(dòng)態(tài)編程的方法。

當(dāng)Agent存在于環(huán)境中并轉(zhuǎn)換到另一個(gè)狀態(tài)(位置)時(shí),我們需要估計(jì)狀態(tài)V(s)(位置)-狀態(tài)值函數(shù)的值。一旦我們知道了每個(gè)狀態(tài)的值,我們就可以找出執(zhí)行Q(S, A)-動(dòng)作值函數(shù)的最佳方法(只需遵循值最高的狀態(tài))。

這兩個(gè)映射或函數(shù)相關(guān)性很高,可以幫助我們找到問(wèn)題的最佳策略。從狀態(tài)值函數(shù)我們可以看出遵循策略的Agent,處于的S狀態(tài)有多好。

符號(hào)解釋?zhuān)?/span>

E[X]?—?隨機(jī)變量X的期望

?—?policy

Gt?—?t時(shí)刻的折現(xiàn)收益

γ?—?折現(xiàn)率

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

但是,動(dòng)作值函數(shù)q(s,a)是從狀態(tài)S開(kāi)始,采取動(dòng)作A,并遵循策略π的折現(xiàn)收益,并告訴我們從特定狀態(tài)采取特定動(dòng)作的效果。

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

很明顯,狀態(tài)值函數(shù)和Q函數(shù)之間的區(qū)別在于值函數(shù)體現(xiàn)狀態(tài)的良好性,而Q函數(shù)體現(xiàn)狀態(tài)中的動(dòng)作的良好性。

MDP由Bellman方程求解,Bellman方程是以美國(guó)數(shù)學(xué)家Richard Bellman的名字命名的。該方程有助于尋找最優(yōu)的策略和價(jià)值函數(shù)。代理根據(jù)所施加的策略選擇操作(策略——正式地說(shuō),策略定義為每種可能狀態(tài)下操作的概率分布)。代理可以遵循的不同策略意味著狀態(tài)的不同值函數(shù)。然而,如果目標(biāo)是使收集到的獎(jiǎng)勵(lì)最大化,我們必須找到最好的可能的政策,稱(chēng)為最優(yōu)政策。

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

另一方面,最佳狀態(tài)值函數(shù)的值,比所有其它值函數(shù)(最大返回值)都要大,因此,最佳值函數(shù)也以通過(guò)代入最大Q值來(lái)進(jìn)行估算:

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

最后,值函數(shù)的貝爾曼等式(Bellman equation)可表示如下:

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

類(lèi)似地,Q函數(shù)的貝爾曼等式可表示如下:

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

基于最佳狀態(tài)值函數(shù)以及上述的狀態(tài)值函數(shù)、動(dòng)作值函數(shù)的等式,我們可以寫(xiě)出最終的最佳值函數(shù)的等式,該等式稱(chēng)作貝爾曼最佳等式:

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

通常,強(qiáng)化學(xué)習(xí)的問(wèn)題通過(guò)Q學(xué)習(xí)算法來(lái)解決。這里,如上所言,智能體與環(huán)境交互并接收獎(jiǎng)勵(lì)。目標(biāo)是用足最佳策略(選擇動(dòng)作的方法),以取得最大獎(jiǎng)勵(lì)。在學(xué)習(xí)過(guò)程中,智能體更新Q(S,A)表(當(dāng)回合結(jié)束時(shí),任務(wù)完成,目標(biāo)達(dá)到)。

Q學(xué)習(xí)算法通過(guò)以下步驟實(shí)現(xiàn):

1、用隨機(jī)數(shù)初始化Q(S,A)表。

2、用epsilon貪心策略選取一個(gè)行動(dòng),然后進(jìn)入下一個(gè)狀態(tài)S’

3、根據(jù)更新等式來(lái)更新前一個(gè)狀態(tài)的Q值:

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

最好是從解決來(lái)自O(shè)penAI gym的 Frozen Lake 開(kāi)始。

在凍湖環(huán)境里(最好能熟悉OpenAI的描述),智能體可處理16種狀態(tài),執(zhí)行4個(gè)不同的動(dòng)作(在一個(gè)狀態(tài)中)。在這種情況下,我們的A(S,A)表的大小是16x4。

Frozen Lake 代碼如下,你也可以點(diǎn)擊此處查看~

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

https://gist.github.com/markusbuchholz/af4e5b5891de6d3cf5528f83b6198311#file-qlearning_algorithm-py

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

請(qǐng)注意上面給出的Q算法屬于時(shí)序差分學(xué)習(xí)算法(Temporal Difference Learning algorithms)(由Richard S. Sutton于1988年提出)。Q算法是一種線下策略(off-policy)算法(這種算法具有從舊的歷史數(shù)據(jù)學(xué)習(xí)的能力)。Q學(xué)習(xí)算法的擴(kuò)展是SARSA(在線策略(on-policy)算法)。唯一區(qū)別在于Q(S,A)表的更新:

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

  2. 深度強(qiáng)化學(xué)習(xí)(深度Q網(wǎng)絡(luò)--DNQ)

當(dāng)所有可到達(dá)的狀態(tài)處于可控(能夠迭代)并且能存儲(chǔ)在計(jì)算機(jī)RAM中時(shí),強(qiáng)化學(xué)習(xí)對(duì)于環(huán)境來(lái)說(shuō)是足夠好用的。然而,當(dāng)環(huán)境中的狀態(tài)數(shù)超過(guò)現(xiàn)代計(jì)算機(jī)容量時(shí)(Atari游戲有12833600個(gè)狀態(tài)),標(biāo)準(zhǔn)的強(qiáng)化學(xué)習(xí)模式就不太有效了。而且,在真實(shí)環(huán)境中,智能體必須面對(duì)連續(xù)狀態(tài)(不離散),連續(xù)變量和連續(xù)控制(動(dòng)作)的問(wèn)題。

知道了智能體所處的環(huán)境的復(fù)雜性(狀態(tài)數(shù)量,連續(xù)控制),標(biāo)準(zhǔn)的、定義明確的強(qiáng)化學(xué)習(xí)Q表就得被深度神經(jīng)網(wǎng)絡(luò)(Q網(wǎng)絡(luò))取代了,后者可以把環(huán)境狀態(tài)映射為智能體動(dòng)作(非線性逼近)。網(wǎng)絡(luò)架構(gòu),網(wǎng)絡(luò)超參數(shù)的選擇以及學(xué)習(xí)都在訓(xùn)練階段(Q網(wǎng)絡(luò)權(quán)重的學(xué)習(xí))中完成。DQN允許智能體探索非結(jié)構(gòu)化的環(huán)境并獲取知識(shí),經(jīng)過(guò)時(shí)間積累,他們可以模仿人類(lèi)的行為。

  3. 學(xué)習(xí)算法DQN

下圖(在訓(xùn)練過(guò)程中)描述了DQN的核心概念,圖中,Q網(wǎng)絡(luò)做非線性逼近,把狀態(tài)映射為動(dòng)作值。

在訓(xùn)練過(guò)程中,智能體與環(huán)境交互,并接收數(shù)據(jù),這些數(shù)據(jù)在Q網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程中會(huì)用到。智能體探索環(huán)境,建立一個(gè)轉(zhuǎn)換和動(dòng)作輸出的全圖。開(kāi)始時(shí),隨機(jī)進(jìn)行動(dòng)作,隨著時(shí)間推移,這樣做越來(lái)越?jīng)]效果。在探索環(huán)境時(shí),智能體盡量查詢(xún)Q網(wǎng)絡(luò)(逼近)以決定如何行動(dòng)。我們把這種方式(綜合了隨機(jī)行為和Q網(wǎng)絡(luò)查詢(xún))稱(chēng)為epsilon貪心方法(epsilon貪心動(dòng)作選擇塊),也就是說(shuō)利用概率超參數(shù)epsilon在隨機(jī)和Q策略間進(jìn)行選擇。

我們所講的Q學(xué)習(xí)算法的核心來(lái)自于監(jiān)督學(xué)習(xí)。

如前所述,我們的目標(biāo)是用深度神經(jīng)逼近一個(gè)復(fù)雜的非線性函數(shù)Q(S,A)。

跟監(jiān)督學(xué)習(xí)一樣,在DQN中,我們定義損失函數(shù)為目標(biāo)和預(yù)測(cè)值之間的方差,我們也更新權(quán)重盡量減少損失(假定智能體從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài),進(jìn)行了某個(gè)動(dòng)作a,獲取獎(jiǎng)勵(lì)r)。

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

在學(xué)習(xí)過(guò)程中,我們使用兩個(gè)不相關(guān)的Q網(wǎng)絡(luò)(Q_network_local和Q_network_target)來(lái)計(jì)算預(yù)測(cè)值(權(quán)重θ)和目標(biāo)值(權(quán)重θ’)。經(jīng)過(guò)若干步驟后,目標(biāo)網(wǎng)絡(luò)會(huì)被凍結(jié),然后拷貝實(shí)際的Q網(wǎng)絡(luò)的權(quán)重到目標(biāo)網(wǎng)絡(luò)權(quán)重。凍結(jié)目標(biāo)Q網(wǎng)絡(luò)一段時(shí)間再用實(shí)際Q網(wǎng)絡(luò)的權(quán)重更新其權(quán)重,可以穩(wěn)定訓(xùn)練過(guò)程。

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

圖1. DQN算法概念

為使訓(xùn)練過(guò)程更穩(wěn)定(我們要避免用比較關(guān)聯(lián)的數(shù)據(jù)來(lái)訓(xùn)練網(wǎng)絡(luò),如果基于連續(xù)更新最后轉(zhuǎn)換來(lái)進(jìn)行訓(xùn)練的話, 這種情況就有可能發(fā)生),我們引入重播緩沖區(qū),它能記住智能體所經(jīng)歷的行為。然后,用重播緩沖區(qū)里的隨機(jī)樣本來(lái)進(jìn)行訓(xùn)練(這可以減少智能體的經(jīng)歷之間的關(guān)聯(lián)性,并有助于智能體從更廣泛的經(jīng)歷中進(jìn)行學(xué)習(xí))。

DQN算法可描述如下:

1. 初始化重播緩沖區(qū)。

2. 預(yù)處理環(huán)境,并把狀態(tài)S輸入DQN, 后者會(huì)返回該狀態(tài)中所有可能的動(dòng)作的Q值。

3. 用epsilon貪心策略選取一個(gè)動(dòng)作:當(dāng)有概率epsilon時(shí),我們選擇隨機(jī)動(dòng)作A,當(dāng)有概率1-epsilon時(shí),選取具有最高Q值的動(dòng)作,例如A=argmax(Q(S, A, θ))。

4. 選擇了動(dòng)作A后,智能體在狀態(tài)S中執(zhí)行所選的動(dòng)作,并進(jìn)行到新?tīng)顟B(tài)S ,接收獎(jiǎng)勵(lì)R。

5. 把轉(zhuǎn)換存儲(chǔ)在重播緩沖中,記作<S,A,R,S’>。            。    

6. 下一步,從重播緩沖區(qū)中抽取隨機(jī)批次的轉(zhuǎn)換,并用以下公式計(jì)算損失:

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

7. 針對(duì)實(shí)際網(wǎng)絡(luò)參數(shù),執(zhí)行梯度下降,以使損失最小化。

8. 每隔k步之后,拷貝實(shí)際網(wǎng)絡(luò)權(quán)重到目標(biāo)網(wǎng)絡(luò)權(quán)重中。

9. 重復(fù)這些步驟M回合。

  4. 工程設(shè)置.結(jié)果.

在這一段中,我展示Udacity(深度強(qiáng)化學(xué)習(xí))的工程代碼的結(jié)果。

a. 工程的目標(biāo)

本工程的目標(biāo)是訓(xùn)練智能體如何在方塊環(huán)境中通過(guò)移動(dòng)來(lái)采集黃色香蕉。工程要求在100個(gè)連續(xù)回合中獲取+13的平均分。

b. 在導(dǎo)航工程中,使用下列參數(shù)設(shè)置神經(jīng)網(wǎng)絡(luò)架構(gòu)和超參數(shù):

以下是每回合的獎(jiǎng)勵(lì)圖,顯示出智能體在玩了2247回合后,能收到的平均獎(jiǎng)勵(lì)(超過(guò)100回合)有至少+13。

Q網(wǎng)絡(luò)架構(gòu):

輸入層FC1:37節(jié)點(diǎn)輸入,64節(jié)點(diǎn)輸出

隱藏層FC2:64節(jié)點(diǎn)輸入,64節(jié)點(diǎn)輸出

隱藏層FC3:64節(jié)點(diǎn)輸入,64節(jié)點(diǎn)輸出

輸出層:64節(jié)點(diǎn)輸入,4節(jié)點(diǎn)輸出----動(dòng)作的大小

使用的超參數(shù):

BUFFER_SIZE = int(1e5) # 重播緩沖區(qū)大小
BATCH_SIZE = 64 # 最小批量大小
GAMMA = 0.99 # 折扣率
TAU = 1e-3 # 用于目標(biāo)參數(shù)的軟更新
LR = 5e-4 # 學(xué)習(xí)率
UPDATE_EVERY = 4 # 更快網(wǎng)絡(luò)的快慢
Epsilon start = 1.0
Epsilon start = 0.01
Epsilon decay = 0.999

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

圖2. 智能體學(xué)習(xí)的平均得分

  5. 未來(lái)工作的想法

如果有深度學(xué)習(xí)的相關(guān)經(jīng)驗(yàn),那么未來(lái)工作將主要集中于圖像處理方面(從像素中學(xué)習(xí))。下圖展示了DQN的架構(gòu),圖中,我們輸入游戲畫(huà)面,Q網(wǎng)絡(luò)逼近游戲狀態(tài)中所有動(dòng)作的Q值。動(dòng)作由我們討論過(guò)的DQN算法進(jìn)行選擇。

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

圖3. 從像素學(xué)習(xí)的概念

其次,未來(lái)的工作將集中在生成一個(gè)決斗(Dueling)式DQN。在這個(gè)新的架構(gòu)中,我們指定新的優(yōu)勢(shì)函數(shù),這個(gè)函數(shù)計(jì)算出智能體執(zhí)行的一個(gè)動(dòng)作,比其它動(dòng)作好了多少(優(yōu)勢(shì)可為正也可為負(fù))。

Dueling DQN架構(gòu)與上面講的DQN相同,只不過(guò)最后的全連接層分成兩股(見(jiàn)下圖所描述)。

若環(huán)境的一個(gè)狀態(tài)有確定數(shù)量的動(dòng)作空間,絕大多數(shù)計(jì)算出來(lái)的動(dòng)作對(duì)狀態(tài)沒(méi)有什么影響。此外,有些動(dòng)作有冗余效應(yīng)。在這種情況下,新的dueling DQN將會(huì)比DQN架構(gòu)估算出來(lái)的Q值更精確。

其中一股計(jì)算值函數(shù),另一股計(jì)算優(yōu)勢(shì)函數(shù)(用于決定哪個(gè)動(dòng)作更優(yōu))。

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

圖4. Dueling DQN架構(gòu)

最后,我們考慮一下從人類(lèi)的偏好中進(jìn)行學(xué)習(xí) (OpenAI和Deep Mind) 。這個(gè)新概念的核心思想是從人類(lèi)的反饋中學(xué)習(xí)。接收人類(lèi)反饋的智能體,將盡力進(jìn)行人類(lèi)期望的動(dòng)作,并相應(yīng)地設(shè)置獎(jiǎng)勵(lì)。人類(lèi)與智能體的直接交互 ,會(huì)有助于降低設(shè)計(jì)獎(jiǎng)勵(lì)函數(shù)和復(fù)雜的目標(biāo)函數(shù)的難度。

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

你可以通過(guò)我的Github找到本工程的全部源碼:

https://github.com/markusbuchholz/deep-reinforcement-learning/tree/master/p1_navigation

本文編輯:王立魚(yú)

英語(yǔ)原文:https://medium.com/@markus.x.buchholz/deep-reinforcement-learning-introduction-deep-q-network-dqn-algorithm-fb74bf4d68621

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

點(diǎn)擊【深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹】即可訪問(wèn)!

福利大放送——滿(mǎn)滿(mǎn)的干貨課程免費(fèi)送!

「好玩的Python:從數(shù)據(jù)挖掘到深度學(xué)習(xí)」該課程涵蓋了從Python入門(mén)到CV、NLP實(shí)踐等內(nèi)容,是非常不錯(cuò)的深度學(xué)習(xí)入門(mén)課程,共計(jì)9節(jié)32課時(shí),總長(zhǎng)度約為13個(gè)小時(shí)。。

課程頁(yè)面:https://ai.yanxishe.com/page/domesticCourse/37

「計(jì)算機(jī)視覺(jué)基礎(chǔ)入門(mén)課程」本課程主要介紹深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)方向的算法與應(yīng)用,涵蓋了計(jì)算機(jī)視覺(jué)的歷史與整個(gè)課程規(guī)劃、CNN的模型原理與訓(xùn)練技巧、計(jì)算機(jī)視覺(jué)的應(yīng)用案例等,適合對(duì)計(jì)算機(jī)視覺(jué)感興趣的新人。

課程頁(yè)面:https://ai.yanxishe.com/page/domesticCourse/46

現(xiàn)AI研習(xí)社將兩門(mén)課程免費(fèi)開(kāi)放給社區(qū)認(rèn)證用戶(hù),只要您在認(rèn)證時(shí)在備注框里填寫(xiě)「Python」,待認(rèn)證通過(guò)后,即可獲得該課程全部解鎖權(quán)限。心動(dòng)不如行動(dòng)噢~

認(rèn)證方式:https://ai.yanxishe.com/page/blogDetail/13999

雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)


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

深度強(qiáng)化學(xué)習(xí)-深度Q網(wǎng)絡(luò)(DQN)介紹

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

知情人士

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