-
1 # 鬼谷門軍師
-
2 # 裸猿的故事
如果AI輸了,就沒有人會這麼說,只有當AI贏了的時候,才會扯這種胡說八道的東西來出來滿足自己莫名其妙的虛榮心,說到底就是輸不起。如果不是機器,而是一個天才橫空出世,橫掃其他棋手開創自己的時代,那麼其他人可以說因為他對圍棋文化一竅不通,因此他不算絕世高手?
這不就是胡說八道麼,換句話說,職業棋手才不管什麼是圍棋文化,關心文化和哲學的多是臭棋簍子。只有輸家才有許多理由,而贏家不需要理由,贏了就是硬道理。圍棋作為一項競技專案,其本質首先是輸贏。只有輸家才會陶醉於“贏固欣然,敗也可喜”這樣的自欺欺人的意境中。當然,你願意怎麼理解圍棋,那是個人自由。
而AI開發的工程師的任務不是開發一款裝逼軟體,而是要開發一款能夠解決複雜問題的決策AI,以幫助人類面對全球性的複雜問題,包括如複雜的醫療決策問題等等。人類的生存和發展依賴於未來我們解決複雜問題的能力,而如何編制出輔助我們思考的智慧機器是我們生存之所必須。而圍棋恰恰能充當這樣的試金石和磨刀石,真是人類的幸運,也是我中華文明對人類命運的巨大貢獻。如果一款AI的演算法不能戰勝人類的頂尖棋手,那麼它解決複雜問題的能力是可疑的,是難以得到我們信任的,從這一點上說,我們應該感到高興。
因為,人類並沒有輸,恰恰相反,這代表著人類文明的下一次飛躍的起點已經拉開帷幕,而我們正是生活在歷史拐點的一代人,何其有幸!這是當之無愧的黃金時代。從飛往火星到AI勝過人類棋手。可惜科幻大師克拉克和阿西莫夫早早的去世了,但他們所創作的不朽的經典《我,機器人》以及《2001太空漫遊》,正在一步步變成現實。
最後,我必須指出,生在這個時代,對於職業圍棋手來說也是最幸福的時代,棋手們再不懷疑這句格言“棋道一百,我只知七”,只是一代大師藤澤秀行的謙虛之詞,而是對圍棋的深奧的敬畏,但如果沒有絕世高手指出新的發展方向,那麼越來越呆板的棋界開局幾十手居然已經沒有變化可言,人們似乎認為已經認為找到了最優解,直到被alphago打破,它告訴職業棋手,其實開局依然有很大的自由度。這不僅讓人想起數十年前的圍棋界的一次革命,由只有19歲的吳清源大師發起的一場顛覆性運動,也就是那局千古流芳的星三三天元的佈局,而今天已經沒有吳大師,但他對圍棋的理解顯然和alphago頗有相似之處,但可惜沒有人聽他的,都以為他老了,一種思想如果不能贏棋,那在棋界就是沒有人會理睬,哪怕你是曾經的大師。
當年僅19歲的吳清源面對日本圍棋界前輩本因坊秀哉名人走出這樣的佈局,也被人指責為“不懂圍棋”,是後生小子對秀哉的大不敬,是沒有文化的粗鄙的鄉下小子,而且還是來自中國這樣的弱國。當世既無吳清源,那AlpahGo應時而生,也很好。就像當時的吳清源饒天下英雄一先一樣,現在的AlhpaGo同樣足以饒天下英雄一先。
至此圍棋的新變革時代,據新聞報道,曾經的八連冠古力將這句格言,“黑暗是你的朋友,絕望是你的領路人,”抄在了本子上,這讓我相信職業棋手們依然有著自己的驕傲,也希望他們繼續給棋迷們貢獻出更精彩的對局。而棋道一百,AI同樣也離完美甚遠,至少在量子計算機出來之前,圍棋的奧秘依然談不上被徹底破解。而我更願意相信,人類依靠自身的優勢,有能力再次戰勝目前的AI演算法,除非有超越當前演算法的AI出現或者遠遠超越現在硬體水平的黑科技出現。但無論是哪種情況,都是好事。
-
3 # 魅力小婷姐她二哥
你的問題實在是很業餘,首先圍棋的AI並不是靠純計算獲得結果的,因為對於圍棋來說想要靠計算獲得勝利需要的計算量是天文數字,就算用超級計算機都需要幾百年才可能算出,這是完全不現實的事情,現在的人工智慧並不是靠純理論計算解決問題,而是非常符合人性的神經網路演算法進行深度學習。你可以把現在的AI當做一個人,有自己的思考方式,會透過學習積累經驗,並且會合理使用這些經驗,所以說AI不懂圍棋真的是天方夜譚,AI不僅懂,而且比人類研究得更深刻,首先是AI擁有人類無法達到的計算能力,其次AI的思考方式是純理性的,不會摻雜個人情感,最後一點是AI不會受慣性思維束縛,像人類一樣被前人的思維影響,因此AI的能力絕對是毋庸置疑的。當然了,正是因為AI的絕對理智,導致實際觀賞性不高,從開始就能決定整場比賽的勝負,不會有失誤導致的翻盤等情況。像阿爾法狗主動逼迫隊友認輸就是很典型的例子,正常人可能覺得是連笑會輸,但是阿爾法狗透過計算判斷是古力會輸,在局勢還不明朗的情況下就主動認輸,導致比賽觀賞性直線下降。這一點可能就是AI最大的問題所在,理智的太可怕絕不會犯任何錯誤。
-
4 # 科技行者
回答此問題之前,我覺得有必要詳細介紹AlphaGo是什麼,以及它的工作原理是什麼。
眾所周知,AlphaGo專案的目標在於建立一款AI程式,並保證其能夠與世界頂級人類選手在圍棋領域一較高下。
為了理解圍棋帶來的挑戰,我們首先聊聊與之類似的另一種棋類運動——國際象棋。早在上世紀九十年代初,IBM公司出打造出深藍計算機,其在國際象棋比賽中擊敗了偉大的世界冠軍加里·卡斯帕羅夫。那麼,深藍是如何做到這一點的?
事實上,深藍使用了一種非常“暴力”的作法。在遊戲的每一步,深藍都會對所有可能作出的合理棋步作出考量,並沿著每種棋步探索以分析未來的局勢變化。在這樣的前瞻性分析之下,計算結果很快形成一種千變萬化的巨大決策樹。在此之後,深藍會沿著樹狀結構返回原點,觀察哪些棋步最可能帶來積極的結果。然而,何謂“積極的結果”?事實上,眾多優秀的國際象棋棋手為深藍精心設計出了國際象棋策略,旨在幫助其作出更好的決策——舉例來說,是決定保護國王,還是在盤面的其它位置獲得優勢?他們針對此類目的構建起特定的“評估演算法”,從而比較不同盤面位置的優勢或劣勢權重(IBM公司將專家們的象棋策略以硬編碼形式引入該評估函式)。最終,深藍會據此選擇出經過精心計算的棋步。在接下來的回合中,整個過程再次重複。
這意味著,深藍在每一步之前都會考量數百萬個理論位置。因此,深藍最令人印象深刻的表現並不在於人工智慧軟體層面,而體現在其硬體之上——IBM公司宣稱,深藍是當時市場上最為強大的計算機之一。其每秒能夠計算2億個盤面位置。
現在讓我們回到圍棋方面。圍棋顯然更為開放,因此如果在這裡重複深藍的戰略,將根本無法獲得理想效果。由於每個棋步都擁有過多可選擇的位置,因此計算機根本無法涵蓋這麼多潛在的可能性。舉例來說,在國際象棋的開局當中,只有20種可能的下法; 但在圍棋方面,先手選手將擁有361個可能的落子點——而且這種選擇範圍在整個對弈過程中一直非常廣泛。
這就是所謂“巨大搜索空間”。而且在圍棋當中,判斷某個特定盤面位置的有利或不利權重並沒那麼容易——在官子階段,雙方甚至還需要再排布一陣才能最終確定誰才是勝利者。但有沒有一種神奇的方法能夠讓計算機在圍棋領域有所建樹?答案是肯定的,深度學習能夠完成這項艱鉅的任務!
因此在本次研究當中,DeepMind方面利用神經網路來完成以下兩項任務。他們訓練了一套“策略神經網路(policy neural network)”以決定哪些才是特定盤面位置當中最為明智的選項(這類似於遵循某種直觀策略選擇移動位置)。此外,他們還訓練了一套“估值神經網路(value neural network)”以估算特定盤面佈局對選手的有利程度(或者說,下在這個位置對贏得遊戲這一目標的實際影響)。他們首先使用人類棋譜對這些神經網路進行訓練(也就是最傳統但也非常有效的監督式學習方法)。經歷了這樣的訓練,我們的人工智慧已經可以在一定程度上模仿人類的下棋方式——這時的它,就像一位菜鳥級人類選手。而後,為了進一步訓練神經網路,DeepMind方面讓AI與自己進行數百萬次對弈(也就是“強化學習”的部分)。如此一來,憑藉著更為充分的練習,AI的棋力得到了極大提升。
憑藉這兩套網路,DeepMind的人工智慧方案就足以擁有等同於此前最先進的圍棋程式的棋藝水平。二者的區別在於,原有程式使用了此前更為流行的預置遊戲演算法,即“蒙特卡洛樹搜尋(Monte Carlo Tree Search,簡稱MCTS)”,我們將在稍後具體進行介紹。
不過很明顯,到這裡我們還沒有談到真正的核心。DeepMind的人工智慧方案絕不僅僅依賴於策略與估值網路——其並非利用這兩套網路來替代蒙特卡洛樹搜尋; 相反,其使用神經網路以進一步提升MCTS演算法的成效。實際結果也確實令人滿意——MCTS的表現達到了超人的高度。這種經過改進的MCTS變種正是“AlphaGo”,其成功擊敗了李世石,併成為人工智慧發展歷史上最大的突破之一。
1. Udacity提供的系列短片(https://www.youtube.com/watch?v=onBYsen2_eA)
2. Jeff Bradberry的MCTS解讀 (https://jeffbradberry.com/posts/2015/09/intro-to-monte-carlo-tree-search/)
3. Fullstack Academy提供的MCTS教程(https://www.youtube.com/watch?v=Fbs4lnGLS8M)
下面讓我們回想一下本文的第一段內容。上述提到,深藍計算機是如何在國際象棋的每一步當中構建起包含數以百萬計盤面位置與棋步的決策樹——計算機需要進行模擬、觀察並比較每一種可能的落點——這是一種簡單且非常直接的方法,如果一般的軟體工程師必須要設計出一種棋類程式,那麼他們很可能會選擇類似的解決方案。
但讓我們想想,人類是怎樣下棋的?假設目前您身處比賽中的特定階段。根據遊戲規則,你可以作出十幾種不同的選擇——在此處移動棋子或者在那裡移動皇后等等。然而,你真的會在腦袋裡列出所有能走的棋步,並從這份長長的清單中作出選擇嗎?不不,你會“直觀地”將可行範圍縮小至少數幾種關鍵性棋步(這裡假定你提出了3種明智的棋步),而後思考如果選擇其中某一種,那麼棋盤上的局勢將發生怎樣的轉變。對於其中每一種棋步,你可能需要15到20秒的時間進行考量——但請注意,在這15秒內,我們並不是在非常精確地推衍接下來的交鋒與變化。事實上,人類往往會在未經太多思考的情況下“丟擲”一些由直覺引導的選擇結果(當然,優秀的選手會比普通選手想得更遠更深)。之所以這樣做,是因為你的時間有限,而且無法準確預測你的對手會勾勒出怎樣的後續應對策略。因此,你只能讓直覺引導自己。我將這一部分思考過程稱為“鋪展”,請大家在後文中注意這一點。
在完成了對幾種明智棋步的“鋪展”之後,你最終決定放棄這種令人頭痛的思考,直接下出你認為最科學的一步。
在此之後,對手也會作出對應的迴應。這一步可能早在你的預料當中,這意味著你對於下一步要做的事情更具信心——換言之,不必耗費太多時間進行後續“鋪展”。或者,也可能你的對手下出了一手妙招,導致你被迫回防並不得不更謹慎地思考下一步選擇。
遊戲就這樣持續進行,而隨著局勢的推進,你將能夠更輕鬆地預測每步棋的結果,鋪展耗時也將相應縮短。
之所以說了這麼多,是希望以較為淺顯的方式為大家講述MCTS演算法的作用——它透過反覆構建棋步與位置“搜尋樹”以模擬上述思考過程。但其創新之處在於,MCTS演算法不會在每個位置(與深藍有所不同)都進行潛在棋步推衍; 相反,其會更智慧地選擇一小組合理棋步並加以探索。在探索過程中,它會“鋪展”這些棋步引發的局勢變化,並根據計算出的結果對其加以比較。
圍棋是一種“完美資訊遊戲”。也就是說,從理論層面講,無論您身處這類遊戲的哪個階段(即使剛剛走出一、兩步),大家都有可能準確猜出最終誰輸誰贏(假定兩位選手都會以‘完美’的方式下完整盤)。我不知道是誰提出了這項基本理論,但作為本次研究專案的前提性假設,其確實非常重要。
換句話來說,在遊戲狀態下,我們將可透過一條函式v*(s)來預測最終結果——例如你贏得這盤對弈的機率,區間為0到1。DeepMind的研究人員將其稱為“最優估值函式”。由於某些盤面位置比其它盤面位置更有可能帶來獲勝結果,因此前者可能比其它位置擁有“更高估值”。讓我再強調一次,估值=贏得比賽的0到1間機率值。
但先別急——假設一位名叫Foma的女孩坐在您的身邊,在每下一步棋時,她都會告訴您這次決定會導致你勝利還是失敗。“你贏了……你辦理了……不,還是辦理了……”我認為這樣的提示對您的棋步選擇並沒有多大幫助,而且非常煩人。相反,真正能夠幫得上忙的其實應該是勾勒出所有可能的棋步樹,以及這些棋步將會引發的狀態——而後,Foma會告訴你在整個樹狀結構中,哪些狀態會將你推向勝利,而哪些會招致失敗。突然之間,Foma就成了您的完美夥伴——而非討厭的插嘴者。在這裡,Foma將作為您的最優估值函式v*(s)。此前,人們一直認為像圍棋這樣的遊戲,不可能擁有Foma這樣的準確估值函式——因為其中存在著太多不確定性。
然而,即使你真的擁有了Foma,她對所有可能盤面位置的估算在現實對弈當中恐怕也無法奏效。因為在國際象棋或圍棋這樣的遊戲當中,正如之前所提到,即使是想要預測七到八步之後的整體局勢,過多的可能性選擇也會令Foma需要耗費大量時間才能得出分析結果。
也就是說,單憑Foma還遠遠不夠。大家還需要進一步縮小明智棋步的具體範圍,並據此推衍接下來的局勢走向。那麼我們的程式該如何做到這一點?Lusha在這裡閃亮登場。Lusha是一位擁有相當技巧的國際象棋選手加熱心人,她曾花費數十年時間觀看國際象棋大師賽。她可以觀看你的盤面位置,快速思考您所能做出的全部合理選擇,並告訴你專業選手作出各種判斷的可能性。因此,如果您在某一特定時間點上擁有50種可能的棋步選項,Lusha會告訴你職業棋手選擇每種選項的具體機率。當然,其中一些明智的棋步會擁有更高的機率,而其它無意義的棋步則機率極低。她就是你的策略函式,p(as)。對於給定狀態s,她能夠為您提供專業選手可能作出的全部選擇的對應機率。
接下來,你可以在Lusha的幫助下尋找更為合理的棋步選項,而Foma則會告訴我們這些棋步對對弈結果的實際影響。在這種情況下,大家可以選擇由Foma與Lusha協商給出落子建議,或者也可以先由Lusha提供建議,再由Foma對結果作出評估。接下來,挑選其中一些選項進行後續影響分析,再由Foma與Lusha繼續進行預測指導——透過這種方式,我們將能夠更為高效地掌握盤面局勢走向。而這,正是所謂“減少搜尋空間”的實際意義所在。利用估值函式(Foma)預測結果,利用策略函式(Lusha)提供棋藝層面的機率取捨以縮小值得進一步探索的落子範圍。這套體系就是所謂“蒙特卡洛鋪展(Monte Carlo rollouts)”。接下來,當重新回到當前棋步時,你將能夠得到各種選項所對應的平均估值結論,並據此找到最適合的落子位置。不過到這裡,其在圍棋水平方面仍然表現不佳——因為這兩種函式的實際指導能力還比較孱弱。
不過沒關係。
首先進行具體解釋。在MCTS當中,起步階段的Foma與Lusha的功能還不夠精熟。但對弈數量越多,二者在預測可靠結果與落子位置方面就越強大。論文指出,“縮小高可能性棋步的具體範圍”其實是種較為複雜的表達,“Lusha實際上是透過提供專業棋手的落子機率幫助縮小需要考量的選項。以往的工作主要利用這種技術在策略函式較為簡單的情況下,提供強大且成熟的AI選手解決方案。
是的,卷積神經網路非常適合影象處理類任務。而且由於神經網路需要特定輸入內容並給出對應的輸出結果,所以其在本質上其實也相當於一條函式。這意味著大家可以利用神經網路來充當一種高度複雜的函式。從這個思路出發,大家可以將其傳遞一份盤面位置影象,並由神經網路自行判斷當前局勢。如此一來,創建出的神經網路將擁有非常準確的策略與估值能力。
此後,我們需要訓練Foma進行估值:確定獲勝的機率。人工智慧將在模擬環境當中反覆進行自我練習,每一次觀察其最終綶,並從錯誤當中學習到更好、更先進的經驗。
好了,現在大家對AlphaGo應該已經建立起比較完整的印象。下面,我們會進一步深入探討之前提到的各個議題。當然,其中不可避免要涉及一些看似“危險”的數學公式及表示式,但相信我,它們都很簡單(我會作出詳盡解釋)。因此,請放鬆心態。
所以,第一步就是訓練我們的策略神經網路(Lusha),其負責預測專業棋手可能作出的判斷。神經網路的目標是讓人工智慧發揮類似於人類專家的作用。這套卷積神經網路(正如之前提到,這種特殊的神經網路非常擅長影象處理)採用電路板式佈局以簡化影象內容。我們可以向該網路架構的各個層中新增“整流器非線性”,其將賦予整體網路學習更復雜技能的能力。如果大家以前曾經訓練過神經網路,可能對“ReLU”層不會感到陌生。這裡我們同樣使用ReLU層。
這裡的訓練資料以隨機盤面位置對的形式存在,而標籤則為人類所作出的落子選擇。這部分訓練採用常規的監督式學習。
在這裡,DeepMind使用了“隨機梯度ASCENT”。這是一種反向傳播演算法。透過這種方式,我們希望最大程度發揮獎勵函式的作用。獎勵函式代表的是人類專家作出不同行動預測的機率; 我們的目標則是儘可能提升這一機率。但是,在實際網路訓練當中,我們一般只需要讓丟失函式儘可能降低即可——這在實質上是縮小預測結果與實際標籤之間的誤差/差異,也就是所謂梯度下降。在研究論文的實際實現部分,他們確實使用了常規的梯度下降方法。大家可以輕鬆找到與獎勵函式相對的丟失函式,並透過儘可能降低後者最大程度提升前者。
這套策略網路擁有13層,我們將其稱為“SL策略(SL policy)”網路(SL代表監督式學習)。其使用的資料來自某個高人氣網站,有數百萬使用者在這裡進行圍棋對弈。那麼,SL策略網路的實際表現如何?
首先,其圍棋水平要高於其他研究人員的早期開發成果。至於“鋪展策略”方面,大家可能還記得之前我們曾提到,研究人員們訓練出一套速度更快的Lusha版本——我們稱其為Jerry。在這裡,Jerry負責發揮作用。如大家所看到,Jerry的準確度只有Lusha的一半,但速度卻快了數千倍!當我們應用MCTS演算法時,Jerry將幫助我們更快地完成對後續局勢變化的模擬。
要理解下一節的內容,大家可以不瞭解強化學習,但需要認同一項前提——即我所作出的闡述真實有效。如果您希望探究更多細節並加以嘗試,可能需要首先閱讀一些關於強化學習的背景資訊。
一旦擁有了這套SL網路,接下來要做的就是利用人類選手的判斷資料以監督式方式對其進行訓練。在此之後,就是由其自我對弈以不斷磨練判斷能力。具體實現方法也很簡單——選擇SL策略網路,將其儲存在一個檔案中,而後再複製一份副本。
然後,你可以利用強化學習對其進行微調。如此一來,這套網路就能夠自我對抗並從結果中學習經驗。
不過這樣的訓練方式其實存在一個問題。
如果其只在練習中對抗同一個對手,且該對手也一直貫穿訓練始終,那麼可能無法獲得新的學習經驗。換言之,該網路所學到的只是如何擊敗對方,而非真正掌握圍棋的奧秘。沒錯,這就是過度擬合問題:你在對抗某一特定對手時表現出色,但卻未必擁有對付各類選手的能力。那麼,我們該如何解決這個問題?
答案很簡單,當我們對一套神經網路進行微調時,其就會變成另一個風格上略有不同的選手。如此一來,我們可以將各個版本的神經網路儲存在一份“選手”列表當中,並確保每位選手的表現都有所區別。很好,在接下來的神經網路訓練過程中,我們可以從列表中隨機選擇不同的版本作為對抗物件。它們雖然源自同一套神經網路,但表現卻略有區別。而且訓練得越多,選手的版本也就越多。問題就此解決!
在這樣的訓練過程中,惟一指導訓練過程的只有最終目標 ——即贏得比賽。到這裡,我們已經不再需要對網路進行針對性訓練,例如捕捉盤面上的更多位置等。我們只需要為其提供所有可能的合理選項,並下面目標“你必須獲勝”。也正因為如此,強化學習才如此強大——其能夠被用於訓練任何遊戲策略或估值網路,而絕不僅限於圍棋。
到這裡,DeepMind的研究人員們測試了這套RL策略網路的準確性——不使用任何MCTS演算法。之前我們曾經提到,這套網路能夠直接獲取盤面位置並思考專業棋手的判斷機率。到這裡,它已經能夠獨立進行對弈了。結果是,強化學習微調後的網路戰勝了僅利用人類棋譜進行訓練的監督學習網路。不僅如此,它還能夠戰勝其它強大的圍棋程式。
必須強調的是,即使是在訓練這套強化學習策略網路之前,監督學習策略網路也已經擁有了超越現有技術的對弈水平——而如今我們又更進一步!更重要的是,我們甚至不需要使用估值網路這類其它輔助方案。
到這裡,我們終於完成了對Lusha的訓練。接下來重新回到Foma這邊,它代表的是最優估值函式v*(s)——即只有兩位選手皆完美執行其預期內的落子判斷時,她才能提供在目前盤面局勢下獲得優勝的可能性。很明顯,為了訓練神經網路充當我們的估值函式,這裡需要一位完美的對手……遺憾的是,目前我們還沒有這樣一位對手。因此,我們派出了最強大的選手——RL策略網路。
其會提取當前盤面狀態state_s,而後輸出您贏得本場對弈的機率。每一項遊戲狀態都將充當資料樣本,並以標籤的形式用於註釋遊戲結果。因此,在經過 50次落子之後,我們就獲得了50份估值預測樣本。
但這種作法實際上非常幼稚——畢竟我們不可能也不應該將對弈中的全部50次落子全部新增到資料集當中。
換言之,我們必須認真選擇訓練資料集以避免過度擬合的發生。由於每次落子都會與一個新位置對應,因此圍棋中的每一次落子都非常相似。如果將所有落子選擇的狀態都新增到具有相同標籤的訓練資料當中,那麼其內容將存在大量“重複”,並必然導致過度擬合。為了防止這種情況的發生,我們只能選擇那些更具代表性的遊戲狀態。舉例來說,我們可以只選擇對弈過程中的五個狀態——而非全部50個狀態——新增到訓練資料集內。DeepMind從3000萬盤不同對弈過程中提取了3000萬種狀態,從而減少重複資料的出現可能性。事實證明,這種作法效果極佳!
現在,我們談談概念: 我們可以透過兩種方法評估盤面位置的價值。第一是選擇最佳估值函式(即之前訓練完成的函式)。另一種則是使用現有策略(Lusha)直接推導盤面局勢,並預測本次落子帶來的最終結果。很明顯,真正的對弈很少會完全按照我們的計劃推進。但DeepMind仍然比較了這兩種方法的實際效果。此外,大家也可以將這兩種選項混合使用。稍後,我們將瞭解這一“混合引數”,請各位記住這個重要概念。
在這裡,我們的一套神經網路會嘗試給出最近似的最優估值函式,其效果甚至優於經過數千次模擬而得出的鋪展策略!Foma在這裡的表現真的超讚。在另一方面,DeepMind方面也嘗試使用了準確度翻倍但速度極慢的Lusha RL策略,其需要進行成千上萬次模擬以得出結論——最終效果略好於Foma。但也只是略好,而速度卻慢了太多。因此,Foma在這場比拼中勝出,她證明自己擁有著不可替代的價值。
現在,我們已經完成了策略與估值函式的訓練,接下來可以將其與MCTS結合起來,從而帶來我們的前任世界冠軍、大師中的大量、一個世代的突破、體重268磅的……Alphaaaa GO!
在本節中,大家應該對MCTS演算法的工作原理擁有更為深入的理解。請別擔心,迄今為止提到的全部內容應該足以支援您順利掌握相關內容。惟一需要注意的是我們如何使用策略機率與估值方法。我們在鋪展過程中將二者結合在一起,從而縮小每次落子時需要探索的具體範圍。Q(s,a)表示估值函式,u(s,a)則代表該位置的已儲存機率。下面我將具體作出解釋。
另外需要注意的是,策略網路是使用監督學習來預測專業棋手落子判斷的。其不僅能夠提供機率最高的落子選項,同時也會提供各個選項的具體機率。這一機率可被儲存在各個落子判斷當中。在這裡,DeepMind方面將其稱為“先驗機率”,並利用其選擇有必要進行探索的落子選項。基本上,要決定是否需要對某一特定落子選項進行探索,我們需要考慮以下兩點:首先,透過這步棋,我們有多大機率獲勝?是的,我們已經擁有了能夠回答這個問題的“估值網路”。第二個問題是,專業棋手有多大機率會考慮這一棋步?(如果專業棋手不太可能考慮這步棋,那麼我們為什麼要浪費時間進行探索?這部分結論由策略網路負責提供。)
接下來,讓我們聊聊“混合引數”。如前文所述,為了評估各個盤面位置,我們有兩種選擇:其一,直接利用一直用於評估盤面狀態的估值網路。第二,我們也可以使用現有策略網路快速推導對弈情況(假定對方選手也採取符合預測的下法),從而判斷我們是輸還是贏。一般來講,估值函式的效果要比常規鋪展更好。在這裡,將二者結合將能夠提供每項預測的權重估值,例如五五開、四六開等等。如果大家以百分比形式對估值X進行處理,則另一項就是(100-X)%。這就是混合引數的意義所在。後文中將對其實際效果進行說明。
在每一次鋪展之後,大家都可以利用在模擬當中獲得的任何資訊對搜尋樹進行更新,從而進一步提升未來模擬的明智度。在所有模擬結束之後,您從中選擇最佳落子選項即可。
下面來看有趣的結論!
大家應該還記得,RL微調策略神經網路擁有比SL人力訓練策略神經網路更好的判斷效果。但在將其新增至AlphaGo的MCTS演算法中時,使用人工訓練的神經網路反過來超越了微調神經網路。與此同時,在估值函式(可以理解成以無限趨近方式提供完美判斷)方面,利用RL策略進行Foma訓練能夠帶來超越使用SL策略的實際效果。
“執行上述評估需要耗費大量計算資源,我們必須拿出壓箱底的硬貨才能搞定這些該死的程式。”
但DeepMind的言下之意其實是……
“吼吼,跟我們的程式相比,以前的那些圍棋程式簡直就是唐氏兒童級別。”
這裡再說回“混合引數(mixing parameter)”。在評估位置時,對估值函式及鋪展二者的重視程度要高於其中任意一者。其餘部分是DeepMind方面的深入解釋,可以看到其中昭示了一項有趣的結論!
請再讀一次標有紅色下劃線的句子。相信大家已經能夠理解,這句話基本就是對整個研究專案的全面總結。
說到這裡,相信我已經回答了你的疑問。
圍棋是士大夫之間攻城略地互相模擬對抗的棋藝!還蘊含這天圓地方、星宿等哲學觀點。每一個佈局,每一次對抗都是思維、哲學觀念的對抗、交流。而ai卻只是透過演算法去求得最穩妥的一步,所謂的學習就是從不同走法中獲得最好的走法,卻並無理解為期真正的奧義!沒有意識的ai不算是真正的ai,對於這樣的觀點你怎樣看?
回覆列表
人腦思考也是一種計算。人腦和電腦在目的性上沒有任何區別,都是為了處理資料。所不同的只是載體和計算方式,人腦是以有機物為載體,透過感官接收資料,進行決策樹式的運算。而電腦是以無機物為載體,透過外設接收資料,進行數學運算。只不過目前人工智慧開始做出類腦化改變,把計算方式進行了最佳化,使之更像一個人腦的思維方式。而且,伴隨著演算法的軟改變,晶片的架構也在進行智慧化硬改變,中科院計算所的陳雲霽和陳天石團隊研發了全球首款人工智慧處理器“寒武紀”,突破傳統cpu馮諾依曼結構,模仿生物的神經網路,使之可以透過深度學習來解決特定問題。值得一提的是,這些牛人還開發了自主智慧指令集,並以漢語拼音DianNaoYu來命名,預期在未來人工智慧領域,中國再不會像傳統計算機和手機領域那樣,連華為這樣的企業自主設計麒麟都得購買arm指令集,人工智慧時代,我們完全可以彎道超車,利潤和發展不再受制於人。今天,代表人類圍棋最高水平的不再是南韓的李昌鎬、李世石、樸廷桓,而是中國的柯潔,雖然輸給了谷歌的阿爾法狗,但中國的智慧圍棋騰訊絕藝也在迎頭趕上,未來,代表人工智慧最高水平的,極大可能性是中國。