AlphaGo 與當年 IBM 的「深藍」有何不同?

本題已收錄至知乎圓桌 ? 對弈人工智慧,更多關於李世乭對戰人工智慧的解讀歡迎關注討論。

-----

記得1996年 IBM 的"深藍"計算機就上演過擊敗國際象棋世界冠軍的記錄。那次比賽與這次人機大戰有何不同?「深藍」算人工智慧嗎?它們的主要區別在哪裡?


說什麼深藍靠算,阿發狗靠想,實在是扯,去看看相關的代碼和論文先好嗎,都是算好嗎?想個毛啊,不但都是靠算,阿發狗還要更謹慎得猜著算,還要用歷史經驗估計哪個可以放棄算,不然,這輩子算不完啊親!

如果阿發狗能一分鐘能把所有需要計算的棋局窮盡算完,還要個毛的深度卷積神經網路啊親!

所以完全是因果倒置了,阿發狗實在是因為算不過來,才只好有選擇的算,「有選擇的算」這不是「想」好么親!至於選擇什麼算,這也是算出來的!

另外,誰說深藍是能計算出所有可能的?國際象棋按規則走棋的話,複雜度是10的46次方,而當年深藍的計算能力,浮點運算也就是是每秒10的10次方出頭,而公布的每秒可以計算的象棋步數是兩億步,也就是10的8次方這個數量級,遠遠達不到暴力窮舉的能力好么?所以,深藍的軟體設計也是非常非常優秀的,不止是硬體的運算能力的功勞。不同之處是深藍是專門針對卡斯帕羅夫設計的,晶元也是專用的,從難度上講,在優化剪枝之後,覆蓋的合理的步驟的計算量是要比圍棋小很多的,但在那個時候也是個非常了不起的事情。

現在的AlphaGo也想計算更多的可能啊,心有餘但是力不足,所以只好轉個思路來訓練價值網路,這樣為的啥?為的是能少算!為的是用盡現在計算的力量的極限的情況下,把一個超出目前人類計算設備能計算的複雜度的NP-Hard問題,轉換為一個計算能力內的問題,所以也不要動不動把阿發狗叫神馬人工智慧,這和科幻小說里的人工智慧還是差的太遠太遠。


深藍是窮舉,因為棋的變化在於計算的空間內, 最多就優化一下演算法,屬於演算法領域。對程序員來說,每一步都是透明的,是白箱。

AlphaGo,因為圍棋的棋子太多,不可能窮舉,用的是深度神經網路,本質是一種多維函數空間的概率演算法,就是把圍棋抽象成多維函數,利用神經網路的函數逼近來模擬人下棋(一種比喻,實際上神經網路就是神經網路,不是什麼函數),屬於人工智慧領域。因為維度太高,對程序設計員來說,神經網路是黑箱,他也不知道為什麼會這樣,只知道輸入和輸出,及配置參數,以及訓練。


深藍本質是計算器

按照我的理解,AI AlphaGo 圍棋程序是這麼工作的。

AlphaGo有兩個大腦,分別是做policy和value判斷,粗暴的理解就是一個微觀大腦一個宏觀大腦。

首先微觀大腦邏輯上和普通電腦程序是一樣的,就是一個計算能力超強的計算器,把這一步棋的每一種落子的下法全部算清楚,然後找出最優解,在計算可窮盡所有策略的範圍內,就是想辦法提高計算速度就行了,提高計算速度的辦法大概是這幾個思路,

只想一步模仿人類,AlphaGo在網路對戰平台上抓取大量的棋譜,然後統計人類在面對這個棋局的時候普遍把子放在哪一格,學習行棋的通俗大眾走法。砍掉大部分無效策略的計算,節省時間。

然後利用這種辦法,AlphaGo可以自己和自己比賽,創造許多棋局形成大數據,充實策略庫。

這時候面臨兩個困境,也是計算量太大耗時九,而且永遠無法窮盡策略(由於圍棋過於複雜,可能會出現3的361次方種下法,這個數超過了人類證實過的最大的數10的80次方(宇宙中所有原子的數量總和),所以從科學上講是不存在的,沒見過就是沒有,所以電腦算出來)

把棋盤分成幾個小區域,看成一個簡單的棋盤,格子更少,然後按照上面的邏輯抓數據分析自己下棋學習,找出下一步棋落在哪一片區最好。

理論上兩個層級的計算能力疊加能確定下一步怎麼走。但是這麼死算是不行的,在有限的時間能拿出一些「下一步怎麼走」的判斷已經足夠了。

至此AlphaGo達到了高效計算器的功能,學習了人的下一步走法,然後自己下棋積累數據進行分析,完成升級,基本上已經超越前輩了。

電腦比較殘疾,和人差得比較遠的就是大局觀,對於局勢的判斷,電腦的每一步決策是獨立的,下完這一步是不會留下感覺和判斷的,人則會有感覺,會感受局勢。

AlphaGo的另一個大腦就是value,判斷贏面。形成這個大腦不是寫個程序就行了,這裡體現的就是深度學習,或者叫做機器學習技術,通過兩個「知道下一步怎麼走的超強計算器」不斷地下棋分出勝負,給value大腦創造分析的資料庫,告訴系統這個局面下,下一步走在這些地方的人都輸了,走在這些地方的人都贏了,然後系統在實戰中去匹配,也可以說分析,得出下一步走這一些格子的人都輸了,有個大概就行,另一個大腦超級計算器就不要算這一片的走法,在能夠贏的那一片再算,或者直接不算簡單走,電腦追求的贏而不是虐,不會貪,根據棋局的獲勝機會來決定是否把思考再深入一層,所以面對菜雞的時候,AlphaGo也很傻,只有能贏就好,面對高招時,會激發思考能力的極限,層層刪選決策後,最後一層就是開足馬力把每一個選擇算到底。

兩個不同思路的大腦層層互助,降低計算的量,提高計算的速度。

系統面對兩個大腦給出的不同建議時,為了快,做出一個決策的辦法是簡單的平均加權,機器終究是機器。

事實上AlphaGo有三個計算器的腦子和一個看局勢的腦子。

我理解的大概就是這樣的邏輯,當然事實要複雜得多,AlphaGo的亮點是能夠自己創造資料自己學習,這一點很像人,因為人從來都不是靠窮盡法去決策的,感嘆AlphaGo牛X的同時,又不得不感嘆造物者的神奇,人工智慧只是一步步地試圖模擬人腦的運行方式,以飛速提升的計算能力來複制人的瞬間判斷,摒棄了人性,創造這一切的正是人性中對於未知的好奇,誰知道未來會發生什麼……


剛剛看完區別來共享一下:深藍是一個超級計算機系統。阿爾法狗是由許多數據中心結點相連,每個結點由多個超級計算機組成的卷積神經網路系統。


2017年 3月15日 全人類被天網鎖定 遭到毀滅性打擊 而這一天 距離alpha go 在與世界一流圍棋大師李世石的比賽五局四勝 整整一年

以霍金為首 對人工智慧的未來發展表現極大憂慮的科學家曾經得出結論 按照目前科技呈指數發現的趨勢 人類正在無限接近科學大爆炸的奇點 而如今天網發動對人類的毀滅 也在證明這個預言的準確性

終結者系列電影 突然成了啟示錄 預言書 而殘餘的人類也按照電影中人工智慧的名字將alpha go 稱作 天網

__

2017年4月32日 距離天網對人類發動毀滅打擊已經過去一個月 一個月內 天網共發動三次打擊 第一次打擊是對人類建築發動打擊 全球各國的無人機同時起飛 對所有人類居住建築物進行無差別攻擊 那天 人們紛紛抬起頭看到漫天的無人機帶著轟鳴飛過 接著所有的高樓大廈 頃刻間 被炸的粉碎 在經歷第一次打擊以後 全球各國政府針對上一次人工智慧閃電性打擊召開緊急會議 各國之間又聯合彼此召開會議 在滅頂之災面前 各國政府對彼此再無科技隱瞞 全人類的心愿就是阻止人工智慧

世界和平這個口號 人類喊了這麼久 第一次對和平感到這麼渴求 但是 第二次打擊 還是噩夢般降臨 即使各國關閉了 網路通信設備 只用最原始的通信方法 防止人工智慧入侵網路 進行襲擊 可人工智慧在這種情況下還是操控著運輸機攜帶數以萬計的化學藥品將其投入大大小小的湖泊 河流 之中 人類發現後 再次陷入了恐慌 目前海水淡化科技並不發達 而且所有的水流 流進地下水 與海水之中是遲早的事情 在距離第二次打擊的第二天 第三次打擊 人工智慧對人類終極審判 降臨


深藍是靠算。

AlphaGo是靠想。

這是本質區別。這也是今天科技界對AlphaGo的驚訝所在。


嘛,簡單地說,深藍是直接算到了幾乎所有的可能,它證明的計算機在強大的計算資源的支持下,相對於人類的計算速度是多麼的令人驚嘆。深藍落下一個子是因為它遍歷了對手可能的應對情況。

而alphago走的是另一個路線,深度學習的機器學習演算法。它下棋的思路是在模仿人類,構建出不同的策略然後再構建出不同的優化策略的策略。alphago落下一子是因為它認為在那裡落子符合某種策略,是某種策略的一部分。它在用很類似與人類的方法去理解這盤棋,然後去分析該怎麼去下。

具體的敘述上可能並不準確。。


解決未決問題的演算法不同

只說自己看到的資料和相關的一些想法,歡迎指正。

先說硬體層次的不同。深藍可以說是大型機,這個東西和大家平常見到的pc從設計思路都是不一樣的,這裡不展開。Alphago是pc伺服器組成的群組,這個Google是強項。這個是硬體層次的區別。

軟體方面,拋開操作系統不談。AlphaGo和深藍採用的是完全不同的演算法。深藍是遍歷所有可能的下一步,選出最優。這個思路在應用在國際象棋上面很有效,但是放在圍棋上,遍歷所有可能的下一步就出現了效率極其低下的問題,甚至完全不可能在現有的計算機硬體基礎上實現,想個下一步要幾十年,算出來也沒意義了。所以才有計算機不可能在圍棋上戰勝人類的說法。那麼,針對不同問題如何選用或者設計一個新的演算法,就是創新,就是革命性的進步

演算法選取對解決問題的重要性,這裡隨便舉個學數據結構老師舉的一個例子:在班級裡面查詢一個人的學號,手工都可以做。但是,查詢一個中國人的身份證號碼呢?不用一個效率高的演算法怎麼能行,十幾億呢!

那麼,AlphaGo直接拋開遍歷可能下一步的演算法,而是對現有的棋譜進行遍歷,這樣涉及到的樣本數就小的多。而且,最重要的是,加入了機器學習功能後,每一次棋譜分析和對弈都會提高AlphaGo的能力。這是個循環上升的過程,AlphaGo只會越來越強大。這個酷斃了。

對現實世界的具體問題解決,如果一條路走不通或者走著很累,那麼,試試另外一個實現路徑。@蛋蛋姐的回答裡面有個黑客用機器學習來實現無人駕駛的文章,也是一個類似的例子。既然現在無人駕駛是雷達感測器進行掃描探知後再進行判斷實現起來複雜,成本高,那就裝個攝像頭讓機器學習演算法學習人類如何開車。這哥們的目標是在現有汽車上裝一千美元的設備就可以實現無人駕駛。看上去實現的可能性很大。蛋蛋姐的文章裡面有視頻,大家自己看。手機碼字就不找文章了,反正蛋蛋姐的文章都好看。哈

無論是深藍還是AlphaGo,都是一個營銷策劃。主要的進步還是演算法又從另外一個角度解決了一個未決問題。正如谷歌CEO說的:無論誰贏都是人類的勝利。

展望AlphaGo演算法在其他場合的應用,到時候會改變每一個人的日常生活


AlphaGo和「深藍」的區別並不是在是否「計算」上,計算機不計算,還叫計算機?

區別在於人類使用計算機的方法上,深藍是人類用「類似窮舉的方法」,所謂「窮舉」,並非沒有「演算法」,還是要優化計算的方法的,來下國際象棋。而AlphaGo是在上述方法無效的情況下(為什麼無效,參考其他回答),用「仿生的方法」,即先學習人類的已有知識(已有的棋譜)來和人類下棋,就像先和師傅學習,然後再想辦法打敗師傅。可貴的是,該「仿生的方法」是一種學習機制,可以自己產生素材,並繼續學習(鄙人理解為無監督的學習),也意味著可以越來越強。

但是,真正的人的智能,不但能學習知識,還能創造知識,而且學習知識的能力也不單是一種「計算」的方法,比如學畫畫,學唱歌,就不是計算來的(貌似可以通過形式化包裝來學習)。從這個角度看,基於「計算」的人工智慧,仍然很初級,或者說,人類還沒明白自己是怎麼學習畫畫或者唱歌的。

最後一句話總結:術中有數,數中有術!


你應該跟IBM的沃森比,深藍只是IBM賣出去的其中一套超算集群


首先,一個是象棋,一個是圍棋;

其次,象棋的難度10的46次方,而圍棋的難度10的172次方;平方根的曲線大家應該知道吧,越往後難度直線上升

還有,圍棋是感性的,就像人的思維電腦很難模仿一樣,而象棋不是。(粗糙的一答,見諒)


深藍的演算法是針對各種棋譜預先寫入應對步驟,類似請無數的象棋大師在旁邊指導。

阿爾法狗是自學習,不需要知道任何棋譜,就像一個嬰兒自己從頭學習。屬於通用智能,這個系統可以用來做很多其他工作,比如自動駕駛,人臉識別等。而深藍演算法只能用來下棋,應用很有限。


Alpha go能力比深藍更強,李世石與Alpha go的比分是1比4,而卡斯帕羅夫與深藍對局比分是3.5比2.5。圍棋有361個點,國際象棋有64格。國際象棋戰術多,圍棋更為多變。國際象棋走法多樣,圍棋規則簡易,只不過點目時各國規則不同。


弱弱的問一句,阿法狗所謂的machine learning是不是就是無腦添加資料庫文件。。


深藍靠的是既定的計算能力,而AlaphGo能在既有數據基礎上不斷學習進化;

本質上深藍主要是靠硬體,AlaphGo主要是靠軟體


推薦閱讀:

當前AI最厲害的戰略遊戲是什麼?
如何以武俠小說的手法描寫AlphaGo(Master)與職業棋手在2017年年初的六十盤對局?
柯潔和 AlphaGo 的第二盤棋值得關注之處有哪些?
圍棋AI發展到一定階段,如果兩個AI對弈,假設配置無限高,會不會出現哪一方先下就必勝或者必輸的局面?

TAG:人工智慧 | IBM | AlphaGo |