0
本文作者: AI研習(xí)社-譯站 | 2018-06-12 19:52 |
雷鋒網(wǎng)按:MIT6.S094 完整版授權(quán)中譯視頻
翻譯 | 田茜 涂世文 蔣成 整理 | 吳璇
本篇是 MIT6.S094 第三講深度強(qiáng)化學(xué)習(xí)的課程筆記。
一個(gè)人工智能系統(tǒng)需要實(shí)現(xiàn)的任務(wù)棧
1.環(huán)境:系統(tǒng)工作的世界。
2.傳感器:采集物理世界的信息并將其轉(zhuǎn)換成機(jī)器可以處理的原始數(shù)據(jù)。是機(jī)器人在物理世界工作的輸入端。
3.感知數(shù)據(jù):傳感器采集的原始數(shù)據(jù)。
4.特征提?。簭母兄獢?shù)據(jù)中提取特征。提取數(shù)據(jù)結(jié)構(gòu)以便能夠輸入、識(shí)別、分割和理解數(shù)據(jù)。不同級(jí)別的抽象層都可以處理原始的感知數(shù)據(jù)。這個(gè)任務(wù)早期是由人類(lèi)專家完成的,現(xiàn)在深度學(xué)習(xí)自動(dòng)完成這個(gè)任務(wù)。
5.由于機(jī)器學(xué)習(xí)技術(shù)的應(yīng)用,我們能夠?qū)Ω兄獢?shù)據(jù)實(shí)現(xiàn)更高級(jí)別的抽象表示。
6.一旦機(jī)器學(xué)習(xí)技術(shù)將這些數(shù)據(jù)轉(zhuǎn)換成簡(jiǎn)單、可操作的信息,我們就將這些信息聚合起來(lái),稱為知識(shí)。深度學(xué)習(xí)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)監(jiān)督學(xué)習(xí)任務(wù)、生成任務(wù)、非監(jiān)督技術(shù)。知識(shí)具有簡(jiǎn)潔的使用價(jià)值。這些價(jià)值可以是單一的價(jià)值,比如語(yǔ)音、圖像等等。
7.我們建立了一個(gè)分類(lèi)系統(tǒng),知識(shí)庫(kù),把所有的知識(shí)連接起來(lái)。
8.代理推理基于這個(gè)分類(lèi)系統(tǒng):連接過(guò)去和現(xiàn)在感知到的所有數(shù)據(jù),根據(jù)目標(biāo)制定一個(gè)計(jì)劃。目標(biāo)可以是一個(gè)獎(jiǎng)勵(lì)函數(shù)。計(jì)劃:融合感知信息并且使行為更適合深度學(xué)習(xí)方法。
9.由于系統(tǒng)是在實(shí)際環(huán)境中運(yùn)行的,它必須有實(shí)際效果。
人工智能棧中有多少能夠「被學(xué)習(xí)」?
我們能夠?qū)W習(xí)表示和知識(shí)。神經(jīng)網(wǎng)絡(luò)將數(shù)據(jù)映射成信息。在這方面,核方法也是有效的。將系統(tǒng)需要的感知數(shù)據(jù)映射成知識(shí)是深度學(xué)習(xí)的亮點(diǎn)。
問(wèn)題1:我們能將這種方法擴(kuò)展至推理階段和可操作的端到端的信息嗎?
問(wèn)題2:我們能將這種方法擴(kuò)展至用戶數(shù)據(jù)中心(SDC,Subscriber Data Center)和機(jī)器人的真實(shí)案例中嗎?
監(jiān)督:每個(gè)獨(dú)立的數(shù)據(jù)點(diǎn)都被人們標(biāo)注。
非監(jiān)督:數(shù)據(jù)沒(méi)有被標(biāo)注。
半監(jiān)督學(xué)習(xí):有一部分?jǐn)?shù)據(jù)被人們注釋。
增強(qiáng)學(xué)習(xí):是半監(jiān)督學(xué)習(xí)的一個(gè)分支。
目標(biāo):從稀疏獎(jiǎng)勵(lì)/監(jiān)督數(shù)據(jù)中學(xué)習(xí),利用狀態(tài)轉(zhuǎn)移的時(shí)間動(dòng)態(tài)特性,一個(gè)狀態(tài)到一個(gè)狀態(tài)的轉(zhuǎn)移會(huì)通過(guò)時(shí)間的變化獲得,從而根據(jù)先驗(yàn)數(shù)據(jù)推理出當(dāng)前真實(shí)的知識(shí)。我們能夠生成真實(shí)世界的稀疏學(xué)習(xí)信息。
監(jiān)督學(xué)習(xí):存儲(chǔ)原始的真實(shí)數(shù)據(jù)并從這些數(shù)據(jù)中生成表示。
強(qiáng)化學(xué)習(xí):通過(guò)時(shí)間,強(qiáng)制傳播稀疏信息,將有價(jià)值的獎(jiǎng)勵(lì)分配給沒(méi)有直接獲得獎(jiǎng)勵(lì)的狀態(tài)。為了體現(xiàn)合理性,如果數(shù)據(jù)/獎(jiǎng)勵(lì)是稀疏的,那么他們通過(guò)時(shí)間連接。這與推理是等效的。
代理和環(huán)境
時(shí)間連接模型是一個(gè)代理在環(huán)境中實(shí)現(xiàn)一個(gè)動(dòng)作,接收一個(gè)新的狀態(tài)和獎(jiǎng)勵(lì)。這個(gè)過(guò)程連續(xù)地重復(fù)執(zhí)行。
例如:
Atari Breakout(雅達(dá)利公司推出的一款游戲):代理是操作桿。
代理的每一個(gè)動(dòng)作都會(huì)影響環(huán)境的改變。獎(jiǎng)勵(lì)累積機(jī)制決定誰(shuí)獲勝。游戲中會(huì)獲得獎(jiǎng)勵(lì)的點(diǎn)數(shù)。獎(jiǎng)勵(lì)機(jī)制必須是系統(tǒng)能夠解釋的標(biāo)準(zhǔn)方案。目標(biāo)就是使獲得的獎(jiǎng)勵(lì)最大化。
車(chē)桿平衡:
目標(biāo):移動(dòng)小車(chē)頂部平衡桿的連續(xù)性問(wèn)題。
狀態(tài):小車(chē)的角度、角速度、水平速度。
動(dòng)作:水平推小車(chē)。
獎(jiǎng)勵(lì):如果桿向上,每次獎(jiǎng)勵(lì)1個(gè)點(diǎn)。
所有人以第一人身份玩射擊游戲
戰(zhàn)士:目標(biāo)消滅所有敵人。
狀態(tài):游戲的原始像素。
工業(yè)機(jī)器人:用機(jī)器人來(lái)包裝。
目標(biāo):選中一個(gè)盒子,把盒子放入容器中。
狀態(tài):世界的原始像素。
馬爾科夫決策過(guò)程:持續(xù)行動(dòng)獎(jiǎng)勵(lì)狀態(tài)直到終結(jié)。
強(qiáng)化學(xué)習(xí)智能體的主要組成部分
策略:在每個(gè)狀態(tài)中該做什么或者該采取什么行動(dòng)的各種計(jì)劃或者方案。
值函數(shù):衡量每個(gè)狀態(tài)好壞和每個(gè)行動(dòng)結(jié)果好壞的函數(shù),裝置據(jù)此來(lái)決定「呆」在一個(gè)好的狀態(tài)以及采取「好」的行動(dòng)方案。
模型:用于表示裝置所處環(huán)境或者世界,是一個(gè)抽象概念,對(duì)于行動(dòng)決策十分有用。
例如:房間里的機(jī)器人
確定性方法:當(dāng)一切都是確定的時(shí)候,即機(jī)器人的移動(dòng)方向確定不具有隨機(jī)性,則直接選擇到達(dá)最大獎(jiǎng)勵(lì) [4,3] 位置的最短路徑即可。
但是,在這個(gè)案例中機(jī)器人的移動(dòng)具有一定的不確定性,如圖所示:機(jī)器人的每次移動(dòng)具有隨機(jī)性,向上移動(dòng)的概率為80%,向左移動(dòng)的概率為10%,向右移動(dòng)的概率為10%。因而都需要采用非確定性的方法。
關(guān)鍵觀測(cè): 在空間中的每一個(gè)狀態(tài)都需要一個(gè)方案來(lái)控制非確定性的環(huán)境 。
如果按照對(duì)每一步移動(dòng)進(jìn)行懲罰的原則來(lái)設(shè)計(jì)獎(jiǎng)勵(lì)函數(shù),即每次移動(dòng)的獎(jiǎng)勵(lì)為負(fù),那么在這種情況下,最優(yōu)的策略就是選擇一條最短路徑。
假如我們減輕懲罰,從0.1減至0.01,那么機(jī)器人每次移動(dòng)的過(guò)程將會(huì)帶有一定的隨機(jī)性。并且這種隨機(jī)性會(huì)隨著懲罰力度的降低而升高。
如果我們將每次移動(dòng)的獎(jiǎng)勵(lì)調(diào)整為正,即機(jī)器人的每次移動(dòng)都會(huì)增加獎(jiǎng)勵(lì)而不是懲罰的話,那么將會(huì)有一個(gè)顯著的刺激使得機(jī)器人一直在 3x4 的空間里不斷移動(dòng),而永遠(yuǎn)不會(huì)到達(dá)終點(diǎn)。
值函數(shù)
一個(gè)狀態(tài)的值或者說(shuō)在環(huán)境中任何事物的值,是我們?cè)谖磥?lái)很可能會(huì)得到的獎(jiǎng)勵(lì)。要長(zhǎng)期地表現(xiàn)良好,我們不僅要考慮當(dāng)下的獎(jiǎng)勵(lì),還要考慮將來(lái)的獎(jiǎng)勵(lì)。但由于我們的環(huán)境是隨機(jī)的,我們永遠(yuǎn)不能肯定,如果我們下一次執(zhí)行相同的行動(dòng),我們會(huì)得到同樣的獎(jiǎng)勵(lì)。所以,我們會(huì)給未來(lái)的獎(jiǎng)勵(lì)打個(gè)折扣。
圖中公式里面的紅色 Gamma 符號(hào)表示隨著對(duì)未來(lái)的不斷推進(jìn),越來(lái)越大的折扣將會(huì)降低我們未來(lái)獲得的獎(jiǎng)勵(lì)。
一種好的策略是對(duì)未來(lái)各時(shí)間段的折扣獎(jiǎng)勵(lì)求和,并最大化未來(lái)的折扣獎(jiǎng)勵(lì),這便是強(qiáng)化學(xué)習(xí)所希望實(shí)現(xiàn)的。
Q-Learning
我們可以通過(guò)使用任何一種策略對(duì)狀態(tài)進(jìn)行估計(jì)來(lái)最大化未來(lái)的「折扣」獎(jiǎng)勵(lì)。
這樣使得我們可以考慮在更大的狀態(tài)空間和行動(dòng)空間,我們通過(guò)模擬或者直接在真實(shí)世界中采取行動(dòng)并不斷更新對(duì)于行動(dòng)好壞的估計(jì)。
探索與開(kāi)發(fā)
由于更好的估計(jì)由 Q 函數(shù)形成,我們對(duì)更好的行動(dòng)有了更深刻的理解。然而這并不完美因?yàn)榇嬖谥剿髦?。隨著估計(jì)準(zhǔn)確度的提升,探索值會(huì)隨之降低。
因此,我們一般在初始階段希望智能體在環(huán)境中多多探索一點(diǎn),并隨著時(shí)間不斷降低探索的量,因?yàn)槲覀兊墓烙?jì)會(huì)越來(lái)越準(zhǔn)確。
在最后系統(tǒng)發(fā)布的時(shí)候,應(yīng)該根據(jù) Q 函數(shù)以一種貪心的方式運(yùn)作。
上圖為 Q 函數(shù)的表格式表示,Y 軸表示狀態(tài),X 軸表示行動(dòng)。
Q-Table ( Q 代表動(dòng)作的質(zhì)量 )通過(guò)隨機(jī)的方式進(jìn)行初始化,并且通過(guò)迭代地使用貝爾曼方程不斷進(jìn)行更新 Q(s,a) 來(lái)給出越來(lái)越好的近似。隨著時(shí)間推移,我們對(duì)狀態(tài)和行動(dòng)好壞的估計(jì)便會(huì)形成一張最優(yōu)的 Q-Table。
問(wèn)題在于:當(dāng) Q-Table 呈指數(shù)增長(zhǎng)的時(shí)候,比如將原始圖像像素作為輸入的話,潛在的狀態(tài)空間,可能的狀態(tài)組合是非常大而多的,有時(shí)候會(huì)超出系統(tǒng)內(nèi)存能夠容納的范圍,超出利用貝爾曼方程進(jìn)行估計(jì)的范疇。
所以,這就到了深度強(qiáng)化學(xué)習(xí)該出場(chǎng)的時(shí)刻了!
深度強(qiáng)化學(xué)習(xí)
眾所周知,神經(jīng)網(wǎng)絡(luò)非常擅長(zhǎng)于估計(jì)。
相較于機(jī)器學(xué)習(xí),深度學(xué)習(xí)可以在更大的狀態(tài)空間中對(duì)值進(jìn)行估計(jì)。這使得我們能夠?qū)υ嫉膫鞲衅鲾?shù)據(jù)直接處理,更能勝任現(xiàn)實(shí)世界的應(yīng)用,是一種可泛化的技術(shù)。
這種理解源自于基于所采取行動(dòng)來(lái)將原始的傳感器數(shù)據(jù)轉(zhuǎn)換為簡(jiǎn)單有用的信息的方式。
我們接入了一個(gè)神經(jīng)網(wǎng)絡(luò),而沒(méi)有使用 Q 函數(shù)。
輸入:狀態(tài)空間。
輸出:每一個(gè)狀態(tài)所對(duì)應(yīng)的函數(shù)值。
DQN:深度 Q 網(wǎng)絡(luò)。
那么,如何訓(xùn)練一個(gè) DQN ?
貝爾曼方程:輸入獎(jiǎng)勵(lì)和未來(lái)獎(jiǎng)勵(lì)的折扣 。
神經(jīng)網(wǎng)絡(luò)的損失函數(shù): 接受當(dāng)前狀態(tài)的獎(jiǎng)勵(lì),通過(guò)神經(jīng)網(wǎng)絡(luò)的前向過(guò)程計(jì)算未來(lái)狀態(tài)的值,并從當(dāng)前狀態(tài)行動(dòng)的前向過(guò)程中減去這個(gè)值。
我們得到了 Q-函數(shù)估計(jì)器產(chǎn)生的值的差異,并相信未來(lái)的值和可能的值會(huì)基于這些可能的行動(dòng)。
算法
輸入: 行動(dòng)中的狀態(tài)。
輸出:每個(gè)醒的的 Q-Value 。
給定一個(gè)轉(zhuǎn)換 S,一次行動(dòng) A ,A 能生成一個(gè)獎(jiǎng)勵(lì) R’ 并轉(zhuǎn)換到狀態(tài) S‘。
更新過(guò)程是通過(guò)神經(jīng)網(wǎng)絡(luò)為當(dāng)前狀態(tài)做一個(gè)前向過(guò)程,并為下一個(gè)狀態(tài)中所有可能的行動(dòng)執(zhí)行一次前向過(guò)程,然后使用反向傳播更新權(quán)重。
DQN 技巧
經(jīng)驗(yàn)回放 :
由于游戲通過(guò)模擬進(jìn)行,觀測(cè)都被收錄了一個(gè)經(jīng)驗(yàn)庫(kù)里,通過(guò)在先前的經(jīng)驗(yàn)集中進(jìn)行隨機(jī)抽樣抽取批次再進(jìn)行訓(xùn)練。因此,系統(tǒng)不會(huì)在一個(gè)特定的模擬中過(guò)擬合。
固定目標(biāo)網(wǎng)絡(luò):
我們使用神經(jīng)網(wǎng)絡(luò)來(lái)估計(jì)當(dāng)前狀態(tài)的值,然后使用它與時(shí)間相乘。在運(yùn)行這個(gè)神經(jīng)網(wǎng)絡(luò)的同時(shí),我們也在更新這個(gè)網(wǎng)絡(luò)。因此,損失函數(shù)中的目標(biāo)函數(shù)改變了,會(huì)造成穩(wěn)定性的問(wèn)題。所以,我們通過(guò)每1000步進(jìn)行更新來(lái)修正這個(gè)神經(jīng)網(wǎng)絡(luò)。
當(dāng)我們訓(xùn)練這個(gè)網(wǎng)絡(luò)的時(shí)候,用來(lái)估計(jì)目標(biāo)函數(shù)的網(wǎng)絡(luò)就固定了,使得損失函數(shù)可以保持穩(wěn)定。
獎(jiǎng)勵(lì)裁剪:
使得系統(tǒng)能夠以泛化的方式執(zhí)行。這樣使得獎(jiǎng)勵(lì)函數(shù)得到了簡(jiǎn)化,對(duì)正獎(jiǎng)勵(lì)還是負(fù)獎(jiǎng)勵(lì)均適用。
跳幀:
每四幀執(zhí)行一次行動(dòng)
圓圈: 當(dāng)使用技巧的時(shí)候
叉號(hào): 當(dāng)沒(méi)有使用技巧的時(shí)候
數(shù)值越大,收到的獎(jiǎng)勵(lì)也越大。
總結(jié):回放目標(biāo)使得獎(jiǎng)勵(lì)得到了顯著的提升。
深度Q-Learning算法
提示:代碼中的循環(huán)并不是訓(xùn)練的一部分,它是作為保存觀測(cè)、狀態(tài)、行動(dòng)、獎(jiǎng)勵(lì)和下一個(gè)狀態(tài)到 Replay Memory的一部分。
接下來(lái),我們從 Memory 中隨機(jī)抽樣,并通過(guò)最小化損失函數(shù)來(lái)訓(xùn)練網(wǎng)絡(luò),epsilon貪婪策略:epsilon 是探索的速率, 一開(kāi)始設(shè)定為1,之后這個(gè)速率會(huì)隨時(shí)間減小。
2015: Atari Breakout(雅達(dá)利游戲公司推出的一款游戲)
DQN 已經(jīng)在多款雅達(dá)利游戲上取得了遠(yuǎn)超人類(lèi)的成績(jī)。
AlphaGo (2016)
注意:在任何點(diǎn)上可能的合理邊界位置,有 2.8 x10^(170)種可能。
利用人類(lèi)專家下棋方式,以一種監(jiān)督的方式訓(xùn)練模型,RL 方法來(lái)?yè)魯∪祟?lèi)專家。(有偏見(jiàn)的)觀點(diǎn):AlphaGo Zero(2017)在人工智能領(lǐng)域,取得的十年的成就:
1. 它是在沒(méi)有任何訓(xùn)練數(shù)據(jù)的情況下開(kāi)發(fā)的。
2. 擊敗 AlphaGo。
AlphaGo 方法
用蒙特卡羅樹(shù)搜索(MTCS)。
給定一個(gè)大的狀態(tài)空間。我們從一個(gè)初始值開(kāi)始,用一些探索和開(kāi)發(fā)的平衡來(lái)選擇行動(dòng),直到達(dá)成一些結(jié)論。這些信息是反向傳播的,我們學(xué)習(xí)了棋局位置的價(jià)值。
AlphGo 使用神經(jīng)網(wǎng)絡(luò)來(lái)評(píng)估狀態(tài)的質(zhì)量。
技巧:
利用基于神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的 MCTS 來(lái)估計(jì)未來(lái)的狀態(tài)有多好。它執(zhí)行一個(gè)簡(jiǎn)單的先行動(dòng)作,做一個(gè)目標(biāo)校正以產(chǎn)生損失功能。
多任務(wù)學(xué)習(xí):網(wǎng)絡(luò)是「雙向」
它輸出了最優(yōu)移動(dòng)的概率。
它還估計(jì)了獲勝的可能性。
我們希望在短期內(nèi)將最好的行動(dòng)結(jié)合起來(lái),并獲得高概率的獲勝機(jī)會(huì)。
更新的體系結(jié)構(gòu):Resnet(ImageNet 的勝利者)
Deep Traffic
我們可以進(jìn)行多個(gè)強(qiáng)化訓(xùn)練(10 輛車(chē))。
定制汽車(chē)款式。
目標(biāo):隨著時(shí)間的推移達(dá)到最高的平均速度。
道路:網(wǎng)格空間,一個(gè)占用網(wǎng)格:當(dāng)空的時(shí)候,它被設(shè)置為 ab-Grid 值,此時(shí)可以獲得任意速度(最低速度到最高車(chē)速)。
與其他汽車(chē)在格子中:此時(shí)柵格的作用是慢速行駛汽車(chē)的速度。
我們可以決定我們想要用作網(wǎng)絡(luò)輸入的部分 。
安全系統(tǒng)可以被認(rèn)為相當(dāng)于基本的MPC:基本的傳感器,可以防止碰撞。
任務(wù):在安全系統(tǒng)的約束下移動(dòng)空間。
紅色:不能達(dá)到的空間。
目標(biāo):不要被堵在路上。
輸入:狀態(tài)空間。
輸出:不同操作的值。(加速、減速、左轉(zhuǎn)和右轉(zhuǎn))
基于 Epsilon 的價(jià)值和通過(guò)訓(xùn)練,推理評(píng)價(jià):我們選擇探索范圍。
5個(gè)動(dòng)作空間
「大腦」是一種輸入,狀態(tài)。獎(jiǎng)勵(lì)執(zhí)行向前傳球并計(jì)算獎(jiǎng)勵(lì)。「大腦」是神經(jīng)網(wǎng)絡(luò)被包含在訓(xùn)練和評(píng)估的地方。
新添加:可以由神經(jīng)網(wǎng)絡(luò)控制的代理數(shù)量,從 1 到 10。評(píng)估以同樣的方式進(jìn)行。
注意:代理不知道其他強(qiáng)化訓(xùn)練車(chē)輛的情況。這些操作對(duì)每個(gè)個(gè)體代理都是最優(yōu)的,而不是以優(yōu)化的分布式方式(考慮整體最優(yōu))。
評(píng)估:
每次運(yùn)行時(shí)收集模擬的 45 秒 的數(shù)據(jù)。
計(jì)算了 500 次運(yùn)行的中位數(shù)。
服務(wù)器端評(píng)估。(運(yùn)行時(shí)間,誤差,泛化值)
隨機(jī)性已經(jīng)大大減少了。(不可能通過(guò)隨機(jī)調(diào)參數(shù)而得到優(yōu)化的模型)
我們可以探索驅(qū)動(dòng)數(shù)據(jù) 。
現(xiàn)實(shí)世界的測(cè)試不可行。
波士頓機(jī)器人
Waymo:(美國(guó)知名自動(dòng)駕駛公司)
用于感知的深度學(xué)習(xí)。
大部分的工作完成基于感知器。
所采用的方法是基于模型的。
雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。