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