董麗亞,何 虎+,王麒淋,楊 旭
(1.清華大學 微電子與納電子學系,北京 100084;2.北京理工大學 軟件學院,北京 100084)
脈沖神經(jīng)網(wǎng)絡(luò)(spiking neural network,SNN)[1]是一種極具生物可解釋性的仿生型人工神經(jīng)網(wǎng)絡(luò),不同于現(xiàn)在主流神經(jīng)網(wǎng)絡(luò)采用的“統(tǒng)計+計算”的方式,脈沖神經(jīng)網(wǎng)絡(luò)通過擬合生物神經(jīng)元機制,模擬生物神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和信息加工過程來進行計算[2]。SNN使用脈沖(發(fā)生在某個時間點的事件的離散值)來傳遞信息,不僅傳遞空間信息,還加入了時間信息的傳遞,計算能力更強。但目前關(guān)于SNN的研究剛剛起步,缺乏有效的SNN網(wǎng)絡(luò)結(jié)構(gòu)和學習算法,嚴重限制SNN的發(fā)展。目前已有的SNN算法有STDP(spike timing dependent plasticity)、ReSuMe(remote supervised method)和SpikeProp等,在現(xiàn)有算法的基礎(chǔ)上,本文提出了基于STDP規(guī)則的權(quán)值學習算法,通過調(diào)整引導(dǎo)神經(jīng)元的激發(fā)時間來間接調(diào)整目標權(quán)值,在網(wǎng)絡(luò)結(jié)構(gòu)方面,利用生物學的條件反射原理結(jié)合Hebb規(guī)則提出了脈沖神經(jīng)網(wǎng)絡(luò)突觸的生長算法,通過該算法可以實現(xiàn)網(wǎng)絡(luò)的自生長和自適應(yīng),同時提出了具有普適性的四層脈沖神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。為了驗證網(wǎng)絡(luò)結(jié)構(gòu)和算法的可行性,本文將算法應(yīng)于不完美信息博弈[3]中,撲克游戲是一種典型的不完美信息博弈,本文將會以斗地主撲克游戲為例,通過SNN網(wǎng)絡(luò)結(jié)構(gòu)和算法來學習一個人的打牌能力,實現(xiàn)一個擬人化的斗地主機器人。
傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的神經(jīng)元通過乘加運算和激活函數(shù),從數(shù)學角度使用“統(tǒng)計+計算”的方式對數(shù)據(jù)進行處理[4,5];而脈沖神經(jīng)元通過復(fù)現(xiàn)生物神經(jīng)元工作狀態(tài)及狀態(tài)變化過程,建立具有仿生型的模型,結(jié)合神經(jīng)形態(tài)學和神經(jīng)動力學角度對生物神經(jīng)元進行模擬。目前廣泛認可的脈沖神經(jīng)元模型[6]有:Integrate-and-fire模型、Hodgkin-Huxley模型、Fractional-Order Leaky integrate-and-fire模型、泄漏積分放電(leaky integrate-and-fire,LIF)模型等。為了同時兼顧模型參數(shù)復(fù)雜度和生物學仿生精確度,本文采用LIF模型。
LIF神經(jīng)元等效為一個帶有電壓源偏置的電阻與電容并聯(lián)的模型,通過電容的充放電實現(xiàn)改變神經(jīng)元的膜電位。如果神經(jīng)元膜電位上升到激活閾值,那么就會導(dǎo)致神經(jīng)元的激發(fā),從而在輸出端產(chǎn)生一個脈沖信號,神經(jīng)元膜電位會迅速下降到靜息電位。
圖1為LIF神經(jīng)元等效電路。
圖1 LIF神經(jīng)元等效電路
根據(jù)膜電位的變化,將LIF神經(jīng)元的活動狀態(tài)分為3種:電荷泄漏、電荷積累和脈沖發(fā)射。且神經(jīng)元的電荷泄漏和電荷積累過程可以使用數(shù)學公式進行表示,如式(1)所示
(1)
其中,Vm(t),Cm,Rm,I(t)分別為神經(jīng)元膜電位、膜電容、膜電阻和充電電流;Vret為偏置電壓源,為神經(jīng)元提供靜息電位。input1和input2,w1和w2分別為神經(jīng)元的輸入的脈沖信號和對應(yīng)權(quán)值,output輸出脈沖信號。
Spiking-timing-dependent-plasticity(STDP)[7]稱為突觸可塑性規(guī)則,是一種對生物神經(jīng)元突觸變化規(guī)律的描述,來源于生物實驗的因果學習的規(guī)則。圖2是算法。
圖2 STDP規(guī)則
當滿足因果關(guān)系時,即:突觸前神經(jīng)元(Npre)激活時間早于突觸后神經(jīng)元(Npost)激活時間的時候,增加兩個神經(jīng)元之間的連接權(quán)值;反之不滿足因果關(guān)系時,減弱連接權(quán)值。權(quán)值變化幅度與連接前后神經(jīng)元激活時間的函數(shù)關(guān)系,如式(2)和式(3)所示
Δt=t2-t1
(2)
(3)
其中,t2,t1分別為Npost,Npre激活時間;τ為衰減速率;α為對稱度調(diào)整參數(shù);μ為控制指數(shù)曲率的因子;λ為權(quán)值的學習率;w為突觸連接權(quán)值,如果w取值范圍不為區(qū)間[0,1],需要先進行歸一化。根據(jù)w與t的函數(shù)關(guān)系,可以得到STDP規(guī)則函數(shù)曲線,如圖3所示。
圖3 STDP規(guī)則函數(shù)曲線
STDP是基于生物學因果關(guān)系的無監(jiān)督學習[8],為了設(shè)計監(jiān)督式學習算法,本文參考STDP規(guī)則[9],并對算法進行改進。通過添加一個“引導(dǎo)”神經(jīng)元,調(diào)整激活時間t3,即可改變Npost神經(jīng)元的激發(fā)時間t2,再根據(jù)STDP規(guī)則,從而達到了間接調(diào)整Npre與Npost的權(quán)值w1的目標。監(jiān)督式學習算法實現(xiàn)方式如圖4所示。
圖4 基于STDP規(guī)則的權(quán)值學習算法
監(jiān)督式學習算法通過對引導(dǎo)神經(jīng)元激活時間的控制,能夠達到對Npost神經(jīng)元激活時間的調(diào)整,最終實現(xiàn)對connection1的增強或者抑制,圖5是權(quán)值增強和權(quán)值減弱的實驗。
首先,進行了權(quán)值增強實驗,采用引導(dǎo)神經(jīng)元對兩個神經(jīng)元之間的連接進行權(quán)值增強的訓(xùn)練,如圖5(a)所示,通過引導(dǎo)神經(jīng)元對連接后端神經(jīng)元Npost的作用,能對神經(jīng)元之間的連接起到明顯的增強效果,連接權(quán)值w1增長速度隨著迭代次數(shù)的增加而逐漸趨于穩(wěn)定。
與權(quán)值增強實驗類似,采用抑制性引導(dǎo)神經(jīng)元對兩個神經(jīng)元之間的連接進行權(quán)值減弱的訓(xùn)練,如圖所示,連接權(quán)值w1減弱速度也會隨著迭代次數(shù)的增加而趨于穩(wěn)定,如圖5(b)所示。
圖5 權(quán)值增強實驗和權(quán)值減弱實驗
文章基于Hebb規(guī)則的基本原理[10,11],提出了基于Hebb規(guī)則的神經(jīng)元連接算法。算法中規(guī)定,在同一輪仿真迭代周期內(nèi),如果兩個神經(jīng)元的激活時間相近,時間差小于某一閾值,并且兩者之間未存在連接,則在這兩個神經(jīng)元中間建立一條連接,連接的方向從先激活的神經(jīng)元指向后激活的神經(jīng)元?;贖ebb規(guī)則的神經(jīng)元連接算法,如圖6所示。
圖6 基于Hebb規(guī)則的神經(jīng)元連接
同時,在算法中規(guī)定神經(jīng)元新連接的產(chǎn)生需要考慮位置因素,當兩個神經(jīng)元位置超出距離閾值后,即便神經(jīng)元活動存在一定的相關(guān)性,也不建立連接。而在結(jié)構(gòu)學習算法中,也在網(wǎng)絡(luò)中添加了神經(jīng)元的坐標信息,用于衡量神經(jīng)元之間的位置關(guān)系。Hebb規(guī)則具體算法流程見表1。
表1 Hebb規(guī)則具體算法流程
目前,人工智能在游戲方面取得了里程碑式的突破[12],但這些游戲的基本特征是游戲中玩家能夠獲得完美信息,在非完美信息的應(yīng)用場景[13],目前仍是挑戰(zhàn)性課題,撲克游戲是典型的非完美信息博弈,本文將以斗地主游戲為例來驗證算法的可行性。
不同于傳統(tǒng)神經(jīng)網(wǎng)絡(luò),提前考慮了所有可能出現(xiàn)的狀態(tài)并制定對應(yīng)策略[14],本文不是事先制定策略,而是通過根據(jù)SNN的特性生成仿生型網(wǎng)絡(luò)結(jié)構(gòu),通過SNN算法訓(xùn)練網(wǎng)絡(luò)權(quán)值。在面對博弈時,考慮當前的游戲狀態(tài),輸入到SNN網(wǎng)絡(luò)中,再每一步重新計算策略。通過這樣的仿生型網(wǎng)絡(luò)學習一個人的打牌能力,且最終結(jié)果是以擬人化程度作為評判網(wǎng)絡(luò)性能的標準,而非像傳統(tǒng)神經(jīng)網(wǎng)絡(luò)采用勝率作為評判標準。
為此,本文提出了具有普適性的四層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),一種基于脈沖神經(jīng)網(wǎng)絡(luò)在非完美信息條件下決策的方法。建立輸入層,對非完美信息條件下的信息進行預(yù)處理,將輸入信息轉(zhuǎn)換為脈沖信號,產(chǎn)生并激發(fā)輸入層神經(jīng)元;建立規(guī)則層,將所有可能發(fā)生的事件劃分為樣本點,每個樣本點對應(yīng)產(chǎn)生一個規(guī)則層神經(jīng)元,將所有可以激發(fā)樣本點的輸入層神經(jīng)元與該樣本點對應(yīng)的規(guī)則層神經(jīng)元全連接;建立決策層,在決策層生成神經(jīng)元,決策層神經(jīng)元個數(shù)和規(guī)則層神經(jīng)元個數(shù)相等,將規(guī)則層神經(jīng)元和決策層神經(jīng)元一一對應(yīng),并根據(jù)脈沖神經(jīng)網(wǎng)絡(luò)算法建立決策層層內(nèi)連接;建立輸出層,根據(jù)決策層的網(wǎng)絡(luò)結(jié)構(gòu)和權(quán)值輸出信號。如圖7所示,這種四層網(wǎng)絡(luò)結(jié)構(gòu)簡單,不涉及大量計算,提高了非完美信息條件下決策的效率且準確度更高。
圖7 基于非完美信息條件下的四層脈沖神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
斗地主叫牌輸入信息為17張手牌,輸出信息為是否叫牌。根據(jù)上文提出的普適性四層網(wǎng)絡(luò)結(jié)構(gòu),整個叫牌網(wǎng)絡(luò)分為四層結(jié)構(gòu),如圖8所示。
圖8 斗地主叫牌的四層網(wǎng)絡(luò)結(jié)構(gòu)
網(wǎng)絡(luò)分為4層:
輸入層:載入原始數(shù)據(jù),并對數(shù)據(jù)進行預(yù)處理,將卡牌轉(zhuǎn)換為脈沖序列。輸入層神經(jīng)元個數(shù)54個。將54張牌進行數(shù)據(jù)處理,根據(jù)脈沖轉(zhuǎn)換規(guī)則,將每一種牌轉(zhuǎn)換為對應(yīng)的神經(jīng)元脈沖發(fā)射時間。
規(guī)則記憶層:將斗地主里的所有規(guī)則進行了定義。單張、雙王、炸彈、對子、三張、三帶一、三帶二、四帶一、四帶二、三連對、四連對、五連對、六連對、七連對、八連對、九連對、十連對、五張順子、六張順子、七張順子、八張順子、九張順子、十張順子、十一張順子、十二張順子、二連飛機、飛機帶翅膀、三連飛機、飛機帶兩對、四連飛機、三連飛機帶翅膀、五連飛機、三連飛機帶三對、四連飛機帶翅膀、六連飛機、四連飛機帶四對、五連飛機帶翅膀,共277個規(guī)則,對應(yīng)277個神經(jīng)元,并按照相應(yīng)的規(guī)則連接輸入層和規(guī)則層。
決策層:也可以稱為推理層,對現(xiàn)有的牌進行組合,形成類似生物體的腦結(jié)構(gòu)。在決策層中生成277個神經(jīng)元,并以二維空間分布。神經(jīng)元在空間位置分布上按照牌型優(yōu)先級分布,如圖8的layer3所示,優(yōu)先級是對斗地主規(guī)則牌型大小的排序等級。對叫牌貢獻大的牌型規(guī)則優(yōu)先級為高,依次至對叫牌貢獻最小的牌型規(guī)則優(yōu)先級為低。將規(guī)則層神經(jīng)元和決策層神經(jīng)元采用“one-to-one”的連接方式。
輸出層:一個輸出(1/0)。決策層神經(jīng)元全連接至輸出層神經(jīng)元。
網(wǎng)絡(luò)形成的決策層類似于生物體的大腦結(jié)構(gòu),具體決策層的形成方法是在網(wǎng)絡(luò)訓(xùn)練過程運用基于STDP的權(quán)值學習算法和Hebb連接算法調(diào)整決策層內(nèi)部的突觸連接關(guān)系和權(quán)值大小。具體為:在決策層中,運用Hebb規(guī)則,獲取兩個獨立神經(jīng)元的位置,判斷兩個神經(jīng)元的相對位置是否小于2,若大于2,神經(jīng)元之間不建立連接,反之小于2時,獲取兩個獨立神經(jīng)元的脈沖激發(fā)時間,計算激活時間差值是否小于時間閾值(1.0 ms),若是兩個神經(jīng)元建立連接,并設(shè)置其權(quán)值為1180.0,反之不建立連接。在時間和空間的連接規(guī)則下,形成了決策層的層內(nèi)連接關(guān)系。
通過STDP規(guī)則,訓(xùn)練網(wǎng)絡(luò)的權(quán)值大小。在訓(xùn)練過程中,設(shè)置決策層中優(yōu)先級高的神經(jīng)元連接到輸出層神經(jīng)元的初始權(quán)值較大,反之優(yōu)先級低對應(yīng)的初始權(quán)值較小。根據(jù)輸出信號即是否叫牌來對決策層到輸出層的連接權(quán)值進行權(quán)值調(diào)整,若此輪訓(xùn)練過程中叫牌,則增加引導(dǎo)神經(jīng)元至輸出神經(jīng)元的連接權(quán)值,根據(jù)本文改進的STDP規(guī)則,會增大決策層內(nèi)神經(jīng)元至輸出神經(jīng)元的連接權(quán)值;不叫牌則反之減小權(quán)值,權(quán)值調(diào)節(jié)的大小如式(2)、式(3)所示。訓(xùn)練完成后形成的網(wǎng)絡(luò)即可以實現(xiàn)斗地主叫牌功能。表2為斗地主叫牌算法流程。
表2 斗地主叫牌算法訓(xùn)練流程
斗地主出牌相對于斗地主叫牌有更多的不確定性因素。根據(jù)游戲規(guī)則,玩家出牌有兩方面的影響:一是玩家手中的牌;二是上家的出牌情況。上文提出的普適性的脈沖神經(jīng)網(wǎng)絡(luò)的四層網(wǎng)絡(luò)結(jié)構(gòu)同樣適用于斗地主出牌階段,圖9是基于四層脈沖神經(jīng)網(wǎng)絡(luò)設(shè)計的斗地主出牌框架。
輸入層:斗地主出牌受兩方面的影響,一是玩家手中的牌;二是上家的出牌情況。所以輸入層有兩個,為了方便區(qū)分,我們將上圖的網(wǎng)絡(luò)分為本家出牌網(wǎng)絡(luò),其輸入信號是玩家手牌信息,以及上家網(wǎng)絡(luò),其輸入信號是上家的出牌。
規(guī)則層:將斗地主里的所有規(guī)則進行了定義。單張、雙王、炸彈、對子、三張、三帶一、三帶二、四帶一、四帶二、三連對、四連對、五連對、六連對、七連對、八連對、九連對、十連對、五張順子、六張順子、七張順子、八張順子、九張順子、十張順子、十一張順子、十二張順子、二連飛機、飛機帶翅膀、三連飛機、飛機帶兩對、四連飛機、三連飛機帶翅膀、五連飛機、三連飛機帶三對、四連飛機帶翅膀、六連飛機、四連飛機帶四對、五連飛機帶翅膀,共277個規(guī)則。本家出牌網(wǎng)絡(luò)和上家網(wǎng)絡(luò)的規(guī)則層分別對應(yīng)各自的規(guī)則層,如圖9所示。且由于本家出牌時,要考慮不同情況將本家的規(guī)則層layer2分為3個通道,不同的游戲場景下激活相應(yīng)通道的規(guī)則層,3種場景分別是:
其次是或?qū)⒂绊懶袠I(yè)復(fù)蘇。在集運市場,班輪公司在經(jīng)過整合后對投放市場的運力達成更多共識,一直偏離價值的運價也終將向正常范圍靠近。如果中美貿(mào)易戰(zhàn)全面升級,美國將征收關(guān)稅對象的產(chǎn)品清單向低附加值貨物擴展,將給班輪公司帶來運量和運價的雙重壓力,這將打破集運市場周期復(fù)蘇的勢頭。隨著下降趨勢持續(xù)推進,將從集運市場波及散運以及油運市場,從而進一步影響整個航運市場。
(1)本輪游戲,本家玩家主動出牌,沒有上家出牌。
(2)本輪游戲中,本家屬于跟牌,且出牌的上家是敵方。
(3)本輪游戲中,本家屬于跟牌,且出牌的上家是友方。
決策層:將符合上家出牌規(guī)則的本家網(wǎng)絡(luò)layer2中的神經(jīng)元輸出至決策層。
輸出層:輸出出牌結(jié)果。
其中輸入層和輸出層的處理比較簡單,不做介紹,將主要介紹規(guī)則層和決策層。
3.2.1 斗地主出牌網(wǎng)絡(luò)的規(guī)則層
斗地主的出牌規(guī)則層是對輸入數(shù)據(jù)規(guī)則的判定,由于輸入層分為了本家和上家兩個輸入模塊,所以對于規(guī)則層也需要兩個規(guī)則層模塊分別對兩個輸入進行規(guī)則的劃分判定,如圖9所示。
圖9 基于脈沖神經(jīng)網(wǎng)絡(luò)的斗地主出牌框架
對上家網(wǎng)絡(luò)的分析,根據(jù)規(guī)則層判斷出上家出牌的大類規(guī)則即可,所以上家網(wǎng)絡(luò)規(guī)則層與叫牌階段的規(guī)則層分析及規(guī)則的劃分一致。
(2)本家網(wǎng)絡(luò)的規(guī)則層
由于本家網(wǎng)絡(luò)在出牌的時候,針對不同的情況有不同的處理方法,本文對情景進行劃分,分為以下3種場景:本輪游戲,本家玩家主動出牌,沒有上家出牌;本輪游戲中,本家屬于被動跟牌,且出牌的上家是敵方;本輪游戲中,本家屬于被動跟牌,且出牌的上家是友方。
對于以上的3張出牌情況將本家網(wǎng)絡(luò)的規(guī)則層分成3個通道,每一種通道對應(yīng)一種出牌情況,輸入層與每一個通道的規(guī)則的連接關(guān)系與叫牌階段的一致,即每一個通道都與本家網(wǎng)絡(luò)的輸入層建立連接關(guān)系,輸入層至規(guī)則層的連接情況和權(quán)值與斗地主叫牌時的連接一致。3個通道分別代表的是3種場景,所以規(guī)則層的不同通道的神經(jīng)元不建立連接關(guān)系。
且本家出牌的規(guī)則層受到上家出牌規(guī)則的限制,所以本家的layer2激發(fā)情況受到上家網(wǎng)絡(luò)layer2的限制,只有和其規(guī)則保持一致,且牌型比上家的大的神經(jīng)元才能被激發(fā)傳遞到下一層網(wǎng)絡(luò)。
3.2.2 斗地主出牌網(wǎng)絡(luò)的決策層
本家規(guī)則層的3個通道分別與決策層連接,連接方式為“one-to-one”的形式,初始狀態(tài)決策層內(nèi)部無連接關(guān)系,通過脈沖神經(jīng)網(wǎng)絡(luò)的學習算法,在決策層內(nèi)部生長出新的突觸,形成類似生物體的腦結(jié)構(gòu)。通過生成的決策網(wǎng)絡(luò)學習輸入數(shù)據(jù)的出牌能力。在決策層中生成277個神經(jīng)元,并以二維空間分布,神經(jīng)元在空間位置分布上按照牌型優(yōu)先級分布,優(yōu)先級是對斗地主規(guī)則牌型大小的排序等級。對叫牌貢獻大的牌型規(guī)則優(yōu)先級為高,依次至對叫牌貢獻最小的牌型規(guī)則優(yōu)先級為低,和叫牌的決策層的優(yōu)先級分布一致。
通過網(wǎng)絡(luò)的結(jié)構(gòu)和權(quán)值訓(xùn)練形成類腦的出牌決策層。
訓(xùn)練的過程是:初始化出牌網(wǎng)絡(luò)結(jié)構(gòu)。輸入玩家的手牌和上家的出牌情況,將信號依次輸入至規(guī)則層,然后至決策層,在決策層內(nèi)部根據(jù)Hebb生長算法,生成決策層內(nèi)部的突觸連接,根據(jù)Hebb的突觸修正公式調(diào)整決策層內(nèi)部的連接權(quán)值。再通過STDP規(guī)則,訓(xùn)練決策層至輸出層網(wǎng)絡(luò)的權(quán)值大小。在訓(xùn)練過程中,設(shè)置決策層中優(yōu)先級高的神經(jīng)元連接到輸出層神經(jīng)元的初始權(quán)值較大,反之優(yōu)先級低對應(yīng)的初始權(quán)值較小。根據(jù)輸出信號即數(shù)據(jù)集的出牌神經(jīng)元id找到其對決策層的神經(jīng)元,增大該神經(jīng)元至輸出層的連接權(quán)值,減小與其它決策層神經(jīng)元的連接權(quán)值。訓(xùn)練完成后形成的網(wǎng)絡(luò)即可以實現(xiàn)斗地主出牌功能。
在斗地主實驗中,我們以生成決策層的層內(nèi)連接及調(diào)整決策層到輸出層的連接權(quán)值為主要目標,通過斗地主叫牌網(wǎng)絡(luò)實現(xiàn)對一個人叫牌能力的學習。
實驗采用的是一名真人的叫牌數(shù)據(jù),共計1700組叫牌數(shù)據(jù),將其中1500組數(shù)據(jù)作為訓(xùn)練集數(shù)據(jù),200組數(shù)據(jù)作為測試集。實驗以擬人化程度作為評判標準,如式(4)所示
(4)
圖10是訓(xùn)練生成的決策網(wǎng)絡(luò),決策層最初沒有內(nèi)部連接。在圖中,當訓(xùn)練集為10、100和1500時,分別獲得決策層中的連接關(guān)系??梢钥闯觯贖ebb規(guī)則的作用下,連接的數(shù)量正在增加,體現(xiàn)出了決策層的學習過程,其中每個網(wǎng)格點代表一個神經(jīng)元。
圖10 訓(xùn)練生成的叫牌決策網(wǎng)絡(luò)
可以看到,決策層的層內(nèi)連接主要在網(wǎng)絡(luò)的上方部分,即網(wǎng)絡(luò)優(yōu)先級高的神經(jīng)元建立的內(nèi)部連接較多,對叫牌貢獻大。優(yōu)先級低的神經(jīng)元極少建立內(nèi)部連接,對叫牌貢獻小。與理論分析一致。
我們以一組數(shù)據(jù)為例,對實驗進行測試模擬。測試集為2KKKKJJJJ55553333。
圖11為輸入層神經(jīng)元的整體激發(fā)情況,輸入層對輸入數(shù)據(jù)進行預(yù)處理并將輸入數(shù)據(jù)轉(zhuǎn)換為脈沖信號,從圖中可以看到此輪游戲中,輸入層神經(jīng)元膜電位隨時間的變化曲線,統(tǒng)計膜電位超過閾值電壓的神經(jīng)元id,得到輸入層被激發(fā)的神經(jīng)元id。
圖11 輸入層神經(jīng)元的整體激發(fā)情況
通過斗地主叫牌網(wǎng)絡(luò),脈沖信號依次被傳入規(guī)則層、決策層和輸出層。
脈沖信號被傳入規(guī)則層,規(guī)則層神經(jīng)元的激活情況如圖12所示,規(guī)則層神經(jīng)元的膜電位隨時間的變化曲線如圖12(a)所示,規(guī)則層被激發(fā)的神經(jīng)元id如圖12(b)所示,通過激發(fā)神經(jīng)元的id可以得到在此次游戲中被激發(fā)的規(guī)則有3,33,333,3333,5,55,555,5555,J,JJ,JJJ,JJJJ,K,KK,KKK,KKKK,2,此輪規(guī)則層共13個神經(jīng)元被激發(fā)。
圖12 規(guī)則層神經(jīng)元的激活情況
通過圖10中的決策層網(wǎng)絡(luò),輸出層神經(jīng)元被激發(fā),即該輪游戲中,斗地主機器人輸出是叫牌,和測試集數(shù)據(jù)一致。
通過200個測試數(shù)據(jù)的測試,測試過程見表3。
表3 斗地主測試算法
最終得到擬人化程度為85%,實驗結(jié)果見表4。
表4 斗地主叫牌實驗數(shù)據(jù)
出牌階段主要以訓(xùn)練玩家本家網(wǎng)絡(luò)的決策層內(nèi)部突觸連接和訓(xùn)練連接權(quán)值為主,以及訓(xùn)練決策層與輸出層的連接權(quán)值。通過網(wǎng)絡(luò)的自生長和自適應(yīng)算法生成一個可以學習人類打牌的智能體。隨著輸入數(shù)據(jù)的訓(xùn)練量增大,決策層內(nèi)部建立的連接關(guān)系變多。圖13是對網(wǎng)絡(luò)進行2500組出牌數(shù)據(jù)訓(xùn)練得到的網(wǎng)絡(luò)結(jié)構(gòu)。
圖13 出牌決策層網(wǎng)絡(luò)結(jié)構(gòu)
斗地主出牌測試階段,網(wǎng)絡(luò)出牌不具有唯一性,由于網(wǎng)絡(luò)會對過去已知知識進行學習,所以,會隨著輸入數(shù)據(jù)量的增大而發(fā)生動態(tài)變化。因此出牌的測試僅進行功能性測試,沒有量化指標。
以一組數(shù)據(jù)為例進行功能驗證。以此輪游戲玩家主動出牌,且以手牌為4 5 5 6 6 6 7 10 J K A 2 小王 大王為例,沒有上家出牌。得到的規(guī)則層神經(jīng)元的膜電位隨時間的變化情況如圖14所示。將規(guī)則層中被激發(fā)的神經(jīng)元將信息傳遞到?jīng)Q策網(wǎng)絡(luò),最終得到的輸出結(jié)果如圖15所示??梢钥吹捷敵鰧拥?27個神經(jīng)元僅有一個神經(jīng)元被激發(fā),且該神經(jīng)元的id代表的信息是輸出結(jié)果是4,出牌網(wǎng)絡(luò)的功能性正常。
圖14 出牌規(guī)則層神經(jīng)元的膜電位隨時間的變化
圖15 輸出層的神經(jīng)元激發(fā)情況
與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)進行對比,不同于傳統(tǒng)神經(jīng)網(wǎng)絡(luò),提前考慮了所有可能出現(xiàn)的狀態(tài)并制定對應(yīng)策略,本文不是事先制定策略,而是通過根據(jù)SNN的特性生成仿生型網(wǎng)絡(luò)結(jié)構(gòu),通過SNN算法訓(xùn)練網(wǎng)絡(luò)權(quán)值。在面對博弈時,考慮當前的游戲狀態(tài),輸入到SNN網(wǎng)絡(luò)中,再每一步重新計算策略。傳統(tǒng)AI通過所有的牌型評分,每一種牌型都有其對應(yīng)的出牌結(jié)果,選擇最優(yōu)結(jié)果,是確定性的數(shù)據(jù)分析和運算,不具備智能性。而SNN網(wǎng)絡(luò)的斗地主:通過形成類似人腦結(jié)構(gòu)的決策層網(wǎng)絡(luò),建立網(wǎng)絡(luò)內(nèi)部的連接關(guān)系和權(quán)值,具有動態(tài)學習能力,且智能程度很高。
綜上,創(chuàng)新性點在于提出了一種基于STDP規(guī)則的權(quán)值學習算法和基于Hebb規(guī)則的結(jié)構(gòu)學習算法,這些算法解決了目前脈沖神經(jīng)網(wǎng)絡(luò)的學習算法的不完備性。結(jié)合SNN特性,將算法引入不完美信息博弈中,以斗地主撲克游戲為例,實現(xiàn)了一個擬人化的斗地主機器人,該機器人相對于傳統(tǒng)AI,更加的智能,并非事先制定策略,而是學習一個人的斗地主能力,生成叫牌決策網(wǎng)絡(luò),最終的擬人程度為85%,在出牌網(wǎng)絡(luò)中,訓(xùn)練出的網(wǎng)絡(luò)的功能性是正常的,下一步工作會在當前算法的基礎(chǔ)上,加入增強學習的算法,繼續(xù)完善斗地主叫牌和出牌網(wǎng)絡(luò),使得其智能化程度更高。