日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

MADDPG多智能體博弈對抗實戰(zhàn):從DDPG到中心化訓(xùn)練去中心化執(zhí)行

MADDPG多智能體博弈對抗實戰(zhàn):從DDPG到中心化訓(xùn)練去中心化執(zhí)行 簡介面向希望系統(tǒng)學(xué)習(xí)多智能體強(qiáng)化學(xué)習(xí)的高校學(xué)生與開發(fā)者這份基于Python與MADDPG的多智能體博弈對抗算法資源完整覆蓋算法搭建、訓(xùn)練與測試流程可直接用于畢業(yè)設(shè)計、課程設(shè)計、工程實訓(xùn)或初期項目立項。壓縮包共含14個文件其中10個Python腳本構(gòu)成核心代碼分別實現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)定義、DDPG與MADDPG智能體構(gòu)建、經(jīng)驗回放緩沖區(qū)、訓(xùn)練主循環(huán)、測試環(huán)境交互等模塊同時附帶README說明文檔、配置文件及虛擬環(huán)境配置信息方便快速還原運行環(huán)境。整個壓縮包僅19KB代碼量不大但結(jié)構(gòu)完整便于逐行閱讀與二次開發(fā)。目前已有266人學(xué)習(xí)適合希望從零理解多智能體博弈機(jī)制的入門者或中高級學(xué)習(xí)者。讀者可通過這些腳本搭建自己的對抗實驗觀察智能體在競爭與合作環(huán)境中的策略演化并在此基礎(chǔ)上修改獎勵函數(shù)或環(huán)境邏輯擴(kuò)展出更強(qiáng)的自定義博弈算法。1. 多智能體博弈對抗為什么簡單復(fù)制單智能體策略會全線翻車設(shè)一個場景三架無人機(jī)圍堵一架入侵機(jī)。你把單智能體的 DDPG 復(fù)制成三個獨立進(jìn)程去跑結(jié)果經(jīng)常是——三架無人機(jī)先亂撞一氣然后集體躺平在原地轉(zhuǎn)圈。原因不復(fù)雜多智能體強(qiáng)化學(xué)習(xí)里每個智能體面對的“環(huán)境”都包含其他智能體的策略而別人的策略一直在變單智能體那套“環(huán)境穩(wěn)定”假設(shè)被直接打破。MADDPG 算法就是沖這個痛點來的。它保留 DDPG 在連續(xù)控制上的優(yōu)勢用“中心化訓(xùn)練、去中心化執(zhí)行”的思路讓訓(xùn)練階段每個智能體能看到他人的狀態(tài)和動作部署時卻只依賴自身局部觀測。這篇文章會從算法原理、環(huán)境搭建、PyTorch 落地到訓(xùn)練踩坑把一條可復(fù)現(xiàn)的博弈對抗訓(xùn)練路線完整走一遍。適合剛開始做多智能體強(qiáng)化學(xué)習(xí)的同學(xué)也適合想把現(xiàn)有單智能體代碼升級改造的工程師。2. 讀懂 MADDPG 的核心思想中心化訓(xùn)練、去中心化執(zhí)行改的是什么2.1 先理解 DDPG再看 MADDPG 改了什么DDPG 是單智能體連續(xù)控制的經(jīng)典方案actor 網(wǎng)絡(luò)根據(jù)狀態(tài)輸出動作critic 網(wǎng)絡(luò)評估“狀態(tài) 動作”的價值。訓(xùn)練時 critic 給 actor 提供梯度方向actor 負(fù)責(zé)實際決策。它在機(jī)械臂、自動駕駛等單智能體連續(xù)控制任務(wù)上表現(xiàn)穩(wěn)定到了多智能體對抗場景卻會出問題。根本原因是每個智能體的 reward 不只取決于自己的動作還取決于對手和隊友的當(dāng)前策略當(dāng)隊友的策略隨訓(xùn)練不斷更新“環(huán)境”對任意單個智能體都是非平穩(wěn)的。非平穩(wěn)性對經(jīng)驗回放的傷害尤其明顯。DDPG 依賴經(jīng)驗回放假設(shè)過去采樣的經(jīng)驗仍然能代表當(dāng)前環(huán)境分布但多智能體對抗中對手策略一變舊經(jīng)驗的獎勵含義就過時了直接拿去更新會讓價值估計左右搖擺。MADDPG 的解法很直接每個智能體訓(xùn)練時把環(huán)境中所有智能體的觀測和動作都喂給自己的 critic讓價值函數(shù)在“看得見全局”的前提下做評估從而把其他智能體策略變化帶來的非平穩(wěn)性部分轉(zhuǎn)化成了可觀測的輸入變量。這就是它和 DDPG 最本質(zhì)的區(qū)別。2.2 critic 看全局、actor 看局部為什么這是對抗場景下的正確折衷先明確一點MADDPG 并不是一個全局策略算法而是一組“每個智能體一套 actor-critic”的結(jié)構(gòu)。訓(xùn)練階段第 i 個智能體的 critic 輸入是環(huán)境中所有智能體的觀測拼接、所有智能體的動作拼接而它的 actor 輸入只有自己的觀測。兩者結(jié)構(gòu)差異可以這樣對比結(jié)構(gòu)項單智能體 DDPGMADDPGactor 輸入自身觀測 o自身觀測 o_icritic 輸入自身觀測 自身動作全部觀測 [o_1,...,o_N] 全部動作 [a_1,...,a_N]目標(biāo)網(wǎng)絡(luò)數(shù)量actor、critic 各 1 個每智能體 actor、critic 各 1 個目標(biāo)網(wǎng)絡(luò)部署時actor 可用只部署 actorcritic 留在訓(xùn)練端critic 看全局能帶來兩個實際好處。第一在對抗中對手動作被顯式作為輸入Q 值擬合時不用再去“猜測”對手下一步會干什么對手策略更新造成的影響被納入了輸入維度經(jīng)驗回放的失效問題大幅緩解。第二在協(xié)作對抗混合場景里隊友動作也在 critic 輸入里價值評估能正確反映“配合”帶來的增益而不是把隊友造成的獎勵變化誤判成環(huán)境噪聲。actor 保持局部觀測則是一個工程折衷。在真實對抗系統(tǒng)里部署時往往沒有全局通信條件鏈路可能丟包、帶寬有限、某些觀測天然不可共享。如果策略依賴全局狀態(tài)部署時就會因為信息缺失而直接失靈。MADDPG 把“全局信息”只留在訓(xùn)練端部署時每個智能體靠自己的局部觀測獨立決策這符合絕大多數(shù)實際系統(tǒng)的約束。很多初學(xué)著看到 CTDE 就以為算法能集中決策這是最常見的誤解——它只是集中地“學(xué)”并不要集中地“做”。2.3 目標(biāo)網(wǎng)絡(luò)與軟更新參數(shù)怎么設(shè)才不激進(jìn)MADDPG 的更新邏輯沿襲 DDPG每個智能體都有主網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)兩組參數(shù)。計算 TD 目標(biāo)時下一時刻的 Q 值用目標(biāo)網(wǎng)絡(luò)算避免自舉式更新導(dǎo)致的價值發(fā)散。目標(biāo)值的表達(dá)式是y r γ × Q_target(全部下一觀測, 全部目標(biāo)動作)這里的“目標(biāo)動作”不是主網(wǎng)絡(luò)輸出的動作而是每個智能體各自目標(biāo) actor 網(wǎng)絡(luò)輸出的動作。我見過不少實現(xiàn)圖省事直接用當(dāng)前 actor 輸出算下一時刻動作這樣會讓目標(biāo)值里同時包含兩份在更新的參數(shù)梯度被持續(xù)注入偏置收斂會慢很多。正確做法是目標(biāo) actor 輸出后接 detach切斷梯度回傳。軟更新參數(shù) tau 是第二個容易踩的坑。常見做法是每訓(xùn)練一步就把目標(biāo)網(wǎng)絡(luò)參數(shù)向主網(wǎng)絡(luò)滑動一點tau 取 0.01 起步。在多智能體對抗里我一般取 tau0.01同時把更新頻率從“每步”改成“每 100 步同步一次”相當(dāng)于兼顧平滑和穩(wěn)定。如果 Q 值曲線像鋸齒一樣劇烈抖動把 tau 降到 0.005并把同步間隔拉大到 200 步。注意目標(biāo)網(wǎng)絡(luò)參數(shù)不是復(fù)制越勤越好。多智能體場景里每個 critic 都耦合了所有智能體的策略某個智能體策略突變會被同步放大到其他人的目標(biāo)值里表現(xiàn)為集體振蕩。軟更新參數(shù)寧可保守。另外要強(qiáng)調(diào)的是MADDPG 并沒有修改 DDPG 的另一個基礎(chǔ)組件——探索。訓(xùn)練時 actor 輸出的動作要疊加噪聲常見做法是高斯噪聲或 Ornstein-Uhlenbeck 噪聲。對抗環(huán)境下 OU 噪聲的時序相關(guān)性有助于維持探索的連貫性但參數(shù)不好調(diào)我實際用下來簡單的高斯噪聲配合噪聲方差衰減在大多數(shù)仿真環(huán)境里已經(jīng)夠用也更少出現(xiàn)調(diào)參玄學(xué)。3. 環(huán)境與博弈配置用 MPE 搭一個可訓(xùn)練的對抗環(huán)境3.1 選哪個環(huán)境simple_tag 里天然帶對抗與追逐博弈算法學(xué)習(xí)不能只在 gym 的連續(xù)控制環(huán)境里跑那里壓根沒有第二個對手。做 MADDPG 博弈對抗入門最常用的是 OpenAI 早期開源的 multiagent-particle-envs簡稱 MPE。它是一組 2D 粒子世界環(huán)境雖然物理精度不高但動作連續(xù)、觀測可控、訓(xùn)練速度快非常適合先驗證多智能體算法邏輯再遷移到重仿真場景。MPE 里有幾個環(huán)境選型時要分清楚simple_spread 是純協(xié)作多個智能體分散覆蓋地標(biāo)里面沒有對手不適合驗證對抗simple_adversary 是“1 個追蹤者 vs 2 個被追者”的不對稱博弈適合練手simple_tag 則是最經(jīng)典的追逐對抗追捕方若干、獵物若干還有一塊障礙區(qū)域每個 agent 都能施加連續(xù)加速度。做 2v2 或 3v3 對稱對抗我通常從 simple_tag 改起。選這個環(huán)境的理由很實際。一是它足夠小一次完整訓(xùn)練幾分鐘到十幾分鐘就能看出策略有沒有分化迭代速度快。二是它的觀測是“相對位置 相對速度 自身信息”這種低維向量便于排查 Q 值、獎勵曲線等訓(xùn)練指標(biāo)比一上來就上 AirSim、Isaac 這類重型仿真器好定位問題。等算法在 MPE 上真的學(xué)出追逐和逃跑策略再遷移到高保真環(huán)境是效率最高的技術(shù)路線。3.2 多智能體如何配置最小安裝與依賴版本MPE 的安裝不算復(fù)雜但版本兼容問題容易卡住新手。這個環(huán)境包依賴較早版本的 gym 接口直接用最新 gym 運行常會報 API 不匹配。常見的做法是 clone 源碼后在虛擬環(huán)境里以可編輯模式安裝之后如果跑出 gym 相關(guān)報錯就說明依賴版本偏新需要把 gym 降到老版本。我第一次跑的時候問題就出在 gym 新老接口的差異上折騰了一個多小時才定位到所以這步值得提前注意。一個更省事的配置做法是先把環(huán)境目錄放到項目文件夾里直接在代碼里 import避免全局安裝帶來依賴污染。下面的命令是最小配置路徑# 創(chuàng)建虛擬環(huán)境避免污染系統(tǒng) Python python3 -m venv maddpg_env source maddpg_env/bin/activate # 安裝 torch 和基本依賴 pip install torch numpy # 從源碼安裝 MPE在項目目錄下執(zhí)行 git clone https://github.com/openai/multiagent-particle-envs.git cd multiagent-particle-envs pip install -e .參數(shù)說明虛擬環(huán)境是這里最重要的一步多智能體項目后續(xù)會頻繁改依賴版本沒有虛擬環(huán)境隔離系統(tǒng)級 Python 會被搞得一團(tuán)糟。-e表示可編輯安裝環(huán)境包源碼在 project 目錄中改動后立即生效方便臨時修改環(huán)境邏輯比如改獎勵函數(shù)。安裝完成后用一段腳本確認(rèn)環(huán)境能正常加載# test_env.py from multiagent.environment import MultiAgentEnv import multiagent.scenarios as scenarios # 加載 simple_tag 場景 scenario scenarios.load(simple_tag.py).Scenario() world scenario.make_world() env MultiAgentEnv( world, scenario.reset_world, scenario.reward, scenario.observation, info_callbackscenario.info, ) obs_n env.reset() print(智能體數(shù)量:, env.n) print(觀測維度:, [o.shape[0] for o in obs_n]) print(動作空間:, env.action_space[0])這段代碼只做一件事確認(rèn)環(huán)境對象能不能正常創(chuàng)建。環(huán)境數(shù)量env.n打印出來應(yīng)該是場景中的智能體總數(shù)觀測維度每個智能體可能不同這取決于場景各自的觀測函數(shù)定義。動作空間打印出的類型決定了后續(xù)網(wǎng)絡(luò)輸出層怎么設(shè)計。如果這段腳本直接報錯先檢查 gym 版本再看 Python 版本是否過新而不是去懷疑算法代碼。3.3 觀測空間與動作空間寫 reward 前先把坐標(biāo)算明白MPE 的動作空間默認(rèn)是離散的 5 個動作上下左右不動。但 MADDPG 的 actor 輸出層通常接 Tanh輸出連續(xù)值在 [-1, 1]。兩個對不上時常見的做法是寫一個動作映射層把連續(xù)動作映射到離散動作區(qū)間。例如 [-1, -0.5) 映射為向左、[-0.5, 0.5) 映射為不動、(0.5, 1] 映射為向右。更順手的做法是直接改場景把動作空間改成連續(xù)力控制這樣 MADDPG 原生的連續(xù)動作輸出就能直接用。我建議走連續(xù)動作這條路原因有兩個。一是省掉映射層的精度損失離散映射會讓細(xì)小的策略差異被抹平二是后續(xù)遷移到真實機(jī)器人或無人機(jī)仿真時控制量本來就是連續(xù)的提前用連續(xù)動作訓(xùn)練策略遷移性更好。改法不復(fù)雜在場景的make_world里把 mover agent 的action_space從離散改成連續(xù)即可。觀測空間則要看場景的observation函數(shù)。simple_tag 里每個智能體的觀測大致包括自己的相對位置、相對速度、標(biāo)記以及與其他實體的相對坐標(biāo)。訓(xùn)練前一定要打印一份實際觀測向量逐段搞明白每個維度是什么。我踩過最典型的坑是reward 里用了“距離差”做目標(biāo)但觀測里給的是相對坐標(biāo)網(wǎng)絡(luò)要自己學(xué)習(xí)“距離 坐標(biāo)差的范數(shù)”這個映射。這個映射不是學(xué)不會而是會拖慢收斂。不如直接在 reward 和觀測里都用距離讓網(wǎng)絡(luò)把精力放在策略上而不是解算術(shù)。一個穩(wěn)定的 reward 設(shè)計方案是分層給追逐方設(shè)置“接近獵物給正獎勵 持續(xù)貼近保持不動給正獎勵 出界懲罰”給獵物設(shè)置“遠(yuǎn)離追捕者給正獎勵 被抓住給大懲罰”。注意獎勵幅度不要跨數(shù)量級距離獎勵量級在 0.1 左右、捕獲懲罰在 -5 左右這樣一個量級內(nèi)的獎勵設(shè)計Q 值不會因為方差過大而爆炸。4. PyTorch 落地MADDPG 訓(xùn)練主循環(huán)的四個關(guān)鍵代碼步驟4.1 網(wǎng)絡(luò)結(jié)構(gòu)兩層 MLP 起步先別上復(fù)雜結(jié)構(gòu)很多初學(xué)者一上來就給 actor 加注意力機(jī)制、給 critic 加圖神經(jīng)網(wǎng)絡(luò)結(jié)果收斂更差。做 MADDPG 博弈對抗我的經(jīng)驗是最穩(wěn)的結(jié)構(gòu)就是兩層 MLPactor 中間層 128critic 中間層 128。先把這條基線跑通再根據(jù)任務(wù)復(fù)雜度逐步加深。下面是最小可用的網(wǎng)絡(luò)定義import torch import torch.nn as nn class Actor(nn.Module): 每個智能體一套輸入只看自己的觀測 def __init__(self, obs_dim, act_dim, hidden128): super().__init__() self.net nn.Sequential( nn.Linear(obs_dim, hidden), nn.ReLU(), nn.Linear(hidden, hidden), nn.ReLU(), nn.Linear(hidden, act_dim), nn.Tanh(), # 輸出限制在 [-1, 1]匹配連續(xù)動作范圍 ) def forward(self, obs): return self.net(obs) class Critic(nn.Module): 訓(xùn)練階段用輸入所有智能體的觀測和動作 def __init__(self, n_agents, obs_dim, act_dim, hidden128): super().__init__() input_dim (obs_dim act_dim) * n_agents self.net nn.Sequential( nn.Linear(input_dim, hidden), nn.ReLU(), nn.Linear(hidden, hidden), nn.ReLU(), nn.Linear(hidden, 1), ) def forward(self, obs_all, act_all): x torch.cat([obs_all, act_all], dim-1) return self.net(x)邏輯說明actor 輸出層用 Tanh 把動作限制在 [-1, 1]這正好匹配 MPE 連續(xù)動作空間的邊界。如果動作空間范圍不是 [-1, 1]可以在環(huán)境側(cè)做 scale而不是改網(wǎng)絡(luò)的激活函數(shù)。critic 把“所有觀測”和“所有動作”拼成一個大向量這個拼接發(fā)生在特征維度上所以每個智能體的 obs 和 act 都要先展平再拼接。參數(shù)說明hidden128是起步值對絕大多數(shù) MPE 級別的任務(wù)足夠如果任務(wù)狀態(tài)維度特別高可以先翻倍到 256而不是直接加網(wǎng)絡(luò)層數(shù)。激活函數(shù)用 ReLU 即可不需要 Gelu 這類花活多智能體訓(xùn)練穩(wěn)定性瓶頸通常不在激活函數(shù)。4.2 經(jīng)驗回放多智能體數(shù)據(jù)的結(jié)構(gòu)比容量更重要多智能體的經(jīng)驗回放和單智能體有一個關(guān)鍵區(qū)別一條經(jīng)驗必須同時保存所有智能體的觀測、動作、獎勵否則更新時 critic 拿不齊全局輸入。很多直接把單智能體經(jīng)驗回放搬過來的實現(xiàn)只存了當(dāng)前智能體的數(shù)據(jù)訓(xùn)練時其他智能體的歷史數(shù)據(jù)全是亂的導(dǎo)致 critic 輸入格式對不上。import numpy as np from collections import deque class ReplayBuffer: def __init__(self, capacity100000): self.buffer deque(maxlencapacity) def push(self, obs_n, act_n, rew_n, next_obs_n, done_n): # 一次性存入所有智能體的數(shù)據(jù) self.buffer.append((obs_n, act_n, rew_n, next_obs_n, done_n)) def sample(self, batch_size): batch np.random.choice(len(self.buffer), batch_size, replaceFalse) # 按智能體維度拆開每個智能體拿到自己的一批數(shù)據(jù) obs_n [[] for _ in range(len(self.buffer[0][0]))] act_n [[] for _ in range(len(self.buffer[0][1]))] rew_n [[] for _ in range(len(self.buffer[0][2]))] next_obs_n [[] for _ in range(len(self.buffer[0][3]))] done_n [[] for _ in range(len(self.buffer[0][4]))] for i in batch: o, a, r, no, d self.buffer[i] for j in range(len(o)): obs_n[j].append(o[j]) act_n[j].append(a[j]) rew_n[j].append(r[j]) next_obs_n[j].append(no[j]) done_n[j].append(d[j]) return ([np.array(x) for x in obs_n], [np.array(x) for x in act_n], [np.array(x) for x in rew_n], [np.array(x) for x in next_obs_n], [np.array(x) for x in done_n])邏輯說明push這次把整條多智能體經(jīng)驗存進(jìn)去而不是只存某個智能體的sample返回的是按智能體索引拆分后的列表每個元素形狀為(batch_size, obs_dim)。更新時訪問obs_n[i]就拿到第 i 個智能體的一批觀測。參數(shù)說明capacity100000是中小型對抗任務(wù)的起步值太小會讓經(jīng)驗分布頻繁被新策略覆蓋失去回放的意義太大則老樣本占比過高策略更新后舊經(jīng)驗價值失真。跑一次訓(xùn)練如果發(fā)現(xiàn)前中期 Q 值擺動劇烈優(yōu)先檢查 buffer 容量是不是設(shè)太小。batch_size我建議取 512 或 1024比單智能體常用的 64 大一個量級因為 critic 的輸入維度更高小 batch 的梯度方差更大。4.3 更新公式的代碼化actor 的梯度到底從哪來這一節(jié)是整個實現(xiàn)里最容易寫錯的部分。MADDPG 更新分兩步先更新 critic再更新 actor。critic 的 loss 是 TD 誤差actor 的 loss 則不是常見的策略梯度形式而是“最大化當(dāng)前狀態(tài)下被 critic 打分的 Q 值”。換句話說actor 的梯度來自 critic 對自己輸出動作的評分def update(agent_id, replay_buffer, batch_size, actors, critics, target_actors, target_critics, optimizers_actor, optimizers_critic, gamma0.95, tau0.01): obs_n, act_n, rew_n, next_obs_n, done_n replay_buffer.sample(batch_size) # 當(dāng)前智能體自己的數(shù)據(jù) obs torch.FloatTensor(obs_n[agent_id]) act torch.FloatTensor(act_n[agent_id]) rew torch.FloatTensor(rew_n[agent_id]).unsqueeze(-1) next_obs torch.FloatTensor(next_obs_n[agent_id]) done torch.FloatTensor(done_n[agent_id]).unsqueeze(-1) # 用目標(biāo) actor 生成所有智能體的下一個動作 next_act_n [] for j in range(len(actors)): next_act_j target_actors[j](torch.FloatTensor(next_obs_n[j])).detach() next_act_n.append(next_act_j) obs_all [torch.FloatTensor(o) for o in obs_n] act_all [torch.FloatTensor(a) for a in act_n] next_obs_all [torch.FloatTensor(o) for o in next_obs_n] # 更新 critic target_q target_critics[agent_id](next_obs_all, next_act_n).detach() y rew gamma * (1 - done) * target_q q_current critics[agent_id](obs_all, act_all) critic_loss ((q_current - y) ** 2).mean() optimizers_critic[agent_id].zero_grad() critic_loss.backward() optimizers_critic[agent_id].step() # 更新 actor # 用當(dāng)前 actor 替換掉自己原來的動作 act_all[agent_id] actors[agent_id](obs) q_actor critics[agent_id](obs_all, act_all) actor_loss -q_actor.mean() optimizers_actor[agent_id].zero_grad() actor_loss.backward() optimizers_actor[agent_id].step() return critic_loss.item(), actor_loss.item()邏輯說明更新 critic 時y里的 target Q 值完全用目標(biāo)網(wǎng)絡(luò)計算并 detach防止梯度穿回目標(biāo)網(wǎng)絡(luò)。更新 actor 時act_all[agent_id]被替換成當(dāng)前 actor 的輸出然后整體送給 critic 打分對actor_loss反向傳播時梯度會流經(jīng) critic 網(wǎng)絡(luò)再回到 actor這就是“critic 指導(dǎo) actor”的含義。其他智能體的動作在這次更新里保持采樣值不變這體現(xiàn)的是 MADDPG“站在別人真實動作上評估自己動作價值”的思想。參數(shù)說明gamma0.95適合步數(shù)較短、回合結(jié)束快的對抗博弈如果任務(wù)是長程圍捕可以提到 0.99。但不要在高 gamma 下配合稀疏獎勵直接訓(xùn)前期的 Q 值會因為遠(yuǎn)期回報方差過大而飄。我一般把 gamma 和回合長度掛鉤回合長度越長gamma 越接近 1。4.4 目標(biāo)網(wǎng)絡(luò)軟更新一條命令的事別省略目標(biāo)網(wǎng)絡(luò)更新有兩種寫法硬復(fù)制每 N 步直接賦值和軟更新每步滑動混合。多智能體對抗里我堅持用軟更新因為多個智能體的目標(biāo)網(wǎng)絡(luò)同時硬復(fù)制會造成目標(biāo)值跳躍式變化這種跳躍在多智能體相互耦合的情況下會被放大成集體振蕩def soft_update(target_net, net, tau): for target_param, param in zip(target_net.parameters(), net.parameters()): target_param.data.copy_( tau * param.data (1.0 - tau) * target_param.data ) # 每個智能體更新后調(diào)用一次 for agent_id in range(n_agents): soft_update(target_actors[agent_id], actors[agent_id], tau0.01) soft_update(target_critics[agent_id], critics[agent_id], tau0.01)參數(shù)說明tau0.01意味著每步只把主網(wǎng)絡(luò)參數(shù)向目標(biāo)網(wǎng)絡(luò)移動 1%目標(biāo)網(wǎng)絡(luò)的變化足夠平滑。實際項目中我常用另一個版本每 100 步把上面這段soft_update循環(huán)執(zhí)行一次每次 tau 取 0.05。這樣既控制了更新頻率又保持了平滑度比每步都軟更新省計算資源效果反而更穩(wěn)。訓(xùn)練結(jié)束時還有一個容易被忽略的細(xì)節(jié)actor 網(wǎng)絡(luò)保存時要把訓(xùn)練時疊加的噪聲去掉后再保存一輪“干凈版本”。如果直接保存正在帶噪聲探索的 actor評估時會發(fā)現(xiàn)策略表現(xiàn)明顯偏差因為噪聲已經(jīng)把動作污染了。保存前先eval()模式跑一遍推理再存權(quán)重文件。torch.save(actors[0].state_dict(), actor_0.pt) torch.save(actors[1].state_dict(), actor_1.pt) # 加載時同樣先建網(wǎng)絡(luò)再 load_state_dict加載模型時注意和保存時保持相同的網(wǎng)絡(luò)結(jié)構(gòu)隱藏層數(shù)、激活函數(shù)都對齊否則state_dict會直接報 key 不匹配。多智能體項目里每個智能體一套權(quán)重文件是最清晰的做法比混合在一個文件里省去不少定位時間。5. 訓(xùn)練避坑收斂慢、策略崩潰、Q 值爆炸的六個典型問題5.1 現(xiàn)象所有智能體 reward 一起歸零策略集體“擺爛”訓(xùn)練到中期曲線突然斷崖式下跌所有智能體的回合獎勵都在零附近無論調(diào)學(xué)習(xí)率還是 batch size 都拉不回來。原因是 reward 設(shè)計給對抗雙方設(shè)了絕對值相反的導(dǎo)向而某一方策略先崩了另一方跟著失去訓(xùn)練信號。比如追逐方的獎勵是“接近獵物 1”獵物是“被接近 -1”追逐方一旦找到“站住不動也能拿 0 分”的局部最優(yōu)獵物就再沒有逃跑壓力雙方策略同時固化。解決的做法是在 reward 里加一個“過程導(dǎo)向”的持續(xù)激勵而不是只給相對量。追逐方除了“接近”加分還要在持續(xù)追出距離時給額外獎勵讓“行動”而不是“不動作”成為收益來源。同時給雙方訓(xùn)練曲線分開記錄不要只看平均 reward——對抗場景下平均獎勵被兩個相反方向的曲線抵消看起來像歸零實際是雙方在對抗。5.2 現(xiàn)象Q 值起步正常幾千步后直接上千萬訓(xùn)練日志里 critic loss 從個位數(shù)跳到百萬級Q 值輸出數(shù)值爆炸。原因是 reward 量級跨度過大或者 target Q 的更新里用了沒 detach 的目標(biāo)網(wǎng)絡(luò)輸出。MADDPG 的 critic 輸入是所有智能體拼接向量維度高、數(shù)值量級差異大比如速度在 0.1 量級、距離在 10 量級未經(jīng)歸一化直接進(jìn)全連接層梯度會不穩(wěn)定。解決的順序先確認(rèn)更新代碼里next_act_n和target_q都加了.detach()再檢查 reward 量級是否控制在 0.1 到 5 之間最后給 critic 輸入做標(biāo)準(zhǔn)化。我常寫一個簡單的觀測歸一化層把 reward 和觀測都縮放到 [-1, 1] 區(qū)間Q 值爆炸基本會在前一萬步內(nèi)暴露并解決。5.3 現(xiàn)象訓(xùn)練曲線反復(fù)橫跳甚至出現(xiàn)間歇性瘋狂尖峰同一份代碼同一份超參數(shù)訓(xùn)練曲線每次跑出來長得很不一樣有幾條 run 的曲線會突然出現(xiàn)尖峰后回彈。原因是多智能體環(huán)境初始狀態(tài)是隨機(jī)的智能體出生位置分布差異大某些初始配置下回合特別長或獎勵特別高被存進(jìn)經(jīng)驗回放后干擾了價值估計。這在博弈對抗里是常態(tài)因為對抗雙方的初始位形直接決定了一整局的難度。解決的關(guān)鍵是固定初始分布的隨機(jī)種子并做“混合采 樣”。我在環(huán)境 reset 時固定隨機(jī)種子讓每局初始條件覆蓋到主要位形但不必完全確定。更有效的辦法是經(jīng)驗回放里按回合分段抽樣讓每局的經(jīng)驗被均勻抽到避免某一局極端經(jīng)驗獨占 batch。實現(xiàn)的代價不大但對曲線穩(wěn)定性的改善非常明顯。5.4 現(xiàn)象訓(xùn)練完成后策略變成“高頻抖動機(jī)”actor 輸出的動作序列在很小的時間尺度上劇烈跳動仿真里表現(xiàn)為智能體原地高頻抖動幾乎沒有有效位移。原因是追求平滑的策略梯度下actor 被訓(xùn)練得對輸入中的噪聲高度敏感而輸入觀測本身就有 1e-3 量級的數(shù)值噪聲。策略在噪聲方向放大了微小差異反映出動作的高頻分量。解決的思路是在 replay buffer 保存時對觀測做輕量低通濾波或者更直接的做法是訓(xùn)練時給 actor 輸出加動作平滑懲罰將相鄰兩步動作差值的平方加入 loss。我一般會同時做兩件事訓(xùn)練開始時把噪聲方差的衰減調(diào)慢一些讓探索噪聲在最早期保證動作充分多樣性訓(xùn)練后期則對動作加平滑項讓策略只保留低頻控制分量。5.5 現(xiàn)象target 網(wǎng)絡(luò)每步都在更新前期正常后期震蕩加劇目標(biāo)網(wǎng)絡(luò)跟隨主網(wǎng)絡(luò)太緊訓(xùn)練后期主網(wǎng)絡(luò)參數(shù)在局部區(qū)域輕微來回移動目標(biāo)網(wǎng)絡(luò)也跟著在每個時間步追最新值導(dǎo)致 target Q 持續(xù)小幅跳變critic 永遠(yuǎn)追不上會動的標(biāo)靶震蕩越到后期越明顯。原因是 tau 設(shè)成較大固定值加上目標(biāo)網(wǎng)絡(luò)更新頻率和主網(wǎng)絡(luò)訓(xùn)練頻率完全一致。在多智能體場景這種“跟得太緊”的問題尤其突出因為每個智能體的目標(biāo)網(wǎng)絡(luò)耦合了所有人的策略變化。解決的要點是把軟更新變成“低頻大幅”模式每 100 到 200 步做一次完整軟更新tau 取 0.05比每步 0.01 的版本更穩(wěn)。運行完第一萬步后如果震蕩仍明顯把同步間隔繼續(xù)加大到 300 步。這個操作不對實驗曲線造成顯著副作用卻能把后期策略崩潰的概率降一個量級。5.6 現(xiàn)象reward 曲線一路向上但實際對抗還是一碰就碎訓(xùn)練日志里 reward 穩(wěn)步上升你覺得快成功了拿訓(xùn)練好的 actor 去做實際對抗測試卻發(fā)現(xiàn)策略莽撞、經(jīng)常被簡單戰(zhàn)術(shù)克制。原因是 reward 曲線只能衡量“在當(dāng)前對手策略下的收益”不能衡量策略的真實強(qiáng)度。對抗訓(xùn)練中對手是自己所以 reward 上升可能只是雙方同時變笨后的“和平相處”而不是真的更強(qiáng)。repo 里訓(xùn)練日志展示的 reward 上升往往沒法和實際對抗能力畫等號。解決的唯一可靠手段是定期評估對抗勝率。訓(xùn)練過程每 N 局保存一組候選模型訓(xùn)練結(jié)束后把不同 checkpoints 兩兩對戰(zhàn)繪制固定種子的勝率熱力圖。只有勝率矩陣能告訴你哪個 checkpoint 真正更強(qiáng)而不是看誰 reward 曲線更高。這個習(xí)慣應(yīng)該從第一天就建立不要等技術(shù)方案全跑完了才去補(bǔ)評估腳本。6. 從“能跑”到“能打”自對弈、優(yōu)先經(jīng)驗回放與勝率評估多智能體博弈對抗訓(xùn)練里最難的不是讓 reward 上升而是讓策略“真的變強(qiáng)”。要驗證和固化成 果我常用的三招是自對弈蓄水、優(yōu)先經(jīng)驗回放、勝率矩陣選模型。自對弈的思路是維護(hù)一個“歷史策略池”每隔一段訓(xùn)練輪數(shù)就把當(dāng)前模型復(fù)制一份放進(jìn)去然后讓在線智能體和歷史版本隨機(jī)對戰(zhàn)。這樣做的目的很樸素如果只和“現(xiàn)在的自己”練雙方會同時進(jìn)化但可能一起走向某個局部最優(yōu)和歷史版本打相當(dāng)于逼策略去適應(yīng)更多變體而不是只記住當(dāng)前對手的弱點。在 MPE 這類輕環(huán)境里策略池每個階段就存一份池子容量 10 個左右每次對戰(zhàn)隨機(jī)抽一個對手效果比單純和當(dāng)前版本對練好很多。優(yōu)先經(jīng)驗回放是另一個收益明顯的改動。博弈對抗中大部分經(jīng)驗是平淡的雙方距離遠(yuǎn)、沒接觸、獎勵接近零這些樣本對網(wǎng)絡(luò)價值不大。反而是那些發(fā)生捕獲、發(fā)生劇烈機(jī)動、獎勵差異大的稀有經(jīng)驗攜帶了更多策略信息。給每條經(jīng)驗按 TD 誤差大小記一個優(yōu)先級采樣時按優(yōu)先級加權(quán)能讓網(wǎng)絡(luò)更頻繁地“復(fù)習(xí)”關(guān)鍵時刻。實現(xiàn)時注意兩點優(yōu)先級指數(shù) alpha 取 0.6 左右不要設(shè)過高否則采樣分布太偏剛存進(jìn)去的經(jīng)驗給一個中等偏上的初始優(yōu)先級避免完全不被采到。勝率評估是最終裁決手段。訓(xùn)練過程中每幾個訓(xùn)練輪次固定保存一組 actor全部訓(xùn)練結(jié)束后把所有 checkpoint 兩兩對陣用相同隨機(jī)種子跑足夠多局統(tǒng)計勝率。為什么必須這樣因為對抗訓(xùn)練里 reward 的絕對數(shù)值沒有意義只有相對某個固定對手的勝率才反映真實強(qiáng)度。我看過太多 reward 曲線很好看、實際對戰(zhàn)一碰就碎的項目都是因為跳過了這一步。評估用的對手必須是“凍結(jié)策略”不能在評估時打開探索噪聲否則勝率數(shù)據(jù)會混入噪聲變量無法反映策略本身水平。這三步做完一個 MADDPG 博弈對抗項目才算真正閉環(huán)自對弈保證訓(xùn)練動力優(yōu)先回放提高樣本效率勝率矩陣給出可信的模型選擇依據(jù)。做項目時我養(yǎng)成的習(xí)慣是評估腳本和訓(xùn)練腳本同步開發(fā)第一次啟動訓(xùn)練前評估代碼就已經(jīng)能跑通了而不是訓(xùn)練跑了幾天之后才補(bǔ)評估。這個習(xí)慣省下過無數(shù)次返工希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲精品国产av天美传媒| 99热啪啪| 色婷婷丁香五月天| 国产精品夜夜夜| 午夜啪| 偷窥自拍A片| 国产高清1234区| 好色美女九七第一页| AV污污污污| 欧美久久婷| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 伦理片秋霞免费影院| 日韩啪啪啪视频| 久久区| 亚洲成?V人片在线观看福利| 超碰伊人在线| 欧美一区二区三区蜜桃| 欧美天天影院| 天堂蜜桃无码视频一区二区| 新亚洲无码| 天天爽人人综合免费7799| 91性高| 日韩一级欧美一级国产一级台湾| 亚洲中文字幕精品久久久久久直播 | 国产老熟女| 91熟女丨91老女人| www.久久| 日韩在线观看三级电影| 夜色五月天| 日韩综合97p| 啊啊啊操一区| 亚洲码在线中文在线观看| 天堂九九九九九九九九九| 在线中文字幕视频| 欧美一二在线| 911粉嫩人妻| 91日韩网站| 日韩AC| 日日碰视频网| 久热久| 久久99九九九九6666免费观看软件| 中国国国产一级特黄毛片| 欧美淫乱视频| www.狠狠| 100啪啪视频大全| 无卡一区=区| 一区二区三区欧美激情| 久久久久久久久一区二区三区| 久久一区无码| 一区二区三区亚洲| 久久婷婷一区| sss视频华人在线| 热无码中文亚洲H一道本一区二区| 丰满少妇人妻久久久久久| 日韩免费a级毛片无码a∨| 精品国产一区二区三区久久久蜜臀 | 婷婷99| 午夜舔阴达高潮视频免费看| 亚洲欧洲第二视频在线观看色图| 日本色色色视频| 欧美美女视频| 粉嫩AV输入| AA特级绝黄| 亚洲狠狠入| 丰满翘臀美女影院视频| 综合网欧美在线| 蜜乳中文字幕a在线| 日韩99神马视频播放| 国产精品久久成人免费| 欧美高清无码免费视频高清版| 欧美日韩人人早| 天天草天天干天天日| 成人性交午夜免费片| 一区二区亚州激情久婷婷欧美| 久久黄色视频一区二区三区| 四虎影视 亚洲无码| 99精品成人免费看| 欧亚综合一卡二卡中文字幕| 女人 A一级| 久久久久女教师免费一区| 久久的网站啊啊啊啊啊| 中文字幕中文字幕一区二区| 欧美大香蕉久| 欧美性爱97超碰| 豆1无夜无码| 亚洲天堂,男人| AA级电影三区| 伦理第一页| 呦女网站| 国产亚洲欧洲在线观看| 青青草日韩无码| 特级毛片特黄久久免费看| 国产99999| 91AV天美在线视频| 狠狠干狠狠色| 欧美熟妇乱码在线一区| 国产精品午夜高潮呻吟久久av| 日韩一级性爱无码| 国产精品视屏| 啊啊啊水好多| 可乐操在线| 色在线69堂| 天天综合欧美综合| 91女在线观看| 精品妇女一区二区三区| 五月婷婷综合网| 国产精品一区二区a| 艹我哪美一区无码| 日本欧美一区二区三区免费| WWW.操逼.COM| 国产无码精品无码| 97在线精品观看视频| 天天躁日日躁狠狠躁| 久久久999国产精品| 日韩中文字幕宗合在线| 97在线资源| 无码久| 96AV久久久| 久久国产对白激情浪潮| 麻豆人妻少妇在线免费观看| 欧美在线第五页| 国产精品69久久久久久久| 素人无码中文字幕| 久久99草| 亚洲欧美综合网| 96精品一区| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 色婷婷五月综合激情中文字幕| 影音先锋乱伦资源| 日韩精品亚洲专区在线影视| 亚洲中文字幕av| 免费A V在线播放| 国产强奸超碰AV| 一起草精品人妻| 大香蕉免费乱伦视频| 国产成人网站在线观看| 天天干天天拍| 色老汉色| 欧美专区17页| 91黄站| 天天综合网网欲色| 国产69精品久久久久99尤物| 国产成人自拍视频在线| 久久精品国产精品亚洲艾通辽熟妇| 日韩三级一区| 中文字幕乱碼在线| 老鸭窝在线视频播放| 超碰97色| 2019久久久久久久久福利| 一区操逼日比视频| 男人的天堂啪啪| 午夜呻吟欧美| 亚洲资源网| 白嫩91在线亚洲| 风月影院十八禁| 精品亚洲成人免费在线| 欧美高清18A片| 三级网色| 中文伊人大香蕉视频| 天天干天天日天天射黄色片| AV天堂因数| 亚洲国产美女久久久久| 性爱av网站| 五月丁香六月激情| 你操综合| 大干人妻| 色黄污美女啪啪啪免费网站| 97精品综合久久| 精品十三区| 综合五月天| 亚洲欧洲自拍图片专区满春格 | 91亚洲影院综合| 精品无码产区一区二| 精品久久久久久久| 性开放中文AV高清无码免费看| 中文字幕一区 二区三四五 区日 日骚| 色女综合| 99re这里只有精品2| 人人艹亚洲| 91美女丝袜诱惑视频| 嗯嗯啊啊好疼| 国产亚洲精品久久久久小| 99视频精品| 99RE在线视频精品,这里只有精品| 粉嫩av一区二区三区天美传媒| 9久在线视频只有精品| 日韩人成网站在线播放| a人欧美综合天堂麻豆| 97操97干| 日韩AV无码中文一区二区| 夜夜高潮夜夜爽| 欧美激情在线观看视频| 一区二区三区精品视频| 国产和美国毛片| 少妇久久久| 中文字幕一区日韩精| 免费超碰97久久| 精品国模无码| 国产免费一区二区三区最新不卡| 大香蕉中文在线| 思思热国产在线视频| 很黄很污的免费网站| 91无遮挡| 欧美亚洲综合色| 超碰欧美在线欧美| 日韩精品免费高清视频在线| 操香逼| 久久午夜色播影院免费高清| 日本精品一区三区| 精品一区二区三区蜜桃| 女人爽到高潮潮喷18禁网站| 青青青在线高清视频在线一二三四区| 黄色高清无码无码破解免费暗网| 成人情色综合网| 1769一区二区| 熟女少妇一区二区三区| 另类图片五月天| 日本Xx性爱| 亚洲欧美另类激情小说| 亚洲色图欧美| 大香网站| 亚洲欧美91√| 国语对白在线播放视频| 久久精品成人| 久久精品小视频| 天天欲望网| 五月丁香在线| 亚洲第一免费视频| 懂色av中文字幕一区二区三区天美 | 国产三级资源在线观看| 少妇精品久久久| 欧美成人性爱视频免费观看| 超碰天天去日穴| 婷婷99| 97天堂| 青青草久久一区网| 国产成年免费大片黄在线观看| juliaann丝袜大战黑鬼| 久久高清欧美国产| 亚州性色| 97色色色综合网站| 久久亚洲AV无码专区国产精品| 伊人久久亚洲色欲综合网站 | 婷婷久热| 欧美18老人禁| 国际精品久久久| 99精品久久久久久久婷婷蜜桃| 97久久久久| 久久精品国产精品亚洲艾通辽熟妇 | 97er欧美性| 欧美网站免费| 精品欧美乱码久| 毛片视频白嫩| 麻豆这里只有精品| 国产又色又粗又黄又爽| 天天综合欧美黑人| 国产久久一区二区三区野外在线| 十八禁成人网站在线观看| 97久久国产精品女不卡| 天美欧美国产| 五月婷色| 精品一区二区综合熟妇| 日韩精品午夜操呦呦不卡影院| 国产刺激视频| 精品成人无码| 高清视频一区| 伊人在线大香蕉视频久久| 色婷婷综合网| AAAAAAAAA黄片| 日本一区二区三区四区五区六区七区八区九区| 久草资源在线视频官方总站日韩丝袜美腿 | 中文 人妻 制服| 青青草吊丝| 日韩成人精品视频自拍| 亚洲精品国产日韩无码AV永久免 | 夜夜爽爽爽| 中文人妻av高清一区| 亚洲激情久久久伊人综合| 亚洲色图a| 狠狠干狠狠色| 亚洲成熟国产精品美女| 婷婷丁香九月| 精品蜜乳AV免费观看| 竹菊一区二区三区AV线| 中文字幕在线第二页| 有码人妻系列| 99超碰色| 五月天婷婷基地| 欧美东京热精品A∨| 欧洲亚洲国产综合在线| 欧美18 在线观看| 亚洲欧洲综合| 蜜臀久久久99久久久久| 狠狠入| 天天草AV| 天天日美女的B| 香一区二区三区| 强奸xx国产| 操我无码| 丰满人妻av一区二区三区| 欧美aaaaaaa| 2018天天日天天日| 日韩免费a级毛片无码a∨| 大香蕉草草| 中文字幕在线第二页| 超碰综合色| 天天夜夜久久| 97精品视频网站| 国产精品网站免费| 99色日| 国产25页| 桃色人妻在线视频| 日韩无码久久熟女一级片| 91成人国产综合久久精品蜜月| www老逼91| 天天综合网国产| 蜜臀久久99精品久久久老,,| 天天操天天射青青草| 97午夜剧场日韩| 狠狠操狠狠| 亚洲成人免费在线| 嗯嗯嗯啊啊啊在线免费观看| 亚洲熟女乱色| 97色涩| 亚洲成人色情五月天丁香花| 久久久久无码一妻区| 白丝在线一区| 日韩AV噜噜噜一区二区三区四区| 少妇天堂| 日本性感人妻91| 日韩黄片影院| 成人一级性爱| 人人射人人操人人摸| 影音先锋中文字幕日本好一区二区| 免费啪啪一级视频| 大香蕉亚洲中文| 亚州成人a∨| 啊啊啊啊啊啊啊好爽不要| 天天夜夜久久| 蜜区区视频79| 肏逼视频日本| 国产日韩欧美亚洲精品95| 午夜寂寞欧美| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 中文字幕人妻色偷偷久久皮 | 91精品无码久久久久久久| 综合影院永久入口国产| 国产精品视频一区二区三区八戒| 4399成人黄A片| 又黑又大又粗| 男人的天堂2000| 久9久9久9久9久9久9| 天天色欧美| 成人自拍三级在线观看| 久久曰曰| 牛牛久久国产精品视频一二三| 欧美色图在线视频少妇| 超碰97色| 一级免费啪啪片| 毛片17S| 丰满人妻一区二区中文| 啊啊啊免费视频| 成人精品电影| 性爱精品一区| 国产精品suv一区| 老熟乱一区二区三区四区| 秋霞色色影院| 六月丁香五月婷婷| 蜜臀色乳| 1000部熟女视频在线观看| 午夜精品五区| 亚洲情色一区综合| 九九九九精| 日韩欧美亚洲一区二区三区影院 | 国产v片在线免费观看| 国产超碰人人爽人人做| 国产精品网站免费| 蜜臀视频网站| 日韩免费性爱视频在线观看| 男人的天堂在线| 久草午夜| 国产女人成人精品视频| 性交一区二区在线播放| 波多野结衣之双飞调教在线播放 | 欧洲特黄毛片免费看欧洲毛片| 亚洲精品尤物yw在线影院| 五月色综合| 日韩无码服务区| 国产精品麻豆视频网站| 四虎884a| 人人 操人人 操人人| 欧美久久九九| 久久久偷拍| 少妇高潮对白在线观看| 亚洲天堂资源| 欧美经典一区二区三区| 久久精品视频久久久| 入口操逼网站| 亚洲一区二区麻豆影院| 2017,超碰| 最新三级网址| 60秒免费视频| 一级A片女人高潮叫床| 亚州日韩97| 免费少妇一区二区| 诱惑人妻欧美一区在线播放| 26uuu性| 午夜福利区| 人人操我人人干| 亚洲色图加勒比| 另类欧美色| 久操综合在线| 99无码狠狠久久| 色综合中文字幕不卡| 九九九精品| 澳门人妻久久| 啪啪啪东京| 熟妇精品juliaannAV| 国产又黄又爽又刺激久久久久久| 人人妻人人色| 中国东北熟女老太婆内谢| 久久 久久国内精品亚洲| 99色热国产视频精品| 亚洲综合大片| 美女尤物福利视频| 69国产对白刺激| 日本 免费 一区二区三区 久久香蕉 | 色好看av| 超碰人妻中文在线| 精品无码少妇| 国产精品天美传媒| 日韩黄片影院| 999熟女精品| 秋霞视频一区二区 | 国产野战露脸在线播放| 老鸭窝在线视频播放| 熟妇熟女视频一区二区三区| 亚洲黄片免费在线播放| av东京热男人的天堂| 久99久视频| 青娱乐休闲视频在线观看| 神马久久中文字幕| 亚洲第一无码播放立川理惠| 人妻丝袜一区二区三区在线| 综合干干干av久久久综合网| 中文字幕成人理论在线| 丝袜足交视频| 裸体1区| 91白嫩| 日日操免费视频| 亚洲最大的黄色电影网站。| 国产无吗在线播放| www99热| 日本成人免费一区二区三区| 亚洲av国产av综合av卡| 98色网| 无码 黑人一区二区三区| 老熟女乱伦一区| 大奶啊啊好爽 | 超碰4A| 天美av在线| 欧美另类综合久久| 夜夜欢天天干| 欧美伦乱爱| 91爱看| 五月丁香六月婷综合成人综合| 91精品久久久| 男人天堂导航| 99xav| 丁香六月婷婷久久综合| 欧美一区二区三区入口| 91精品国产91熟女| 日韩不卡网操逼中文字幕日韩| 免费夜夜爱黄色视频毛片| 无码人妻精品一区二区中文| 夜夜躁狠狠躁日日躁av| 久久久久久久综合,国产| 综合网~91综合网| 志村玲子视频一区二区| 亚洲国产日韩欧美熟妇在线| 91快色色色色色| 亚洲国产成人精品999| 日韩欧美女求操每天更新| 欧美在线综合| 96久久久精品| 久久大香蕉手机高清| 日本午夜久久电影| 国产乱码精品一区二区三区四川| Av手机版天堂网| 水多多映视AV| 色网色网色网色网色网色| 一区二区三区一亚洲中文字幕、综合区灬 | 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 天堂网亚洲区手机版| 欧美人妻色| 亚洲中文字幕乱码无码一区二区| 伊色综合天堂色97| 97精彩视频网站| 色婷婷电影| 性色av婷婷久久一区二区点复制| 美女国产一区二区久久 | 国产视频小说| 91精品人妻啪啪间| 噜噜噜亚洲精品| 99色骚| 欧美 牲| 久久人妇| 久久这里只精品| 无码免费精品高清| 日本视频一区二区三区| 欧美精品23| 丁香六月婷婷久久综合| 色偷偷色偷偷欧美日韩| 久久国产性爱| 伊人96在线| 丁香五月成人| 超碰97爽| 成人天天看站长推荐| av麻豆啪啪| 亚洲国内精品成人不卡| 天天操天天7| 97超碰国产亚洲精品| 天天综合91入口| 国产欧美另类久久久精品课程| 美欧色综合| 国产久久久久久| 日日躁天天躁狠狠躁| 黑人在线91| 懂色Av| 欧美A片中文字幕| 岛国视频一二三区| 日韩精品一区二区三区色欲| 成年女人一区| 97一区二区三区视频| 午夜精品人妻二区三区| 91性感在线| 欧美日韩大香蕉| 人妻一二三区| 超碰在线成人| 长长久久88视频| 97超级久久| www.一本大99| 很狠操| 国产精品美女| 亚洲精品一二区| 国产综合网站在线播放 | 色男人色天堂东京热| 亚洲日韩资源| AⅤ片水多多| 欧美午夜色妇色鬼| 日韩毛片9| 天天综合97| 欧美日韩亚洲一区二区在线观看| 2024人人操人人摸| 怡红院怡春院| 综合亚洲欧美| 18禁精品网站在线看| 亚洲高清无码免费观看视频| 蜜伊人色综合97| 麻豆天天躁天天揉揉AV| 国产又黄又粗的视频| 欧美综合网1| 欧美精品1区2区3区| 欧美黑人与女人91~| α√在线| 91精品人| 免费一级视频特黄色大片| 女优免费一区二区永久| 东北老女人的激情视频| 国产精品久久久久婷婷二区次| 日韩av不卡在线看| 97精品一二区| 亚洲区 欧美区| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 日本三级A片网站com| 婷婷五月天激情小说| 精品综合久久久久久97| 国产免费永久精品无码| 97伪v| av激情亚洲五月天| 色99视频| 天天综合网亚洲综合网| 岛国网址国产 | 亚洲砖码砖专无区2023| 91天美传媒在线| 激情小说图片亚洲首页| 久久大香蕉手机高清| 美女好片色日本| 欧美成人一区二区三区在线播放| 亚洲色图欧美色图制服诱惑| ,成人免费啪啪视频| 亚洲AO在线| 国产操逼网站亚洲一级黄色| 人妻中文在线| 天天操妹子| 婷婷91| 激情内射| 激情丁香婷婷| 外国免费性情大片| 91九色精品熟女内射| 欧美日韩另类在线播放| HEYZO高无码国产精品227| 亚洲AV不卡在线观看尤物| 亚洲操人| 九九热免费国产视频婷婷伊人五月| juliaann精品熟女一区| 欧美亚洲国产91在线| 插入粉嫩少妇视频| 做爱A级亚欧| 99久久这里只有精品| 欧美天天在线| 欧美色图亚洲色| 日本成人A片免费看| 日韩 欧美 校园一区| 日本人妻丰满熟妇久久久久久| 蜜桃久久久久久久| 午夜人人操| 国产精品第二页| 亚洲黄色网址视频| 超碰99在线| 用力操死我| 国产毛片久久久久久久| WWW美腿丝袜香蕉中文| 狠狠色色| 亚洲国产成人精品久久久国产成人一区二区| 久久久久久久久久久久久久9999| 成人无码在线视频网站| 偷拍片久久| 婷婷丁香六月| 日韩极品无码B| 射丝袜高跟鞋99| 国产一区二区精品久久久不卡蜜臀| 高潮毛片无遮挡高清免费| 国产天天骚| 欧美一级欧美三级在线观看| 嗯嗯啊啊啊好爽| 91neishe| 精品人妻中文字幕4399| aaaa黄片| 熟女网站最新| 久久熟女人| 久久久久无码| 人人人人插| 青青草在线视频播放器| 五月丁香啪啪啪| 豆花视频操逼网址| 伊人嫩草| 99热精品青草在线 | www成人啪啪18秘 免费| 蜜臀久久99精品久久久久久婷婷| 欧美亚洲美少妇一区二区| 国产精品久久久久av| 人人操人人肉久久精品| WWW.加勒比人妻一区不卡.com| 这里都是精品在线观看| 少妇久久久久久| 超碰 国产熟女精品一区| 一牛影视久久久一区二区三区| 国产高清在线观看欧美| 狠狠91| 校园春色家庭伦理欧美激情| 在线天堂999| 色9999日韩国产| 天天色,天天干,天天干| 五月亭亭六月丁香| 91美女视频。| 天天综合麻豆视频| 色 婷97| 精品一区99999| 综合久久六月久久婷婷| 四虎国产精品永久在线囯在线| 亚洲色图激情小说| www.av不卡中文字幕| 人人爱夜夜爱| 亚洲精品一区二区三区新线路| 亚洲少妇综合在线播放| 少妇同性| 欧美一级做a爰片免费视频| 成人av福利在线观看| 成人三级片一区二区三区视频| 伊人网综合在线视频| 日韩欧美偷拍美女视频| 亚洲中文字幕乱码无码一区二区| 91狠狠色丁香婷婷综合久久精品| 九九九久千久久激情蜜桃在线看 | 青青操在线亚洲视频观看欧美在线 | 亚洲 欧美 手机在线观看| 99久久精品国产高潮| 看黑丝美女操逼青青网站| 欧美日韩日产免费网站看| 99久久精品欧美国产| 亚洲综合另类欧美久久久| 中文字幕第23区| 九九九九精品九九九九| 60秒免费小视频| 久久婷婷国产一区二区色| 超碰人妻天天干| 大屁股人妻女教师撅着屁股| 天美91| 亚洲成熟国产精品美女| 黑人无码一区二区| 国产AV精久久| 女人喷水视频在线观看| 国产精品网址| 国产精品免费视频人成| 亚洲在钱| 欧美性爱五月天| 亚洲永久AV无码精品秋霞| 九九热五区| 大香蕉宅男伊人| 老汉网| 一级黄碟在线看| 美女让帅哥通她小鸡鸡| WWW美腿丝袜香蕉中文| 国产精品高朝久久久久久久| 人妻大香蕉| 国产精品伦理| 搡老女人老熟女91| 国产一区二区成人av在线播放| 成人免费视瓶| 日韩强奸av| av在线播放国产一区| 色欲蜜臀AV| 亚洲av强奸乱伦| 97超碰jingpin| 熟女中出视频| 色老久久| 福利操逼| 精品人妻一区二区三区蜜桃视频| 四虎av在线| 韩国一级做a久久久久| 一二三四视频中文字幕在线看| 手机午夜电影神马久久| 伊人网综合在线视频| 色婷网| 一区二区三区网站日日骚| 美女的肌被草喷水视频| 欧美黑人91| 91老熟妇| 99精品久久久久久久婷婷| 东京热亚洲一区二区| 禁十八久久| 天天综合91入口| 中文字幕精品码亚洲| 日韩色女精品| 亚洲成人贴图| 操婷婷逼| 久久久久久久久久精| 大肥女高潮bbwbbwhd视频| 亚洲精品aa久久伊人| 亚洲欧美另类少妇精品| 欧美的精品的视频| 人妻 丝袜美腿 中文字幕| 麻豆亚洲Av成人无码一区精品| 国产精品乱码久久久久久| 日本操逼视频在线| 五月激情综合网| 久湿久久 | 亚欧无码线免费观看视频| 亚洲人妻一区二区三区| 精品无码久久久久久久久果冻糖心| 插穴性爱视频在线观看| 天天综合香 ld视频| 性做久久久久久久| 神马久久午夜| 久久精品一区二区三区蜜桃臀| 久久国产在线一区二区| 亚洲人人操| 好色美女九七第一页| 91午夜无码| 吉川爱美98堂在线| 欧美AB在线| 五月婷婷六月丁香| 丰满欧美放荡少妇在线| 少妇人妻好深太紧了vr91| 美腿色图| 91在线视频国产网站| 国产丝袜视频| 久久东京热久久| 日日操天天操| 亚洲中文字幕熟女少妇一区二区| 黄片www.| 丰满熟女人妻一区二区三五十一路| 亚洲va有码在线天堂| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 日韩av乱伦| 自拍亚洲综合| 人人插人人摸人人| 青青草狠狠撸| 另类一区| 97久操| 97在线精品| 亚洲中文字幕熟女少妇一区二区| 色噜噜狠狠色综无码久久合欧美| 熟妇色99| 欧美中文字幕男人天堂久久精品 | 亚洲男人天堂视频| 久久性爱城| 在线视频资源| 69精品少妇一区二区三区蜜桃| 麻豆天美一区二区| 女人妻一区| 99视频这有这里有精品| 加勒比海成人视频网 | 视频一区二区三区精品| 欧美综合在线91| 伊人网综合在线视频| 天天天做天天天爱天天天爽| 日本日逼视频网| 综合久久9| 97大色网| 天天色播亚洲综合网站| 欧色网址| 动漫片子网站3黄| 日本性爰一道本| 色欧美色交综合| 亚洲无限观看| 亚洲毛片基地专区| 青青草国产亚洲精品久久| 在线色导航| 91操熟女视频| 啊啊啊啊啊啊啊国| 精品久久无码午夜福利| 豆1无夜无码| 操操碰| 黄色免费网| 亚洲熟妇综合久久久久久| 久久久婷婷| 久久久久免费少妇| 久久av无码| nuu12国产麻豆精品| 你操综合| 日韩午夜精品一区二区三区电影| 日韩猛交| 亚洲91大片| 混色激情av| 欧亚乱色熟女一区二区| 校园春色五月天| 96国产污污污丝袜| 国产玖玖| 郑州宾馆老熟女露脸啪啪| 一本久道久久综合狠狠爱一密臀精| 亚欧中文字幕在线视频| 在线播放成人网站| 亚洲综合另类小说色区亚洲成av人片在www | 亚欧精品久久久久久久久久久| 色欲三区| 久久青青草在线视频| 亚洲日产专区婷婷| 国色天香av| 午夜欧美女人操逼| 秋霞一级鲁丝片A片| 中文字幕福利视频一区二区三区在线观看| 亚洲欧美另类少妇精品| 精品人妻伦一二三区久久| 国产女人高潮嗷嗷嗷叫小说| 骚女天天综合网| 久欲AV| 操学生天天| 大香蕉色十月| 国产精品99久久久www| 51久久夜色精品国产麻豆| 亚洲色电影在线| 亚洲在钱| 亚洲色入欧美| 蜜桃在线观看一区二区三区| 九九热精品| 亚洲精品国产精品乱码不99| 国产99精品一区二区三区免费| 欧美在线91| 青青五月天| 夜夜高潮夜夜爽国产伦精品| 欧美 亚洲 综合 制服 另类| 青草香蕉网| 97欧美精品综合| 久久99九九九九6666免费观看软件| 丁香婷婷激情五月天无毒不卡| 天天摸天天插天天日| 99操碰| 久久香蕉国产线看观看猫咪av| 亚洲三区视频| 一区二区三区亚洲| 国产精品午夜福利亚洲综合网| 日本一级真人黄色性爱视频| 欧美加勒比| 欧美天堂在线| 91久| 狠日欧美| 97在线观看免费视频| 天美传媒婬乱在| 亚洲一区二区AV| 鸥美中出| 国产老女人久久毛| 97超碰久久| 国产精品白丝| 久久婷婷电影网| 日本东京热久久久电影| 欧美18老人禁| 日韩免费簧片| 人人操人人操人人人操| 成人日韩3| 中文字幕中文字幕一区二区| 伊人五月天激情| 蜜臀AV网站| 国产激情综合五月久久| 五月天婷婷色| 小草精彩毛片| 中文字幕88av在线| 欧美亚洲宗合色性图| 碰人碰碰人人开房人肉| 五月天精品| 欧美高清色| 人人模人人看| 三级激情网站| 国产小视频91| 婷婷五月天成人| 炮色五月| 日日夜夜噜| 激情内射| 亚洲天天在线| 久久亚州精品成人Av无| 特级毛片特黄久久免费看| 日本黄 R色 成 人网站| 无码免费一区二区三区啪啪| 欧美色997| 夜夜免费视频| 99re98| 国产操伦| 色色婷| 开心六月色| 激情久久日韩精品中文字幕麻豆| 97超级久久| 熟女乱3伦999| 免费操逼视频下载| 骚货人妻偷情自拍在线视频| 国产熟妇一区二区| 欧美综合综合| 无码人妻一区二区三区色欲aⅴ| 色色香蕉| 91爱综合| 热久久无毒不卡| 欧美亚洲综合高清在线| 国产女同视频在线播放| 99热国产| 熟女AV一区| 精…码一二三区| 草草网站影院白丝内射| 67914亚洲精品| 亚洲综合校园春色| 欧美懂色综合网| 日本三级网页| 人妻精品综合中文字幕在线| 91青青在线视频| 91福利网在线观看| 国产欧美一区激情交| 97免费视频网| 天天日天天看| 久久精品中文字幕无码l| 国产黄a三级三级三级av在线看| 啊啊啊啊啊啊啊啊啊在线观看| 操碰97| 婷婷五月激情综合| 久久熟女久| 蜜乳中文字幕a在线| 俺去也婷婷| 九七毛片九九毛片| 天天干天天舔| 欧美色棕合| 99少妇| 另类一区| 国产精品一区二区后入| 久久性爱视频99| 国产欧美日韩在线观看麻豆传媒公司| 日本黄页视频在线观看| 高清无码久操视频| 超踫中文字幕| 日韩本不卡视频在线观看| 国产女人极品高潮毛片| 91九九九逼| 亚洲无992tv| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 啪啪啪亚欧美视频| 亚洲成av人片色午夜乱码| 国产精品一区二区后入| 免费的黄片有限公司| 日产国产精品中文久久婷婷| 97在线视频网站| 五月婷婷啪啪| 中文字幕av片| 国产精品自拍欧美在线| 精品美女久久一二三| 中文字幕精品一区二| 伊人青青一区成人视频在线观看区 | 99热精品青草在线| 97啪啪| 亚洲另类久操网| 极品国产内射| 亚洲熟女国产综合另类| 白嫩少妇| 日韩精品人妻中文字幕有码午| 中文字幕一区二区视频在线观看| 国产91美女高潮| 久久久久久九九九九| AV中文在线可看| 久久精品性| 97日亚洲欧美| 蜜臀AV成人精品蜜臀AV久久| 国产在线综合福利网站| 2019午夜福利视频| 欧美日韩99精品麻豆传媒| 中文字幕丰满人妻日本| oumeisetu综合| 精品国产Av无码久久久亚洲| 手机在线中文字幕国产| 97五月天| 亚洲天堂精品日韩电影| 一区,二区,三区网站| 秋霞操逼片| 啊啊啊啊啊啊啊啊啊啊在线观看| 色欲无码人妻日韩欧美精品| 91AV天美在线视频| 日本三级R| 国产精品久久泡妞网站| 色哟哟的毛片| 少妇熟女1区2区3区| 人人澡人人弄| 亚欧高清在线| 好吊色青靑草| 啊啊好多水| 成人免费在线网站| 色色九区| 青青草伊人久久| 国产成人bd在线观看| 强乱老妇中文字幕| 91狠狠综合久久久久久| 久久综合国产精品国产| 欧美在线|亚洲| 人人乐大香蕉| 强奸乱伦亚洲第一页| 欧美少妇高潮视频| 中文字幕一二三区| 国产久久av| 天天日夜干| 夜夜福利| 丁香五月影院| gogogo免费高清看中国国语| 中文日韩欧美熟| 蜜桃视频精品一区二区| 一区二区三区亚洲| 国产精品禁久久久精品| 国内精品不卡无毒99999| 精品人妻av在线播放| 精品久久久久综合无码| 国产精品午夜成人福利| 日韩人妻一区二区精品| V A在线| 无码 黑人一区二区三区| 伊人久久亚洲色欲综合网站| 偷拍 亚洲| 日本高清有码网址视频| 老熟妇乱轮| 国产超碰欧美| 狠插 制服 自拍| 99热日本| 久久一区二区高清免费| 天天肏天天干| 日本性一区| 熟女色图在线| 亚洲人妻av| 亚洲无吗在线视频| 男女性无套 免费九一| 亚洲AV永久无码精品成人调教| 狠狠搞 亚洲91| 天天干一干| 天天天天天天天天天天干美女| 日本人妻最新在线中| 97中文字幕一区| 色娱乐色呦呦夜夜夜夜av| 欧美 亚洲 制服 精品| 国产又粗又长又爽又色| 日韩欧美午夜一区二区| 韩国三级色呦呦| 亚洲狠狠入| 插入粉嫩少妇视频| 国产精品色哟哟| 天天操女人| 久久女人一区二区三区| 国产福利影视| 双插性欧美一二三区| 久9re热视频这里只有精品| 国产午夜精品一区二区三区牛牛| 天美传媒av一区二区| 天天享受天天看| 亚洲另类久操网| 国产精品一二三区福利| 97啪啪| 日本在线激情一区二区三区| 国产操偷| 黑人操一区二区| 天天摸夜夜添无码小视频| 日本中文字幕不卡视频| 神马久久午夜| 久久系列| 超碰97综合| 欧美精品黑人猛交高潮| 国产97色在线 | 亚洲| 夜夜嗨一区二区三区三州加勒比 | 亚洲无码?第一页| 美女露胸露尿口| 亚洲熟女精品| 亚洲日韩在线a不卡99精品| 日本不卡五区| 好爽视频在线观看视频| 抽插亚洲无码| 欧美 亚洲精品首页| 72av视频| 97视频播放| 青草一区二区| 久久东京热久久| 不卡日本一区二区| 91天天看| 亚洲AV无码秘 蜜桃臀国精产品| 日韩中文字墓| 日本乱人伦片中文三区| 涩综合导航| 国产精品对白内射| 黄色二级片网站| 成人天天看站长推荐| 色九九九九| 久久视频,这里只有精品 | 青青操在线亚洲视频观看欧美在线 | 美女91网址| 蜜臀网 一区| 人妻少妇久久中文字幕一区二区 麻豆 | 青青草中文字幕| 超碰在线人妻中文字幕| 日韩在线一区二区| 日韩,欧美,中文在线| 色情五月丁香| 97九色人妻| 91国产大片| 97jingpin| 国产精品欧美在线观看| 中文操逼字幕| 亚洲成人免费中文字幕| 91干熟女| 久久亚洲骚逼综合| 色超碰综合| 国产在线激情| 青青操网| www.av在线观看| 欧美黑人猛交春色影视大全| 啊啊啊啊二区好大| 一区超碰一区| 韩国一级做a久久久久| 一区二区三区黄色片a| 婷婷五月天影院| 国产精品乱码久久久久久久久久久久| 欧美中字不卡| 精品久|