
如果想觀看相關(guān)視頻可以在西瓜視頻(賬號(hào)zidea)或者嗶哩嗶哩(賬號(hào)zidea2015)找到我發(fā)布視頻解說,注意頭像和簡(jiǎn)書使用頭像一致。
Deepmind 自從在圍棋戰(zhàn)勝了圍棋世界冠軍之后就開始著手讓 AI 來玩更復(fù)雜游戲 starcraft。我想大家可能和一樣對(duì)于 AI 能夠玩游戲的項(xiàng)目是如何實(shí)現(xiàn)的非常感興趣。興趣歸興趣如果要實(shí)現(xiàn)一個(gè)這樣項(xiàng)目還是具有挑戰(zhàn)性,不過不管有多難,我們還是從基礎(chǔ)做起一步一步。

概率基礎(chǔ)知識(shí)
首先在開始之前簡(jiǎn)單地回歸一下可能在本次分享中用到一些概率知識(shí)。
隨機(jī)變量以及分布函數(shù)
首先函數(shù)自變量可以從實(shí)數(shù)擴(kuò)展到例如自變量為兩點(diǎn),輸出兩點(diǎn)距離。用大寫字母表示隨機(jī)變量,而用小寫來表示觀測(cè)值。事件用于語言來描述樣本集合,這些樣本具有一定屬性才聚集在一起
概率密度函數(shù)(PDF)
PDF 是 Probability Density Function 的縮寫,表示隨機(jī)變量某一個(gè)確定值出現(xiàn)的可能性,也就是我們熟悉的 PDF。


期望
對(duì)于連續(xù)分布的期望
對(duì)于離散分布的期望
隨機(jī)抽樣
隨機(jī)采樣就是調(diào)查對(duì)象總體中每個(gè)部分都有同等被抽中的可能,是一種完全依照機(jī)會(huì)均等的原則進(jìn)行的抽樣調(diào)查,被稱為是一種等概率。
術(shù)語


狀態(tài)(State)
所謂狀態(tài)就是觀測(cè)到游戲畫面的每一幀,也就是從環(huán)境中可以觀察到內(nèi)容,或者理解環(huán)境讓我們觀察到的東西。

Action
動(dòng)作就是智能體(接下來會(huì)介紹什么是智能體),根據(jù)當(dāng)前狀態(tài)給出的反應(yīng)。隨后我們會(huì)看到
Agent
智能體,在不同強(qiáng)化學(xué)習(xí)任務(wù)中 Agent 就是動(dòng)作(Action)的發(fā)起者,坦克大戰(zhàn)游戲中的 Agent 就是坦克,在無人駕駛中 Agent 就變?yōu)???。
Policy
首先 Policy 是一個(gè)函數(shù),如果是函數(shù),那么就需要有輸入和輸出,在 Policy 函數(shù)中,輸入 State 而輸出是 Agent 執(zhí)行 Action 的概率分布,從而可見即使相同的輸入 State , Policy 也可能輸出不同的 Action,而不是某一個(gè)確定的 Action。
在數(shù)學(xué)上 Policy 函數(shù)表示為
從上面公式我們不難發(fā)現(xiàn)強(qiáng)化學(xué)習(xí)主要就是學(xué)習(xí)這個(gè) Policy 函數(shù),只要有了這個(gè) Policy 函數(shù),輸入一個(gè)狀態(tài)后,Policy 就會(huì)做一個(gè)隨機(jī)抽樣來采取動(dòng)作,這里做隨機(jī)抽樣是為來避免對(duì)手通猜透機(jī)器,找到規(guī)律,所以 Policy 策略是隨機(jī)。
reward
用 來表示獎(jiǎng)勵(lì),就是根據(jù)動(dòng)作和狀態(tài)給出一個(gè)分?jǐn)?shù),這個(gè)分?jǐn)?shù)可以理解為獎(jiǎng)勵(lì),如何設(shè)計(jì)獎(jiǎng)勵(lì)這個(gè)一點(diǎn)非常重要,設(shè)計(jì)好的獎(jiǎng)勵(lì)會(huì)事倍功半。
- 擊毀敵方坦克會(huì)的一定獎(jiǎng)勵(lì)
- 如果鷹巢被敵方攻破,就會(huì)損失很多獎(jiǎng)勵(lì)
狀態(tài)轉(zhuǎn)移(state transition)
根據(jù)當(dāng)前動(dòng)作和上一個(gè)狀態(tài)我們會(huì)得到新的狀態(tài),
有關(guān)狀態(tài)轉(zhuǎn)移我們隱馬爾可夫鏈分享以圖解方式已經(jīng)說很清楚,那么狀態(tài)轉(zhuǎn)移是由環(huán)境決定的,游戲中的環(huán)境就是系統(tǒng)。

Agent 和 Environment 的交互
接下來我們來看一看 Agent 是如何環(huán)境交互的

強(qiáng)化學(xué)習(xí)的隨機(jī)性
-
Policy 根據(jù) state 給出了 Action 隨機(jī)
017.png
- Enviroment 根據(jù) Action 和 state 給出下一個(gè)狀態(tài)是隨機(jī)的


- Policy 根據(jù)
給出
- Enviroment 根據(jù)
給出
和
- Policy 繼續(xù)根據(jù)
給出
迭代重復(fù)上面的步驟形成一條路徑
回報(bào)(Return)
我們來對(duì)比獎(jiǎng)勵(lì)來說回報(bào),回報(bào)是以當(dāng)前時(shí)刻起向后一系列動(dòng)作得到狀態(tài)的獎(jiǎng)勵(lì)的累加,一直將獎(jiǎng)勵(lì)累積加到游戲結(jié)束最后一個(gè)獎(jiǎng)勵(lì)。
- 有關(guān)
和
之間差異,他們獎(jiǎng)勵(lì)的價(jià)值會(huì)隨著時(shí)間而其價(jià)值會(huì)降低,這個(gè)問題我們來舉一個(gè)例子來簡(jiǎn)單說明一下,由于未來的獎(jiǎng)勵(lì)沒有當(dāng)下獎(jiǎng)勵(lì)更有價(jià)值,所以可以加了一個(gè) discounted 來進(jìn)行調(diào)整,也就是折扣回報(bào)這里
表示
那么添加了 的回報(bào)也就是折扣回報(bào),如下
還需要說明一下折扣率 是一個(gè)超參數(shù),需要認(rèn)為來設(shè)置,
的設(shè)置會(huì)對(duì)強(qiáng)化學(xué)習(xí)有所影響。當(dāng)某一個(gè)時(shí)刻結(jié)束了,
也就計(jì)算得到小寫
因?yàn)?
依賴的獎(jiǎng)勵(lì)是一個(gè)隨機(jī)變量,所以
也是隨機(jī)變量。
我們知道 Policy 生成 而環(huán)境根據(jù)當(dāng)前狀態(tài)和動(dòng)作給出下一個(gè)狀態(tài)
也就是
,那么當(dāng)前獎(jiǎng)勵(lì)
是與當(dāng)前
和動(dòng)作
有關(guān)。
那么對(duì)于 就與未來所有時(shí)刻
和
都有關(guān)系了
上面介紹什么是回報(bào),對(duì)回報(bào)有了一定了解。我們就可以開始介紹什么是價(jià)值函數(shù),價(jià)值函數(shù)是用來衡量某一狀態(tài)或動(dòng)作狀態(tài)的好壞的,即對(duì)智能體來說是否值得選擇某一狀態(tài)或在某一狀態(tài)下執(zhí)行某一動(dòng)作。
動(dòng)作價(jià)值函數(shù)(Value)
是一個(gè)隨機(jī)變量,依賴未來所有的動(dòng)作和狀態(tài),
在 t 時(shí)刻并不知道,
可以對(duì) 求期望,把里面的隨機(jī)性都用積分積掉,例如雖然我們不知道下一個(gè)時(shí)刻會(huì)發(fā)生什么,例如投擲硬幣,我們不知道下一個(gè)時(shí)刻會(huì)是正面還是背面,不過我們知道出現(xiàn)正面或者背面的概率都是 0.5 假設(shè)上面朝上我們將隨機(jī)變量 X 記做 1 反面記做 0 那么期望就是
,同樣的道理對(duì)
隨機(jī)變量求期望就可以得到一個(gè)數(shù),即
除了 和
其他隨機(jī)變量都被積分積掉,求出的
就是動(dòng)作價(jià)值函數(shù),
狀態(tài)價(jià)值函數(shù)
意義為基于 時(shí)刻的狀態(tài)
能獲得的未來回報(bào)(Return)的期望
- 將動(dòng)作看作隨機(jī)變量 A 通過積分將其積掉
-
只與
和
函數(shù)有關(guān)
-
可以告訴我們當(dāng)前的狀態(tài)好不好
