本發(fā)明涉及人工智能領(lǐng)域,尤其涉及基于卷積神經(jīng)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)技術(shù)。
背景技術(shù):
五子棋是規(guī)則簡(jiǎn)單易懂的棋類(lèi)游戲,對(duì)弈雙方輪流落子,先連成五個(gè)子的一方取得勝利。雖然規(guī)則簡(jiǎn)單,但由于巨大的搜索空間,在有限的資源和時(shí)間內(nèi)模擬所有的棋局是不現(xiàn)實(shí)的。因此,現(xiàn)有的五子棋ai還未達(dá)到完美落子的水平,并且與頂尖的五子棋職業(yè)選手存在差距。傳統(tǒng)的五子棋算法包括蒙特卡洛樹(shù)搜索、極大極小值算法,以及alpha-beta剪枝等。近幾年,卷積神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用圖像識(shí)別等領(lǐng)域。它能自動(dòng)提取大量圖像中的共同特征,便于分類(lèi)、定位。alphago成功得將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于圍棋,訓(xùn)練得出策略網(wǎng)絡(luò)和估值網(wǎng)絡(luò),結(jié)合傳統(tǒng)的蒙特卡洛樹(shù)搜索達(dá)到了頂尖職業(yè)選手的水平。對(duì)于五子棋,也有一些類(lèi)似alphago的現(xiàn)有技術(shù),通過(guò)嘗試大量參數(shù)來(lái)確定卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),得到了初步的五子棋策略網(wǎng)絡(luò)。
發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中發(fā)現(xiàn),alphago的策略網(wǎng)絡(luò)結(jié)構(gòu)比較龐大,如果簡(jiǎn)單得將其從圍棋移植到五子棋上必然會(huì)浪費(fèi)計(jì)算資源和時(shí)間,降低蒙特卡洛搜索時(shí)的搜索速度,導(dǎo)致棋力下降。因此,如何針對(duì)五子棋的規(guī)則特點(diǎn)對(duì)策略網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行簡(jiǎn)化是設(shè)計(jì)的關(guān)鍵,這樣才能高效地將其整合到蒙特卡洛樹(shù)搜索中。此外,五子棋與圍棋在落子特點(diǎn)上有顯著區(qū)別,五子棋主要是在棋盤(pán)的局部對(duì)弈,而圍棋不僅進(jìn)行局部對(duì)弈,還要考慮整個(gè)棋盤(pán)上的棋子,導(dǎo)致會(huì)有脫先的落子。所以,如何讓五子棋策略網(wǎng)絡(luò)能夠?qū)W習(xí)并應(yīng)對(duì)脫先這種非常規(guī)情況也是有待解決的問(wèn)題。
現(xiàn)有的五子棋策略網(wǎng)絡(luò)缺乏設(shè)計(jì)思路,沒(méi)有針對(duì)五子棋的規(guī)則特點(diǎn)設(shè)計(jì)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。它們通過(guò)大量嘗試結(jié)構(gòu)的參數(shù),從訓(xùn)練效果中權(quán)衡考慮前向傳播時(shí)間和預(yù)測(cè)準(zhǔn)確率,初步確定最終的策略網(wǎng)絡(luò)。這樣會(huì)做很多無(wú)謂的嘗試,并且沒(méi)有理論的支持。其次,現(xiàn)有的五子棋策略網(wǎng)絡(luò)缺少關(guān)于脫先的訓(xùn)練樣本,導(dǎo)致五子棋策略網(wǎng)絡(luò)不能很好地學(xué)習(xí)并應(yīng)對(duì)這種非常規(guī)情況。如果事先在棋盤(pán)上擺上帶有非常規(guī)情況的殘局,缺少相應(yīng)訓(xùn)練數(shù)據(jù)的五子棋策略并不能給出高質(zhì)量的落子。此外,缺少針對(duì)無(wú)禁手的五子棋策略網(wǎng)絡(luò),現(xiàn)有的五子棋策略網(wǎng)絡(luò)存在將無(wú)禁手和有禁手?jǐn)?shù)據(jù)混合起來(lái)訓(xùn)練的情況,這樣得出的策略網(wǎng)絡(luò)是不能單獨(dú)按無(wú)禁手和有禁手規(guī)則合理落子的。
因此需要一種針對(duì)五子棋策略網(wǎng)絡(luò)的解決方案。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理方法、裝置及電子設(shè)備,至少部分地解決現(xiàn)有技術(shù)中存在的問(wèn)題。
第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理方法,包括:
設(shè)置目標(biāo)對(duì)象的數(shù)據(jù)運(yùn)行規(guī)則;
選取與所述目標(biāo)對(duì)象的數(shù)據(jù)運(yùn)行規(guī)則匹配的包含特征平面的訓(xùn)練數(shù)據(jù)集;
基于所述目標(biāo)對(duì)象規(guī)則和戰(zhàn)術(shù)對(duì)應(yīng)的感受野范圍,確定所述目標(biāo)對(duì)象的策略網(wǎng)絡(luò)結(jié)構(gòu),使所述策略網(wǎng)絡(luò)結(jié)構(gòu)的卷積核大小與卷積層個(gè)數(shù)的組合滿足所述感受野范圍的要求;
利用所述訓(xùn)練數(shù)據(jù)集訓(xùn)練所述目標(biāo)對(duì)象的策略網(wǎng)絡(luò)。
根據(jù)本發(fā)明實(shí)施例的一種具體實(shí)現(xiàn)方式,目標(biāo)對(duì)象的數(shù)據(jù)運(yùn)行規(guī)則為無(wú)禁手運(yùn)行規(guī)則或有禁手運(yùn)行規(guī)則。
根據(jù)本發(fā)明實(shí)施例的一種具體實(shí)現(xiàn)方式,所述選取與所述目標(biāo)對(duì)象的數(shù)據(jù)運(yùn)行規(guī)則匹配的包含特征平面的訓(xùn)練數(shù)據(jù)集,包括:
判斷所述目標(biāo)對(duì)象的數(shù)據(jù)運(yùn)行規(guī)則為無(wú)禁手或有禁手;
若為無(wú)禁手則選取無(wú)禁手訓(xùn)練數(shù)據(jù)集;
若為有禁手則選取有禁手訓(xùn)練數(shù)據(jù)集;
判斷所述訓(xùn)練數(shù)據(jù)集中是否包含非常規(guī)訓(xùn)練數(shù)據(jù);
若是,則進(jìn)一步獲取所述非常規(guī)訓(xùn)練數(shù)據(jù)在所述訓(xùn)練數(shù)據(jù)集中的比例;
當(dāng)所述非常規(guī)訓(xùn)練數(shù)據(jù)在所述訓(xùn)練數(shù)據(jù)集中的比例小于預(yù)設(shè)閾值時(shí),認(rèn)定所述訓(xùn)練數(shù)據(jù)集為合法數(shù)據(jù)集。
根據(jù)本發(fā)明實(shí)施例的一種具體實(shí)現(xiàn)方式,所述方法還包括:
獲取所述特征平面的尺寸b;
構(gòu)建二值化、大小為b×b的特征平面;
將所述訓(xùn)練數(shù)據(jù)集中的訓(xùn)練數(shù)據(jù)轉(zhuǎn)化成所述特征平面。
根據(jù)本發(fā)明實(shí)施例的一種具體實(shí)現(xiàn)方式,所述基于所述目標(biāo)對(duì)象規(guī)則和戰(zhàn)術(shù)對(duì)應(yīng)的感受野范圍,確定所述目標(biāo)對(duì)象的策略網(wǎng)絡(luò)結(jié)構(gòu),包括:
采用較大的卷積核和較少的卷積層來(lái)構(gòu)建所述策略網(wǎng)絡(luò)。
根據(jù)本發(fā)明實(shí)施例的一種具體實(shí)現(xiàn)方式,所述基于所述目標(biāo)對(duì)象規(guī)則和戰(zhàn)術(shù)對(duì)應(yīng)的感受野范圍,確定所述目標(biāo)對(duì)象的策略網(wǎng)絡(luò)結(jié)構(gòu),包括:
采用較小的卷積核和較多的卷積層來(lái)構(gòu)建所述策略網(wǎng)絡(luò)。
根據(jù)本發(fā)明實(shí)施例的一種具體實(shí)現(xiàn)方式,所述方法還包括:
當(dāng)所述訓(xùn)練數(shù)據(jù)集中是否存在脫先的數(shù)據(jù)時(shí),擴(kuò)大所述感受野的范圍。
根據(jù)本發(fā)明實(shí)施例的一種具體實(shí)現(xiàn)方式,所述利用所述訓(xùn)練數(shù)據(jù)集訓(xùn)練所述目標(biāo)對(duì)象的策略網(wǎng)絡(luò),包括:
選擇nll為損失函數(shù),以所述訓(xùn)練數(shù)據(jù)集中的落子動(dòng)作作為分類(lèi)標(biāo)簽;
通過(guò)設(shè)置學(xué)習(xí)率、學(xué)習(xí)率衰減以及收斂條件,對(duì)所述目標(biāo)對(duì)象的策略網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
第二方面,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)處理裝置,包括:
設(shè)置模塊,用于設(shè)置目標(biāo)對(duì)象的數(shù)據(jù)運(yùn)行規(guī)則;
選取模塊,用于選取與所述目標(biāo)對(duì)象的數(shù)據(jù)運(yùn)行規(guī)則匹配的包含特征平面的訓(xùn)練數(shù)據(jù)集;
確定模塊,用于基于所述目標(biāo)對(duì)象規(guī)則和戰(zhàn)術(shù)對(duì)應(yīng)的感受野范圍,確定所述目標(biāo)對(duì)象的策略網(wǎng)絡(luò)結(jié)構(gòu),使所述策略網(wǎng)絡(luò)結(jié)構(gòu)的卷積核大小與卷積層個(gè)數(shù)的組合滿足所述感受野范圍的要求;
訓(xùn)練模塊,用于利用所述訓(xùn)練數(shù)據(jù)集訓(xùn)練所述目標(biāo)對(duì)象的策略網(wǎng)絡(luò)。
第三方面,本發(fā)明實(shí)施例還提供了一種電子設(shè)備,該電子設(shè)備包括:
至少一個(gè)處理器;以及,
與該至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,
該存儲(chǔ)器存儲(chǔ)有可被該至少一個(gè)處理器執(zhí)行的指令,該指令被該至少一個(gè)處理器執(zhí)行,以使該至少一個(gè)處理器能夠執(zhí)行前述第一方面或第一方面的任一實(shí)現(xiàn)方式中的數(shù)據(jù)處理方法。
第四方面,本發(fā)明實(shí)施例還提供了一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)計(jì)算機(jī)指令,該計(jì)算機(jī)指令用于使該計(jì)算機(jī)執(zhí)行前述第一方面或第一方面的任一實(shí)現(xiàn)方式中的數(shù)據(jù)處理方法。
第五方面,本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括存儲(chǔ)在非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算程序,該計(jì)算機(jī)程序包括程序指令,當(dāng)該程序指令被計(jì)算機(jī)執(zhí)行時(shí),使該計(jì)算機(jī)執(zhí)行前述第一方面或第一方面的任一實(shí)現(xiàn)方式中的數(shù)據(jù)處理方法。
本發(fā)明實(shí)施例提供的數(shù)據(jù)處理方法、裝置、電子設(shè)備、非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)及計(jì)算機(jī)程序,能夠根據(jù)五子棋的規(guī)則和戰(zhàn)術(shù)特點(diǎn)制定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),并選取恰當(dāng)?shù)挠?xùn)練數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),進(jìn)而提升了數(shù)據(jù)的處理能力。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)的,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理方法的流程示意圖;
圖2為本發(fā)明實(shí)施例提供的五子棋策略網(wǎng)絡(luò)結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例提供的五子棋常見(jiàn)棋型示意圖;
圖4為本發(fā)明實(shí)施例提供的五子棋常見(jiàn)戰(zhàn)術(shù)示意圖;
圖5為本發(fā)明實(shí)施例提供的五子棋禁手判斷示意圖;
圖6為本發(fā)明實(shí)施例提供的五子棋對(duì)局?jǐn)?shù)據(jù)示意圖;
圖7為本發(fā)明實(shí)施例提供的五子棋策略網(wǎng)絡(luò)的輸入數(shù)據(jù)示意圖;
圖8為本發(fā)明實(shí)施例提供的五子棋脫先對(duì)局?jǐn)?shù)據(jù)示意圖。
圖9為本發(fā)明實(shí)施例提供的一種卷積層示意圖;
圖10為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理裝置的示意圖;
圖11為本發(fā)明實(shí)施例提供的一種電子設(shè)備的示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。
應(yīng)當(dāng)明確,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
為了便于理解方案,對(duì)本申請(qǐng)中使用到的術(shù)語(yǔ)定義如下:
有禁手:一種五子棋規(guī)則,禁止先手(即黑棋)使用一些特定的戰(zhàn)術(shù)。
無(wú)禁手:一種五子棋規(guī)則,不禁止先手(即黑棋)使用特定的戰(zhàn)術(shù)。
脫先:對(duì)于對(duì)手的上一步落子暫時(shí)置之不理,將棋子落在與整塊局部對(duì)弈距離較遠(yuǎn)的其他位置。
活四:有兩個(gè)連五點(diǎn)的四顆子。
死四:只有一個(gè)連五點(diǎn)的四顆子。
長(zhǎng)連:連成的子多于五顆子。
卷積神經(jīng)網(wǎng)絡(luò):一種使用卷積層的神經(jīng)網(wǎng)絡(luò),廣泛應(yīng)用于圖像識(shí)別等領(lǐng)域。
感受野:卷積后每一個(gè)值對(duì)應(yīng)卷積前圖像的區(qū)域大小,也等于卷積核的尺寸。
前向傳播:神經(jīng)網(wǎng)絡(luò)得到輸入數(shù)據(jù)給出輸出值的過(guò)程。
卷積核:一個(gè)二維矩陣,也稱(chēng)過(guò)濾器。
池化:對(duì)圖片向下采樣,使得圖片的尺寸減小。
過(guò)擬合:使用了過(guò)多參數(shù),導(dǎo)致太適應(yīng)訓(xùn)練數(shù)據(jù)而非一般情況。
stride:步長(zhǎng),在這里指做卷積時(shí)卷積核平移的距離。
padding:填充,在這里指做卷積時(shí)邊界處補(bǔ)零的數(shù)量。
relu:線性整流層,作為激活函數(shù)。
softmax:歸一化指數(shù)函數(shù),使得輸出值即為概率值。
損失函數(shù):用于決定訓(xùn)練目標(biāo),即如何懲罰預(yù)測(cè)值和真實(shí)值之間的誤差。
nll:一種損失函數(shù),用于分類(lèi)問(wèn)題。
隨機(jī)梯度下降:一種最小化損失函數(shù)的算法,通過(guò)計(jì)算梯度迭代更新權(quán)重。
學(xué)習(xí)率:梯度下降算法中的一個(gè)系數(shù),決定了權(quán)重更新的程度。
學(xué)習(xí)率衰減:學(xué)習(xí)率在訓(xùn)練中每隔一定時(shí)間的衰減系數(shù),目的是為了訓(xùn)練收斂。
本申請(qǐng)中的方案可以應(yīng)用到各種人工智能的棋類(lèi)設(shè)計(jì)中,本申請(qǐng)以五子棋作為應(yīng)用例子,當(dāng)然,也可以將本申請(qǐng)的方案應(yīng)用到其他棋類(lèi)的人工智能設(shè)計(jì)中。
五子棋策略網(wǎng)絡(luò)的設(shè)計(jì)流程如圖1所示,包括以下步驟:
s101,設(shè)置目標(biāo)對(duì)象的數(shù)據(jù)運(yùn)行規(guī)則。
五子棋的規(guī)則對(duì)策略網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)和結(jié)構(gòu)有所影響,所以設(shè)計(jì)前需要確定五子棋的規(guī)則,如無(wú)禁手和有禁手。此處可以選擇無(wú)禁手的五子棋。
s102,選取與所述目標(biāo)對(duì)象的數(shù)據(jù)運(yùn)行規(guī)則匹配的包含特征平面的訓(xùn)練數(shù)據(jù)集。
一個(gè)訓(xùn)練樣本如圖6所示,分為棋盤(pán)狀態(tài)和落子動(dòng)作。棋盤(pán)狀態(tài)即當(dāng)前棋盤(pán)上棋子的位置,在圖6中,我們需要知道棋盤(pán)上的2行3列和3行3列為黑子,而3行2列為白子,其余位置沒(méi)有子。落子動(dòng)作即該下棋的一方所下的子,在圖6中,該下棋的一方為白子,下在了4行3列的位置。
除了圖6這樣常規(guī)的五子棋對(duì)局?jǐn)?shù)據(jù),還有可能出現(xiàn)非常規(guī)走法的數(shù)據(jù),如圖8所示。假設(shè)左上方的兩顆子走完后,黑棋突然在右下方落子,脫離了左上方已有的落子,這種情況稱(chēng)為脫先。此時(shí)白棋需要決定是否跟隨黑棋在右下方落子,還是繼續(xù)在左上方落子。這種數(shù)據(jù)在下棋中出現(xiàn)較少,但學(xué)習(xí)起來(lái)有所難度。這些數(shù)據(jù)的格式與常規(guī)數(shù)據(jù)一致,只需要知道棋盤(pán)狀態(tài)和落子動(dòng)作即可。
要得到無(wú)禁手的五子棋策略網(wǎng)絡(luò),就要用無(wú)禁手的五子棋對(duì)局?jǐn)?shù)據(jù)訓(xùn)練策略網(wǎng)絡(luò),不能將有禁手的數(shù)據(jù)混合進(jìn)來(lái),否則數(shù)據(jù)標(biāo)簽的正確性會(huì)受到影響,導(dǎo)致策略網(wǎng)絡(luò)做出錯(cuò)誤的預(yù)測(cè)。其次,選擇是否加入非常規(guī)走法的訓(xùn)練數(shù)據(jù),如脫先。如果加入非常規(guī)走法的訓(xùn)練數(shù)據(jù),需要保證此部分占總數(shù)據(jù)的少數(shù),確保常規(guī)走法為重點(diǎn)學(xué)習(xí)的樣本。在實(shí)施例中我們選擇加入脫先的數(shù)據(jù)。
s103,基于所述目標(biāo)對(duì)象規(guī)則和戰(zhàn)術(shù)對(duì)應(yīng)的感受野范圍,確定所述目標(biāo)對(duì)象的策略網(wǎng)絡(luò)結(jié)構(gòu),使所述策略網(wǎng)絡(luò)結(jié)構(gòu)的卷積核大小與卷積層個(gè)數(shù)的組合滿足所述感受野范圍的要求。
假設(shè)棋盤(pán)的尺寸為b×b,五子棋策略網(wǎng)絡(luò)的輸入是棋盤(pán)信息,尺寸為3×b×b,3個(gè)特征平面為當(dāng)前選手的棋子、對(duì)手的棋子、空白的位置。每個(gè)特征平面是b×b的矩陣,矩陣元素是1或0,1代表“是”,0代表“否”。例如,圖6所示的訓(xùn)練樣本可以轉(zhuǎn)換成圖7作為策略網(wǎng)絡(luò)的輸入。在無(wú)禁手五子棋中,不需要知道當(dāng)前的選手是黑棋還是白棋,因?yàn)楹诎纂p方的規(guī)則是一致的,只需要將當(dāng)前選手的棋子狀態(tài)作為第一個(gè)特征平面即可。
這種0,1編碼的形式能直接地表達(dá)棋盤(pán)狀態(tài),有利于卷積層清晰地提取棋型特征。與自然圖片不同的是,自然圖片在輸入給卷積層前一般需要對(duì)數(shù)據(jù)進(jìn)行零均值的預(yù)處理。而在五子棋策略網(wǎng)絡(luò)使用中,我們并不采用這樣預(yù)處理,如果對(duì)數(shù)據(jù)進(jìn)行零均值的預(yù)處理可能會(huì)使棋盤(pán)狀態(tài)的表達(dá)變得模糊不清。
也可在此基礎(chǔ)上再增加其他特征平面,如全1的矩陣、落子是否形成5顆子等等。如果加入落子是否形成5顆子這類(lèi)特征平面,就需要借助傳統(tǒng)五子棋算法將這些信息從原始棋盤(pán)中提取出來(lái)。這樣做的優(yōu)點(diǎn)是能幫助策略網(wǎng)絡(luò)更好的做出判斷,缺點(diǎn)是增加了數(shù)據(jù)預(yù)處理的時(shí)間和策略網(wǎng)絡(luò)前向傳播的時(shí)間。
接下來(lái)需要根據(jù)五子棋的規(guī)則特點(diǎn)選定卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),如圖2所示,卷積層由下面的公式準(zhǔn)確表達(dá):
其中,z是卷積后得到的特征圖;b是偏置項(xiàng);w是卷積核;x是該卷積層的輸入數(shù)據(jù);n是輸入數(shù)據(jù)的通道數(shù);z是卷積核的大小,即z×z;d是stride的大小,即步長(zhǎng)。例如,在圖9中,用1個(gè)3×3大小的卷積核對(duì)輸入數(shù)據(jù)做卷積,得到輸出的特征圖。圖中所框的數(shù)字6就是通過(guò)卷積核與原圖3×3的局部范圍做卷積所得到,我們稱(chēng)該特征圖的感受野大小為3×3。
每個(gè)卷積層后一般會(huì)使用激活函數(shù)激活,即aijk=f(zijk),其中f是激活函數(shù)。卷積神經(jīng)網(wǎng)絡(luò)是多個(gè)卷積層的串聯(lián),前一層的激活值aijk就等于后一層的輸入xijl,前一層卷積核k的個(gè)數(shù)就等于后一層通道1的個(gè)數(shù),即n。這樣一層一層串聯(lián)卷積層就構(gòu)成了深度卷積神經(jīng)網(wǎng)絡(luò)。
五子棋的勝利條件是連成5顆子,如圖3所示,并且對(duì)局主要集中在局部范圍。而卷積神經(jīng)網(wǎng)絡(luò)的作用就是尋找局部特征,最終做出判斷。卷積神經(jīng)網(wǎng)絡(luò)在較淺的層只能感受到很小范圍的原始圖片信息,在較深的層便能感受到很大的原始圖片信息。這是因?yàn)槊總€(gè)卷積層都有一定的感受野,當(dāng)層數(shù)增加,感受野也間接地累積,使得對(duì)輸入層的原始圖片而言感受野間接擴(kuò)大。
因此,經(jīng)過(guò)卷積神經(jīng)網(wǎng)絡(luò)后累積的感受野大小就應(yīng)當(dāng)包含連成5顆子的情況。具體來(lái)說(shuō),就是要讓最后每個(gè)落子的判斷至少考慮到周?chē)?顆子的范圍,也就是說(shuō)累積的感受野大小以需要判斷的落子為中心至少達(dá)到9×9的范圍(4×2+1=9)。圖3所示為死四情況,就策略網(wǎng)絡(luò)最基本的要求而言并不需要區(qū)分活四與死四。所以并不需要觀察到遠(yuǎn)處第5顆子的白棋。
其實(shí)加入池化層也有一定擴(kuò)大感受野的能力,但與自然圖片不同的是,五子棋策略網(wǎng)絡(luò)不通過(guò)池化來(lái)擴(kuò)大感受野的范圍。因?yàn)槠灞P(pán)中相鄰位置的信息都是獨(dú)立且重要的,而自然圖片中相鄰位置的信息是有重復(fù)的。如果使用了池化將會(huì)導(dǎo)致落子判斷上的模糊不清。
為了達(dá)成9×9的范圍,既可以用較大的卷積核和較少的卷積層,也可以用較小的卷積核和較多的卷積層。前者的優(yōu)點(diǎn)是前向傳播速度較快,這是由于串聯(lián)的卷積層數(shù)少了,雖然較大的卷積核會(huì)導(dǎo)致計(jì)算量的增加,但可以進(jìn)行并行處理;而后者的優(yōu)點(diǎn)是預(yù)測(cè)準(zhǔn)確率較高,這是因?yàn)槊總€(gè)卷積層后會(huì)有非線性激活函數(shù),使得逼近任意函數(shù)的能力增強(qiáng),而卷積層中即使用較大的卷積核其本身也是線性計(jì)算。
舉例來(lái)說(shuō):
1)可以使用4層卷積核大小為3×3的卷積層,正好可以累積到9×9的感受野范圍((3-1)×4+1=9)。每層的卷積核個(gè)數(shù)均設(shè)為n,stride設(shè)為1,padding設(shè)為1,激活函數(shù)設(shè)為relu。
2)可以使用1層卷積核大小為9×9的卷積層,卷積核個(gè)數(shù)設(shè)為n,stride設(shè)為1,padding設(shè)為4,激活函數(shù)設(shè)為relu。
3)可以將不同卷積核大小的卷積層組合在一起:第1層卷積核大小為5×5,卷積核個(gè)數(shù)設(shè)為n,stride設(shè)為1,padding設(shè)為2,激活函數(shù)設(shè)為relu;第2和第3層卷積核大小為3×3,卷積核個(gè)數(shù)設(shè)為n,stride設(shè)為1,padding設(shè)為1,激活函數(shù)設(shè)為relu。同樣正好能累積到9×9的感受野范圍((5-1)+(3-1)×2+1=9)。
卷積核的個(gè)數(shù)取決于五子棋的復(fù)雜程度,一般來(lái)說(shuō),n可以取32、64、128等。n會(huì)影響預(yù)測(cè)準(zhǔn)確率和前向傳播速度,n越大,預(yù)測(cè)準(zhǔn)確率越高,過(guò)擬合的可能性越大,前向傳播速度越低。最終的確定需要將訓(xùn)練好的不同策略網(wǎng)絡(luò)整合到蒙特卡洛樹(shù)搜索中,通過(guò)對(duì)比勝率來(lái)決定n值。
在前面卷積層的基礎(chǔ)上,可以進(jìn)一步擴(kuò)大累積的感受野范圍,擴(kuò)大的范圍取決于五子棋的戰(zhàn)術(shù)需要。比如,在圖4中,白棋有3種可能的落子,如果要將3種可能的落子都考慮進(jìn)去,那么策略網(wǎng)絡(luò)就必須觀察到遠(yuǎn)處已有的白子,這時(shí)需要的感受野范圍就是13×13(6×2+1=13)。
再比如,為了應(yīng)對(duì)在選擇數(shù)據(jù)時(shí)加入的有脫先的數(shù)據(jù),那么累積的感受野范圍應(yīng)適當(dāng)擴(kuò)大。假設(shè)棋盤(pán)的大小為15×15(即b=15),我們想讓策略網(wǎng)絡(luò)在判斷往棋盤(pán)中心落子時(shí)考慮到棋盤(pán)最邊上棋子的情況,那么只需要將9×9的感受野范圍擴(kuò)大到15×15。與前面卷積層的選擇類(lèi)似,我們可以任意組合卷積核大小和卷積層個(gè)數(shù),例如:可以再增加3層卷積核大小為3×3的卷積層,加上之前累積的9×9感受野范圍正好可以累積到15×15的感受野范圍((3-1)×3+9=15),每層的卷積核個(gè)數(shù)均設(shè)為n,stride設(shè)為1,padding設(shè)為1,激活函數(shù)設(shè)為relu。
在策略網(wǎng)絡(luò)這些用于擴(kuò)大感受野范圍的卷積層之后,只需要再串聯(lián)一個(gè)卷積核大小為1×1的卷積層,卷積核個(gè)數(shù)設(shè)為1,stride設(shè)為1,padding設(shè)為0,最后接softmax層。這樣策略網(wǎng)絡(luò)輸出的就是棋盤(pán)上每個(gè)點(diǎn)落子的概率值。
s104,利用所述訓(xùn)練數(shù)據(jù)集訓(xùn)練所述目標(biāo)對(duì)象的策略網(wǎng)絡(luò)。
訓(xùn)練可以采用隨機(jī)梯度下降的方法,只需要選擇nll為損失函數(shù),設(shè)置學(xué)習(xí)率和學(xué)習(xí)率衰減以及收斂條件即可。nll是針對(duì)分類(lèi)問(wèn)題的損失函數(shù),而五子棋策略網(wǎng)絡(luò)恰好也是分類(lèi)問(wèn)題,也就是將棋盤(pán)上所有b2個(gè)落點(diǎn)每個(gè)落點(diǎn)當(dāng)作一類(lèi)。前面提到訓(xùn)練數(shù)據(jù)中包含了落子動(dòng)作,這就是在nll中要使用的每個(gè)訓(xùn)練樣本的標(biāo)簽。nll作為損失函數(shù)的作用就是將標(biāo)簽所對(duì)應(yīng)落子的策略網(wǎng)絡(luò)輸出概率值提高,這樣訓(xùn)練出來(lái)的策略網(wǎng)絡(luò)在使用中就有更高的概率按訓(xùn)練數(shù)據(jù)的落子動(dòng)作去落子。
測(cè)試的方式有多種,包括預(yù)測(cè)準(zhǔn)確率,前向傳播時(shí)間,使用策略網(wǎng)絡(luò)下棋的勝率,整合到蒙特卡洛樹(shù)搜索后下棋的勝率等。最重要的是整合到蒙特卡洛樹(shù)搜索后的勝率,它體現(xiàn)了預(yù)測(cè)準(zhǔn)確率和前向傳播時(shí)間之間的權(quán)衡。
當(dāng)選擇有禁手的五子棋規(guī)則時(shí),需要將黑棋和白棋的訓(xùn)練數(shù)據(jù)分開(kāi),單獨(dú)訓(xùn)練黑棋的策略網(wǎng)絡(luò)和白棋的策略網(wǎng)絡(luò)。這樣最后就有兩個(gè)策略網(wǎng)絡(luò),白棋策略網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì)與無(wú)禁手時(shí)相同。
由于黑棋有禁手,在判斷禁手時(shí)需要進(jìn)一步擴(kuò)大累積的感受野范圍。比如,在圖5中,需要判斷中心黑子落子是否為禁手,那么策略網(wǎng)絡(luò)就必須觀察到右邊遠(yuǎn)處已有的黑子,這時(shí)需要的感受野范圍就是11×11(5×2+1=11),得到不是禁手的結(jié)論(因?yàn)闄M向的三個(gè)黑子可能導(dǎo)致長(zhǎng)連,而長(zhǎng)連是禁手,所以中心黑子落子并不是禁手),否則會(huì)誤認(rèn)為是禁手。
圖10為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理裝置,參見(jiàn)圖10,該數(shù)據(jù)處理裝置10包括:
設(shè)置模塊1001,用于設(shè)置目標(biāo)對(duì)象的數(shù)據(jù)運(yùn)行規(guī)則;
選取模塊1002,用于選取與所述目標(biāo)對(duì)象的數(shù)據(jù)運(yùn)行規(guī)則匹配的包含特征平面的訓(xùn)練數(shù)據(jù)集;
確定模塊1003,用于基于所述目標(biāo)對(duì)象規(guī)則和戰(zhàn)術(shù)對(duì)應(yīng)的感受野范圍,確定所述目標(biāo)對(duì)象的策略網(wǎng)絡(luò)結(jié)構(gòu),使所述策略網(wǎng)絡(luò)結(jié)構(gòu)的卷積核大小與卷積層個(gè)數(shù)的組合滿足所述感受野范圍的要求;
訓(xùn)練模塊1004,用于利用所述訓(xùn)練數(shù)據(jù)集訓(xùn)練所述目標(biāo)對(duì)象的策略網(wǎng)絡(luò)。
數(shù)據(jù)處理裝置中各個(gè)模塊的功能與方法實(shí)施例一一對(duì)應(yīng),在此不再贅述。
圖11展示出了本發(fā)明實(shí)施例提供的電子設(shè)備11的結(jié)構(gòu)示意圖,電子設(shè)備11包括至少一個(gè)處理器1101(例如cpu),至少一個(gè)輸入輸出接口1104,存儲(chǔ)器1102,和至少一個(gè)通信總線1103,用于實(shí)現(xiàn)這些部件之間的連接通信。至少一個(gè)處理器1101用于執(zhí)行存儲(chǔ)器1102中存儲(chǔ)的計(jì)算機(jī)指令,以使所述至少一個(gè)處理器1101能夠執(zhí)行前述任一數(shù)據(jù)處理方法的實(shí)施例。存儲(chǔ)器1102為非暫態(tài)存儲(chǔ)器(non-transitorymemory),其可以包含易失性存儲(chǔ)器,例如高速隨機(jī)存取存儲(chǔ)器(ram:randomaccessmemory),也可以包括非易失性存儲(chǔ)器(non-volatilememory),例如至少一個(gè)磁盤(pán)存儲(chǔ)器。通過(guò)至少一個(gè)輸入輸出接口1104(可以是有線或者無(wú)線通信接口)實(shí)現(xiàn)與至少一個(gè)其他設(shè)備或單元之間的通信連接。
在一些實(shí)施方式中,存儲(chǔ)器1102存儲(chǔ)了程序11021,處理器1101執(zhí)行程序11021,用于執(zhí)行前述任一數(shù)據(jù)處理方法實(shí)施例中的內(nèi)容。
該電子設(shè)備可以以多種形式存在,包括但不限于:
(1)移動(dòng)通信設(shè)備:這類(lèi)設(shè)備的特點(diǎn)是具備移動(dòng)通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標(biāo)。這類(lèi)終端包括:智能手機(jī)(例如iphone)、多媒體手機(jī)、功能性手機(jī),以及低端手機(jī)等。
(2)超移動(dòng)個(gè)人計(jì)算機(jī)設(shè)備:這類(lèi)設(shè)備屬于個(gè)人計(jì)算機(jī)的范疇,有計(jì)算和處理功能,一般也具備移動(dòng)上網(wǎng)特性。這類(lèi)終端包括:pda、mid和umpc設(shè)備等,例如ipad。
(3)便攜式娛樂(lè)設(shè)備:這類(lèi)設(shè)備可以顯示和播放多媒體內(nèi)容。該類(lèi)設(shè)備包括:音頻、視頻播放器(例如ipod),掌上游戲機(jī),電子書(shū),以及智能玩具和便攜式車(chē)載導(dǎo)航設(shè)備。
(4)特定服務(wù)器:提供計(jì)算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤(pán)、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計(jì)算機(jī)架構(gòu)類(lèi)似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴(kuò)展性、可管理性等方面要求較高。
(5)其他具有數(shù)據(jù)交互功能的電子設(shè)備。
需要說(shuō)明的是,在本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)......”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用相關(guān)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。
尤其,對(duì)于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認(rèn)為是用于實(shí)現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實(shí)現(xiàn)在任何計(jì)算機(jī)可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計(jì)算機(jī)的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說(shuō)明書(shū)而言,″計(jì)算機(jī)可讀介質(zhì)″可以是任何可以包含、存儲(chǔ)、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。計(jì)算機(jī)可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個(gè)或多個(gè)布線的電連接部(電子裝置),便攜式計(jì)算機(jī)盤(pán)盒(磁裝置),隨機(jī)存取存儲(chǔ)器(ram),只讀存儲(chǔ)器(rom),可擦除可編輯只讀存儲(chǔ)器(eprom或閃速存儲(chǔ)器),光纖裝置,以及便攜式光盤(pán)只讀存儲(chǔ)器(cdrom)。另外,計(jì)算機(jī)可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因?yàn)榭梢岳缤ㄟ^(guò)對(duì)紙或其他介質(zhì)進(jìn)行光學(xué)掃描,接著進(jìn)行編輯、解譯或必要時(shí)以其他合適方式進(jìn)行處理來(lái)以電子方式獲得所述程序,然后將其存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中。
應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來(lái)實(shí)現(xiàn)。
在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲(chǔ)在存儲(chǔ)器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來(lái)實(shí)現(xiàn)。例如,如果用硬件來(lái)實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來(lái)實(shí)現(xiàn):具有用于對(duì)數(shù)據(jù)信號(hào)實(shí)現(xiàn)邏輯功能的邏輯門(mén)電路的離散邏輯電路,具有合適的組合邏輯門(mén)電路的專(zhuān)用集成電路,可編程門(mén)陣列(pga),現(xiàn)場(chǎng)可編程門(mén)陣列(fpga)等。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。