深度强化学习探索
2016年年初備受矚目的圍棋 “人機(jī)大戰(zhàn)”,以人類圍棋冠軍被血虐落下帷幕。這只谷歌DeepMind團(tuán)隊(duì)開發(fā)的圍棋機(jī)器人阿法狗不僅賺足了眼球,更是掀起了一波關(guān)于人工智能的討論狂潮。現(xiàn)在好像作報(bào)告還是寫文章都要把阿法狗提一下才能緊跟時(shí)代潮流啊(好像也自黑了一下)。其實(shí)人家DeepMind不光是下圍棋的,在他們的主頁上寫著大大的 “Solve Intelligence”。要“Solve Intelligence”光會下圍棋可不行,還得能像人一樣能干各種各樣的事情。究竟有些什么樣的技術(shù)能夠作為支撐,使得他們敢說出這樣的話呢?見識了阿法狗之后,可能很多人記住了深度學(xué)習(xí),還有人記住了蒙特卡洛樹。其實(shí)還有個(gè)叫深度強(qiáng)化學(xué)習(xí)的東西也是DeepMind一直在重點(diǎn)研究的領(lǐng)域。他們在這個(gè)方向上做了很多工作。這篇文章,我們拋開阿法狗,來簡單看看DeepMind提出的被他們稱之為深度強(qiáng)化學(xué)習(xí)的東西大概是怎么一回事。
大家一看到深度強(qiáng)化學(xué)習(xí),大概會認(rèn)為現(xiàn)如今深度學(xué)習(xí)這么火,什么東西都喜歡拿深度學(xué)習(xí)去套,也是個(gè)跟風(fēng)的產(chǎn)物吧。當(dāng)然我們可以這么認(rèn)為。但是在這個(gè)套的過程中DeepMind套得恰到好處,大大擴(kuò)大了強(qiáng)化學(xué)習(xí)的應(yīng)用范圍。
深度學(xué)習(xí)大家可能都比較了解,簡單說來就是在多層神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)下,輔以結(jié)構(gòu)設(shè)計(jì)和各種梯度技術(shù),能夠?qū)Ρ热鐖D像分類之類的問題有很好的效果。它的優(yōu)點(diǎn)在于不僅能夠提供端到端的解決方案,而且能夠提取出遠(yuǎn)比人工特征有效得特征向量。
而強(qiáng)化學(xué)習(xí),大家可能就比較陌生了。但是要是說起波士頓動力,大家可能就又知道了,前段時(shí)間被刷屏的機(jī)器人,憑借出色的平衡性給大家留下了深刻的印象。像機(jī)器人控制這類領(lǐng)域就大量的使用了強(qiáng)化學(xué)習(xí)技術(shù)。除此之外,游戲領(lǐng)域,比如棋類游戲,甚至用戶個(gè)性化比如推薦等領(lǐng)域都有應(yīng)用。
Ⅰ.什么是強(qiáng)化學(xué)習(xí)?
強(qiáng)化學(xué)習(xí)其實(shí)也是機(jī)器學(xué)習(xí)的一個(gè)分支,但是它與我們常見的機(jī)器學(xué)習(xí)(比如監(jiān)督學(xué)習(xí)supervised learning)不太一樣。它講究在一系列的情景之下,通過多步恰當(dāng)?shù)臎Q策來達(dá)到一個(gè)目標(biāo),是一種序列多步?jīng)Q策的問題。舉一個(gè)周志華老師在《機(jī)器學(xué)習(xí)》【8】中種西瓜的例子來幫助大家理解。種瓜有很多步驟,要經(jīng)過選種,定期澆水,施肥,除草,殺蟲這么多操作之后最終才能收獲西瓜。但是,我們往往要到最后收獲西瓜之后,才知道種的瓜好不好,也就是說,我們在種瓜過程中執(zhí)行的某個(gè)操作時(shí),并不能立即獲得這個(gè)操作能不能獲得好瓜,僅能得到一個(gè)當(dāng)前的反饋,比如瓜苗看起來更健壯了。因此我們就需要多次種瓜,不斷摸索,才能總結(jié)一個(gè)好的種瓜策略。以后就用這個(gè)策略去種瓜。摸索這個(gè)策略的過程,實(shí)際上就是強(qiáng)化學(xué)習(xí)。可以看到強(qiáng)化學(xué)習(xí)有別于傳統(tǒng)的機(jī)器學(xué)習(xí),我們是不能立即得到標(biāo)記的,而只能得到一個(gè)反饋,也可以說強(qiáng)化學(xué)習(xí)是一種標(biāo)記延遲的監(jiān)督學(xué)習(xí)。
通過這個(gè)種瓜的過程能夠看出來,強(qiáng)化學(xué)習(xí)實(shí)際上和我們?nèi)祟惻c環(huán)境的交互方式類似。是一套非常通用的框架,可以用來解決各種各樣的人工智能的問題。
總結(jié)起來,強(qiáng)化學(xué)習(xí)的目標(biāo)就是要尋找一個(gè)能使得我們獲得最大累積獎賞的策略。為啥是累積獎賞?你之前不是說種個(gè)好瓜就可以了嘛。但是種瓜得澆水施肥啊,比如你在一個(gè)資源稀缺的地方,你當(dāng)然就會希望我少用資源,又能種出好瓜。因此這樣的定義適用性更廣。
通常呢,累積獎賞表示為
Jt=rt+1+γrt+2+γ2rt+3+?Jt=rt+1+γrt+2+γ2rt+3+?其中γ(0<=γ<=1)γ(0<=γ<=1)為折扣系數(shù),tt表示第幾步。引入折扣系數(shù)這個(gè)東西,一方面是處于數(shù)學(xué)證明方便(預(yù)知詳情可以去讀強(qiáng)化學(xué)習(xí)的教科書),另一方面也是為了拓寬適用性。比如大家做買賣都喜歡現(xiàn)錢,因?yàn)橐归L夢多,比如錢之后貶值了,那不就相當(dāng)于少賺了嘛。
策略一般是用π(s)=aπ(s)=a來表示,也就是在狀態(tài)ss下,根據(jù)ππ策略,我們采取aa動作。有了策略的定義,我們還得知道一個(gè)策略到底好不好?最直接的就是用一個(gè)值函數(shù)來評估,值越高越好唄。比如可以定義一個(gè)值函數(shù)Qπ(s,a)Qπ(s,a),它表示在策略ππ下,從狀態(tài)ss出發(fā),執(zhí)行動作aa所帶來的累積獎賞。
Ⅱ.怎么求解強(qiáng)化學(xué)習(xí)?
這兩個(gè)基本的概念實(shí)際上給我們指了兩條可以求解強(qiáng)化學(xué)習(xí)的明路。一種就是直接去尋找一個(gè)好的策略(這不是廢話嘛)。另外一種就是能求解一個(gè)最優(yōu)的值函數(shù),這個(gè)最優(yōu)的值函數(shù)能夠告訴我們在這個(gè)狀態(tài)下,選取哪個(gè)動作能得到的期望值最高,不管在什么狀態(tài),我們總是能從值函數(shù)表那里查表獲得應(yīng)該選取哪個(gè)動作。這個(gè)表實(shí)際上也就可以作為策略了。
我們首先來看看怎么直接尋找策略。前面也提到了策略實(shí)際上就是一個(gè)從狀態(tài)到動作的一個(gè)映射,那么就可以用個(gè)參數(shù)θθ的模型去近似它(表示為a=πθ(s)a=πθ(s))。既然目標(biāo)就是要讓累積的獎賞最大,我們只要以這個(gè)目標(biāo)求梯度?θJ?θJ,按照梯度不斷更新θθ值,就可以最終得到期望的策略。
然后再來看看基于值函數(shù)的方法。幾乎所有的強(qiáng)化學(xué)習(xí)的模型都是定義在Markov決策過程上的。這個(gè)是什么呢?其實(shí)就是包含了上面我們說的那些狀態(tài),動作,獎賞,以及影響狀態(tài)轉(zhuǎn)移的概率,在這個(gè)模型下,未來的狀態(tài)只與當(dāng)前狀態(tài)有關(guān),與以前的沒有關(guān)系(即Markov性質(zhì))。一個(gè)Markov決策過程可以表示為
s0,a0,r1,s1,a1,r2,…s0,a0,r1,s1,a1,r2,…基于這個(gè)假設(shè),很容易得到值函數(shù)是滿足一個(gè)遞歸式子的。
最優(yōu)的值函數(shù)也是一樣
Q?(s,a)=E[rt+1+γQ?(s′,a′)|st=s,at=a]Q?(s,a)=E[rt+1+γQ?(s′,a′)|st=s,at=a]這就是著名的Bellman Equation,它是求解值函數(shù)的關(guān)鍵。
最優(yōu)的Bellman Equation指導(dǎo)我們通過不斷迭代就能夠得到最優(yōu)的值函數(shù)。如圖所示,一個(gè)實(shí)心點(diǎn)就是值函數(shù)Q,白圈表示狀態(tài)。上述的Bellman Equation實(shí)際上可以按照Markov決策過程展開成一個(gè)樹狀的結(jié)構(gòu),我們不斷向前看,探索后面的情況,然后將這些得到的獎賞綜合起來。然后就能得到一步一步往狀態(tài)動作值函數(shù)里填。熟悉動態(tài)規(guī)劃的同學(xué),對于這種迭代求解的方法應(yīng)該不會陌生。
如果我們對于這個(gè)環(huán)境了如指掌,那些狀態(tài)之間的轉(zhuǎn)移概率我們都清清楚楚,那么所有的轉(zhuǎn)移都可以被展開,如圖所示。利用動態(tài)規(guī)劃就可以求得值函數(shù)的精確解。
但是大自然是偉大的,我們不是上帝,基本上不可能吃透它。轉(zhuǎn)移概率這些東西是無從得知了,因此我們做不到像上面那樣對所有的狀態(tài)和動作進(jìn)行展開。那怎么來算值函數(shù)呢?還是像種瓜一樣,一次可能種不好,但是可以多種幾次,來總結(jié)經(jīng)驗(yàn)。求取平均的累積獎賞來作為期望累積獎賞的近似就可以估算值函數(shù)。
具體說來,也就是我們從起始狀態(tài)出發(fā),使用某種已掌握的策略進(jìn)行探索,不斷執(zhí)行該策略,來得到一個(gè)完整的軌跡,如圖所示紅色標(biāo)記的部分,記錄其獎賞之和,作為一次的累積獎賞的采樣值。多次采樣之后,我們就可以根據(jù)這些軌跡得到一個(gè)估計(jì)。
有時(shí)候我們的策略可能是固定的,那么不是所有的軌跡都一樣了嘛,或者策略總是一個(gè)很高的概率告訴我們執(zhí)行某個(gè)動作,這樣我們其實(shí)就是一直在認(rèn)知范圍內(nèi)做最好的,那采樣再多也沒用。世界太大,我們需要出去看看,可能在未知的地方,有很重要的東西,就像哥倫布發(fā)現(xiàn)新大陸一樣。
因此為了不做井底之蛙,能更好的獲得估計(jì)值,通常會加一點(diǎn)“擾動”,比如??的概率從所有動作中均勻隨機(jī)選取一個(gè),以1??1??的概率選取當(dāng)前策略給出的最優(yōu)動作。通常將這種加了這種擾動的策略記為π?π?。(這只是一個(gè)簡單的處理方法,其實(shí)也有很多研究,感興趣的同學(xué)可以去看看exploitation & exploration dilemma)
但是注意到這里為了獲得軌跡,瓜得全部種好啊。現(xiàn)在21世紀(jì),時(shí)間就是金錢啊,哪有這個(gè)閑工夫種那么多瓜。話說不是有Markov假設(shè)嘛,能不能我種一點(diǎn)總結(jié)一點(diǎn)?答案是肯定的。
我們每次不走完,就只向前看一步,然后估計(jì)出一個(gè)值函數(shù)的目標(biāo)。對比當(dāng)前的值函數(shù)做改進(jìn)。如下圖所示,將只向前看一步的作為樣本。假設(shè)已經(jīng)有$m$個(gè)樣本估計(jì)出一個(gè)Qm(st,at)Qm(st,at),如果現(xiàn)在有了第m+1m+1個(gè)樣本,那么就可以在原來Qm(st,at)Qm(st,at)的基礎(chǔ)上加上基于這m個(gè)樣本估計(jì)的(st,at)(st,at)最優(yōu)Q值與當(dāng)前Q值的差就能起到更新Q值的作用了。一輪中,我們實(shí)際上就只使用了一個(gè)樣本來更新。
表達(dá)起來就是下面這個(gè)式子來進(jìn)行增量式的學(xué)習(xí)Qm+1(st,at)=Qm+1(st,at)+α[rt+1+γQm(st+1,at+1)?Qm(st,at)]Qm+1(st,at)=Qm+1(st,at)+α[rt+1+γQm(st+1,at+1)?Qm(st,at)]其中αα起到一個(gè)控制學(xué)習(xí)步長的作用。
估計(jì)出值函數(shù)之后,要得到最優(yōu)策略,還需要改進(jìn)策略去達(dá)到這個(gè)估計(jì)出來的最優(yōu)值函數(shù)。說來也簡單,我們就在每個(gè)狀態(tài),枚舉一下動作集合,然后選一個(gè)能達(dá)到最大值函數(shù)的動作就可以了
這里簡單的放一個(gè)算法來描述這個(gè)過程,這就是強(qiáng)化學(xué)習(xí)中非常常用的Q-Learning。通過前面的鋪墊,這個(gè)算法大家應(yīng)該不難看懂。
可以看到,到目前為止,我們這個(gè)值函數(shù)似乎就是一張表啊,狀態(tài)和動作好像都是離散的。如果狀態(tài)是連續(xù)的怎么辦?如果動作也是連續(xù)的怎么辦?這種情況很常見啊,因?yàn)楸緛硎澜缇褪沁B續(xù)的。最簡單的可以做離散化。但是連續(xù)空間離散出來怕是空間有點(diǎn)大,你這個(gè)表更新起來也麻煩,而且泛化性能可能也有問題。
Ⅲ.一探深度強(qiáng)化學(xué)習(xí)
對于連續(xù)狀態(tài)問題,科學(xué)家們就說了,可以用函數(shù)來近似這個(gè)連續(xù)空間,比如對于Q函數(shù),可以將其表示為Q(s,a)=[F(θ)](s;a)Q(s,a)=[F(θ)](s;a),其中F(θ)F(θ)表示參數(shù)為θθ的函數(shù),只要能夠求解這個(gè)θθ就能近似值函數(shù),進(jìn)而得到策略。我們將上面Q-Learning里的Q函數(shù)用這個(gè)式子代換即可。這里函數(shù)可以是線性的也可以是非線性的,通常線性的函數(shù)由于更容易分析理論結(jié)果,經(jīng)常被用在強(qiáng)化學(xué)習(xí)里面。即Q(s,a)=θT(s;a)Q(s,a)=θT(s;a)。
當(dāng)然也可以用一個(gè)神經(jīng)網(wǎng)絡(luò)去代替值函數(shù)(假設(shè)網(wǎng)絡(luò)權(quán)值向量ωω,那么值函數(shù)可以表示為Q(s,a,ω)Q(s,a,ω)),特別現(xiàn)在深度學(xué)習(xí)那么強(qiáng),能夠刻畫很多高維的(圖像)狀態(tài),如果換成深度網(wǎng)絡(luò)能夠帶來很多好處(這里總算有點(diǎn)深度強(qiáng)化學(xué)習(xí)的意思了)。如何來確定網(wǎng)絡(luò)的權(quán)值來逼近值函數(shù)呢?
可以將更新Q值的目標(biāo)函數(shù)設(shè)置為Q-learning中更新的差值的均方差
然后就可以進(jìn)行使用梯度下降來求解了
參照Q-Learning,它實(shí)際上每一步就用了一個(gè)樣例來更新Q值,在這里計(jì)算梯度的時(shí)候,可以只用一個(gè)樣例也可以使用mini-batch的方式來進(jìn)行更新。
在Q-learning中使用神經(jīng)網(wǎng)絡(luò)的做法其實(shí)之前就有人想到了,但是效果并不好,因?yàn)橐环矫婺菚r(shí)候深度學(xué)習(xí)的技術(shù)還沒有現(xiàn)在這么成熟,變成個(gè)神經(jīng)網(wǎng)絡(luò)也會比其他模型更好。而另一方面也是最關(guān)鍵的問題來源于強(qiáng)化學(xué)習(xí)的特殊性。這個(gè)特殊性體現(xiàn)在兩個(gè)方面,一個(gè)是它的數(shù)據(jù)是序列產(chǎn)生的,這樣子數(shù)據(jù)之間并不滿足機(jī)器學(xué)習(xí)中通常假設(shè)的獨(dú)立同分布的性質(zhì),這樣我們進(jìn)行隨機(jī)梯度下降,其實(shí)并不隨機(jī)。套一個(gè)機(jī)器學(xué)習(xí)算法當(dāng)然效果不好。另一個(gè)是,機(jī)器人采取什么動作實(shí)際上會影響環(huán)境的,好比走路,左轉(zhuǎn)是陽關(guān)道,右轉(zhuǎn)是獨(dú)木橋,場景大不相同。這意味著后面產(chǎn)生數(shù)據(jù)的分布也在變化,訓(xùn)練出來的策略可能非常不穩(wěn)定,產(chǎn)生震蕩的情況。
但是DeepMind提出了簡單而有效的技巧解決這兩個(gè)問題。對于第一個(gè)問題,他們用了一個(gè)叫Replay Memory的東西記為D,就是字面含義,把產(chǎn)生的數(shù)據(jù)都往里面扔,然后要計(jì)算梯度的時(shí)候,就像看回放一樣,從D里面隨機(jī)采樣。這樣就使得數(shù)據(jù)之間關(guān)聯(lián)性得到了打破。
對于第二個(gè)問題,他們說,先隨機(jī)設(shè)定一個(gè)網(wǎng)絡(luò)權(quán)值,并且固定住,即一直為ω?ω?,慢慢優(yōu)化,穩(wěn)定了,再更新,再優(yōu)化。這樣監(jiān)督信息實(shí)際上在很長的時(shí)間內(nèi)是不變的,達(dá)到了一種監(jiān)督學(xué)習(xí)的感覺。
他們將這一套東西拿來玩Atari游戲機(jī)【1】,這是個(gè)風(fēng)靡80年代的游戲機(jī)。畫面就和馬里奧差不多,像素一格一格的,很多經(jīng)典游戲比如打磚塊都是出自這個(gè)游戲機(jī)。游戲機(jī)本身很簡單,就是一個(gè)搖桿,有18種操作。他們直接讓游戲畫面作為狀態(tài)描述,搖桿作為動作集,游戲中的得分作為獎賞,搞了個(gè)深度神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)值函數(shù)。
我來給大家畫一張圖,大家一看就明白了,實(shí)際上就是游戲畫面通過一個(gè)深度網(wǎng)絡(luò)變成狀態(tài),然后按照Q-learning的流程會產(chǎn)生(st,at,rt,st+1)(st,at,rt,st+1)這樣的數(shù)據(jù),我們將這些數(shù)據(jù)扔進(jìn)Replay Memory中。訓(xùn)練網(wǎng)絡(luò)時(shí),以Q-learning的中的差作為目標(biāo)函數(shù),從Replay Memory中進(jìn)行采樣,進(jìn)行mini-batch的梯度求解。
最后效果還不錯(cuò),在40個(gè)游戲中,比傳統(tǒng)的強(qiáng)化學(xué)習(xí)方法都好,有29個(gè)達(dá)到了人類75%的得分。
我們來看看他們提出的這兩個(gè)技術(shù)到底起了多大的作用。從他們提供的統(tǒng)計(jì)表中我們可以看到replay貢獻(xiàn)挺高,兩個(gè)結(jié)合起來確實(shí)有奇效
到這里好像一副就可以結(jié)尾了的樣子。然而并沒有。
Ⅳ.二探深度強(qiáng)化學(xué)習(xí)
可以看到這個(gè)地方動作集是離散的,并且也就只有18種。前面我們也提到了,動作難道不能是連續(xù)的么?當(dāng)然是可以的,比如你開車的時(shí)候,方向盤就不可能只有左右,是個(gè)關(guān)于角度的連續(xù)值啊。
那這些東西可以做連續(xù)動作的嘛?不可以。再來看改進(jìn)策略的方式,這需要從動作集里面枚舉的。這顯然對連續(xù)情況是沒法處理的。如果離散化呢?那可能是一個(gè)非常大的動作空間,那每一步改進(jìn)的計(jì)算代價(jià)都會非常大。
那么怎么處理呢?大家別忘了求解策略的是兩條路的。我們前面講的都是基于值函數(shù)的方法。我們還能直接求策略的梯度啊。這里策略是一個(gè)單獨(dú)的函數(shù)了,至于做什么動作,把狀態(tài)帶進(jìn)入就可得到。這里自然的就可以處理連續(xù)的動作了,不涉及上面那個(gè)改進(jìn)策略的式子。
由于采用梯度方法,因此這種求解方式有很好的收斂性保證。當(dāng)然另一方面也是容易陷入到局部最優(yōu)解。由于沒有枚舉動作改進(jìn)策略的這個(gè)步驟,它不像值函數(shù)方法有對動作天然的泛化性,用人話說就是對于沒有見過的動作,它就不知道是啥了。
看起來兩種方法各有優(yōu)勢啊,能不能相互取長補(bǔ)短呢?于是聰明的科學(xué)家提出了一種叫做actor-critic的框架,也就是分為actor和critic兩個(gè)部分。簡單說來,critic就是類似之前說的那種Q-Learning那種值函數(shù)的方法,但是我們這里主要用它來評估策略,而actor就是梯度方法,我們用它來改進(jìn)策略。這樣子critic使得策略的評估得到了改善,能給actor一個(gè)更好的梯度估計(jì)值,能改善局部最優(yōu)的問題,actor避免了值函數(shù)中低效的值估計(jì)過程,同時(shí)也能應(yīng)對連續(xù)動作空間。
當(dāng)然這兩個(gè)部分也都是可以用深度神經(jīng)網(wǎng)絡(luò)來取代的,也就能自然的結(jié)合深度學(xué)習(xí)的優(yōu)勢了。
當(dāng)然DeepMind不僅僅就是換個(gè)網(wǎng)絡(luò)上去這么簡單。他們更進(jìn)一步,證明了在一些情況下,存在著決定性策略梯度而且具有很利于估計(jì)的形式。這個(gè)在之前普遍認(rèn)為是不存在的。那這個(gè)決定性策略梯度到底是什么意思呢?之前算梯度的式子是(其中ρπρπ是狀態(tài)分布)
如果采用隨機(jī)策略梯度的求法,需要對狀態(tài),動作進(jìn)行采樣的,如果動作空間大了,那么采樣需要的樣例也就多了。
他們證明可以這樣【3】
不要看式子好像很復(fù)雜,我們看求期望的部分,發(fā)現(xiàn)沒有?我們不用管動作空間了,這極大的提高了在連續(xù)空間中梯度的估計(jì)效率。
同樣加上前面提到的回放和固定目標(biāo)的技術(shù),深度強(qiáng)化學(xué)習(xí)不僅可以處理連續(xù)狀態(tài)空間,也可以處理連續(xù)動作空間【4】。
Ⅴ.三探深度強(qiáng)化學(xué)習(xí)
人類總是容易不滿足,有些問題就是有非常大的離散動作空間,你光能處理連續(xù)的不行啊。如果動作有千千萬。前面這些東西就又跪了。但是DeepMind的科學(xué)家想啊,上面這套處理連續(xù)的不是非常棒嘛,那我就把離散動作空間先變成連續(xù)的,用上面這一套來搞,然后再把連續(xù)都又變回離散的動作,這不就皆大歡喜了。具體說來來呢,他們提出了一個(gè)叫Wolpertinger的框架(wolpertinger是一種歐美傳說中的動物,有松鼠的身子,兔子的頭,鹿的角,野雞的翅膀……不知道他們是不是覺得他們這個(gè)框架雜糅了各種東西,所以起這么一個(gè)名字),框架大概就是圖上這樣。
再具體一點(diǎn),就是將原來的策略函數(shù)變成這樣,
先將狀態(tài)與連續(xù)的動作空間對應(yīng),得到一個(gè)屬于連續(xù)空間的“原型”動作(proto-action)。但是這個(gè)動作不一定合法,因此我們需要再把它映射到原動作空間去。其實(shí)就是尋找k個(gè)最接近的原始動作
為了魯邦一點(diǎn)呢,就用值函數(shù)評估一下,選那個(gè)值最大的動作就ok了,
大家這時(shí)候可能會有點(diǎn)納悶,到底什么樣的問題需要這么大的離散動作空間呢。實(shí)際上這樣的問題還是挺多的。比如在推薦系統(tǒng)中,可以假設(shè)有一個(gè)機(jī)器給用戶作推薦,推薦物品的集合就是動作的集合,每個(gè)用戶可能會接受這個(gè)推薦或者不接受,接受了就相當(dāng)于,這個(gè)動作帶來的狀態(tài)轉(zhuǎn)移獲得了正反饋。所以人的行為就是環(huán)境的反饋。由于現(xiàn)實(shí)生活中人的行為會隨著時(shí)間一直變化著的,目前很多推薦系統(tǒng)都難以解決這一點(diǎn)。而強(qiáng)化學(xué)習(xí)的這種與環(huán)境不斷交互,以謀求長期利益的模式很容易將這種情況建模起來。因此強(qiáng)化學(xué)習(xí)在這類問題上也是有其優(yōu)點(diǎn)的。
他們在實(shí)驗(yàn)時(shí)構(gòu)造了一個(gè)推薦的環(huán)境,其中包括商品集合,對應(yīng)動作集A。轉(zhuǎn)移概率矩陣Wi,jWi,j,表征用戶上一個(gè)接受的物品是ii的情況下,接受jj的概率。每個(gè)物品如果被用戶接受,有rr的獎賞。用戶當(dāng)前的狀態(tài),就是其正在消費(fèi)的商品。當(dāng)前轉(zhuǎn)移不受之前推薦的物品影響。在每一步,我們的機(jī)器人用動作AiAi給用戶提供一個(gè)商品ii,用戶可能會接受它或者隨機(jī)選擇一個(gè)。
可以看到當(dāng)考慮近鄰數(shù)為10%的時(shí)候能有比較好的近似,在第二張圖中,如果考慮全部動作空間(100%),已經(jīng)跑不動了。
在速度上來看,下面這個(gè)表表示每秒鐘能夠進(jìn)行的步數(shù),越多表示越快。可以看到10%還是比全部考慮快很多的。因此通過他們這個(gè)離散到連續(xù),連續(xù)再到離散過程,大規(guī)模離散動作空間的問題也能夠得到解決了。
說到這里,基本把深度強(qiáng)化學(xué)習(xí)的幾個(gè)方面都介紹了一下。我們可以看到,強(qiáng)化學(xué)習(xí)實(shí)際上是一套很通用的解決人工智能問題的框架,很值得大家去研究。另一方面,深度學(xué)習(xí)不僅能夠?yàn)閺?qiáng)化學(xué)習(xí)帶來端到端優(yōu)化的便利,而且使得強(qiáng)化學(xué)習(xí)不再受限于低維的空間中,極大地拓展了強(qiáng)化學(xué)習(xí)的使用范圍。
我覺得一句話能夠很好的概括深度強(qiáng)化學(xué)習(xí)“Reinforcement Learning + Deep Learning = AI”,這是DeepMind中深度強(qiáng)化學(xué)習(xí)領(lǐng)頭人David Silver寫在他的slides上的。就用它作為結(jié)尾吧。
致謝:感謝南京大學(xué)俞揚(yáng)副教授(強(qiáng)化學(xué)習(xí)領(lǐng)域的專家)@eyounx_俞揚(yáng)及@龍星鏢局在本文成文中給予的建議。本文在騰訊實(shí)習(xí)期間完成,感謝精準(zhǔn)推薦中心同事和領(lǐng)導(dǎo)的支持。
參考文獻(xiàn):
【1】Playing Atari with Deep Reinforcement Learning(13’ NIPS Deep Learning Workshop)
【2】Human Level Control Though Deep Reinforcement Learning(15’ Nature)
【3】Deterministic Policy Gradient Algorithms(14’ ICML)
【4】Continuous Control With Deep Reinforcement Learning(16’ ICLR)
【5】Deep Reinforcement Learning in Large Discrete Action Spaces (ArXiv:1512.07679V2)
【6】L. Busoniu, R. Babuska, B.D. Schutter and D. Ernst, Reinforcement Learning and Dynamic Programming using function approximators
【7】R.S. Sutton and A.G. Barto, Reinforcement Learning: An Introduction
【8】周志華,機(jī)器學(xué)習(xí)
總結(jié)
- 上一篇: 深度学习未来十大趋势
- 下一篇: Deep Reinforcement L