關於人工智慧小論文
計算機博弈,歷來是人工智慧的一個重要的研究領域,早期人工智慧的研究實踐,正是從計算機下棋開始。以下是小編整理分享的的相關文章,歡迎閱讀!
篇一
計算機博弈與人工智慧
計算機博弈,歷來是人工智慧的一個重要的研究領域,早期人工智慧的研究實踐,正是從計算機下棋開始。因為人類開發下棋軟體,目的是讓計算機模仿人腦進行思維,如果能夠掌握下棋的本質,也許就掌握了人類智慧行為的核心,那些能夠存在於下棋活動中的重大原則,或許就存在於其它任何需要人類智慧的活動中。所以說,下棋軟體某種意義上可以代表人工智慧的發展程度。
從上世紀六十年代的“跳棋機”到1997年的“深藍”,計算機下棋程式在人機對弈中取得了一個又一個勝利,但是這些程式雖然屬於人工智慧範疇,實際上它們並沒有多少“智”的成分,主要部分都是在可行範圍內搜尋。各種研究也大都是怎樣使搜尋更快更有效。它們缺乏“智”的成分的根本原因,是我們自己並不清楚人類是以怎樣的形式思考的。比如你寫一個名字問一名教師,這人是不是他班上的學生。教師馬上就可以回答是或不是。如果你問計算機,計算機也可以馬上正確地回答是或不是。但計算機的方式是把這個名字與學生名單裡所有名字一一比較以後得出的答案。計算機搜尋很快,全走一遍幾乎可以瞬間完成。但我們知道教師是不可能在短時間內把班上所有學生的名單過一遍的。類似的,我們看到一個人的照片,馬上就知道我們以前見沒見過這個人,我們不可能在短時間內把我們以前見過的人都檢查一遍,那麼我們是怎樣得出結論的呢?現在我們對此還不是完全清楚。
下棋的時候棋盤上可走的地方很多,但下棋的人並不是每種走法都去考慮。那麼哪些位置需要考慮,哪些位置不需要考慮,這就是“模式識別”問題。人腦有“模式識別”功能,可以很快得出一個大致的結論,計算機沒有這種功能,只好所有的位置都考慮。在人機博弈中,計算機人工智慧的基本思考方法是窮舉法,即通過對所有可能的招法的演化結果進行比較,最後選擇出一個最好的招法。例如在象棋的某個“局面”中,如果有38種合乎規則的棋子走法,無論選擇其中哪一種,都會再生成一個新局面。將所有這些變化列起來,就會形成一棵“博弈樹”,計算機要做的,就是比較最後一層結果,選擇其中一個最好的,然後逆推,找到本局面下最好的一個走法,計算機的這種思考能力在中局搏殺階段表現得尤為明顯。另外,在人機對弈中,計算機面對每一步棋時,都將會模仿人的思考方法儘可能地簡化搜尋範圍,然後對其進行橫向比較並選擇最優走法。但是,國際象棋的變化總數達到10的123次方,而中國象棋的變化數量比這還要多得多,可達10的144次方以上,圍棋的變化就更多,達10的172次方以上,計算機不可能算出棋盤上的所有變化。因此,所謂的“利用窮舉法選擇最好的走法”,指的是棋局的區域性,並且是在有限的步驟裡,而不是通盤窮舉,它更沒法對整盤棋的形勢做正確判斷。這就是它中盤計算超強而大局觀差的原因。半個世紀以前人們就開始研究國際象棋程式,但因計算機效能問題,在人機對弈中計算機始終表現不佳,因為大空間搜尋不可行,就只能用人們設計的判別模式進行選擇性地搜尋模仿人的思維。選擇不見得對,搜尋又不徹底,結果當然不會好到哪裡去。好在計算機的效能發展得很快,到了1997年,IBM的深藍用“硬搜尋”打敗了人類國際象棋世界冠軍卡斯帕羅夫。當然深藍還請了一些國際象棋專家指點判別程式,但主要靠的還是硬搜尋。
目前,在三大棋類專案中,國際象棋和中國象棋兩項,計算機的水平都已經可以跟最頂級的職業棋手抗衡了,但在圍棋專案中計算機的水平卻始終上不去,目前圍棋計算機大賽獲得冠軍的軟體也只勉強達到業餘初段水平,和頂級職業棋手相比,大概要被讓七子。
為什麼計算機圍棋的水平和象棋比差這麼多呢?除了資金等投入上有差距外,大致還有以下幾個原因:
1國際象棋盤60格,中國象棋90個交叉點,而圍棋則有361個交叉點。象棋一局棋一般三四十個回合七八十步棋,而圍棋一盤棋一般要一百多手棋,最多的會超過三百手棋,這使圍棋的計算量遠遠超過象棋,因此對計算機的效能提出了更高的要求,但按照傳統的解決問題的思路,目前計算機還不能滿足這種要求。
2中國象棋和國際象棋的目的比較明確,就是儲存子力,保衛老將王。而圍棋以佔地多少決定勝負,厚勢與薄味、要子和廢子、模樣和實地,這些都是判斷上的問題,很難在程式中做出界定。
3在象棋中,計算佔的比重很大,象棋中每個棋子的價值都是可以量化的,例如國際象棋中後相當於三個馬或九個兵,在棋局的不同階段或子力優勢時再加上不同的權值,因此計算機可以用準確無誤的計算來彌補它判斷上的不足。但圍棋的計算只是圍棋的一部分,尤其是序盤階段,對全域性形勢的分析與判斷才是重點,由於在棋局程序中,隨著周圍的棋子佈置不同,原有棋子的價值在不斷地發生變化,如何判斷取捨,這一方面正是計算機的弱點,也無法通過計算來彌補。
計算機圍棋的難點之一,是缺乏好的估值函式,使計算機圍棋不能如象棋一樣,運用好的估值函式、搜尋樹及-剪枝法,即可獲得不錯的棋力,計算機圍棋大多依靠一些經驗法則,以靜態的評估為主,而動態的搜尋則僅用於區域性的、目標明確的棋串攻殺,全域性的搜尋較少。因此,人類的經驗如何用於計算機圍棋,就成了設計的重點。
圍棋中一般認為達到業餘初段水平才算入門,多年來計算機圍棋的水平一直在門外徘徊,直到目前的最新技術,以蒙特卡羅方法為基礎的UCT演算法出現以後,計算機圍棋終於達到了業餘初段水平,而且從發展潛力來看還有很大提升空間。
蒙特卡羅是位於摩納哥的賭城,蒙特卡羅方法Monte Carlo,縮寫為MC的名稱象徵性地表明該方法的概率統計的特點,它是把所求解的問題同一定的概率模型相聯絡,用計算機實現統計模擬或抽樣,以獲得問題的近似解。MC怎樣用於圍棋呢?針對某局面下的某一手棋,由計算機模擬後續對局,得到這手棋的獲勝概率,把所有可能下法的獲勝概率都算出來後,選擇獲勝概率最大的下法。MC直接用在圍棋上的缺點十分突出,首先是浪費了模擬次數,因為在有限的時間內只能模擬出一定的棋局數。其次,它沒有考慮對方的下一手,如果我們把MC當作估值函式,那麼對比傳統的人機博弈程式,簡單的MC相當於只搜尋了一步。如果估值無比精準的話,那麼這一步足矣。實際上圍棋還不存在這麼精確的估值,以MC的估值速度,往深算幾步,耗費的時間無法接受。所以人們對演算法進行了改進,首先是根據棋形和基本著法進行智慧判定,只對合理的著法作模擬,對明顯不合理的招法予以捨棄,其次,對難以判定優劣的多種可選方案,用AMAF演算法進行隨機選擇。
以蒙特卡羅方法為基礎的UCT演算法,是目前計算機圍棋在計算手筋和區域性戰鬥上的最好的演算法,在9€?的小棋盤上有過戰勝職業棋手的記錄,但它也有自己的侷限,如果沒有新的演算法上的突破,很難跳出業餘的段位,和職業棋手進行對抗。假如將來有一天,計算機圍棋程式戰勝了頂級職業棋手,是否說明計算機已經具有智慧了呢?我們仍然不能得出這個結論。
下一頁分享更優秀的<<<