這個問題乍一看是一個很荒唐的問題,但仔細咂摸有很多值得玩味的東西。
首先需要在問題定義裏明晰這樣一件事:機器學習戰勝人類 很困難 , 這裏的困難到底包不包含實作(Implementation)層面的的難度?
很多高贊回答的本質其實都是在這個維度裏設定「惡心」,比如讓狀態的記錄變得棘手、棋盤的形狀變得不規則、提高維度、增加環境的不確定性等等,其實充其量只是說「惡心惡心程式設計師」而已。這樣設定規則本質上提升的是「程式碼復雜性」而不是問題本身的「計算復雜性」。程式碼復雜性誠然是AI進軍一個具體問題的重要阻礙,但算不上是本質的阻礙。AlphaZero乃至MuZero之類的工作已經表明,只要可以用tensor表征整個遊戲,終究可以自己學著怎麽理解這個遊戲並最佳化策略的,都不是個事兒。
所以,我認為這個問題更重要、更本質的方面應當是:假設我們有一個理想中的Oracle,可以自動完成所有現實中程式碼層面的復雜難題,從機器學習(強化學習、深度學習等等)這個方法 本質性的能力邊界 出發,是否可以找到一個簡單的例項,使得解決這個問題(或者說達到與人類媲美的程度)是一個從計算本質上來講困難的事情?
「從計算上來講本質困難的事情」在理論電腦科學中有一個現成的概念,就是NP Hard問題。大意是說,如果存在一個傳統圖靈機演算法,可以在多項式於這個問題規模的時間裏解決這個問題,那麽就可以在多項式時間裏解決任何一個非確定性圖靈機(Non-deterministic Turing Machine)在多項式時間裏解決的問題(NP problem)。
說起來很抽象,舉個NP Hard最簡單的例子之一:
Subset Sum 問題:給n個數碼,判斷是否可以把這N個數碼分成兩個集合,使得兩邊的和是相等的。這個問題看似簡單,實則在復雜性的本質上,不存在比窮舉所有 2^n-1 個非空子集更好的辦法。換言之,你很難(實則是幾乎不能)在n的多項式的時間裏找到這個問題的解答。如果你能,那麽恭喜你,你已經解決並且證明了P=NP這個人類難題,可以去領千禧年大獎的一百萬美金了。
一切的機器學習演算法(無論是強化學習還是神經網絡),本質上依然是基於確定性圖靈機的傳統演算法,那麽就要受到P問題本質難度的約束 。所以,在這個層面上的思路,應該是「如何將一個本質非常復雜的NP Hard問題包裝成一個棋類問題」,從而高枕無憂的聲明:一切現有的演算法都不能有效的解決它。
但是且慢,這裏還有兩個最大的問題:
1. 當我們提到這些「計算復雜度」的時候,我們討論的都是「漸進復雜度」(即Asymptoptic Complexity)。啥意思呢?我們是設棋盤的大小是 n\times n ,然後考察計算復雜度 隨著n的增加趨向於無窮時所增加的速度 。在這個意義上定義「廣義棋類遊戲」後,我們才能判定某一個棋類遊戲(比如圍棋)是很難的(EXPTIME-Complete)。
可是,在日常真正的棋類遊戲中,我們通常會假定棋盤、棋子等數量是有限的(受限於物理實作)。而一旦將n的規模定下來,這個問題立刻變成一個本質狀態數量有限的問題,你能定下來的是一個雖然可能海量、但本質終究有限的問題規模。我們希望借助計算復雜度壓倒AI的目的會大打折扣。
2. 在這個層面上,19路圍棋其實已經足夠復雜了。早先一直說「圍棋是迄今為止人類創造的最為復雜的棋類遊戲,沒有之一,其可能狀態數比宇宙中的原子都要多」雲雲。可是AlphaGo依然成功吊著人類打,顛覆了以往我們「圍棋智慧對AI高不可攀」的認知。
其實說到底,從真正的「圍棋之神」、也就是能夠給出每一個局面的勝負判定和最佳下法的Oracle看來,AlphaZero依然還是一個弟弟,遠沒有達到所謂「解決19路圍棋」的地步。可是,它采用了非常好的近似演算法(Approximation Algorithm),使得它對於當前狀態的策略、估值函數相較於真實判斷非常接近,至少是遠超人類,這才達到了吊著人類打的水平。
3. 因此別忘了我們的另一個目的約束: 讓人類贏。 我們說了這麽多,只是在想著怎麽讓AI輸,卻從來沒有想過讓人類占據獨到的優勢。而且,看起來我們處於一個非常尷尬的境況: 我們想用本質計算復雜性極為復雜的問題來讓AI麻爪,可是棋類遊戲本質有限的規模,使得AI的近似演算法總可以找到挺好的解,而人類卻已經在這個「難度起飛」的過程裏被打爆了。
從而,我們終於來到了這個問題最有意義的層面:人腦智能相較於這些機器學習的演算法而言,究竟在計算本質層面上有什麽超越圖靈機的優勢?如何找到這樣一個例項?甚至……如何證明?這才是思考這個問題最有意義、也是最深刻的路向。
我個人對於這個問題的理解是:
第一,能耗。麥克斯韋妖的思想實驗已經表明,對資訊的處理本質上是需要消耗能量的,而對於復雜棋局的計算涉及海量資訊時,其消耗的能量是驚人的。人腦雖然在絕對的計算水平上稍遜一籌,但是如果考慮到消耗能量和處理資訊的比值,依然是極其優秀的(訓練一個AI需要核電廠半個月的電力,訓練一個人只需要十年的饅頭)。能否有一個理論框架描述這個問題?
第二,類似視覺這類任務的理解力。其實,對於電腦而言有一個有趣的悖論,那就是對人而言復雜的事情對電腦而言很簡單(比如超大規模的算術運算,在棋局的博弈樹上遊走之類),可對人而言很簡單的問題對電腦來說卻很復雜(比如給一張圖片,辨識出每個像素的歸屬,並還原出三維的場景)。人類的視覺中樞處理視覺資訊的效率和能力令人驚嘆,而且是生物經過大自然上億年的演化得到的。從一個矩陣的像素中完成對現實世界「實體」的理解這件事,也許嚴格形式化下來也是一個人能夠戰勝人工智能的問題。
綜上所述,一個現階段最簡單的答案是:雙方各擺一枚棋子,需要向前行進100格到達終點,先到終點者贏。控制遊戲雙方的能量使用,每次讓玩家看帶雜訊汙染的圖片驗證碼,辨識正確往前走一步,錯誤往後退一步(起點不退)。
這個棋,AI想贏人類,本質等價於徹底解決電腦視覺的理解問題,短期內幾乎很難解決。
而真的老老實實在本質上是「有限狀態轉移的馬可夫決策過程」裏比拼計算力和直覺的棋類遊戲裏,恐怕人類都難逃被吊打的命運
以上