從Q-learning的小遊戲看阿爾法元技術
來自專欄 混沌巡洋艦
機器學習的三個框架監督學習 , 無監督學習, 強化學習, 唯強化學習最難理解 。 如果說監督學習是感知和預測(Perception & Prediction), 強化學習就是決策,它賦予機器以動機和計劃的能力,同時你也可以它身上學習你改怎麼決策!
阿爾法元用到的框架是深度強化學習,在那裡深度學習其實只是起到提取特徵的作用,而背後的核心框架正是強化學習的一套基本功。
鐵哥在這裡通過一個簡單的例子給大家講一下這個通向強人工智慧最有可能的路徑。
首先, 強化學習比監督學習難很多, 因為監督學習, 隨時有一個老師在那裡告訴你怎麼是對,怎麼是錯,錯了多少。 而強化學習, 只有遊戲結束曲終人散的時候, 得到一個獎勵, 或者懲罰, 然而, 你怎麼都回想不清楚你究竟哪一步對, 哪一步錯誤, 可謂是急死老師傅。
而且, 你更加直接的面對不確定性, 這種殘酷的感覺,就是你需要預測的是n多步以後的時候, 那不確定性累加起來, 可以哭倒長城了。
不過, 這才是真實的人生, 走出的步子永遠不知道上帝給你什麼 ,而且, 不是不報,時候未到, 雖然你不知道什麼時候到,只能哀嘆一聲, 蒼天繞過誰啊。
這個問題, 術語叫做sparse, 也就是說可以用於當下決策的有關最終獎勵的信號太弱太弱了。 如何解決這個問題? 有個詞,叫「趨勢」 , 你需要從歷史的經驗里, 得到一個對未來趨勢的判斷,然後賦予此刻每個可能的行動一個值, 因為總有某個行動, 比其它的更容易導致良好的趨勢, 哪怕優勢只是一點點, 我們這樣一步步走出, 總會得到一個帕累托最優吧 。 然後呢 ,假設你有無窮的生命, 你通過每一輪遊戲的經歷得到的信息不停迭代這個趨勢。
這就是強化學習的最簡單的方法 所謂Q 學習(Q- learning)方法。 它自然的包含了兩個部分, 一個是通過經歷不停的強化對某個狀態行為下趨勢的認知 ,另一個則是根據這個趨勢,每步走出當下最優的選擇(這不就是理性人決策嗎!)。
我們再學究一點, 探究一下這個趨勢的數學含義, 其實數學家的角度, 所謂的Q, 就是在當下選擇之下未來收益的期望, 瞧,一句話把趨勢是什麼, 問題里的不確定性都囊括了。
我們再來從人類認知角度看這個問題, 人腦學習如何決策的原理其實是類似的, 你決策的依據, 也是未來的趨勢。
一向自由洒脫的小明問了, 我哪有那麼理性? 我平時的生活從沒有思考過什麼趨勢,更不要說什麼未來收益的期望, 我就是根據我的性情決策的。
只是小明沒有意識到。 雖然人都生活在情緒而不是理性之中,但情緒亦是一種一種樸拙的生存理性,正是某種藏在你基因(祖先的經歷)或者過往經歷中的Q - value,使你你冥冥中覺得大勢不妙而產生了恐懼,反之則是欣喜。 這裡印證了當下的某種經歷與你祖先的某一次窘境的一致性,比如你祖宗在水邊看到的一條蛇, 引起了你對水杯中蛇影的恐懼。
你看到美女的興奮是因為它預示了一種未來子孫滿堂的豐盛(基因所致), 這來自於你趕地鐵的焦慮是它預示了一系列的停薪考試掛科的衰微(經歷所致)。 情緒,使你在一秒鐘內能夠決策。 那些缺少情緒而只有理性的人, 通常無法在日常生活中正常決策。 未來雖然是不確定的, 但是你的喜怒哀樂還是讓你做出大致適合生存的選擇。 甚至更神奇的,你有時候不必經歷後果, 就可以通過你的情緒反應學習,比如某次開車太快差點被撞,這種恐懼和後怕可以讓你學到開慢點,而不是等撞死了再說(TD learning)。
這個Q - learning 方法 , 就是賦予機器以「情緒」 智能, 來克服這個缺乏「 監督信號」問題的。
你要給一個行為所能導致的所有未來趨勢賦值,你就要面對一個問題, 即使此刻你做了一個決定, 你的行動導致的下一個狀態你又需要決策,每個決策又導致不同的結果, 這樣始終都是處於不確定的狀態。
為了簡化這個問題, Q - learning做了一個大刀闊斧的假設, 就是我現在做個決策, 後面的決定也都是按照某個最優的法則走的(選擇當時的可選行動力最優的), 這樣我忽略那些基於此刻行動導致的下個狀態下那些不太好的選擇 ,而是只考慮那時候最優選擇的回報,這也就給出了一個很自洽的解。 也就是說, 此處行動導致的趨勢, 就是未來可能回到的最大值,瞧, 一句話就把這個不確定難題搞定了, 我們基於此把趨勢這個模糊的東西量化。
另外一個難點是什麼呢? 下一步就得到的回報沒有人會把它和未來十年的回報等同視之, 也就是說,你要以某種方式對不同時刻到來的獎勵加權, 這有點像銀行的貼現,未來那虛無縹緲的金銀寶藏,還是好好乘個貼現因子,說不定乘出來還不如此刻的一個蛋糕。 這個原理被藏在一個叫bellaman equation的方程里。
這兩點放在一塊,我們就可以完美的定義Q value,它就是在理性人(沒步下做最優選擇)假設下每一步的收益按貼現率加和來的未來收益總期望。這麼繞口,其實我還沒說下半句, 那就是在此刻某個行為下的期望,太累了,分開講。 這整個定義,就是充滿智慧的Q - value。
然後Q - learning呢? 剛說過了, 學習,是通過既往的經驗, Q - learning的過程就是根據行為做出後得到的真實境遇(可以是獎勵或是懲罰,也可以是新的位置的Q值)來更新這個期望的過程, that『s all。 當Q 值被更新, 你的行為也就被更新了 ,因為我每一次的行為無非選擇最大的Q值。
這裡, 我們做一個更簡單的例子, 把強化學習變成一個簡單走迷宮的遊戲, 在最經典的Q-learning下看看效果。 不要小看它簡單, 小小的迷宮可以玩出深度學習的眾多花樣。
遊戲的框架被稱為「冰湖」 : 北方之王(king of north)統治的國度里有一個巨大的冰湖,冰湖裡隱藏著一些深不可測的冰洞, 冰湖的某個角落藏著關係帝國龍脈的寶藏, 一群流亡士兵要在黑夜裡穿越冰湖找到保藏, 而且不要掉到洞里。 而且冰湖上時刻管著凌琳的風, 你跑路的風向以某個概率被風吹偏。。士兵要決策自己跑路的方向,最終更快更安全的拿到寶藏。
這個遊戲的版本一是你手裡有一個GPS, 士兵知道坐標,但沒有記憶, 士兵手裡有一個巨大的表格, 記下每個位置下不同方向的。Q值,士兵們一個接個去尋找, 通過Q疊代, 讓後面的士兵更快更安全的走到地方。
此處我們得到一個典型的馬爾科夫決策過程,每一步的狀態(位置)都可以決定你的全部未來, 你唯一需要迭代的是那個往不同方向邁一步可能得到的後果。
那麼我說好,這個黑色的冰湖, 絕地大多說地方一個信號都沒有, 你都收不到遠方的獎勵感知信號, 哪來的學習呢? 那麼好了 , 我們這個Q - leanring的表格, 就是關鍵。 因為你第一步迭代的一定是離你和目標最近的那個點,這個點率先得到更高的Q值,當這個點被更新了,下一次走到它附近的agent就很可能會迭代它周邊的這個Q值, 如此以往,Q值會被逐步的迭代出來,如同一個從不幸到幸福的梯度場, agent無論何時開始出發,都可以很快的循著這個梯度場(找到相鄰位置里最幸福的那個位置)達到目標, 並且越來越聰明的躲開冰洞,無論它離目標和危險有多遠, 無論這些士兵本身對冰湖並無概念,也對地理毫無了解, 他們的表現卻讓你覺得他們對遠方的局勢了如執掌。
這一點對於這樣一個狀態數量非常有限, 當下的行為僅需要考慮當下狀態 ,而且獎勵非常確定的時候能是可以求解的。 上述這個框架又被稱為馬爾科夫決策框架,「馬爾科夫」無論出現在哪裡,都是描述當下狀態可以完全決定下一刻狀態的某種時間「離散」的遊戲(典型的如圍棋,象棋)
一旦上面說的任何一條被打破,遊戲就沒有那麼簡單了。 例如:
1, 當我的冰湖變得非常巨大, 可能達到的狀態達到無窮多, 這時候你要計算一個通往「幸福」的梯度場變得沒那麼容易。 所以, 我用我深度學習的慣有招數, 我用一個帶有先驗信息的神經網路來假設這個梯度場的結構再學習! 此處可以有deep Q learning。
2, 既然狀態多不好搞,能不能更直接一點, 不學習Q值, 而是直接學習行為? 於是我們有了policy learning。比如著名的policy-gradient , actor-critic這些deepmind的家常菜。
3, 士兵手裡不再具有GPS定位信息, 而是只知道相鄰位置的狀態, 這時候他只能夠像盲人摸象一樣四處摸。 這時候你有一個非全局的馬爾科夫決策過程。 因為你每一步的信息已經不足以讓你做出智慧的決定。 那怎麼辦? 當下信息不足,我就用歷史信息來補充, 來個循環神經網路給我, 再加一個能夠自己生成定位的神經網路! 此處請看deepmind最新文章Vector-based navigation using grid-like representations in artificial agents。
由此我們從一個簡單的自己對世界環境毫無知覺的agent,一步步邁向了自己心中具有世界模型, 可以通過自己的學習生成世界模型的agent, 認知誕生了, 知識誕生了,而一切都提高了我們強化學習創造的虛擬生命的學習效率和生存可能。
有了這些更新的方法, 我們就從最簡單的遊戲邁向了圍棋, 邁向了星際爭霸這些你真正愛玩的遊戲, 最終邁向真實的生活。
請關注巡洋艦後續推出的深度強化學習課程及精彩解讀文章。
推薦閱讀:
※吳恩達機器學習第一周課後感
※【翻譯】Brian2高級指導_狀態更新
※斯坦福大學《機器學習》- 核心內容(2.1)
※如何利用手機遠程調參
※重磅 | 吳恩達新書《Machine Learning Yearning》最新版分享
TAG:深度學習DeepLearning | 人工智慧 | 機器學習 |