日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

dann的alpha torch_一图解密AlphaZero(附Pytorch实践)

發(fā)布時(shí)間:2025/3/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dann的alpha torch_一图解密AlphaZero(附Pytorch实践) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本來(lái)打算自己寫(xiě)寫(xiě)的,但是發(fā)現(xiàn)了David Foster的神作,看了就懂了。我也就不說(shuō)啥了。

看不清的話,原圖在后面的連接也可以找到。

沒(méi)懂?!!!那我再解釋下。

AlphaGo Zero主要由三個(gè)部分組成:自我博弈(self-play),訓(xùn)練和評(píng)估。和AlphaGo 比較,AlphaZero最大的區(qū)別在于,并沒(méi)有采用專家樣本進(jìn)行訓(xùn)練。通過(guò)自己和自己玩的方式產(chǎn)生出訓(xùn)練樣本,通過(guò)產(chǎn)生的樣本進(jìn)行訓(xùn)練;更新的網(wǎng)絡(luò)和更新前的網(wǎng)絡(luò)比賽進(jìn)行評(píng)估。

在開(kāi)始的時(shí)候,整個(gè)系統(tǒng)開(kāi)始依照當(dāng)前最好的網(wǎng)絡(luò)參數(shù)進(jìn)行自我博弈,那么假設(shè)進(jìn)行了10000局的比賽,收集自我博弈過(guò)程中所得到的數(shù)據(jù)。這些數(shù)據(jù)當(dāng)中包括:每一次的棋局狀態(tài)以及在此狀態(tài)下各個(gè)動(dòng)作的概率(由蒙特卡羅搜索樹(shù)得到);每一局的獲勝得分以及所有棋局結(jié)束后的累積得分(勝利的+1分,失敗得-1分,最后各自累加得分),得到的數(shù)據(jù)全部會(huì)被放到一個(gè)大小為500000的數(shù)據(jù)存儲(chǔ)當(dāng)中;然后隨機(jī)的從這個(gè)數(shù)據(jù)當(dāng)中采樣2048個(gè)樣本,1000次迭代更新網(wǎng)絡(luò)。更新之后對(duì)網(wǎng)絡(luò)進(jìn)行評(píng)估:采用當(dāng)前被更新的網(wǎng)絡(luò)和未更新的網(wǎng)絡(luò)進(jìn)行比賽400局,根據(jù)比賽的勝率來(lái)決定是否要接受當(dāng)前更新的網(wǎng)絡(luò)。如果被更新的網(wǎng)絡(luò)獲得了超過(guò)55%的勝率,那么接收該被更新的網(wǎng)絡(luò),否則不接受。

那么我們首先來(lái)看一下AlphaZero的輸入的棋局狀態(tài)到底是什么。如圖所示,是一個(gè)大小為19*19*17的數(shù)據(jù),表示的是17張大小為19*19(和棋盤(pán)的大小相等)的特征圖。其中,8張屬于白子,8張屬于黑子,標(biāo)記為1的地方表示有子,否則標(biāo)記為0 。剩下的一張用全1或者是全0表示當(dāng)前輪到 黑子還是白子了。構(gòu)成的這個(gè)數(shù)據(jù)表示游戲的狀態(tài)輸入到網(wǎng)絡(luò)當(dāng)中進(jìn)行訓(xùn)練。

那么我們來(lái)看一下,AlphaZero的網(wǎng)絡(luò)到底是怎么樣的呢?

這個(gè)網(wǎng)絡(luò)主要由三個(gè)部分組成:由40層殘差網(wǎng)絡(luò)構(gòu)成的特征提取網(wǎng)絡(luò)(身體),以及價(jià)值網(wǎng)絡(luò)以及策略網(wǎng)絡(luò)(兩個(gè)頭)。該網(wǎng)絡(luò)當(dāng)中價(jià)值網(wǎng)絡(luò)所輸出的值作為當(dāng)前的狀態(tài)的價(jià)值估計(jì); 策略網(wǎng)絡(luò)的輸出作為一個(gè)狀態(tài)到動(dòng)作的映射概率。而這兩個(gè)部分的輸出都被引入到蒙特卡羅搜索樹(shù)當(dāng)中,用來(lái)指導(dǎo)最終的下棋決策。那么顯然,價(jià)值網(wǎng)絡(luò)輸出的是一個(gè)1D的標(biāo)量值,在-1到1之間;策略網(wǎng)絡(luò)輸出的是一個(gè)19*19*1的特征圖,其中的每一個(gè)點(diǎn)表示的是下棋到該位置的概率。那我們來(lái)看一下,該網(wǎng)絡(luò)是如何指導(dǎo)蒙特卡羅搜索樹(shù)的。

如圖所示,在圖中的搜索樹(shù)當(dāng)中,黑色的點(diǎn)表示的是從一個(gè)狀態(tài)過(guò)渡到另一個(gè)狀態(tài)的動(dòng)作a;其余的節(jié)點(diǎn)表示的是棋局的狀態(tài),也就是之前所說(shuō)的輸入。從一個(gè)非葉子節(jié)點(diǎn)的狀態(tài)開(kāi)始,往往存在多種可能的行動(dòng),而其中的狀態(tài)節(jié)點(diǎn)a具有4種屬性,他們決定了到底應(yīng)該如何選擇。具體來(lái)講,其中的N表示的是到目前為止,該動(dòng)作節(jié)點(diǎn)被訪問(wèn)的次數(shù);P表示網(wǎng)絡(luò)預(yù)測(cè)出來(lái)的選擇該節(jié)點(diǎn)的概率;W表示下一個(gè)狀態(tài)的總的價(jià)值,而價(jià)值網(wǎng)絡(luò)輸出的動(dòng)作的價(jià)值會(huì)被累及到這個(gè)值當(dāng)中;這個(gè)值除以被訪問(wèn)到的次數(shù)就等于平均的價(jià)值Q。實(shí)際上,還會(huì)給Q加上一個(gè)U來(lái)起到探索更多的動(dòng)作的效果。我想應(yīng)該是非常清楚的。那么如何根據(jù)構(gòu)建出來(lái)的搜索樹(shù)進(jìn)行下棋的步驟呢?在一定的閾值范圍內(nèi)(比如說(shuō),1000個(gè)迭代之前),采用最大化Q函數(shù)的方式來(lái)選擇動(dòng)作;那么當(dāng)大于這個(gè)閾值之后采用蒙特卡羅搜索樹(shù)的方式(例如PUCT算法,也就是根據(jù)概率和被訪問(wèn)的次數(shù))來(lái)選擇執(zhí)行的動(dòng)作。

那我們來(lái)看一下蒙特卡羅搜索樹(shù)在這里面時(shí)如何實(shí)現(xiàn)的。首先是其中的節(jié)點(diǎn):

class Node:

def __init__(self, parent=None, proba=None, move=None):

self.p = proba

self.n = 0

self.w = 0

self.q = 0

self.children = []

self.parent = parent

self.move = move

其中主要為之前所說(shuō)的4個(gè)屬性以及父子節(jié)點(diǎn)的指針。而最后一個(gè)move指出了在當(dāng)前狀態(tài)下的合法下棋步驟。在訓(xùn)練的過(guò)程中,這些值都會(huì)被更新,那么在更新之后如何通過(guò)他們來(lái)進(jìn)行動(dòng)作的選擇呢?

def select(nodes, c_puct=C_PUCT):

" Optimized version of the selection based of the PUCT formula "

total_count = 0

for i in range(nodes.shape[0]):

total_count += nodes[i][1]

action_scores = np.zeros(nodes.shape[0])

for i in range(nodes.shape[0]):

action_scores[i] = nodes[i][0] + c_puct * nodes[i][2] * \

(np.sqrt(total_count) / (1 + nodes[i][1]))

equals = np.where(action_scores == np.max(action_scores))[0]

if equals.shape[0] > 0:

return np.random.choice(equals)

return equals[0]

這里表示的是對(duì)于任何一個(gè)節(jié)點(diǎn),從其所有的子節(jié)點(diǎn)當(dāng)中,通過(guò)PUCT算法找出最大得分的那個(gè)節(jié)點(diǎn)。在這個(gè)得分action_scores[i]的計(jì)算過(guò)程中,網(wǎng)絡(luò)預(yù)測(cè)的概率和該節(jié)點(diǎn)被訪問(wèn)的次數(shù)都有被考慮。對(duì)于被訪問(wèn)到的非葉子節(jié)點(diǎn)繼續(xù)進(jìn)行擴(kuò)展;而如果是葉子節(jié)點(diǎn)則進(jìn)行最終的評(píng)估。至于其中的殘差網(wǎng)絡(luò)模塊,價(jià)值網(wǎng)絡(luò),策略網(wǎng)絡(luò)就不再一一敘述了。詳細(xì)參考:https://github.com/dylandjian/superGo?github.com

References:

總結(jié)

以上是生活随笔為你收集整理的dann的alpha torch_一图解密AlphaZero(附Pytorch实践)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 波多野吉衣av在线 | 国产美女视频免费观看下载软件 | 日本一级一片免费视频 | 激情婷婷小说 | 99久久久无码国产 | 亚洲经典一区二区三区四区 | 久草福利免费 | 国产精品欧美一区喷水 | 亚洲免费网站在线观看 | 丰满肥臀噗嗤啊x99av | 日韩一区免费视频 | 国产传媒av在线 | 一区二区三区四区欧美 | 天天碰天天碰 | 亚洲av高清一区二区三区 | 国产在线xx | 被黑人啪到哭的番号922在线 | 在线亚洲精品 | 操大爷影院 | 久久国产精品久久久久久电车 | 亚欧洲精品视频在线观看 | 日日夜夜添 | 三上悠亚人妻中文字幕在线 | 国产wwww | 热久久网站 | www麻豆视频| 亚洲国产99 | 按摩害羞主妇中文字幕 | 打美女屁股网站 | 一本色道久久综合亚洲二区三区 | 毛片av在线 | 老头老太吃奶xb视频 | 日本小视频网站 | 一区二区三区欧美在线 | 欧美一区在线观看视频 | 欧美亚洲国产另类 | 极品少妇一区二区三区 | 成人观看| yw在线观看 | 香蕉茄子视频 | 久久日本视频 | 狠狠撸狠狠干 | 深爱开心激情网 | 亚洲第二色| 少妇裸体挤奶汁奶水视频 | 精品福利三区3d卡通动漫 | av资源吧首页 | 性欧美xxxx| 欧美黄色片网站 | 超级黄色片 | 日本性生活一级片 | 91国产免费视频 | www.成人av | 久久伊人精品视频 | 国产资源第一页 | 国内自拍av| 人妻少妇精品久久 | 欧美人妻精品一区二区三区 | 97自拍视频在线 | 性欧美在线观看 | 欧美一区二区人人喊爽 | 免费看aaaaa级少淫片 | 伊人久久久久久久久久久久久 | 天天插天天狠天天透 | 黄色网页在线免费观看 | 国产成人欧美 | 欧美黄色影院 | 日本老师巨大bbw丰满 | 九一国产在线 | 高清无码视频直接看 | www.97色| 波多野结衣免费在线视频 | 欧美黄色网络 | 亚洲欧美一区二区三区四区 | 激情在线视频 | 6080久久| 中文字幕有码在线观看 | 亚洲综合激情小说 | 黄色国产视频网站 | 长河落日| 欧美日韩国产电影 | 手机免费在线观看av | 欧美一a一片一级一片 | 日本免费在线观看 | 亚洲一区中文字幕在线 | 黄色欧美在线观看 | 激情文学8888 | 中文字幕首页 | 欧美一区二区视频 | 国产主播av | 激情开心成人网 | 亚洲砖区区免费 | 中文字幕无线码一区 | 丝袜 中出 制服 人妻 美腿 | 欧美成人精品一区二区 | av色图| 美女av一区二区 | 姑娘第5集在线观看免费 | 麻豆一级片 |