##EasyReadMore##

2009年12月13日 星期日

基於神經網絡的人機對抗人工智能系統 part1






基於神經網絡的人機對抗人工智能系統 part1

文章網址:http://www.playdota.com/forums/2597/22522-20110-31070-32463-32593-32476-30340-20154-26426-23545-25239-20154-24037-26234-33021-31995-32479-65288-29702-35770-65289-a/

Harreke

摘要
人工智能是一門科學名稱。自電子計算機發明後不久,人工智能學科即宣佈創立,其目的就是要模擬人類的智力活 動機制來改進計算機的軟件硬件構成,使他們掌握一種或多種人的智能,以便在各種領域內有效替代人的腦力勞動 ,特別是解決用傳統軟硬件方法難以解決的問題,如模式識別,複雜的控制行為或對海量的數據進行 實時評估等。
所謂人工智能,就是由人工建立的硬件或軟件系統的智能,是無生命系統的智能。智能是人類智力活動的能力,是 一個抽像的概念。一個軟件或硬件系統是否有智能,只能根據它所表現出來的行為是否和人類某些行為相類似來做 判斷。
人工智能在計算機上的實現,有兩種不同的方式。一種是採用傳統的編程技術,使系統呈現智能的效果,而不考慮 所用方法是否與人或生物機體所用的方法相同。這種方法稱為工程學方法,它的編程方式雖然簡單,智能效果顯著 ,可是算法和程序一旦固定下來,智能就很難再進一步提高。另一種是模擬法,它不僅要看智能效果,還要求實現 方法和人類或生物機體所用的方法相同或類似。人工神經網絡是模擬人類或生物大腦中神經元的活動方式,屬於模 擬法。
人工神經網絡入門難度大,編程者需要為每一個對像設置一個智能系統來進行控制,新設置好的智能系統,雖然一 開始什麼都不懂,但它擁有學習的能力,可以通過學習,不斷提升智能,不斷適應環境、應付各種情況。通常來講 ,使用人工神經網絡雖然編程複雜,但編寫完成後的維護工作,將比使用其他方式編程後的維護更加 省力。
本文采用人工神經網絡構建一個完整的人工智能系統,並將該人工神經網絡理論應用於電腦領域的項 目DOTA。

關鍵詞:人機對抗,神經網絡,人工智能, DOTA

目錄
第一章 神經網絡系統概述
1.1 生物學神經網絡
1.2 人工神經網絡
1.2.1 人工神經網絡系統概念
1.2.2 人工神經網絡系統的組成
1.3 神經網絡的訓練
1.4 相關數學知識
1.4.1 人工神經元輸出的計算
1.4.2 反向傳播方法
第二章 人工神經網絡應用的設計
2.1 應用設計
2.2 DOTA簡介
2.2.1 DOTA概念
2.2.2 DOTA規則
2.2.3 DOTA現狀
2.2.3 DOTA AI概念
2.2.4 現有DOTA AI弊端
2.3 新版DOTA AI的理論設計
2.3.1 巡查系統
2.3.2 控制系統
2.3.3 指令中心
第四章 數學算法的實際應用
4.1 確定三大系統的參數和意義
4.1.1 巡查系統
4.1.2 控制系統
4.1.3 命令中心
4.2 三大系統的具體實現思路
4.2.1 巡查系統
4.2.2 控制系統
4.2.3 命令中心
第五章 總結
參考文獻
附錄


第一章 神經網絡系統概述


1.1 生物學神經網絡

人工神經網絡系統是模擬人思維的一種方式,仿照生物的大腦來工作。為了幫助理解,首先介紹一下生物大腦的工 作方式。
生物的大腦擁有稱為皮層的組織。大腦分為兩層:灰色的外層和白色的內層。灰色層只有幾毫米厚,但其中卻緊密 地分佈著數十億個被稱為神經元的微小細胞;白色層佔據了皮層組織的絕大部分空間,是由無數神經元相互連接組 成的。
神經元的構成是獨特的。每個神經元都長有軸突,用來將信號傳遞給其他神經元。
神經元由一個細胞體、樹突和一根軸突組成。樹突由細胞體向各個方向長出,用來接收信號;軸突也有很多分支, 通過分支的末梢和其他神經元的樹突相接觸,形成突觸。一個神經元是通過軸突和突出把產生的信號送至其他神經 元。每個神經元通過它的樹突,與大約1萬個其他神經元連接。
神經元利用電化學過程交換信號。輸入信號來自另一些神經元。這些神經元的末梢和本神經元的樹突相遇形成突觸 ,信號就從樹突上的突觸進入本細胞。雖然信號在大腦中的傳輸過程極其複雜,但也可以把它看做與計算機一樣, 利用二進制的0與1進行操作。
每個神經元只有兩種狀態:興奮和不興奮。神經元把所有從樹突的突觸上接受來的激勵信號,通過我們目前還未知 的的方式相加。如果相加所得結果超過某種閾值,則該神經元就會被激勵,變得興奮,同時產生一個激勵信號,通 過它軸突的突觸,把產生的信號傳給其他神經元;如果相加所得結果沒有超過閾值,該神經元就不會 被激勵。
雖然單個神經元的結構極其簡單,功能有限,頻率大約只有100Hz,但正因為有數量巨大的神經元,相互連接 構成一個龐大的並行處理網絡,所以整個神經網絡系統具備難以置信的能力:
1)能實現無監督的學習
功能完整的神經網絡系統可以實現自行學習,而不需要導師的監督教導。如果一個神經元在一段時間內受到較高頻 率的刺激,則它和輸入信號的神經元之間的連接強度就會在一定程度上改變,使得該神經元下一次受到刺激時,更 容易興奮。
2)對損傷有冗余性
神經網絡系統即使受到了損傷,它依然能執行複雜的工作。
3)處理信息的效率極高。神經元之間的信息傳遞速度,與計算機CPU中數據傳遞的速度相比,是非常非常慢的 。但因為神經網絡系統採取了並行處理方式,使得整個系統可以同時處理巨量的數據,因此整體處理速度得到極大 的提升。
4)善于歸納推廣
神經網絡系統和計算機不同,前者極其擅長模式識別,並能根據已經掌握的信息進行歸納推廣。比如,一個人可以 閱讀另一個人手寫的文字,即使這前者以前從未見過後者寫的東西。
5)擁有意識
這是神經學家和人工智能研究者至今仍在商討的話題。人擁有意識,這是無可辯駁的,但除了人以外,擁有完整神 經網絡系統的其他事物,是否也擁有意識?
綜上所述,一個人工的神經網絡系統,所要完成的任務,就是在現有計算機規模的約束下,盡可能地模擬生物學大 腦的這種並行處理機制,並且在其運作時,能夠顯示出許多與生物學大腦相類似的特性。


1.2 人工神經網絡

1.2.1 人工神經網絡系統概念
生物學大腦中的神經網絡系統是由很多神經元組成的,模擬大腦的人工神經網絡系統也是由很多稱為人工神經元的 單元組成。
人工神經元其實就是生物學神經元的簡化版,但卻是採用電子方式來模擬的。一個人工神經網絡系統裡使用的人工 神經元數量,差別可以非常大,從簡單的數個,到數千個,這完全取決與要用人工神經網絡系統要實 現的功能。
下面是一個人工神經元的結構圖:
w稱作權重,是浮點數。進入人工神經元的每一個信號都會與一個權重相聯繫。而正是有這些權重,一個人工神經 元才會有活躍性,才會對輸入的信號做出判斷。
假設所有權重w的取值為-1到1之間的一個隨機小數。因為權重有正有負,所以能夠影響與它有關聯的信號輸入。如果權重為正,就會對相 關聯的信號輸入起激發作用;如果權重為負,就會對相關聯的信號輸入起抑製作用。
一個人工神經元會把所有的輸入信號,與其對應的權重分別相乘,然後把相乘的結果作為給神經元核的輸入。神經 元核把這些經過權重調整過的輸入全部加起來,形成最終激勵值,激發這個人工神經元進入興奮或非興奮狀態。最 終激勵值也是一個浮點數,如果它超過這個人工神經元的某個閾值(假設閾值為1.0),則人工神經元會向外輸 出一個數值為1的興奮信號,反之則輸出一個數值為0的非興奮信號。
這就是人工神經元最簡單的一種激勵方式。這裡激勵值產生輸出值的過程,是由一個函數來完成,這個函數就叫階 躍激勵函數。

1.2.2 人工神經網絡系統的組成
生物學大腦裡的神經元是和其他神經元相互連接在一起的。為了創建一個人工神經網絡,人工神經元也要以相同的 方式互相連接在一起。
所有人工神經網絡系統中,中最容易理解並且也是最廣泛地使用的,是前饋網絡。該網絡把人工神經元一層一層地 連接在一起,每一層的人工神經元都向前一層饋送,直至獲得整個網絡的輸出。
前饋網絡共有3層。輸入層中的每個輸入都虧送到了隱藏層,作為該層的每一個人工神經元的輸入;從隱藏層的每 個人工神經元的輸出,都連到了輸出層的每一個人工神經元。
作為前饋網絡,實際上可以有任意多個隱藏層,每一層也可以有任意數目的人工神經元,這完全取決與要解決目標 的複雜性。


1.3 神經網絡的訓練
一旦神經網絡構建完畢,就可以對其進行訓練,使其處理數據的能力符合最初的設計要求。
假設需要該神經網絡識別物體A。
①為神經網絡中,每一個層、每一個人工神經元裡每一個權重賦予初始數值。
②對輸入層中的人工神經元輸入需要識別的一系列數據。
③對於每一種輸入配置,檢查它的輸出是什麼,並調整相應的權重。
輸入一張圖片,裡面畫的不是物體A,而是其他物品。這時網絡應輸出一個0。
對與每個非物體A的圖片數據,都要調節網絡權重,使得它的輸出趨向於0;對於每個物體A的圖片數據,也要調 節網絡權重,使得它的輸出趨向於1。
④成功識別出物體A後,通過再次訓練,就可以使網絡識別其他物體B、C、D等等。
這種類型的訓練稱為有監督的學習,用來訓練的數據成為訓練集。調整權重可以採用許多方法,這裡採用反向傳播 方法。


第二章 人工神經網絡應用的設計

2.1 應用設計
本文將使用神經網絡技術,設計一個人機對抗項目,並將這個人機對抗項目,應用於電腦上的一個多人的人人對抗 項目DOTA中。


2.2 DOTA簡介

2.2.1 DOTA概念
DOTA是電腦領域上新興的一個多人對抗項目,全稱為Defense Of The Ancients,即守衛遺跡。它的編寫者名為Ice Frog。

2.2.2 DOTA規則
DOTA是一個多人的人人對抗項目。但它的規則在某些方面與象棋類似。
1)參與對抗的對抗者最多為10人,分為兩大陣營,每方陣營各5人。
2)每個參與者扮演一名「棋子」。每個棋子擁有生命力、戰鬥力等屬性,可以通過學習不同的技能,購買不同的 物品提升自身的實力。
3)雙方所有棋子在一定的地域內活動。同時,雙方各有一座遺跡,和數個保衛遺跡的建築物。
4)每一方的棋子都必須不計一切代價保護己方的建築物和遺跡,同時利用一切可行方式去摧毀敵方的建築物和遺 跡。
5)一旦一方棋子率先突破防禦,摧毀了對方的遺跡,該方立即獲勝,並宣告對抗終結。

2.2.3 DOTA現狀:
DOTA於幾年前年開始流行。隨著它的編寫者Ice Frog不斷努力,DOTA的平衡性越來越高,內容越來越豐富,因此,DOTA迅速風靡全球。世界各地都頻 頻舉辦大型DOTA競技比賽,我國也在今年5月舉辦過世界級的競技大賽(WCG2009)。

2.2.3 DOTA AI概念:
但正因為DOTA是多人對抗項目,為了能進行對抗電腦必須聯網,而且還必須有他人參與。如果因為某些原因, 比如電腦無法聯網,或者參與的人數不足等,便無法正常進行對抗。
為了解決這些問題,一名國外編程高手Lazyfiend,簡稱RGB,於數年前編寫了一套人工智能系統,可 以生成數個電腦控制的角色(簡稱AI),來頂替人數的空缺,跟真正的人類競技。這就是DOTA上最初的人機 對抗項目。
這個人機對抗系統極大地緩解了因為電腦無法聯網或人數不足等原因,而不能正常進行對抗的問題。使用DOTA 人工智能系統進行競技的人不計其數。
因此,DOTA人機對抗項目獨立出來,成為與DOTA人人對抗項目齊名的新形項目——DOTA人工智能系統 ,簡稱DOTA AI。人們也分成了兩大類,一類跟其他人通過DOTA對抗,一類跟電腦通過DOTA AI對抗。

2.2.4 現有DOTA AI弊端
可是,隨著時間的推移,RGB的DOTA AI的弊端也就浮現出來。RGB由於完全採用了工程學方法編程,電腦角色的一切行為全都固定化,電腦角色控 制的棋子的行動套路全部是事先編好的,不會隨機應變。雖然這種人工智能系統在當時打敗了不少人,擊潰了不少 挑戰,但現在,人們已經看破了這種人工智能系統的運作方式,找出了它的致命破綻。
這可以用一個例子來比喻,人跟電腦下象棋時,電腦很厲害,人下不過,但多下幾局後,人發現,電腦下棋的方式 是完全固定的,每一步走棋都嚴格重複上一把的套路。因此,人可以從電腦這一成不變的下法中找出破綻,摸索出 完全克制電腦的套路,從而擊敗電腦。一旦有了克制的套路,人就可以一點都不動腦筋,只要簡單地按這種套路下 棋,就能輕易擊敗電腦——因為電腦不懂得隨機應變。
遺憾的是,RGB只對他的DOTA AI更新過幾次,就退出不再干了。流傳至今的,還只是他數年前編寫的、不懂得隨機應變的那套人工智 能系統。
現在DOTA的版本飛速更新換代,由於一直沒有人接替RGB的工作,從根本上改變DOTA AI智力底下的現狀,導致DOTA與DOTA AI之間的差距越來越大。
還是用下象棋舉例。電腦的程序更新之後,電腦就多了幾種下法,不再一成不變地使用那套已經被人看破的套路了 。一下棋,人自然又被電腦擊敗了。但再多下幾次,人又發現了電腦的致命破綻——多出來的那幾種套路,也全是 固定不變的。只要人摸清了電腦全部的套路之後,自然能摸索出克制這些固定下法的套路。總而言之,就算程序再 更新幾次,也沒有實質的用處;電腦的固定的套路無論有多少種,人只要多花點時間就能全部看破。
DOTA AI參與者的抱怨之聲越來越大,這時候國外又出現一名編程高手BuffMePlz,簡稱BMP。但他同樣沒 有能力從根本上改變DOTA AI智力低下的現狀。他所做的,只有一件事,那就是不停地更新程序,為人工智能系統機械地加入更多的固定的 算法。
人跟電腦下象棋,如果電腦只有固定的一種套路,人很快就能看破;如果電腦更新程序,多了幾種不同的但仍然固 定的套路,人就需要多花點時間看破;但如果電腦有了十幾種、幾十種、乃至上百種不同的套路,雖然每種套路還 是固定的,可由於數量激增,人要想看破,就需要花巨量的時間。這種機械式的程序更新,從某種意義上來說,能 極大緩解DOTA AI智力低下的問題。
固定套路數量的激增帶來的,首先是程序容量的劇增——程序容量越大,就可能隱藏越多的錯誤,導致電腦出問題 ;其次是工作量的劇增——編寫套路需要非常多的時間。
人們看破了電腦的套路後,編寫者就要編出另外的套路。可人們會更快地看破,因此編寫者又需要加快速度,絞盡 腦汁再編寫更多的套路——這種固定套路的人工智能系統,陷入了一個惡性循環,它的弊端無需置疑 。
本人於去年開始嘗試設計新的DOTA AI。


2.3 新版DOTA AI的理論設計
不同於RGB的完全工程學方法、完全固定套路的算法,本人將採用以模擬法為主導,工程學為輔助的算法,在理 論上構建一個人工智系統。
理論上,一個完整的人工智能系統,應包含如下幾大部分。

2.3.1 巡查系統
DOTA AI是建立在DOTA的基礎上的,所以最重要的一點,是必須嚴格遵守DOTA的各項規則,電腦角色的各種行 為不能超出DOTA規則所允許的範圍之外。
這些規則將通過一個巡查系統實現。由於規則是完全固定的,不會,也不容許有任何更改,因此該系統使用工程學 方法編程。
巡查系統是獨立於所有電腦角色之外的裁判,應該有如下功能:
1)信號轉化
把進行對抗時,所有傳遞給人類的、人類大腦可以識別的視覺、聽覺等信息,轉化為電腦角色可以識別的數字信號 。
這個功能為電腦角色提供知覺能力。
2)行為限制
因為人類角色在進行對抗前,已經熟知了對抗規則,所以會自覺地避免讓所控制棋子做出違規行為的 情形。
而巡查系統就起著實時監控電腦角色行為的功能,如果某個電腦角色的數據,有可能指引它控制的棋子做出違規的 行為,則巡查系統就對該電腦角色發出警告,使其修正數據。

2.3.2 控制系統
為了使電腦角色有效地控制它的棋子,必須有一個系統,能夠接收電腦角色發出的指令,並使棋子執 行該指令。
由於棋子應對電腦角色發出的指令絕對服從,因此控制系統也使用工程學方法編程。
控制系統應該有如下功能:
1)發佈指令
電腦角色可以通過這一功能,對它控制的棋子下達各種指令,比如移動、攻擊、撤退、防守,等等。
2)響應指令
電腦角色發佈一個指令後,棋子就必須立刻響應該指令,並嚴格執行。
3)執行結果反饋
棋子執行指令後,要對電腦角色匯報指令的執行情況。如果由於一些不可抗拒因素,指令未被執行,或者指令執行 不到位,電腦角色就要迅速做出其他決策。

2.3.3 指令中心
指令中心是整個人工智能系統的核心,它起著人類大腦的思維的作用。沒有指令中心,所有電腦角色也只不過是一 堆堆數據;有了指令中心,電腦角色就是真人一樣的存在,才有類似真人一樣的思維和行為。
指令中心應該有如下功能:
1)知己知彼
所謂「知己知彼,百戰不殆」,電腦角色想要正確做出決策,必須全面掌握己方和敵方的詳細數據。
雖然電腦角色可以控制的棋子種類很多,每個棋子的實力也不同,但由於棋子所有的能力(生命力、戰鬥力等)都 可以用具體的數據來表示,因此無論任何時候,一個由電腦角色控制的棋子,它的整體實力都可以靠一系列實數完 整地描述。所以這個功能用完全工程學方法實現。
2)探索活動區域
DOTA的活動區域很大,而棋子的視野很小,所以電腦角色需要通過讓棋子探索活動區域來掌握戰場狀況。因為 存在少數幾處固定的「兵家必爭之地」,但由於其他(不論人類還是電腦)角色控制的棋子是活動的,懂得轉移陣 地或建立臨時陣地,所以這個功能可以由半工程學方法、半模擬法共同實現。
3)提升棋子實力
為了戰勝敵人,需要使自己控制的棋子變得更強。增強棋子實力的方式是獲得經驗值、提升等級、學習技能、購買 物品。
DOTA中每個棋子都有經驗值的設定,通過與敵人對抗,每次對抗的勝利者都會獲得經驗值。
每當經驗值累積到一定程度,棋子的等級就會提升。
棋子每提升一次等級,就可以學習一個技能。一個棋子可以從它的技能庫中選擇一個技能(五選一) 進行學習。
DOTA中有數量眾多的物品可供電腦角色購買,並裝備給它控制的棋子。通過與敵人對抗,每次對抗的勝利者都 會獲得金錢獎勵,當金錢獎勵累積到一定程度,就可以從物品庫中購買一個物品(多選一),裝備給 它的棋子。
每個電腦的棋子實力都不相同,因此不同技能和不同物品對棋子起到的能力提升作用也不同,組合數量非常巨大。 雖然在技能學習和物品購買方面,存在一些已有的常識性規則,但更多時候還要靠模擬法實現。
4)實時評估
就算電腦角色知己知彼,也知道如何提升自己棋子的實力,但真正面對敵人時,就需要有快速反應能力,評估戰場 局勢,是攻是退、是堅守陣地還是呼叫支援。
RGB的人工智能系統最大的弊端就在於,這一戰場評估功能也採用了完全工程學編程,使得電腦角色沒有主動的 、實時的評估能力,只有被動的、反應速度慢的評估能力,而被人類角色用計謀輕易擊敗。
而新版人工智能系統採用模擬法編程,能使電腦角色擁有較強的分析能力和計謀使用能力,讓其更不 易被擊敗。
另外,電腦角色的實施評估能力要受到巡查系統的制約,即電腦角色不能以違規的方式對付敵方角色,敵方角色也 不能以違規的方式對付己方角色。
擁有上述三大系統後,這個人工智能理論設計就完成了。
下面可以開始將數學算法應用於理論當中。




沒有留言:

張貼留言

※怎麼下載?Xuite硬碟MediaFireBadongoSendSpace
※文章可以轉貼嗎?可以,不過要註明出處、標示本站連結。
※載點可以轉貼嗎?不可以,不能盜連。
※建議瀏覽器:Chrome 或 Firefox 或 Opera 或 IE7以上
!請按+1來支持本站!