從AlphaGo Zero到應用:造一張「棋盤」
2017年10月19日凌晨,在國際學術期刊《自然》(Nature)上發表的一篇研究論文中,谷歌下屬公司Deepmind報告新版程序AlphaGo Zero:從空白狀態學起,在無任何人類輸入的條件下,它能夠迅速自學圍棋,並以100:0的戰績擊敗「前輩」。AlphaGo Zero採用了新的reinforcement learning(強化學習的演算法),並給該演算法帶了新的發展。而早在2017年5月27日,AlphaGo Zero的上個版本就已經擊敗了現在的人類第一棋手柯潔九段,阿爾法圍棋團隊宣布阿爾法圍棋將不再參加圍棋比賽。
AlphaGo在早期版本中應用了比較多的人類棋譜,在後續的版本中人類經驗越來越少,而在目前的AlphaGo Zero版本中,終於完全摒棄了人類的數據和經驗。在圍棋這個領域,演算法終於徹底純粹地可以擊敗人類,除了它還有一張棋盤。換句話說,演算法擁有了在一張棋盤上,進化出近乎理論上限的能力。
那麼是不是意味著AlphaGo可以用相同的思路迅速攻克人類一個又一個領域?比如醫療、自動駕駛、交通調度演算法?顯然不是的。因為沒有這樣一張亘古不變的棋盤讓演算法進行計算。「堯造圍棋,丹朱善之」,圍棋從古代到現在規則幾乎沒有大的變化。但是現實環境卻不是這樣。比如將來無人車普及之後的無人車調度問題,就是一個新的問題。外部規則不是一成不變的,運力分布、未來需求分布、擁堵、天氣、是否開會等等因素都有可能改變調度演算法的外部環境。交通問題沒有一個穩定的演算法環境,所以演算法無法像解決圍棋問題那樣給出一個絕對最好的結果。
但是外部環境複雜,不意味著增強學習演算法無法應用。因為我們可以造一個「棋盤」,也就是說想辦法給模擬出來一個優秀的外部環境。
比如,像沙盤遊戲那樣,在系統中搭建出一個城市,比如北京。在這個北京里,我們可以使用一段時間的真實用戶需求、未來可能的需求、擁堵、天氣作為沙盤中的外部條件。在這樣一個沙盤裡不斷對演算法和策略進行迭代,不管是使用決策樹、深度學習、神經網路還是增強學習,都可以在這個沙盤中不斷優化學習。試想如果將北京一個月的需求在演算法中調度上百萬次,這個調度演算法模型一定是比現在高效很多。
這也是增強學習應用之前,對於業務方最緊要的事情,如何定義場景,如何設計一個棋盤,如何讓這個棋盤儘可能地符合業務實際的需求又儘可能地簡單。一旦有了這樣一個棋盤,即使不使用比較複雜的機器學習演算法,那麼對業務場景也是非常有意義的。因為這個棋盤一方面可以作為訓練場,一方面也可以作為演練場。比如即使我們使用的是規則了系統,我們也可以依賴這個「沙盤」確定不同場景的規則參數,比如無人車可以接乘客的範圍參數,也可以使用這樣的一個系統去驗證不同參數的效果,從而設置出來最好的參數。畢竟上線測試至少要一定數據量才能進行判斷,而對於這個沙盤而言,比較不同參數,可以做到完全相同的外部環境,同時比較大量不同參數的合理性。
棋盤的設計者需要深入了解業務,需要深入了解演算法,目前這個行業裡面無論是產品經理還是工程師都難以完全勝任這個「棋盤設計者」的職業,這是未來的挑戰也是機遇。就像AlphaGo的締造者之一黃博士既是一個圍棋業餘高手,同時又是一個演算法大神一樣,未來能深刻改變業務的,一定是既能深度了解業務,也能深度了解演算法的人。
推薦閱讀:
※斯坦福CS231n課程作業# 3簡介
※這篇沒有乾貨沒有知識點不關於機器學習深度學習推薦系統。。
※平安銀行的機器學習實踐
※機器學習各語言領域工具庫匯總-中文版