從玩遊戲的AI中研究好奇心?(上)
新年放假偷懶了兩周,這周說什麼也要回來啦!
本期文章:Curiosity-driven Exploration by Self-supervised Prediction
ICML 2017年的新文章,在新聞中還很火了一小下。
這篇文章本想仔細看一下他們的程序和演算法,然而力有未逮,所以暫且分為上下集,上集先講一講他們的研究思路,下集再做具體的技術細節講解。
人為什麼會好奇?
當我們在談論「為什麼」的時候,其實有兩個解釋的方向:
- 這樣做有什麼好處?即對應到亞里士多德所說的「目的因」。
大部分人在談論好奇心時也是這個思路:你說探求宇宙如何運轉什麼的,本來是多麼累腦子的事兒,於生活實際也毫無幫助,可人怎麼能樂此不疲呢?難以解釋此事,很多人便把好奇心歸為一種人格特質,開始問「為什麼有人比其他人更好奇?」
但實則也不必把此事人格化。即使是一個對事事都不好奇的人,總還是偶爾會對某些事多問一句;即使是天生好奇的小寶寶,也不會一直喜歡同一個玩具。什麼情況下好奇心更盛,這些時候的好奇對人有什麼好處?這是更容易研究的問題。
- 好奇心產生的機制是什麼樣的?可以大致對應到「物質因」和「動力因」。
大部分人如果試圖解釋某個心理活動的機制,往往會直接跳到物質基礎——大腦是怎麼搞的?哪個神經遞質分泌了,哪個腦區亮了?
但實際上還有很重要的一個層次是演算法。如果好奇心是驅動某一個生理變化的信號,那麼這個信號本身又是怎麼來的?從信息傳遞的角度,什麼樣的上游信息會推導出「啊,你應該此時好奇心大盛了「?如果想製造一個機器人,和人進行同樣的生活,那麼該如何教這個機器人適時表示出好奇呢?
回到本篇文章。作者只是用「好奇」來啟發和命名這種AI的演算法,目的更在於得到玩遊戲玩得更好的AI,並不真的試圖回答對人為何好奇。但作者也試圖暗示他們可以對這個問題有所幫助,簡而言之,他們的回答是:
- 好奇心有什麼好處?——即使在沒有外界指導反饋的情況下,仍能憑藉自己的探索學到相當不錯的東西,最終獲得正反饋,並且可以更好地處理類似的新場景。
- 好奇心的演算法機制是什麼?——自己的預測與實際情況相差越懸殊,越應該感到好奇。
好奇是如何讓AI學會玩超級瑪麗的
準確說這篇文章訓練了兩個AI,分別去玩超級馬里奧和VizDoom。基本的方法還是強化學習。
一般來說,訓練AI玩遊戲的方法都是靠reward。每時每刻所處的狀態s都有對應的獎賞r作為一種反饋,而學習者則需通過學習最佳的策略a來最大化獎賞。
本文作者偏偏說,我們不需要獎賞!
除了不需要,也是不容易有。馬里奧遊戲中,如果沒有那些小蘑菇和金幣的加分,唯一的reward只是是救到公主,那可就難了。現實生活中這個問題更巨大。想想那些前途很美好,路上卻總容易動力缺乏的事情吧:學業、發paper、找對象……
所以這篇文章甚至不把超級馬里奧的死亡設置成懲罰(負獎賞)。死亡的唯一後果只是:看不到新東西。而看不到新東西卻是極為嚴重的懲罰,因為,無法提供作者定義的「好奇心」了。
下面仔細解說這篇文章中如何定義學習過程。
左半部分就是一個典型的強化學習,s代表state,a代表action,r代表reward,其中 是external reward, 是internal reward——這個內部獎賞就是好奇心的快樂。
右半部分具體解釋了 的計算,也就是「好奇心」的演算法機制。從最上面看到一個 的差分計算,對應於對下一時刻world state的「預測錯誤」——即預測錯誤越大,內部獎賞越大。為什麼要獎勵錯誤?如果你做題總做那些你能做對的,固然成績好,但也無法從錯誤中學到新東西。
具體來說:
>0即代表鼓勵犯錯,$eta$ 越大,鼓勵越起勁兒。
當然,我們不願鼓勵Forward Model(預測模型)隨便亂猜,永遠猜不中,所以還需要考慮預測準確性的目標函數(Loss function):
最後,您要問了,為什麼不直接取具體state的預測誤差,而是要包裹一層特徵函數$phi$呢?這就需要考慮一項AI眼中的世界了:並非是一條路、一個管道、一個蘑菇,而是一堆RBG像素點。需要學習這個世界有用的特徵,而有用即可定義為:
其中 是Inverse Model所推測的行為,然後和實際行為 相對比。
總結而言,
其中 。
來,談談哲學
讓我們從演算法的數學海洋中暫停一下,扯兩句。這篇文章不聲不響地為人生提供了很多哲學啟發:
- 死是什麼?死本身不可怕,可怕的是死後你無法繼續向前探索,見識到新的東西。所以當我們說,有的人活著他已經死了……嗯。
- 錯誤是什麼?錯誤不是對既往的否定,而是對未來方向的明晰。越大錯,越值得再復盤迴看,調整自己的模型。
- 世間信息紛繁,什麼是重要的?凡是你的行動能有所影響和改變的,便是重要特徵。
結論
- 根據這個演算法學習的AI的確會出現主動探索的行為。下圖表現了在同一個vizdoom地形中好奇的(綠色)機器人會比隨機遊走的機器人探索更多的房間。符合我們直覺上對「好奇寶寶」的行為定義。
- 由好奇驅動的AI相比baseline(A3C)的確有更好的遊戲表現,尤其是在reward稀少的時候(不稀奇)。
尤其是泛化到沒見過的場景(不同地圖),之前學過其它地圖的AI相比從零開始的同等演算法表現更好。更快的泛化,似的確是生活中常見的好奇心的正面作用。
研究範式評價:優點與局限
- 這些結論對實證研究,有多大用處?
可以啟發我們設計新的研究範式,探索把這些演算法假設推廣到實驗被試身上。需要直接測量internal prediction(forward model)或intrinsic reward嗎?
- 除了這倆遊戲,可以推廣到其它學習場景嗎?
這倆遊戲的一個巨大簡化是:action有限,只有前後左右四個行走方向(超級馬里奧則是前後上下)。當action space加大,這個演算法還會有效嗎?
下篇預告
對比其它的AI演算法。這並不是對好奇的唯一演算法定義。
親自看看他們的代碼結構,對這樣的project有多旁大建立些概念。
推薦閱讀:
※Frequentist vs Bayesian 1 之 為什麼心理學可以是科學:p<0.005?
※當我們相信不該相信的事情時,我們在相信什麼?
※問題生成 (Question generation):AI與認知科學
※什麼是一流的科學研究?--千禧年的諾貝爾獎,神經科學大師坎德爾
※食色性也之1:食 --- 味覺