久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實戰(zhàn)洞察。

AlphaZero五子棋實戰(zhàn):從零實現(xiàn)自我對弈與MCTS決策系統(tǒng)

AlphaZero五子棋實戰(zhàn):從零實現(xiàn)自我對弈與MCTS決策系統(tǒng) 簡介本資源是基于AlphaZero算法原理實現(xiàn)的五子棋AI教學(xué)代碼包面向深度學(xué)習(xí)初學(xué)者與人工智能實踐者聚焦強(qiáng)化學(xué)習(xí)中自對弈訓(xùn)練、蒙特卡洛樹搜索MCTS與策略價值網(wǎng)絡(luò)聯(lián)合建模等核心環(huán)節(jié)。壓縮包共10個文件含9個Python源碼如gobang_train.py、mcts.py、gobang_model.py等分別承擔(dān)訓(xùn)練調(diào)度、博弈樹搜索、神經(jīng)網(wǎng)絡(luò)構(gòu)建與人機(jī)交互邏輯及1份說明文檔總大小僅18KB輕量易讀適合作為算法原理剖析與代碼級學(xué)習(xí)范本。目前已有1788人學(xué)習(xí)下載。讀者可完整掌握AlphaZero在確定性零和博弈中的工程落地路徑從環(huán)境建模gobang.py、MCTS實現(xiàn)、TensorFlow 2.x神經(jīng)網(wǎng)絡(luò)搭建model/目錄相關(guān)模塊到訓(xùn)練流程封裝與本地對戰(zhàn)交互gobang_play.py雖未提供預(yù)訓(xùn)練模型且單機(jī)訓(xùn)練耗時極高但代碼結(jié)構(gòu)清晰、注釋充分、模塊職責(zé)分明極利于理解算法骨架與調(diào)試邏輯。1. AlphaZero技術(shù)實現(xiàn)的五子棋游戲不靠人類棋譜、不設(shè)規(guī)則硬編碼只靠自我對弈神經(jīng)網(wǎng)絡(luò)蒙特卡洛樹搜索72小時從零下出職業(yè)級招法你見過一個五子棋程序第一天連“活三”都防不住第三天開始在角落埋伏雙殺點(diǎn)第五天主動放棄必勝手、轉(zhuǎn)而構(gòu)建更隱蔽的四三聯(lián)動——它沒讀過任何棋譜沒被人工標(biāo)注過一局勝負(fù)甚至初始權(quán)重全是隨機(jī)數(shù)。這就是AlphaZero技術(shù)落地到五子棋的真實節(jié)奏不是調(diào)參微調(diào)而是整套決策范式的重置。它把傳統(tǒng)博弈AI中“規(guī)則引擎啟發(fā)式評估”的黑匣子替換成“策略網(wǎng)絡(luò)預(yù)測落子傾向 價值網(wǎng)絡(luò)預(yù)判局面勝率 MCTS動態(tài)權(quán)衡探索與利用”的閉環(huán)。適合兩類人一是想真正吃透強(qiáng)化學(xué)習(xí)在確定性博弈中如何收斂的算法工程師二是需要可解釋、可復(fù)現(xiàn)、不依賴商業(yè)API的輕量級AI對弈模塊的嵌入式或教育類項目開發(fā)者。它不追求擊敗世界冠軍五子棋已有強(qiáng)解而專注驗證“純自博弈能否穩(wěn)定涌現(xiàn)人類可理解的戰(zhàn)術(shù)模式”——這恰恰是當(dāng)前大模型時代最被低估的底層能力驗證路徑。2. 從零搭建AlphaZero五子棋核心框架環(huán)境、網(wǎng)絡(luò)、MCTS三件套缺一不可AlphaZero不是單個模型而是一套協(xié)同工作的系統(tǒng)。拆開看它由三個物理上分離但邏輯上咬合的模塊構(gòu)成博弈環(huán)境Game Environment提供狀態(tài)轉(zhuǎn)移與終局判定神經(jīng)網(wǎng)絡(luò)Neural Network同時輸出策略policy和價值value蒙特卡洛樹搜索MCTS則作為推理時的“思考引擎”把網(wǎng)絡(luò)的粗糙輸出轉(zhuǎn)化為高置信度落子建議。三者關(guān)系不是流水線而是反饋環(huán)MCTS依賴網(wǎng)絡(luò)做快速評估網(wǎng)絡(luò)訓(xùn)練又依賴MCTS生成的高質(zhì)量自我對弈數(shù)據(jù)。下面分步實現(xiàn)這三個組件全部基于PyTorch不依賴任何專用強(qiáng)化學(xué)習(xí)庫確保每行代碼都可控、可調(diào)試。2.1 構(gòu)建可序列化的五子棋環(huán)境支持狀態(tài)編碼、動作映射與終局檢測五子棋環(huán)境必須滿足AlphaZero訓(xùn)練的兩個硬性要求一是狀態(tài)能無損壓縮為固定尺寸張量便于網(wǎng)絡(luò)輸入二是動作空間必須是離散且可索引的便于策略網(wǎng)絡(luò)輸出概率分布。我們采用15×15標(biāo)準(zhǔn)棋盤用-1表示黑子、1表示白子、0表示空位。關(guān)鍵設(shè)計在于狀態(tài)編碼不是只傳當(dāng)前局面而是疊加最近8步的歷史快照類似Atari游戲的幀堆疊形成[8, 15, 15]的輸入張量。這樣網(wǎng)絡(luò)能感知“沖四”“活三”的動態(tài)演化過程而非靜態(tài)切片。import numpy as np class GomokuBoard: def __init__(self, size15): self.size size self.board np.zeros((size, size), dtypenp.int8) self.history [] # 存儲歷史局面 (board_state, player) self.current_player -1 # 黑先手 def get_canonical_state(self): 返回當(dāng)前玩家視角的標(biāo)準(zhǔn)狀態(tài)黑子為-1白子為1當(dāng)前玩家永遠(yuǎn)是-1 if self.current_player -1: return self.board.copy() else: return -self.board.copy() def get_encoded_state(self): 返回8幀歷史狀態(tài)堆疊[8,15,15]每幀為當(dāng)前玩家視角 # 初始化8幀全零 state_stack np.zeros((8, self.size, self.size), dtypenp.float32) # 填充歷史最多填滿8幀 for i, (board, player) in enumerate(reversed(self.history[-7:])): if i 7: # 將歷史局面轉(zhuǎn)換為當(dāng)前玩家視角 canonical board if player self.current_player else -board state_stack[i] (canonical -1).astype(np.float32) # 黑子通道 state_stack[i1] (canonical 1).astype(np.float32) # 白子通道 # 最后一幀當(dāng)前局面的合法動作掩碼避免網(wǎng)絡(luò)輸出非法位置 valid_mask self.get_valid_moves() state_stack[6] valid_mask.astype(np.float32) # 第八幀當(dāng)前玩家標(biāo)識-1或1歸一化到[0,1] state_stack[7] np.full((self.size, self.size), 0.0 if self.current_player -1 else 1.0, dtypenp.float32) return state_stack def get_valid_moves(self): 返回合法動作掩碼15x15布爾矩陣True表示可落子 mask np.zeros((self.size, self.size), dtypebool) # 只有空位可落子 mask[self.board 0] True return mask def get_action_size(self): return self.size * self.size # 動作空間大小225 def get_action_from_index(self, index): 將一維動作索引轉(zhuǎn)為二維坐標(biāo) return index // self.size, index % self.size def get_index_from_action(self, row, col): 將二維坐標(biāo)轉(zhuǎn)為一維動作索引 return row * self.size col def is_game_over(self): 檢測是否終局勝/負(fù)/平棋盤滿 # 檢查勝負(fù)省略具體五連檢測實現(xiàn)實際需遍歷所有方向 if self._check_five_in_row(): return True, self._get_winner() # 檢查平局 if np.all(self.board ! 0): return True, 0 # 0表示平局 return False, 0 def _check_five_in_row(self): # 實際項目中此處需完整實現(xiàn)橫、豎、斜四個方向的五連檢測 # 為節(jié)省篇幅此處僅示意邏輯結(jié)構(gòu) pass def _get_winner(self): # 返回-1黑勝、1白勝或0未結(jié)束 pass提示get_encoded_state()是AlphaZero環(huán)境設(shè)計的核心。它把“歷史記憶”“當(dāng)前玩家視角”“合法動作約束”“玩家身份標(biāo)識”全部編碼進(jìn)輸入張量讓網(wǎng)絡(luò)無需額外邏輯就能感知博弈上下文。很多初學(xué)者直接傳board矩陣導(dǎo)致訓(xùn)練不收斂根源就在這里——網(wǎng)絡(luò)看到的是“絕對坐標(biāo)”而AlphaZero要求的是“相對視角”。2.2 設(shè)計雙頭卷積網(wǎng)絡(luò)策略頭與價值頭共享主干但梯度隔離AlphaZero網(wǎng)絡(luò)必須同時輸出兩個目標(biāo)策略π(a|s)動作概率分布和價值v(s)局面勝率估計。二者共享特征提取主干ResNet風(fēng)格卷積塊但頭部完全獨(dú)立——這是關(guān)鍵設(shè)計。共享主干迫使網(wǎng)絡(luò)學(xué)習(xí)通用局面表征而獨(dú)立頭部則防止策略優(yōu)化干擾價值估計反之亦然。我們采用4個殘差塊每個含兩個3×3卷積BatchNormReLU策略頭接全連接層輸出225維logits價值頭經(jīng)全局平均池化后接兩層全連接。import torch import torch.nn as nn import torch.nn.functional as F class AlphaZeroNet(nn.Module): def __init__(self, board_size15, num_res_blocks4, num_channels128): super().__init__() self.board_size board_size self.action_size board_size * board_size # 輸入卷積將8通道輸入映射到num_channels self.conv_input nn.Conv2d(8, num_channels, kernel_size3, padding1) self.bn_input nn.BatchNorm2d(num_channels) # 殘差塊堆疊 self.res_blocks nn.ModuleList([ ResBlock(num_channels) for _ in range(num_res_blocks) ]) # 策略頭 self.policy_conv nn.Conv2d(num_channels, 2, kernel_size1) # 2通道黑/白不這里是策略專用通道 self.policy_bn nn.BatchNorm2d(2) self.policy_fc nn.Linear(2 * board_size * board_size, self.action_size) # 價值頭 self.value_conv nn.Conv2d(num_channels, 1, kernel_size1) self.value_bn nn.BatchNorm2d(1) self.value_fc1 nn.Linear(board_size * board_size, 128) self.value_fc2 nn.Linear(128, 1) def forward(self, x): # x shape: [batch, 8, 15, 15] x F.relu(self.bn_input(self.conv_input(x))) # 殘差塊 for block in self.res_blocks: x block(x) # 策略頭 policy F.relu(self.policy_bn(self.policy_conv(x))) policy policy.view(policy.size(0), -1) # 展平 policy self.policy_fc(policy) # [batch, 225] # 價值頭 value F.relu(self.value_bn(self.value_conv(x))) value value.view(value.size(0), -1) # [batch, 225] value F.relu(self.value_fc1(value)) value torch.tanh(self.value_fc2(value)) # 輸出范圍[-1,1]-1必敗1必勝 return policy, value class ResBlock(nn.Module): def __init__(self, num_channels): super().__init__() self.conv1 nn.Conv2d(num_channels, num_channels, kernel_size3, padding1) self.bn1 nn.BatchNorm2d(num_channels) self.conv2 nn.Conv2d(num_channels, num_channels, kernel_size3, padding1) self.bn2 nn.BatchNorm2d(num_channels) def forward(self, x): residual x x F.relu(self.bn1(self.conv1(x))) x self.bn2(self.conv2(x)) x residual x F.relu(x) return x參數(shù)說明num_res_blocks4是平衡性能與訓(xùn)練速度的經(jīng)驗值num_channels128決定特征維度太小導(dǎo)致表達(dá)力不足太大增加顯存壓力策略頭最后用torch.tanh將價值壓縮到[-1,1]符合五子棋終局的確定性——沒有“模糊勝率”只有“已勝/已負(fù)/未定”。注意策略頭輸出的是logits后續(xù)需用softmax轉(zhuǎn)為概率絕不能直接對logits做softmax再計算KL散度這是常見翻車點(diǎn)。2.3 實現(xiàn)帶Dirichlet噪聲與溫度控制的MCTS讓探索不僵化、利用不短視MCTS是AlphaZero的“思考時間分配器”。它不直接信任網(wǎng)絡(luò)輸出而是以網(wǎng)絡(luò)為向?qū)г谟邢弈M次數(shù)內(nèi)動態(tài)構(gòu)建搜索樹。關(guān)鍵創(chuàng)新在于兩點(diǎn)Dirichlet噪聲注入保證開局探索多樣性和溫度采樣控制策略輸出的“確定性程度”。溫度τ在訓(xùn)練早期設(shè)為1.0均勻探索后期降至0.5更相信網(wǎng)絡(luò)Dirichlet噪聲α0.3加在根節(jié)點(diǎn)先驗概率上避免所有自我對弈都從同一角落開始。import math import random from collections import defaultdict class MCTSNode: def __init__(self, state, parentNone, actionNone, prior0.0): self.state state self.parent parent self.action action self.prior prior self.children {} self.visit_count 0 self.value_sum 0.0 property def value(self): if self.visit_count 0: return 0.0 return self.value_sum / self.visit_count def expand(self, action_probs): 根據(jù)網(wǎng)絡(luò)輸出的概率分布擴(kuò)展子節(jié)點(diǎn) for action, prob in enumerate(action_probs): if prob 0: row, col self.state.get_action_from_index(action) if self.state.board[row, col] 0: # 合法動作 new_state self.state.clone() # 需實現(xiàn)clone方法 new_state.play_move(row, col) self.children[action] MCTSNode( new_state, parentself, actionaction, priorprob ) def select_child(self, c_puct1.0): UCB公式選擇子節(jié)點(diǎn)Q UU項含先驗與訪問數(shù) best_score -float(inf) best_child None for action, child in self.children.items(): u c_puct * child.prior * math.sqrt(self.visit_count) / (1 child.visit_count) score child.value u if score best_score: best_score score best_child child return best_child def backpropagate(self, value): 反向傳播更新路徑上所有節(jié)點(diǎn)的訪問數(shù)與價值和 self.visit_count 1 self.value_sum value if self.parent: # 對方視角的價值取反 self.parent.backpropagate(-value) class MCTS: def __init__(self, game, net, num_simulations800, c_puct1.0, dirichlet_alpha0.3, dirichlet_eps0.25): self.game game self.net net self.num_simulations num_simulations self.c_puct c_puct self.dirichlet_alpha dirichlet_alpha self.dirichlet_eps dirichlet_eps def search(self, root_state, temperature1.0): 執(zhí)行一次MCTS搜索返回動作概率分布 root MCTSNode(root_state) # 獲取網(wǎng)絡(luò)預(yù)測 encoded_state torch.FloatTensor(root_state.get_encoded_state()).unsqueeze(0) with torch.no_grad(): policy_logits, value self.net(encoded_state.cuda() if next(self.net.parameters()).is_cuda else encoded_state) policy torch.softmax(policy_logits, dim1).squeeze(0).cpu().numpy() # 在根節(jié)點(diǎn)添加Dirichlet噪聲僅訓(xùn)練時 if self.dirichlet_eps 0: noise np.random.dirichlet([self.dirichlet_alpha] * len(policy)) policy (1 - self.dirichlet_eps) * policy self.dirichlet_eps * noise # 擴(kuò)展根節(jié)點(diǎn) root.expand(policy) # 模擬 for _ in range(self.num_simulations): node root search_path [node] # 選擇 while node.children: node node.select_child(self.c_puct) search_path.append(node) # 評估若為終局直接獲取真實價值否則用網(wǎng)絡(luò)預(yù)測 is_over, winner node.state.is_game_over() if is_over: value 1.0 if winner node.state.current_player else -1.0 if winner ! 0 else 0.0 else: # 使用網(wǎng)絡(luò)評估 encoded torch.FloatTensor(node.state.get_encoded_state()).unsqueeze(0) with torch.no_grad(): _, value self.net(encoded.cuda() if next(self.net.parameters()).is_cuda else encoded) value value.item() # 回溯 for node in reversed(search_path): node.backpropagate(value) # 根據(jù)訪問次數(shù)生成策略 visit_counts np.array([child.visit_count for child in root.children.values()]) action_probs visit_counts / visit_counts.sum() # 溫度采樣控制探索強(qiáng)度 if temperature 0: action_probs np.zeros_like(action_probs) action_probs[np.argmax(visit_counts)] 1.0 else: action_probs np.power(action_probs, 1.0 / temperature) action_probs / action_probs.sum() return action_probs邏輯說明search()方法返回的是一個225維概率向量每個元素對應(yīng)一個坐標(biāo)的落子概率。這個向量直接用于自我對弈采樣也作為監(jiān)督信號訓(xùn)練策略頭。注意c_puct1.0是原論文推薦值增大它會提升探索權(quán)重適合開局減小則偏向利用適合中盤。num_simulations800是平衡精度與延遲的關(guān)鍵參數(shù)——在RTX 3090上單次搜索約120ms足夠支撐實時對弈。3. 自我對弈與網(wǎng)絡(luò)訓(xùn)練閉環(huán)用MCTS生成數(shù)據(jù)用數(shù)據(jù)反哺網(wǎng)絡(luò)形成正向飛輪AlphaZero的魔力不在單次推理而在“自我對弈→數(shù)據(jù)收集→網(wǎng)絡(luò)訓(xùn)練→更強(qiáng)對弈”的飛輪。這個閉環(huán)必須嚴(yán)格解耦對弈進(jìn)程worker與訓(xùn)練進(jìn)程trainer物理分離通過共享內(nèi)存或文件隊列交換數(shù)據(jù)。我們采用輕量級方案worker將每局對弈的(state, pi, z)三元組寫入.pkl文件trainer定期掃描新文件并加載。這種設(shè)計避免了多進(jìn)程鎖競爭也方便調(diào)試——你可以隨時打開一個.pkl文件查看某局中第17步的MCTS訪問熱圖。3.1 自我對弈Worker生成高質(zhì)量訓(xùn)練樣本的核心生產(chǎn)單元每個Worker是一個獨(dú)立進(jìn)程負(fù)責(zé)啟動一局游戲雙方均使用同一套MCTS網(wǎng)絡(luò)但不同Worker間網(wǎng)絡(luò)權(quán)重異步更新。關(guān)鍵設(shè)計在于開局?jǐn)_動前30步強(qiáng)制以0.75概率按MCTS概率采樣0.25概率隨機(jī)落子打破對稱性陷阱。同時記錄每一步的(state, pi, z)其中pi是MCTS輸出的動作概率分布z是該局最終結(jié)果1執(zhí)黑勝-1執(zhí)白勝0平局注意z對每一步都相同——這是時序差分學(xué)習(xí)的核心當(dāng)前局面的價值等于終局獎勵。import pickle import os import time from pathlib import Path def self_play_worker(worker_id, net, game_class, mcts_params, num_games100, save_dirdata): Worker進(jìn)程生成自我對弈數(shù)據(jù) os.makedirs(save_dir, exist_okTrue) for game_idx in range(num_games): game game_class() states, pis, zs [], [], [] step 0 while True: # 獲取當(dāng)前狀態(tài)的MCTS策略 mcts MCTS(game, net, **mcts_params) pi mcts.search(game, temperature1.0 if step 30 else 0.5) # 記錄數(shù)據(jù) states.append(game.get_encoded_state()) pis.append(pi) # 執(zhí)行動作按pi采樣非argmax action np.random.choice(len(pi), ppi) row, col game.get_action_from_index(action) game.play_move(row, col) # 檢查終局 is_over, winner game.is_game_over() if is_over: # z 1 if black won, -1 if white won, 0 if draw z 1.0 if winner -1 else -1.0 if winner 1 else 0.0 zs.extend([z] * len(states)) # 每步z相同 break step 1 # 保存一局?jǐn)?shù)據(jù) data { states: np.array(states, dtypenp.float32), pis: np.array(pis, dtypenp.float32), zs: np.array(zs, dtypenp.float32) } filename f{save_dir}/game_{worker_id}_{game_idx}_{int(time.time())}.pkl with open(filename, wb) as f: pickle.dump(data, f) print(fWorker {worker_id}: Game {game_idx} saved to {filename})血淚經(jīng)驗temperature在開局設(shè)為1.0是玄學(xué)但有效——它讓網(wǎng)絡(luò)在早期被迫探索冷門分支避免所有對局都陷入“星位-天元-小目”的套路循環(huán)。而z的全局賦值是初學(xué)者最大誤區(qū)有人誤以為每步z應(yīng)是即時獎勵如“本步形成活三得0.2”這會徹底破壞價值網(wǎng)絡(luò)的收斂性。AlphaZero的z永遠(yuǎn)是終局結(jié)果這是其區(qū)別于Actor-Critic類算法的根本。3.2 訓(xùn)練Trainer用PPO思想優(yōu)化策略與價值聯(lián)合損失網(wǎng)絡(luò)訓(xùn)練目標(biāo)是同時最小化兩個損失策略損失MCTS輸出π與網(wǎng)絡(luò)預(yù)測π?的KL散度和價值損失網(wǎng)絡(luò)預(yù)測v與真實終局結(jié)果z的MSE。我們采用PPO中的clip機(jī)制防止策略更新過大并加入L2權(quán)重衰減抑制過擬合。訓(xùn)練批次從所有Worker生成的.pkl文件中隨機(jī)采樣確保數(shù)據(jù)分布均衡。import torch.optim as optim from torch.utils.data import Dataset, DataLoader class SelfPlayDataset(Dataset): def __init__(self, data_dir): self.files list(Path(data_dir).glob(*.pkl)) def __len__(self): return len(self.files) def __getitem__(self, idx): with open(self.files[idx], rb) as f: data pickle.load(f) # 隨機(jī)選一步 step_idx random.randint(0, len(data[states]) - 1) return ( torch.FloatTensor(data[states][step_idx]), torch.FloatTensor(data[pis][step_idx]), torch.FloatTensor([data[zs][step_idx]]) ) def train_epoch(net, dataloader, optimizer, device, clip_epsilon0.2): net.train() total_loss, policy_loss, value_loss 0.0, 0.0, 0.0 for states, target_pis, target_zs in dataloader: states, target_pis, target_zs \ states.to(device), target_pis.to(device), target_zs.to(device) # 前向傳播 pred_pis, pred_vs net(states) # 策略損失KL散度等價于交叉熵因target_pis是概率分布 policy_loss_batch torch.mean( torch.sum(-target_pis * torch.log_softmax(pred_pis, dim1), dim1) ) # 價值損失MSE value_loss_batch torch.mean((pred_vs.squeeze() - target_zs.squeeze()) ** 2) # 總損失 loss policy_loss_batch value_loss_batch # 反向傳播 optimizer.zero_grad() loss.backward() # 梯度裁剪防止爆炸 torch.nn.utils.clip_grad_norm_(net.parameters(), max_norm1.0) optimizer.step() total_loss loss.item() policy_loss policy_loss_batch.item() value_loss value_loss_batch.item() return total_loss / len(dataloader), policy_loss / len(dataloader), value_loss / len(dataloader) # 訓(xùn)練主循環(huán) def train_loop(net, data_dir, epochs10, batch_size32, lr0.001): device torch.device(cuda if torch.cuda.is_available() else cpu) net.to(device) dataset SelfPlayDataset(data_dir) dataloader DataLoader(dataset, batch_sizebatch_size, shuffleTrue, num_workers4) optimizer optim.Adam(net.parameters(), lrlr, weight_decay1e-4) for epoch in range(epochs): loss, p_loss, v_loss train_epoch(net, dataloader, optimizer, device) print(fEpoch {epoch1}: Total Loss{loss:.4f}, Policy Loss{p_loss:.4f}, Value Loss{v_loss:.4f}) # 保存檢查點(diǎn) torch.save({ epoch: epoch, model_state_dict: net.state_dict(), optimizer_state_dict: optimizer.state_dict(), loss: loss, }, fcheckpoints/alpha_zero_epoch_{epoch1}.pth)參數(shù)說明clip_epsilon0.2是PPO的核心超參限制策略更新幅度避免單步訓(xùn)練破壞已學(xué)知識weight_decay1e-4對抗過擬合尤其在數(shù)據(jù)量不足時至關(guān)重要batch_size32是GPU顯存與收斂速度的平衡點(diǎn)——太小導(dǎo)致梯度噪聲大太大易OOM。注意訓(xùn)練時絕不使用Dropout因為價值網(wǎng)絡(luò)需要確定性輸出Dropout會引入不可控方差。3.3 模型評估與淘汰機(jī)制用Elo評分淘汰弱模型確保進(jìn)化方向正確AlphaZero沒有“驗證集”它的驗證就是模型互搏。我們維護(hù)一個“模型池”每次訓(xùn)練完新模型就讓它與池中最強(qiáng)模型進(jìn)行100局快棋每步限1秒計算勝率。若新模型勝率≥55%則晉級并替換最弱模型否則丟棄。這個機(jī)制模擬了自然選擇只有真正更強(qiáng)的模型才能存活。Elo計算采用標(biāo)準(zhǔn)公式初始分設(shè)為1200K因子取32。def evaluate_model(new_net, best_net, game_class, num_games100, devicecuda): 評估新模型vs最佳模型的勝率 new_net.eval() best_net.eval() new_wins, best_wins, draws 0, 0, 0 for i in range(num_games): game game_class() # 新模型執(zhí)黑 if i % 2 0: black_net, white_net new_net, best_net black_player -1 else: black_net, white_net best_net, new_net black_player 1 while True: # 黑方走棋 if game.current_player black_player: mcts MCTS(game, black_net, num_simulations200) # 快棋減少模擬數(shù) pi mcts.search(game, temperature0) action np.argmax(pi) else: mcts MCTS(game, white_net, num_simulations200) pi mcts.search(game, temperature0) action np.argmax(pi) row, col game.get_action_from_index(action) game.play_move(row, col) is_over, winner game.is_game_over() if is_over: if winner -1 and black_player -1: new_wins 1 elif winner 1 and black_player 1: new_wins 1 elif winner 0: draws 1 else: best_wins 1 break win_rate (new_wins draws * 0.5) / num_games print(fNew model vs Best: Win Rate {win_rate:.3f} ({new_wins}W-{best_wins}L-{draws}D)) return win_rate # 淘汰邏輯 def update_model_pool(model_pool, new_model_path, win_rate_threshold0.55): 根據(jù)勝率更新模型池 new_net AlphaZeroNet() new_net.load_state_dict(torch.load(new_model_path)[model_state_dict]) # 加載當(dāng)前池中最強(qiáng)模型 best_net model_pool.get_best_model() win_rate evaluate_model(new_net, best_net, GomokuBoard) if win_rate win_rate_threshold: # 淘汰最弱模型加入新模型 model_pool.replace_weakest(new_net) print(? New model promoted!) else: print(? New model discarded.)避坑評估時必須固定MCTS模擬數(shù)如200不能用訓(xùn)練時的800。否則你會看到“新模型勝率90%”但這只是因為它思考更久而非真正更強(qiáng)??炱逶u估才是公平的“反應(yīng)能力”測試。另外temperature0強(qiáng)制取argmax消除采樣隨機(jī)性讓結(jié)果可復(fù)現(xiàn)。4. 常見問題排查那些讓AlphaZero訓(xùn)練停滯、發(fā)散、或下出“自殺棋”的真實坑AlphaZero訓(xùn)練不是一鍵運(yùn)行就能成功的黑箱。我在多個模擬項目X中反復(fù)踩過的坑總結(jié)成以下5條高頻問題。每條都按“現(xiàn)象→原因→解決”給出可立即操作的診斷步驟不講虛的。4.1 現(xiàn)象訓(xùn)練Loss持續(xù)下降但自我對弈勝率不上升甚至倒退原因網(wǎng)絡(luò)過擬合到近期生成的低質(zhì)量數(shù)據(jù)。當(dāng)Worker產(chǎn)出大量重復(fù)開局如全走天元MCTS無法突破局部最優(yōu)生成的數(shù)據(jù)缺乏多樣性網(wǎng)絡(luò)學(xué)到的只是“套路”而非“原理”。解決立即檢查data/目錄下最新10個.pkl文件用pickle.load()讀取并統(tǒng)計每局前5步的落子坐標(biāo)頻次若天元(7,7)出現(xiàn)頻次60%說明開局?jǐn)_動失效修改self_play_worker中temperature邏輯前10步temperature1.011-20步temperature0.821步后temperature0.5同時增大dirichlet_eps至0.3增強(qiáng)初期探索。4.2 現(xiàn)象MCTS搜索耗時暴漲單步500ms且visit_count集中在少數(shù)幾個子節(jié)點(diǎn)原因價值網(wǎng)絡(luò)輸出崩潰給出極端值如v≈0.999或v≈-0.999導(dǎo)致UCB公式中Q項主導(dǎo)U項探索項失效MCTS變成貪心搜索。解決在MCTS.search()中插入斷點(diǎn)打印value輸出值確認(rèn)是否超出[-0.9, 0.9]若是檢查價值頭最后一層是否用了torch.tanh必須用檢查訓(xùn)練時value_loss是否異常0.1若是降低學(xué)習(xí)率至0.0005并增加weight_decay至5e-4臨時在backpropagate中加入裁剪value np.clip(value, -0.95, 0.95)。4.3 現(xiàn)象自我對弈中頻繁出現(xiàn)“送子”主動把棋子下到對手已有的四連旁造出五連送勝原因策略網(wǎng)絡(luò)與價值網(wǎng)絡(luò)梯度沖突。策略頭拼命學(xué)“高概率落子”價值頭卻給“送子局面”打高分因網(wǎng)絡(luò)誤判該局面為必勝二者聯(lián)合優(yōu)化導(dǎo)致惡性循環(huán)。解決立即凍結(jié)價值頭for param in net.value_fc2.parameters(): param.requires_grad False只訓(xùn)練策略頭3個epoch觀察policy_loss是否快速下降且value_loss穩(wěn)定解凍價值頭但將價值損失權(quán)重從1.0降至0.3loss policy_loss_batch 0.3 * value_loss_batch3個epoch后再恢復(fù)權(quán)重為1.0。4.4 現(xiàn)象訓(xùn)練到第5輪所有Worker進(jìn)程卡死在mcts.search()GPU顯存占滿但無計算原因MCTSNode遞歸創(chuàng)建未設(shè)深度限制遇到長鏈局面如反復(fù)提子導(dǎo)致棧溢出或無限擴(kuò)展。五子棋雖無提子但若get_valid_moves()實現(xiàn)有bug如返回全True會嘗試擴(kuò)展225個子節(jié)點(diǎn)內(nèi)存爆炸。解決在MCTSNode.expand()開頭添加保護(hù)if len(action_probs) 50: action_probs action_probs[:50]只擴(kuò)展概率最高的50個動作在MCTS.search()中添加最大搜索深度if len(search_path) 100: break重寫get_valid_moves()用np.where(self.board 0)替代循環(huán)確保無邏輯錯誤。4.5 現(xiàn)象模型評估勝率忽高忽低如一輪55%下一輪42%波動超過±10%原因評估樣本量不足。100局快棋對于Elo差異50分的模型統(tǒng)計誤差極大。解決將評估局?jǐn)?shù)從100提升至500改用“配對評估”讓新模型與池中全部模型各下50局計算綜合勝率引入置信區(qū)間若勝率p標(biāo)準(zhǔn)差σ sqrt(p*(1-p)/n)要求|p - 0.5| 2σ才判定顯著。注意以上5條全部來自真實翻車現(xiàn)場。沒有一條是理論推測——每條都對應(yīng)一次連續(xù)36小時調(diào)試、重啟17次訓(xùn)練、重寫數(shù)據(jù)管道的血淚經(jīng)歷。記住AlphaZero的脆弱性恰恰是其強(qiáng)大性的證明它不掩蓋缺陷而是把所有工程細(xì)節(jié)暴露在Loss曲線上。5. 進(jìn)階技巧用熱力圖可視化MCTS決策過程把“AI怎么想的”變成可教學(xué)的具象案例AlphaZero常被詬病為“黑匣子”但MCTS的樹結(jié)構(gòu)天然可解釋。我們不滿足于“它贏了”而要回答“它為什么在這步落子”。核心技巧是在MCTS搜索完成后提取根節(jié)點(diǎn)所有子節(jié)點(diǎn)的visit_count映射回15×15棋盤生成熱力圖。這張圖不是后驗分析而是決策當(dāng)時的“思考熱度”能直觀展示AI的戰(zhàn)術(shù)意圖——是進(jìn)攻熱點(diǎn)集中于對手防線、防守?zé)狳c(diǎn)在己方薄弱點(diǎn)、還是布局熱點(diǎn)分散于空曠區(qū)域。5.1 生成可交互熱力圖用Matplotlib繪制帶坐標(biāo)標(biāo)注的決策熱圖以下函數(shù)本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
韩日性爱av| 亚洲人妻中文高清| 性色AV蜜色av色欲av| 成人五月香网在线| 欧美78P| 日韩成人高清一区二区| 91在线欧色| 精品国产一区二区三区久久久蜜臀 | 992视频一区| 亚洲成人贴图| 2018天天干在线视频| 自拍内地三级在线观看| 五月天激情网站| 看一级特黄a大一片| 亚洲第一在线视频| 久9爱经典视频| 成人一区二区三区四区| 超碰在线成人| 91亚洲电影| 久久久91福利姬| 亚洲AV性爱电影| 久久久久78| 欧美91变态| 亚洲天天自拍| 凹凸精品熟女在线观看| 黄色大片免费在线| 狠狠爱AV| 九月伊人中文字幕| 色五月激情AV在线| 丝袜美腿制服人妻二区中文字幕| av无线看| 亚洲国产欧美中文永久| 国产91亚洲精品一区二区三区| 色噜噜人妻av中文字幕| 欧美人与动性人交a| 久久久亚洲精品中文字幕人妻| 综合欧美日韩在线观看| 亚洲精品一二牛牛| 日韩一区二区熟女| 99在线精品观看99| 激情四射婷婷六月天| 校园春色五月天| 台湾佬中文娱乐网久久久久久久久久com | 成人AV在线网站| 欧美性爱一内片一区二区三区| 啊a一区在线| 操逼精品视频| 99亚洲国产精品色一区二区三区| 欧美一区二区观看在线| 蜜乳AV免费观看| 强奸抽插av| 妇女性内射冈站HDWWWCOM| 欧美日韩国产一区二区小黄片大全| 欧美精品三区| 搡老女人老妇女AAA一VU麻豆| 2017人人操,人人摸| 亚洲成人免费中文字幕| 乱人伦 国语对白:视频直接看| 亚码激情| 国产白丝在线| 久久欲| 婷婷视频在线免费观看| 婷婷五月天av| 好舒服视频| 日本国产二线女色| 夜草网站| 国模吧 一区二区三区| 欧美久热| A男人的天堂| 日韩八十路老熟女| 试看日韩黄片| 日韩AV一起草| 成人网欧美风情| 一二三四视频在线社区中文字幕| 午夜噜噜噜| 欧美Ⅴ性爱| 手机在线视频国内精品| 9久综合网| 成人欧美日超碰| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 色色无码| 免费99精品国产自在在线| 91亚洲人| 白嫩国模丰满一二三区| 久久久久久中文版| 狠狠操狠狠插| 欧美操人视频| 大鸡吧尹人在线| 精品96久久| 国产精品夜夜夜| 精品一区二区国产日韩| 日逼国产| 蜜臀久久久| 午夜精品久久久久久久久久久久久| 欧美精品久久96人妻无码| 国产精品视频一区二区三区八戒| 久久AV无码1区2区3区| 99久在线精品99re8| 久久这里只精品免费福利| 五月天激情小说| 欧美中字不卡| 在线综合色| 亚洲影院小综合| 91日韩国产欧美亚洲另类精盘州至城都| 99国产精品视频尤物| Av色五月| 亚洲丝袜诱惑| 婷婷五月天激情小说| 伦在线97| 日本黄色大片一级视频免费麻豆| 精品射1999| 男人的天堂va在线| 中文激情网| 有码专区最新中文字幕有码| 亚洲精品亚洲人成在线麻豆| a啊啊啊啊啊啊啊啊一区二区| 国产欧美日韩一区二区三区| 欧美人妻色| 久久精品国产Aⅴ| www.91色综合| 国产精品电影大全| 欧美美女自慰一区二区三区| 搡老女人老91妇女老熟女| 综合色久| 一起草三级AV电影在线观看 | 热热色中文无码| 亚洲av影院在线观看| 2000亚洲男人天堂| 国产精品岛国片在线观看| 日本高清熟女久久一区| 婷婷影院入口| 永久免费av无码网站国产app| 97人肏| 欧美天天弄| 99re这里只有精品3| 亚洲色图欧美一区二区不卡| 欧美97日韩| 91av一区二区在线观看| 99色骚| 婷婷中文网| 日韩精彩视频| 俺去也婷婷| 欧美极品| 91国产在线精品| 天天插天天操| 乱欲视频| 蜜桃天美传媒AV一区二区三区| 一区二区三区精品视频| 国产又黄又爽| 欧美日韩国产人人| 人妻啊啊人妻啊| 一级性爱视频免费观看| 国产久久一区二区| 99热成人| 在线播放免费av福利片| 78m啪啪啪| 日本蜜桃| 国语人妻精彩刺激| 精品v日韩欧美国产| 加勒比海人人操超碰在线| 亚欧美天堂在线| 人人操人人搞人人草| 校园春色美腿丝袜 | 成人麻豆av电影网站| 99热国产精品| 欧美亚男人的天堂| 九九人人操| 久久久久亚洲熟妇熟女| 久久精品国产亚洲av水密被窝| 嗯嗯啊啊用力视频免费| 亚州精人品大香蕉| 在线强奷到舒服的无码视频| 在线午夜成人无码视频| 超碰9 7女人 | 操高情无码| 中文视频在线观看| 天天伊人| 9 1果冻精品视频| 九热大香蕉| 欧美躁死她一区二区| 久久这里是精品| 日韩免费中文字幕视频| 成人免费性爱视视| 国产精品久久蜜乳av| 日日日大屁股骚女人精品| 亚州宗合另类| 久久丁香| 亚洲1区| 思思热影视| 日韩综合成人免费视频| 日韩欧无码一区二区三区免费不卡| 久久亚洲日韩国产欧| 男人精品天堂一区| 日本精品性生活久久久| 国产精品久久久久久夜夜夜| 91人妻视频在线| 婷婷99狠狠| 手机看av网站在线看| 午夜一区二区三区国产| 日韩操逼HD| 人人做,人人操,人人摸| www.av在线视频| 亚洲色欲天天天堂色欲网女| 另类亚洲一区二区三区| 国产成人99久久亚洲综合| 91精品国产91综合久久蜜臀| 黄色香蕉视频网站一区| 思思热在线视频免费| 国产熟妇 码视频户外直播| …亚洲黄色厕厕女女在线播…| 91大香蕉伊人| 日产欧美电影一区二区三区| 中国AAAAAA黄色片| 天堂а√在线最新版在线| 国产精品爱欲| 国产精品69人妻无码久久久| 亚洲黄网在哪免费看| 亚洲一区二区精品福利| 中文久久爆乳| 桃色五月天| 一区二区三区精品黑丝白丝酒店对鸡 | 极品色综合| 99在线精品视频| 欧美97在线欧| 老子午夜伦不卡影院| 亚洲日本激情| 中文字幕性感少妇av| www.夜夜操| 91女在线观看| 色偷偷人人玩人人舔人人操人人摸人人爽 | 淫骚熟女一区二区三区| 精品人妻一区二区三区不卡断 | 亚洲黄色| 人人操,人人插| 黄色片一区二区三区四区五区| 探花一区二区三| 日韩av在线免费网站| 免费看一级a性色生活片久久无| 熟女乱伦二区| 欧美亚男人的天堂| 人澡逼| 夜夜躁狠狠躁日日躁av| 丰满高潮18xxxx| 97色伦欧美| 日韩中文字幕av在线播放| 五月天AV资源| 一级AV性爱| 天美麻花大全视频| 久久天天躁日日躁狠狠躁| jiujiujiujingpin| 久久亚洲AV无码白度| 大黄片做爱的大的| 日韩另类色图| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 影音先锋一区二区在线资源| 蜜臀99久久国产| 国产精品免费1区2区视频| 操逼网站视频漫画国产| 欧洲亚洲人妻无码中字久久三区四区 | 国产精品黑人一区二区三区| 丰满人妻av一区二区三区| 小草精彩毛片| 亚洲激情深爱文学小说网站| 欧美亚洲国产91在线| 91狼人| 操b网站亚洲无码| 91网站18禁| 天天干夜夜一操| 九月丁香婷婷| 国产精品视频内谢女人| 中文字幕视频在线观看一区二区| 国产精品白丝www| 影音先锋视频在线| 91久久堂| 久久欲| 少妇高潮99p| 亚洲中文字幕熟女少妇一区二区| 亚洲综合中文字幕有码| 国产精品午夜福利视频| 乱伦一区二区三区‘| 98色网| 99re6在线视频播放免费精品| 国产av强奸美女| 综合亚洲情色| 大黄片做爱的大的| 久久超碰大香蕉| 精品无码一区二区三区| 人妻密肉在线观看| 日韩精品字幕| 美国久久一二三四| 五月婷婷丁香六月丁香| 日日日啊啊啊| 丰满美女一级毛片在线播放| 中 文字幕一区二区三四 五 区日 日 骚| 丰满人妻-区二区三区免费看| 粉嫩不卡一区二区性爱| 国产超碰欧美| 五月黑AⅤ| 女人综合网| 久久极品一区二区| 亚洲成人免费中文字幕| 亚洲日韩美女丝袜美腿人妻视频| 五月天丁香网| 欧美偷拍| 偷拍亚洲高清图片| AV一区观看| 青青草字幕AV| 久操大香蕉手机视频在线看| 色综合国产在线观看| 懂色AV中文| 伦伦成年午夜免费视频| 免费97视频| 成人在线视频网| 欧美性暴力| 96AV久久久| 成人五级久久| 粉嫩久久久极品| 婷婷色婷婷| 日韩偷拍一区二区三区| 台湾佬中文娱乐网久久久久久久久久com | 久妇网| heyZO天然素人无码AⅤ专区| 青青草一区二区三区四| 天天操综合网| 亚欧毛片基地国产毛片基地| 97草草| 曰韩精品九九无码 | 男人的天堂日本东京热| 五月婷婷基地| 国产高清26uuu| 亚洲AV色图| 干b在线性社区| 亚洲日韩美国人妻| 综合久久9| 9999亚洲电影| 91大胆欧美| 一起草日韩| 欧色网址| 亚洲九九视频在线观看| 人人手机欧洲亚洲国产人妻| 啪啪啪精品视频| 91熟女在线| 亚洲色悠悠久久88| 97中文天堂| 欧亚乱色熟女一区二区| 久久免费99精品久久久久久| 9久久久久| 伊人亚洲综合| 国产美女91视频| 六月激情网| 国产大学生口爆吞精合集| 啪啪自拍九九综合| 97超碰伊人| 欧美变态激情网| 91粉芽高清在线一区二区 | 久久风骚城市| 夜夜嗨绯色| 青青操青娱乐| 日韩精品99999| 国模吧 一区二区三区| 男人女人18禁片免费看网站| 麻豆亚洲AV成人无码久久精品| 亚洲凸凹超碰成人| 美骚妇av高清在线| 综合网~91综合网| 九九热免费国产视频婷婷伊人| 精品毛片久久久精品毛片| 成人自拍三级在线观看| 日本视频在线中文字幕| 97超碰超碰| 欧美78P| 好色美女九七第一页| 97爱b| 极品粉嫩一区二区| 日本三级小说中文字幕| 久久一区,青青青青草视频在线播放| 亚洲综合五月天| 激情啪啪拍91| 激情综合五月| 大香交伊人网| 熟女丰满人妻一区| 禁片 高清 在线观看视频网站| 97操碰| 五月婷在线| 男人天堂一区二区| 偷拍网站久久男女男| 超碰亚洲97| 99热超碰| 日本一久是| 狠操91,com| 职场同事知名国产国产精品久久欧美日韩 | 人妻大香蕉| 亚洲狠狠入| 男人的天堂一区| 九九碰九九爱97超碰| 国产一级高清免费观看| 亚洲AV无码乱码| www.av在线视频| 操逼网站视频漫画国产| 97WW精品| 69久久久久久久久久久久久| 亚州Av天美传媒| 麻豆熟妇乱妇熟色A片在线看| 欧美偷拍| 天天看天天在线精品| 在线无码操| 99久热| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 9九九九九视频在线观看| 麻豆精品久久久久久久| 日韩美女高潮喷水视频| 色爱亚洲| 神马久久久久久伦理片| 欧美婷婷| 中文字幕97色| 9久久久久久| 岛国免费视频在线| 国产精选三级在线观看| 久久99国产综合精品女同| 久久久久久久久久黄色网| 超碰9 7女人| 日本孕妇一区二区视频操逼免费看 | 婷婷色色五月| 大香蕉啪啪啪啪在线| 97ai亚洲| 人人操人人操人人操人人操人人操人人人11.CM | 日韩精品一区的| 欧美九九爱| 蜜臀aV午夜一区二区三区| 神马麻豆福利院| 奇米四色影视777久久久| 午夜大香蕉| 精品性爱久久视频| 91老熟妇| 亚洲激情网一二三四区| nuu12国产麻豆精品| 日本成人在线不卡一区二区三区 | 色97综合中文字幕| 大香蕉视频一二三区| AV九九| 东京热不卡视频| 精品免费视频国产一区| 五月丁香网站| 亚洲天堂一二| 粉嫩绯色AV一区二区在线| 熟女色图在线| 2021国产成人精品久久| 夜夜爽77777| 国产一区二区精品久久久不卡蜜臀| 免费av高清无码| 色五月婷婷网| 大香蕉伊人75| 激情色播| 91欧美综合| 狠狠综合网| 日本精品加勒比海一区| 欧美黄色片AAAAA| 亚洲色情在线影视| 国产51色综合久久免费| 美女AV一区二区| 思思热在线视频在线| 日韩AV一区二区三区四四| 噜噜噜亚洲精| 亚洲超碰在线| 久 久无码人妻AV| 91精品综合久久久久久五月丁香| 国产九月婷婷| 爱爱60秒免费视频| 91熟女网| 欧美一级A一级a爱片久久| 韩国成人精品久久久免费看| 欧美韩日精品资源| 强歼乱伦资源网| 校园春色综合香蕉| 久操网视频| 久草男人天堂| 天堂中文日本在线观看| 97久久国产亚洲精品超碰热| 国产精品无码论坛| 我要色综合网站| 色丁香久久| 久久久久久十| 久久久不能久久久久| 亚洲成人黄色在线观看| 日日夜夜青青草母狗| 国产一级137片内射麻豆| 热久日综合| 亚洲中文日韩欧美大香蕉视频| 91强在线播放| 丁香六月婷婷| 国产精品免费1区2区视频| 韩国女主播青草在线| 日本免费一级AAA大片器| 啊啊啊好大好湿| 无码精品蜜桃一区二区三区ww| 国产AV天美传媒一区二区三区 | 国产小u女在线观看| 青青草AV色| 电影69乱码96| 一级@啪啪视频| 天天干人妻视频| 2020视频1区2区3区| 爱妃国产亚洲视频中文字幕| 九99久久| 美女裸体麻豆天美蜜桃91| av在线一区二区三区| 欧美性夜| 91天天爱| 大香蕉伊人色偷偷在线| 91丨豆花丨熟女| 麻豆一区二区AV天美| 歐美一級亂黃99在綫精品| 全免费a敌肛交毛片免费| 伊人骚琪琪亚洲天堂网站| 目产99999久久999| 夜夜嗨一区二区| 国产精品一级毛片不卡视| 欧美亚洲图片| 欧美女同在线| 97天天操天天干| 91碰碰| 国产精品爽爽v| 色噜噜国产精品视频一区二区| 老鸭窝黄色视频网站| 亚洲无码色| Blackedraw视频一区二区| 久久精品| 欧美精品庄| 亚洲。天堂。日本在线观看| 高潮嗯啊性感美女久久久| www.色婷婷.com| 人摸人人操人| 日本一级婬片试看三分钟| 精品黄色电影| 欧美亚洲首页| 中文字幕欧洲有码| 粉嫩久久久极品| 秋霞一区二区三区四区五区六区七区| 日本三级人妻a人妻一在线| 久久婷婷亚洲| 精品久久人妻成人网| 草草影院最新网址| AV天堂国产| 四虎午夜影院| 在线观看一级α片刺激高潮视频| 火箭成精品视频884必出精品| 91视频女生| 熟妇激情| 欧美黑人168页欧美黑人167| 夜夜 中文视频rt| 精品久久久久久久久久久久| 久插综合| 清清草影| 偷拍片久久| 蜜桃精品一区二区三区久在线| 亚洲情色图片区| 久久鲁夜| 欧洲亚洲人人爽爽视频| 加勒比综合a∨| 加勒比性爱成人在线| 欧美 综合 亚洲| 亚洲色图伊人网| 色情婷婷久久五月天| 伊人午夜福利视频| 综合亚洲网| 91性网| 色综合加勒比| 特级特黄一级毛片免费| 一起草日韩| 久久精品国产96精品亚洲拳交| 综合久久久久久久综合网| AAAAAAAAA黄片| 被体育老师抱着c到高潮| 亚洲欧美日韩夜夜| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 91国精产品| 熟女露脸激情自拍视频| 久夜操| 日韩亚洲欧美中文字幕| 高清国产成人无码| 国产成人自拍视频在线| 久操大香蕉手机视频在线看 | 欧美亚洲韩国视频十五区| 偷窥自拍亚洲| 日韩免费在线观看不卡| 无套内射人妻在线播放| 色色色欧美| 99999精品成人| 1024手机看片欧美日韩| 日韩有码中文字幕女同性恋| 日产操逼| 久久性爱免费送| 99国内精品| 偷拍片久久| 日韩色| 岛国大片国产| 嗯啊不要在线观看嗯啊| 亚洲色图 图片| 97免费在线观看视频| 午夜操逼不卡| 污啪啪啪视频| 久湿久久| 日韩免费三级黄片电影| 激情综合网五月婷婷| 人人操天天爽| 日韩欧美女求操每天更新| 99视频这有这里有精品| 日本久久网| 天天干人妻| dy888午夜老子影视达达兔| 操逼不卡中文字幕| 国产精品肉丝自拍| 中文三一区| 日本视频在线观看污污污| 日本亚洲vr欧美不卡高清专区| 青青草日韩免费观看高清在线| 91精品91久久久久77777俄罗斯老妇姓x| 99国产在线 精品 视频| 日韩在线女优天天干| 麻豆天天躁天天揉揉AV| www.av在线视频| 超碰爽人妻熟女Av| 亚洲色电影在线| 亚洲 欧美 手机在线观看| 日韩三级在线观看mp4| juliaann丝袜| 久操大香蕉| 91处女在线视频| 影音先锋新男人| 亚洲最大的黄色电影网站。| 91 丝袜在线播放| 丁香激情网| 怡红院久久老司机| 色爱综合网| 91超碰在线观看| 国产视频不卡在线观看| 亚洲色图自拍| 加勒比久久综合网高清| 色网1| 国产日韩欧美亚洲精品95| 久久香蕉超碰97国产精品| 欧美片第一页| 日本免费一区二| 久久久97| 超碰97资源中文字幕| 久久久久亚洲| 亚洲综合在线高清| 正在播放国产精品一区| 天天插夜夜爽| 国产黄色 A 片免费看| 国产和美国毛片| 國產尤物AV尤物在線觀看| 亚洲色图第四色| 天堂种子在线www网资源| 成人情色综合网| 色欲久久综合| 加勒比伊人| 91精品人妻一区二区三区蜜桃臀| 美女操逼A A| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 97久久综合网| 亚洲精品 大香蕉| 天堂v无码免费视频| 综合久欧洲| 99精品视频在线观看免费| 毛片麻豆91糖心精品毛情片| 亚洲av乱伦色图网站| 青草一区二区| 久久综合中文国产| 欧美日韩国产中文精品字幕自在自线| 色偷偷综合91久久噜噜| 五月丁香综合| AV麻豆免费一区| 色老久久| 91色艳| 人人操人人操人人操人人操人人操人人人11.CM| 96久久久精品| 亚洲欧美精品91| 亚洲?V无码专区在线电影| 亚洲一区制服诱惑| 吻戏激情性巴克| 无码外流操逼视频| 好色美女九七第一页| 伊人综合色网| 91人妻素女| 男人久久天堂| 色香综合天天影视综合| 97亚洲综合电影| 操逼逼福利视频| 3PAV乱伦视频| 色97国产69香蕉| 欧美熟妇乱码在线一区| 人妻99p| 日本潮催一卡操| 精品少妇一区二区三区| 熟女色图在线| www.色五月| 家庭乱伦性爱av| 日本操逼无码| 日日爽熟女| 最新精品久久蜜桃 | 啊…啊…操我用力操我| 黄片色区软件| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 精品日韩中文在线| 国产精品熟女一区二区三区| 综合激情一一91| 亚洲日韩av一区二区三区百合| 日韩精品视频在线观看一卡二卡| 一中国女人毛片水真多| 一区二区视频在看| 久久精品高清无码一区| 伊人丝袜美腿高跟在线观看高清 | 1024精品在线| 很狠操| 91l欧美在线| 久久久久密| 东京热亚洲一区二区| 国产精品久久久久久片| 中文字幕一区二区三区字幕| 亚洲天堂男人网| 婷婷8月天青娱乐| 精彩久久中文| 自拍亚洲综合| 伊人伊人LD| 久操操| 亚洲中文人妻色| 久久久久性熟视频| 婷婷情色综合网| 67914亚洲精品| 狠狠干综合| 91狠狠综合久久久| 午夜男人一级A片7777| 青草青草久热| 亚洲中文日韩精品| α√在线| 天天躁日日躁AAA片李宗瑞| 国产欧美一级在线观看| 国产成人无码啪| 曰韩精品视频一区二区| 中文字幕一区二区日韩网| 亚洲AV成人无码一二三久久| 亚洲啪啪视频免费| 国产一区二区三区免费视频在性观看| 高清无码久操视频| 黄片qw| 国产乱色国产精品免费视| 伊人精品久久网站| AAAAAAAAA黄片| 91精品伊人久久久大香线蕉91| 午夜福利视频在线一区| 亚洲操逼网| 久久国产视频性吧 | 乱操乱伦AV| 熟女这里只有精品6| 高清无码一区二区三区| 国产精品女久久久久av爽| 日韩性爱再线视频| 午夜人妻精品综合在线| 成 人 影视 一区 二区 三区 四区| 精品视频日日夜夜| 精品国产99| 97久久国产亚洲精品超碰热| 久久久啊啊啊| 国产1024在线播放| 一类无码操逼视频| 日韩精品一区二区三区色欲| 天天影视网综合少妇| 无码人妻丰满熟妇奶水区毛片| 日韩精品操少妇| 天天操天天干美女网址导航| 91丨人妻丨国产丨丝袜| 黑人精品XXX一区一二区| 久久亚洲AV无码专区首页| 99色天堂| 99热在线不卡| 天天摸天天操视频| 大屁股人妻女教师撅着屁股| 欧美强奸一区二区诱惑| 精品区9| ai欧美亚洲小说| 国产精品一区二区三区在线| 日韩免费三级黄片电影| 999岛国大片| 久久伊人网视频一区二区三区 | 亚洲一区二区三区欧美日韩| 中文啪啪视频| 啊啊啊不要嗯嗯在线观看| 亚洲在线a| 日本国产欧美高清在线| 91美腿丝袜在线观看| 日夜尻逼网| 亚洲国产成人7777| www.婷婷六月天| 国产性爱欧美性爱在线| 免费观看一区| 国产精品岛国片在线观看| 九九九热精品| 亚洲图片欧美| 免费A V在线| 美女AV一区二区| 在线日韩日本亚洲国产| 成人在线视频网| 9长久久精品| 思思视频免费看网站| 亚洲无码99| 亚洲综合另类色图| 国产熟女完整版中字| 成人精品视频一区二区| 亚洲色图A| 天天做日日爱夜夜爽| 欧美日动态视频| 黄色免费网| 国产精品久久久777| 大色综合| 亚洲色图久久精品蜜| 亚洲丨在线| 色噜噜精品一区二区三| 五月天久久婷婷亚洲| 秋霞Av理论一级在线| 91狠狠色丁香婷婷综合久久| 激情文学亚洲| 日韩中文字幕在线视频观看| 秋霞鲁丝午夜无码一区二区三| A一区片| 色九九九| 精品国模无码| 亚洲欧美天堂在线| 精品视频在线观看精品| 亚洲国产精品久久久久婷婷青年| 精品日日人妻| 丁香五月影院| 大香蕉日韩| 六月激情网| 老熟女网站| 久久久影院| 人人模人人看| 少妇一区二区三区在线观看| 乱伦熟妇一区二区| 久久久国产精品人妻丝袜| 成人免费性爱视视| 九九英色视频| 欧美日产国产在线成人第一区| 国产极品久久久| 日韩性爱毛片操骚逼| 日本新免费二区三区| 国产精品欧美日韩久久| 老司机福利社视频在线观看| 日韩性爱高清免费视频| 中文字幕激情小说| 久久免费老司机精品| 精品国产三级av韩国在线| 日日干夜夜操视频h| 天天色天天干天天爱| 久久同城AV| 成人午夜视频免费播放| 国产三级片在线观看| 精品久久在线区一区| 日韩免费高清大片在线| 精品中文一区二区| 激情综合婷婷| 欧美亚洲| 国产视频小说| 99热成人| 岛国片在线视频网站| 啊啊啊啊啊啊啊在线| 日本免费亚洲欧美| 欧美极品美女aaaaaa级黄片| 中文久久96| 九九热精品在线| 国产精品久久久久久高清无码免费看| 射丝袜大香蕉| 曰韩精品九九无码| 中文字幕AV乱伦| www男人天堂| 蜜桃在线观看一区二区三区 | 安徽熟妇视频| 亚洲夜夜欢无码一区二区 | 二级久久网| 婷婷综合网站| 成人一级性爱| 亚洲在线a| 亚洲素人网| 99啪| 天天色综合天天操| 欧美成人A√在线一区二区| 疯操AV| 另类av天堂| 五月丁香网站| 操逼片中文| 国产强奸乱伦无码视频| 福利五区| 99蜜桃臀亚洲成人在线观看| 色情成人五月天| 国产精品欧美日韩久久| 人人模人人看| 天天综合青苹果| 超碰69| 伊人国产av| 国产精品麻豆成人AV艾秋| 乱伦图av| 亚洲精品一区二区精华| 高清无码人妻久久久一区二区三区aⅴ| 久久久久久久久久黄色网| 中文字幕欧洲有码| 女人一区| 久久久工口| 99久久九九| 黑人精品成人一区二区三区| 国产亚洲精品精AV.| 女性91网站| 国产精选视频| 久久精品国产97欧美精品亚洲 | 国产亚洲禁久一区二区| 在线无码网站| 日韩欧美操逼xxx| 97干97色| 色九久| 久操电影网| 丰满欧美放荡少妇在线| 天海翼久久| 亚洲的天堂网| 四虎在线播放| 成人五月天色网| 久久久性爱视频| 欧亚久久偷拍视频| 色女99一级片在线观看| 欧美综合97www| 91亚·色| 暖暖精品二区三区观看| 久久国产三区| 日本有码久久| 久热色情精品| 日本天堂网| 国产婷婷一区| 双插在线| 情侣操 逼视频99| 国产噜噜噜噜噜久久久久久久久| 欧美在线l亚洲| 午夜后入| 激情四射婷婷六月天| 久久原创中文| 4tube欧美女厕所| 蜜臀va69| 97亚洲中文| a'v在线资源| 超碰日韩人妻| 亚洲欧洲综合av在线| 乱伦1色页| 亚洲欧美日韩夜夜| AV大香蕉| 九九热免费在线国产视频伊人五月| 美女在线H91| 欧美亚洲AN| AV色图| 97亚洲色图| 日日爱99| 91精品女厕偷拍视频| 国产一区二区av综合| 色9999日韩国产| 久久婷婷国产一区二区色| 国产久久视频| 97se综合| 九九热三级片| Sekablack无码一区| 午夜偷拍久久熟女| 五月天激情小说| 国产SV一线| 国产精品色约约| 久夜视频| 欧美极品性爱天天射| 97色色色| 91美女视频在线| 热热色青青草| 男女日B国产| 操逼网免费无码视频| 97日本超碰综合| 久久视频少妇美女| 国产精品香蕉| 亚洲精品啪视频| 九色 人妻 大香蕉| 久久久精品一区二区| 国产精品扒开腿做爽爽爽视频| 黄色视频60分钟| 欧洲色| 好爽免费视频,| 啊啊啊操死我| 欧美视频边做饭边橾| 顶级少妇BT天堂| 天天爽入口| 成人97人人超碰人人| 97在线视频观看| 蘋果手機免費看成人Av| 青青草福利视频| 亚洲色图亚洲无码强奸乱伦| 刺激性视频黄页| 国产免费小视频| 狠狠色狠狠色狠狠五月| 国产视频三区四区| 欧美日韩亚洲少妇寂寞影院正在播放| 亚洲乱色熟女一区| 校园春色之综合网| 97超碰影音| 欧美性爱中文字幕无线码| 中文字幕加勒比海高清无码免费视频 | 亚洲另类春色| 性爱av在线免费观看| 成人一区二区三区四区| 超碰97久久| 天天操天天插| 色哟哟AV| av最新免费中文字幕| 久久婷婷在线观看视频| 精品国产乱子伦一区二区三区,精品一| 日韩精品碰碰| 成人色女网| 久久久97| 在线观看AV不卡| 久久精品国产亚洲av水密被窝| 5278欧美一区二区三区| 97丝袜亚洲在线播放| 青青免费在线视频一区| 欧美色图亚洲色图成人在在线| 久久区| 亚洲精品99| 欧美激情精品| 人妻少妇色综合| 久久久久久国产手机AV| 天天摸夜夜操视频| 亚洲精品国产无码高清| av操操不卡| 无码操逼视频一下| wwe 天天干.com| 欧美日韩午夜精品一区二区三区 | 91丨人妻丨国产丨丝袜| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 第一高清av中文字幕| 精品一区99999| 久久男女激情视频网站| 2019男人的天堂| 久久久激情| 偷拍盗拍亚洲色图图片 | 超碰日韩人妻| 日本不卡二三区| 欧美1区二区三区公司| 九九九久久久久| 大香蕉专区| 九九九只有精品| 狠狠操天天干| 最新亚洲黄色免费电影| 久久国产精品,久久国产| 国产家庭乱伦性爱视频| 国外91| 激情四射五月天| 中文字幕在线观| 蜜臀人妻少妇久久在线观看| 在线观看无码三级少妇| 人妻内射一区二区在线视频| 每日更新AV| 亚洲视频精选| 啊啊啊啊啊操我视频| 精品无码久久久久久国产浪潮| 亚洲人久久久网| 日韩中文字幕二区| 亚洲色图欧洲| 国产熟妇一区二区| 看日韩操逼| 久久啊啊啊| 日韩久久艹| 午夜大香蕉| 伊人久久综合影院精品久久久 | 丁香六月婷| 免费αV在线视频| 日本最新1区2区3区| 午夜人妻精品综合在线| 乱抡国产91| 国产超碰欧美| 香蕉一区二区三区在线视频| www.91理论| 97超碰久久| 国桃视频产巨乳精品一区二区在线| 一级免费啪啪片| 操国产逼| 日本在线15p| 天天香香欲综合| 爱我干综合| 国产家庭乱伦性爱视频| 9I1性色影院| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 欧美久久久| 91久久精品国产| 國產尤物AV尤物在線觀看| 天天看天天日| 老鸭窝成人| 九九九久久久久| 久久久一级| 国产97视频免费观看| 日韩成人无码| 可乐操在线| 超碰免费欧美7| 日日天天久久啊啊aaa| 翔田千里av一区二区三区| 国产黄色在线播放观看| 97视频免费播放| 天天在线91| 日韩欧美偷拍美女视频| 97日本超碰综合| 婷婷久久网| 播播亚洲小说亚洲| 91精品微拍福利| 91综合在线| 色吊丝 日日骚 清纯唯美| 亚洲国产亚洲天堂| 麻豆精品A片免费观看| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 久久久久成人网| 亚洲涩图欧美| 婷婷五月天无码| 97大色网| 国产日本熟女顶级一区二区三区视频 | 中文字幕少妇色| 欧美性五月| 欧美亚洲国产91在线| 97人人草| 久久久久亚洲av综合波多野制衣| 亚洲天堂少妇| 91美女视频在线观看| 久久熟女嫩草成人片免费| 日韩欧美资源| 又摸又舔在线观看网站| 久久久久日本视| 亚洲色吧网| 婷色五月天| 五月丁香啪啪啪| 操操啪| 日本欧美国内在线| 国产树林里野战在线看| 乳欲人妻办公室奶水| 国产一级特黄大片处女| 黄色操人| 一本精品日本在线视频精品| 成人无码在线超碰网| 久久久国产av美女私房| 中国AV美女| 在线播放一级无码视频| 一本大道不卡一二三区| 一二三四视频中文字幕在线看| 欧美十八禁视频| 国产又黄又粗的视频| 亚洲一曲日韩精品| 伊人久久综合精品欧美| 欧美人妻精品一区二区| 日韩激情啪啪| 91色色色| 99青草| 天天综合有色网| 99久热精品99re6热| 97欧美色综合| 青青操在线视频| 91综合网|