亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

聯(lián)邦學(xué)習(xí)與NSL-KDD網(wǎng)絡(luò)入侵檢測:Python實現(xiàn)FedAvg與避坑指南

聯(lián)邦學(xué)習(xí)與NSL-KDD網(wǎng)絡(luò)入侵檢測:Python實現(xiàn)FedAvg與避坑指南 簡介一套基于聯(lián)邦學(xué)習(xí)與NSL-KDD數(shù)據(jù)集的網(wǎng)絡(luò)入侵檢測Python項目源碼及運行指南屬于經(jīng)導(dǎo)師指導(dǎo)并認(rèn)可的高分項目評審98分適合計算機相關(guān)專業(yè)學(xué)生用于課程設(shè)計、期末大作業(yè)以及想要進(jìn)行項目實戰(zhàn)的機器學(xué)習(xí)/網(wǎng)絡(luò)安全學(xué)習(xí)者。資源共63個文件壓縮包大小約26.19MB包含12個Python源代碼、26個Pyc編譯文件、10個Txt說明文檔、模型權(quán)重、CSV數(shù)據(jù)、結(jié)果對比PNG以及帶GUI界面的數(shù)據(jù)集等覆蓋數(shù)據(jù)預(yù)處理、模型構(gòu)建、聯(lián)邦訓(xùn)練與測試等模塊。已有88人學(xué)習(xí)下載。項目將聯(lián)邦學(xué)習(xí)與NSL-KDD數(shù)據(jù)集結(jié)合既演示了如何在隱私保護(hù)前提下進(jìn)行分布式訓(xùn)練也提供了帶圖形界面的數(shù)據(jù)操作方式借助附帶的運行說明、模型文件和對比圖學(xué)習(xí)者可以快速復(fù)現(xiàn)入侵檢測實驗深入理解從數(shù)據(jù)準(zhǔn)備到模型部署的完整流程為網(wǎng)絡(luò)安全與聯(lián)邦學(xué)習(xí)方向的實踐提供扎實參考。1. 聯(lián)邦學(xué)習(xí)與NSL-KDD做網(wǎng)絡(luò)入侵檢測先別急著跑代碼想清楚這三件事用聯(lián)邦學(xué)習(xí)與NSL-KDD數(shù)據(jù)集做網(wǎng)絡(luò)入侵檢測本質(zhì)上是把兩個成熟技術(shù)接到一起聯(lián)邦學(xué)習(xí)解決流量日志“數(shù)據(jù)不出域”的合規(guī)訴求NSL-KDD給出一道能反復(fù)驗證的基準(zhǔn)題Python則是把它們黏在一起的膠水。這幾年相關(guān)高分項目幾乎都從集中式往聯(lián)邦上靠因為評分重點已經(jīng)從“檢測準(zhǔn)不準(zhǔn)”變成了“數(shù)據(jù)隔離條件下還能不能準(zhǔn)”。拿到壓縮包先別急著解壓跑訓(xùn)練先想清楚三件事數(shù)據(jù)是天然按節(jié)點分片還是要人工模擬Non-IID模型做二分類還是五分類指南里說的聯(lián)邦是本機模擬還是真多機通信。想清楚后再動代碼每個參數(shù)都能說出改它的理由。這篇筆記寫給不滿足于“能運行”的Python從業(yè)者和安全方向同學(xué)重點放在可復(fù)現(xiàn)步驟和踩坑記錄上。2. 為什么要聯(lián)邦化FedAvg機制、數(shù)據(jù)不出域的價值與NSL-KDD的基準(zhǔn)定位2.1 聯(lián)邦學(xué)習(xí)在入侵檢測里的角色客戶端訓(xùn)練什么、服務(wù)器聚合什么入侵檢測的常規(guī)做法是把流量特征匯集到一個訓(xùn)練中心在全部數(shù)據(jù)上訓(xùn)一個全局模型。問題在于安全日志是最敏感的數(shù)據(jù)之一跨部門、跨機房、跨公司的流量特征往往不能直接匯總別說原始報文就連統(tǒng)計特征也要走審批。聯(lián)邦學(xué)習(xí)在這里的角色很直接各個節(jié)點用自己的日志訓(xùn)練本地模型訓(xùn)練完只上傳模型權(quán)重原始特征永遠(yuǎn)留在本地服務(wù)器把權(quán)重按某種策略加權(quán)平均后下發(fā)反復(fù)迭代。這里最常用的聚合策略就是FedAvg聯(lián)邦平均。每輪通信服務(wù)器把當(dāng)前全局權(quán)重廣播給參與節(jié)點每個節(jié)點在本地數(shù)據(jù)上做幾個epoch的梯度下降再把更新后的權(quán)重和本地樣本量一起傳回服務(wù)器按樣本量占比加權(quán)求平均得到下一輪的全局權(quán)重。整套機制里沒有原始數(shù)據(jù)流動傳輸?shù)闹皇歉P痛笮〉攘康囊欢褟埩窟@也是聯(lián)邦學(xué)習(xí)能過合規(guī)審查的核心原因。在入侵檢測場景里有個容易被忽略的點這種訓(xùn)練方式天然適配“分公司/節(jié)點/機房”的組織結(jié)構(gòu)。每個節(jié)點的流量分布不同有的節(jié)點DDoS流量多有的節(jié)點主要是掃描探測聯(lián)邦框架并不要求各節(jié)點數(shù)據(jù)同分布它只要求各節(jié)點把梯度朝各自數(shù)據(jù)的方向推一步整體模型再在“每個方向的平均值”上邁一步。實際項目里聯(lián)邦學(xué)習(xí)還能疊一層安全聚合Secure Aggregation讓服務(wù)器無法從收到的梯度反推某個節(jié)點的樣本信息。NSL-KDD規(guī)模小沒必要上這個復(fù)雜度但如果以后把這套代碼接到真實流量上安全聚合就是必須考慮的下一步。做課程項目時在報告里提一句“聯(lián)邦只解決了數(shù)據(jù)不出域梯度本身仍可能泄露分布信息”導(dǎo)師會認(rèn)為你理解到了這一層的邊界比空寫“隱私保護(hù)”要有說服力。2.2 從KDD99到NSL-KDD去冗余之后測評分?jǐn)?shù)才真實標(biāo)題里的NSL-KDD是KDDCUP99數(shù)據(jù)集的修正版官方提供Train、Test和Test-21三份文件每行是一條網(wǎng)絡(luò)連接記錄共41個特征外加一個標(biāo)簽。它與舊版KDD99最大的差別在于去掉了大量重復(fù)記錄舊版訓(xùn)練集里同一類記錄重復(fù)幾十萬條模型記性好一點的都能靠背答案拿高分而NSL-KDD的訓(xùn)練集規(guī)模和重復(fù)度都被控制測試集還額外按難度分了級。因此拿NSL-KDD報告的數(shù)字更接近真實泛化能力不再是一種“背題考高分”。對比項KDD99NSL-KDD訓(xùn)練集冗余記錄大量重復(fù)易被模型記憶已去重訓(xùn)練集規(guī)模約12萬條測試集難度分級無分低/中/高三檔實驗可復(fù)現(xiàn)性切分混亂官方切分明確訓(xùn)練/測試文件固定聯(lián)邦實驗適配度不推薦數(shù)據(jù)分布失真常用于Non-IID與聯(lián)邦消融實驗這個數(shù)據(jù)集之所以到今天還在被各類項目采用是因為它足夠小、有現(xiàn)成的二分/多分標(biāo)簽、還能和舊版KDD99貫通做論文做畢設(shè)都有參照系。指望它替代真實流量不現(xiàn)實但把聯(lián)邦方案先在NSL-KDD上驗證一輪再遷移到自己的流量特征上是一條性價比很高的技術(shù)路線。注意官方三份文件經(jīng)常被重新打包發(fā)布你拿到的csv可能是帶表頭、不帶表頭、多一列難度系數(shù)三種版本之一屬于正?,F(xiàn)象本文第3章會給出對應(yīng)處理。2.3 二分類還是五分類檢測率、誤報率與每類召回NSL-KDD的標(biāo)簽可以歸成正常加上四類攻擊DoS拒絕服務(wù)、Probe掃描探測、R2L遠(yuǎn)程到本地、U2R提權(quán)攻擊。二分類只管正常和異常最簡單訓(xùn)練快適合快速驗證聯(lián)邦鏈路通不通五分類要求模型分辨攻擊類型難度明顯上升尤其是R2L和U2R的樣本量極少經(jīng)常只占總量的百分之幾模型天然偏向多數(shù)類。實戰(zhàn)里我不會只看總體準(zhǔn)確率。入侵檢測更真實的指標(biāo)是檢測率也就是召回率攻擊樣本里被揪出來的比例和誤報率正常樣本里被冤枉的比例。在聯(lián)邦場景里這兩個指標(biāo)還要拆到每個客戶端上去看因為全局準(zhǔn)確率高完全有可能掩蓋某個節(jié)點上檢測率為零的翻車情況。我一般會固定評估五分類至少要在報告里給每類召回率不然項目答辯時很難回答“你的模型到底能不能防住U2R”這種問題。多分類在聯(lián)邦訓(xùn)練中有一個額外負(fù)擔(dān)各節(jié)點的類別分布不一致會導(dǎo)致所謂的客戶端漂移。一個節(jié)點全是R2L樣本它的本地模型更新方向就偏向R2L那條梯度另一個節(jié)點只有normal和probe方向就完全不同。這兩種方向平均在一起全局模型可能兩頭都學(xué)不好。所以第5章里的Non-IID模擬和第3章的數(shù)據(jù)分片方式是決定這個項目成敗的關(guān)鍵步驟不能跳過。最后談一下Python在這個方向幾乎是唯一選項的原因PyTorch處理神經(jīng)網(wǎng)絡(luò)訓(xùn)練、pandas做特征表、sklearn出混淆矩陣和分類報告三個庫一條鏈路能打通整個實驗。對Python剛?cè)腴T的人這個項目反而比純工程項目友好因為跑通最小例子的代碼量不到兩百行要做的雜活不過是先裝好Python環(huán)境再把numpy、pandas、scikit-learn、torch四個庫用pip裝到最新穩(wěn)定版而已。3. 數(shù)據(jù)預(yù)處理落地用Python把NSL-KDD的41維特征變成能喂PyTorch的張量3.1 讀入CSV與字段梳理先分清數(shù)值特征和符號特征讀文件這一步用pandas一行就能搞定但列名要跟官方順序?qū)R否則后續(xù)編碼全亂。NSL-KDD的csv沒有表頭需要手動指定列名。讀入之前先確認(rèn)Python環(huán)境就緒缺庫就pip install numpy pandas scikit-learn torch一條命令裝齊Windows和Linux下沒有區(qū)別。import pandas as pd import numpy as np FEATURES [ duration, protocol_type, service, flag, src_bytes, dst_bytes, land, wrong_fragment, urgent, hot, num_failed_logins, logged_in, num_compromised, root_shell, su_attempted, num_root, num_file_creations, num_shells, num_access_files, num_outbound_cmds, is_host_login, is_guest_login, count, srv_count, serror_rate, srv_serror_rate, rerror_rate, srv_rerror_rate, same_srv_rate, diff_srv_rate, srv_diff_host_rate, dst_host_count, dst_host_srv_count, dst_host_same_srv_rate, dst_host_diff_srv_rate, dst_host_same_src_port_rate, dst_host_srv_diff_host_rate, dst_host_serror_rate, dst_host_srv_serror_rate, dst_host_rerror_rate, dst_host_srv_rerror_rate ] def load_nsl_kdd(path): df pd.read_csv(path, headerNone, namesFEATURES [label]) return df邏輯說明FEATURES按官方文檔順序列出41個特征名read_csv時用headerNone跳過默認(rèn)表頭names參數(shù)把列名掛上去第42列在代碼里命名為label。這里有一個本地容易踩的坑有的公開渠道放的NSL-KDD文件多了一列難度系數(shù)直接讀會報“列數(shù)不匹配”這時候給names多加一個level或者讀進(jìn)來后用drop列處理掉。參數(shù)說明path是訓(xùn)練集或測試集文件路徑函數(shù)返回的DataFrame要保持行順序不變因為后面做Non-IID分片時會用它來回放標(biāo)簽索引。csv分隔符是英文逗號文本列里出現(xiàn)引號也沒關(guān)系pandas會自動處理。訓(xùn)練集用load_nsl_kdd(KDDTrain.csv)測試集用load_nsl_kdd(KDDTest-21.csv)文件名以你實際解壓出來的為準(zhǔn)。3.2 類別特征one-hot與數(shù)值歸一化先編碼還是先縮放41維里有三個符號特征protocol_type協(xié)議類型tcp/udp/icmp三種、service服務(wù)類型約70種、flag連接狀態(tài)標(biāo)志約11種。剩下的38維都是數(shù)值或比率字段。符號特征不能直接喂給線性層常見做法是轉(zhuǎn)成one-hotservice種類太多全量one-hot會把維度頂?shù)?10以上我一般先按出現(xiàn)頻率篩出前20個其余并成other這一類把維度壓在可控范圍。from sklearn.preprocessing import StandardScaler TOP_SERVICE 20 def encode_and_normalize(df, scalerNone, top_serviceNone, fitFalse): label_int df[label].map(build_label_map()) label_int label_int.values.astype(np.int64) # 三個符號特征統(tǒng)一轉(zhuǎn) one-hot前綴區(qū)分來源 proto pd.get_dummies(df[protocol_type], prefixproto) flag pd.get_dummies(df[flag], prefixflag) if fit: # 只在訓(xùn)練集上統(tǒng)計高頻 service避免測試集信息泄漏 top_service df[service].value_counts().index[:TOP_SERVICE].tolist() df df.copy() df[service] df[service].apply( lambda s: s if s in top_service else other) service pd.get_dummies(df[service], prefixsvc) # 剩余38列都是數(shù)值型注意先轉(zhuǎn)換類型再縮放 numeric_cols [c for c in FEATURES if c not in (protocol_type, service, flag)] numeric df[numeric_cols].astype(np.float32).values if fit: scaler StandardScaler().fit(numeric) elif scaler is None: raise ValueError(fitFalse時必須傳入訓(xùn)練集fit好的scaler) numeric_scaled scaler.transform(numeric) x np.concatenate([ numeric_scaled, proto.values.astype(np.float32), flag.values.astype(np.float32), service.values.astype(np.float32) ], axis1) return x, label_int, scaler, top_service邏輯說明encode_and_normalize做的事是符號特征轉(zhuǎn)one-hot、數(shù)值特征用StandardScaler做z-score歸一化、最后按列方向拼接成一個大矩陣。fit參數(shù)決定這次調(diào)用是“擬合scaler并統(tǒng)計service”還是“復(fù)用訓(xùn)練集返回的scaler和top_service”。用astype(np.float32)做數(shù)據(jù)類型轉(zhuǎn)換是為了跟PyTorch默認(rèn)的float32對齊順便把內(nèi)存減半。參數(shù)說明scaler和top_service的傳遞是這套代碼的命門。訓(xùn)練集上傳入fitTrue拿到scaler和top_service測試集上必須傳fitFalse并原樣代入否則訓(xùn)練和測試的特征分布不一致測試集準(zhǔn)確率虛高這在第5章避坑中會細(xì)講。TOP_SERVICE不是固定值看重區(qū)分度可以提到30看重維度稀疏可以降到10改了之后注意模型的in_dim要跟著變。數(shù)值特征這一列最容易出問題的是num_outbound_cmds在KDD99里全是0在NSL-KDD里接近全0StandardScaler對它做z-score得到一堆接近0的小數(shù)不會影響訓(xùn)練但別好奇地去刪列刪了維度就亂了。3.3 標(biāo)簽映射把攻擊名歸并成五分類NSL-KDD的原始標(biāo)簽是具體的攻擊名需要歸并才能做五分類。歸并邏輯很簡單normal是一類其余按DoS、Probe、R2L、U2R四大族歸類。DOS {back, land, neptune, pod, smurf, teardrop} PROBE {ipsweep, nmap, portsweep, satan} R2L {ftp_write, guess_passwd, imap, multihop, phf, spy, warezclient, warezmaster} U2R {buffer_overflow, loadmodule, perl, rootkit} def build_label_map(): label_map {normal: 0} for idx, group in enumerate([DOS, PROBE, R2L, U2R], start1): for attack in group: label_map[attack] idx return label_map邏輯說明build_label_map返回的字典把normal映射為0四個攻擊族映射為1到4。后面encode_and_normalize里用的就是這個字典如果只想做二分類把字典改成{normal: 0}后其他所有攻擊歸為1即可但那樣會丟掉攻擊類型信息聯(lián)邦輪次里各個類別的差異化學(xué)習(xí)就看不清了。參數(shù)說明這個映射表要覆蓋官方所有攻擊名。如果你拿到的NSL-KDD文件里有字典之外的標(biāo)簽encode_and_normalize的map會返回NaN訓(xùn)練時交叉熵直接報錯。保險做法是在map調(diào)用后加一行assert label_int.notna().all()。測試集里出現(xiàn)的攻擊名不一定在訓(xùn)練集里出現(xiàn)過這屬于NSL-KDD的刻意設(shè)計聯(lián)邦測試時模型對“沒見過”的攻擊名沒有先驗跨類別泛化會直接體現(xiàn)在召回率上別把這個當(dāng)成bug。3.4 Non-IID分片用Dirichlet分布模擬各節(jié)點數(shù)據(jù)不均真實聯(lián)邦場景里各節(jié)點的數(shù)據(jù)分布從來不是均勻的有的節(jié)點全是web服務(wù)有的節(jié)點只跑數(shù)據(jù)庫協(xié)議。要在本地驗證聯(lián)邦算法對“分布不均”的容忍度就用Dirichlet分布來控制每個類別在各客戶端上的占比。def non_iid_split(labels, n_clients5, alpha0.5, seed42): 按Dirichlet(alpha)把樣本分給n_clients個客戶端。 alpha越小各客戶端類別分布越傾斜alpha100時接近均勻。 rng np.random.default_rng(seed) n len(labels) client_ids np.zeros(n, dtypeint) for cat in np.unique(labels): idx np.where(labels cat)[0] if len(idx) 0: continue p rng.dirichlet([alpha] * n_clients) counts rng.multinomial(len(idx), p) counts[-1] len(idx) - counts[:-1].sum() order rng.permutation(idx) start 0 for cid, cnt in enumerate(counts): client_ids[order[start:start cnt]] cid start cnt return client_ids邏輯說明逐類別處理每個類別下的樣本按Dirichlet比例隨機分給各客戶端。rng.multinomial保證每個類別的樣本全部被分到某個客戶端不會因為浮點取整丟樣本。返回的client_ids和原始數(shù)據(jù)行一一對應(yīng)后面訓(xùn)練循環(huán)里用client_ids cid做布爾索引切片就行用不著復(fù)雜的數(shù)據(jù)集類。參數(shù)說明alpha是出鏡率最高的聯(lián)邦實驗參數(shù)。alpha0.5代表比較極端的Non-IID每個客戶端可能只擁有兩三個類別的樣本alpha100則幾乎均勻。課程項目建議兩端都跑一遍在非均勻分布下模型準(zhǔn)確率掉幾個點屬于正?,F(xiàn)象報告里把這個趨勢寫清楚反而是加分項。這里有個數(shù)組索引的小技巧如果想檢查每個客戶端分到了什么用np.bincount(client_ids)配合labels[client_ids cid]看一眼類別直方圖比打印幾十行日志直觀得多。4. Python實現(xiàn)FedAvg模型定義、客戶端訓(xùn)練與服務(wù)端加權(quán)聚合4.1 網(wǎng)絡(luò)結(jié)構(gòu)選擇MLP足夠把復(fù)雜度留給聯(lián)邦機制網(wǎng)絡(luò)結(jié)構(gòu)不需要多深。入侵檢測的特征雖然維度不低但大部分是歸一化后的統(tǒng)計量三到四層全連接加Dropout就能擬合得很好。不建議在這個數(shù)據(jù)集上上CNN或Transformer不是用不了而是模型變大之后聯(lián)邦通信開銷線性上漲訓(xùn)練時間拉長項目收益卻不明顯。import torch import torch.nn as nn class NIDSMLP(nn.Module): def __init__(self, in_dim, num_classes5): super().__init__() self.net nn.Sequential( nn.Linear(in_dim, 64), nn.ReLU(), nn.Dropout(0.2), nn.Linear(64, 64), nn.ReLU(), nn.Linear(64, num_classes) ) def forward(self, x): return self.net(x)邏輯說明用64寬度的兩層MLP刻意不用BatchNorm。這里是有意為之——聯(lián)邦聚合的時候BN層里的running_mean和running_var不能像普通權(quán)重那樣直接加權(quán)平均一旦引入就得在聚合時做特殊處理很多新手在這里栽跟頭。用Dropout代替BN聚合代碼就只剩weight和bias的加權(quán)求和復(fù)雜度低一截。參數(shù)說明in_dim在第3章預(yù)處理后得到一般九十多維num_classes二分類傳2、五分類傳5。Dropout取0.2是為了在幾十輪聯(lián)邦訓(xùn)練中既提供一點正則又不至于讓每輪本地更新太弱。如果你發(fā)現(xiàn)訓(xùn)練集上loss收斂慢先把Dropout調(diào)到0.1試試比動網(wǎng)絡(luò)層數(shù)見效快。4.2 客戶端本地訓(xùn)練一個類封裝一輪本地更新把每個參與方封裝成一個Client對象內(nèi)部只做一件事接收全局權(quán)重在本地數(shù)據(jù)上訓(xùn)幾個epoch返回新權(quán)重。這個設(shè)計讓后續(xù)從單機模擬切到真聯(lián)邦時改動量最小。class Client: def __init__(self, cid, x, y, devicecpu, lr1e-3): self.cid cid self.x torch.tensor(x, dtypetorch.float32, devicedevice) self.y torch.tensor(y, dtypetorch.long, devicedevice) self.device device self.lr lr def local_train(self, global_state, epochs2, batch_size64): model NIDSMLP(self.x.shape[1]).to(self.device) model.load_state_dict(global_state) optimizer torch.optim.Adam(model.parameters(), lrself.lr) loss_fn nn.CrossEntropyLoss() dataset torch.utils.data.TensorDataset(self.x, self.y) loader torch.utils.data.DataLoader( dataset, batch_sizebatch_size, shuffleTrue) model.train() for _ in range(epochs): for xb, yb in loader: optimizer.zero_grad() out model(xb) loss loss_fn(out, yb) loss.backward() optimizer.step() return model.state_dict(), len(dataset)邏輯說明Client對象保存一個客戶端的數(shù)據(jù)和標(biāo)簽local_train接收服務(wù)器下發(fā)的全局權(quán)重在本地數(shù)據(jù)上做幾個epoch的梯度下降最后返回更新后的state_dict和樣本量。關(guān)鍵點是每次訓(xùn)練都從global_state開始而不是從上一輪本地狀態(tài)繼續(xù)這保證聯(lián)邦學(xué)習(xí)收斂的語義是“圍繞全局模型做局部修正”而不是各節(jié)點在自己的模型上一路跑到黑。定義函數(shù)和類的時候把變量名寫清楚后面跑消融實驗時就不用每次重讀代碼。參數(shù)說明epochs對應(yīng)本地訓(xùn)練輪數(shù)是聯(lián)邦里最敏感的超參一般取1到3。取20以上的話每個客戶端都過擬合到自己的局部數(shù)據(jù)上聚合出來的全局模型反而變差。batch_size用64lr用1e-3這兩個參數(shù)和集中訓(xùn)練差別不大但如果Non-IID程度高lr降到5e-4更穩(wěn)。device參數(shù)默認(rèn)cpu數(shù)據(jù)量大或要跑多輪實驗時改成cuda即可注意把x和y都放到同一個設(shè)備否則torch會報device mismatch。4.3 服務(wù)端聚合FedAvg的加權(quán)平均實現(xiàn)服務(wù)端聚合是整個聯(lián)邦學(xué)習(xí)的數(shù)學(xué)核心FedAvg的原理一句話就能說清按各客戶端本地樣本量占比對模型參數(shù)做加權(quán)平均。def fed_avg(global_model, client_states, client_sizes): new_state {} for k, v in global_model.state_dict().items(): new_state[k] torch.zeros_like(v) total sum(client_sizes) for state, size in zip(client_states, client_sizes): weight size / total for k, v in state.items(): new_state[k] v * weight global_model.load_state_dict(new_state) return new_state邏輯說明先按key初始化全零張量然后每個客戶端的權(quán)重按樣本數(shù)占比累加進(jìn)去。torch.zeros_like保證跟原模型張量形狀一致load_state_dict不會報錯。這個實現(xiàn)只支持weight和bias這類普通張量所以4.1節(jié)特意避開了BN層否則這里還要寫B(tài)N統(tǒng)計量的合并邏輯。參數(shù)說明client_sizes來自每個Client返回的len(dataset)。要做的是加權(quán)平均而不是簡單平均如果某個客戶端樣本量是另一個的100倍前者的梯度方向會在聚合結(jié)果里占絕對主導(dǎo)。課程項目里的典型錯誤是只想“公平”用簡單平均結(jié)果小客戶端的數(shù)據(jù)直接被淹沒聚合出來的模型對大節(jié)點過擬合。如果你希望加入權(quán)重衰減或模型剪枝在這個函數(shù)里對new_state統(tǒng)一操作即可位置就在load_state_dict之前。4.4 主訓(xùn)練循環(huán)與端到端跑通把前面的塊拼起來主循環(huán)只需要做三件事按client_ids切片、調(diào)用local_train、調(diào)用fed_avg。為了能看到收斂過程每10輪打印一次測試集準(zhǔn)確率。def evaluate(model, x, y): model.eval() x_t torch.tensor(x, dtypetorch.float32) with torch.no_grad(): pred model(x_t).argmax(dim1).numpy() return np.mean(pred y) def run_federated(x_train, y_train, client_ids, x_test, y_test, n_rounds60, epochs_per_client2, n_clients5): in_dim x_train.shape[1] global_model NIDSMLP(in_dim) global_state global_model.state_dict() for rnd in range(1, n_rounds 1): states, sizes [], [] for cid in range(n_clients): mask client_ids cid client Client(cid, x_train[mask], y_train[mask]) state, size client.local_train(global_state, epochsepochs_per_client) states.append(state) sizes.append(size) global_state fed_avg(global_model, states, sizes) if rnd % 10 0: acc evaluate(global_model, x_test, y_test) print(fround {rnd}: test acc {acc:.4f}) return global_model邏輯說明run_federated在循環(huán)里依次執(zhí)行切片、訓(xùn)練、聚合三步。這里是在單機進(jìn)程內(nèi)順序執(zhí)行所有客戶端模擬的是服務(wù)端逐個接收客戶端上傳的過程真實分布式環(huán)境里這些調(diào)用會被網(wǎng)絡(luò)通信替代但聚合的數(shù)學(xué)完全一致。evaluate函數(shù)在測試集上做前向推理argmax取預(yù)測類別后和真實標(biāo)簽比均值。參數(shù)說明n_rounds是聯(lián)邦通信輪數(shù)這個項目里50到100輪基本收斂再多收益很小。epochs_per_client2是計算量與精度的折中每輪每個客戶端在本地只跑兩遍數(shù)據(jù)。n_clients要和非IID分片時的數(shù)字保持一致不一致時布爾索引就會漏掉一部分樣本。跑完看一下最后10輪的準(zhǔn)確率波動波動超過±0.5%說明還沒收斂把n_rounds往上加到100即可。5. 訓(xùn)練避坑與排查災(zāi)難性遺忘、模型漂移與測試集選擇的四個翻車現(xiàn)場5.1 坑一訓(xùn)練/測試特征不一致全局準(zhǔn)確率虛高現(xiàn)象訓(xùn)練完在KDDTest上一測準(zhǔn)確率接近99%換成KDDTest-21直接跌到91%同一個模型兩份測試集差出一大截。原因一個是測試集選擇的差異另一個是更隱蔽的預(yù)處理泄漏——有的教程讓scaler在訓(xùn)練集和測試集整份數(shù)據(jù)上一起fit測試集的信息已經(jīng)被偷走了。NSL-KDD的KDDTest本身包含大量與訓(xùn)練集重復(fù)的連接模型見過類似樣本分?jǐn)?shù)天然偏高Test-21去掉重復(fù)后才是真實泛化水平。解決報告數(shù)字一律用KDDTest-21并且scaler嚴(yán)格只在訓(xùn)練集上fit。第3.2節(jié)里fit參數(shù)就是為這個設(shè)計的測試集上必須傳fitFalse和訓(xùn)練集返回的scaler。做對比實驗時固定這套流程防止不同實驗間的預(yù)處理不一致影響結(jié)論。有一個小技巧如果某輪實驗得到的結(jié)果異常高先檢查是不是把測試集混進(jìn)fit了這是這個項目里最容易犯也是最不容易發(fā)現(xiàn)的錯誤。5.2 坑二本地epochs設(shè)太大聚合后模型漂移現(xiàn)象本地訓(xùn)練20個epoch每個客戶端本地準(zhǔn)確率都98%以上聚合后的全局模型在測試集上只有70%還不如只訓(xùn)2個epoch的結(jié)果。原因每個客戶端在本地數(shù)據(jù)上反復(fù)迭代模型被拉向本節(jié)點的局部最優(yōu)方向多個方向的平均變成了一個四不像。聯(lián)邦學(xué)習(xí)論文里管這叫client drift本地訓(xùn)練步數(shù)越多漂移越嚴(yán)重。解決把epochs降到1到3。這是一種“后悔藥”式的參數(shù)修正如果發(fā)現(xiàn)已經(jīng)跑了一輪epochs20的實驗不用重寫代碼把run_federated(epochs_per_client2)重跑一遍即可。如果降到1仍然不穩(wěn)可以在客戶端loss里加一個近端項懲罰本地權(quán)重偏離全局權(quán)重這個思路對應(yīng)FedProx在loss上再加一項mu/2 * ||w - w_global||^2mu取0.01到0.1之間。我一般先試epochs2不穩(wěn)再加近端項不急著動lr。5.3 坑三Non-IID分片后訓(xùn)練發(fā)散loss持續(xù)增大現(xiàn)象alpha0.5的Non-IID分片下全局和本地loss都不下降有時直接變成NaNalpha100時一切正常。原因一個客戶端只有一種攻擊類型時它的梯度方向跟全局方向幾乎垂直幾輪平均下來形成震蕩如果再用Adam的默認(rèn)lr個別客戶端梯度炸了就NaN了。解決兩個改動一起做。一是把學(xué)習(xí)率從1e-3降到3e-4二是在每個客戶端的交叉熵上做類別加權(quán)讓樣本量少的R2L、U2R類別即使在一個客戶端上出現(xiàn)次數(shù)很少也不至于被遺忘。也可以在分片時先用alpha1跑通鏈路再逐步調(diào)低alpha觀察模型退化曲線這個曲線本身就是項目報告里很好的素材。要記住在大規(guī)模聯(lián)邦里Non-IID下的發(fā)散可能來自單個客戶端的病態(tài)梯度打印每個客戶端各自的loss而不是只看聚合后的全局loss能更快定位到是誰拖垮了全局。5.4 坑四災(zāi)難性遺忘——輪次推進(jìn)后舊攻擊類型“突然不會了”現(xiàn)象第20輪時五分類的每類召回都正常第40輪開始U2R的召回率從80%掉到30%后續(xù)輪次再也沒有恢復(fù)。原因這是聯(lián)邦學(xué)習(xí)里災(zāi)難性遺忘的典型表現(xiàn)。全局模型在新輪次里被大多數(shù)客戶端的大類樣本主導(dǎo)少數(shù)類別尤其樣本量極小的U2R和R2L的梯度信號被淹沒模型把參數(shù)空間里原先識別U2R的區(qū)域逐漸覆蓋掉。集中式訓(xùn)練同樣有遺忘問題但聯(lián)邦環(huán)境里各客戶端數(shù)據(jù)不平衡讓遺忘來得更快更隱蔽。解決三個手段按成本從低到高排列。第一每輪聚合后對每個類別單獨算召回一旦某類比上一輪跌超過5個點就回滾到上一輪權(quán)重再小步重訓(xùn)給項目加一個簡單的“剎車機制”。第二在服務(wù)端保存一份驗證集每輪用驗證集挑出最優(yōu)round的權(quán)重相當(dāng)于給模型存了后悔藥訓(xùn)練結(jié)束后加載最優(yōu)權(quán)重而不是最后一輪權(quán)重。第三如果類別不平衡是常態(tài)考慮在客戶端本地做少數(shù)類過采樣或者干脆改用二分類加一個專門檢測R2L/U2R的小模型別讓一個模型背所有鍋。我自己做實驗時最常用的是第二條簡單可靠而且在答辯時可以直接展示“最優(yōu)權(quán)重出現(xiàn)在第幾輪、為什么”。關(guān)于評估指標(biāo)還有一條硬規(guī)矩五分類下只報accuracy是不夠的至少要帶上每類recall和誤報率否則災(zāi)難性遺忘根本不會被你發(fā)現(xiàn)。用sklearn的classification_report一行就能輸出全部類別精確率、召回率、F1畫混淆矩陣時如果類別標(biāo)簽擠成一團(tuán)把figure size調(diào)大到(8, 6)以上就好。聯(lián)邦場景下我更建議額外打印每個客戶端在測試集上的單獨表現(xiàn)因為全局指標(biāo)好看不能掩蓋某個節(jié)點上的檢測失效這一點在答辯時也是容易被追問的角落。6. 從模擬到真聯(lián)邦消融實驗、通信開銷與三行改造清單模擬畢竟是模擬真聯(lián)邦在網(wǎng)絡(luò)不穩(wěn)定的真實環(huán)境里還要面對掉線、傳輸延遲和梯度過期問題。做驗證時有三個技巧值得用。第一個是消融實驗。把集中式訓(xùn)練、聯(lián)邦5客戶端、聯(lián)邦10客戶端三組跑在同一份預(yù)處理代碼下記錄測試準(zhǔn)確率、每類召回率和訓(xùn)練耗時。集中式可以看作聯(lián)邦的上限參照兩個聯(lián)邦實驗的差距體現(xiàn)數(shù)據(jù)分片帶來的信息損失。我習(xí)慣把結(jié)果畫成一張對比表集中式94.2%、聯(lián)邦5客戶端92.8%、聯(lián)邦10客戶端91.5%這種形式比文字描述“聯(lián)邦效果還行”有說服力得多。第二個是通信開銷的量化。單個模型參數(shù)量乘以2上傳加下載再乘以通信輪數(shù)就能估算傳輸字節(jié)量。以文中這個MLP為例in_dim約90、兩層64寬參數(shù)量大約一萬出頭float32一個參數(shù)4字節(jié)一輪通信約80KB60輪不到5MB。這個數(shù)字放進(jìn)報告里就能正面回應(yīng)“聯(lián)邦學(xué)習(xí)到底多耗帶寬”的質(zhì)疑。第三個是遷移真聯(lián)邦的改造清單把Client里的數(shù)據(jù)加載換成遠(yuǎn)程文件路徑、把local_train返回值序列化后走消息隊列傳輸、服務(wù)端fed_avg換成異步聚合以容納掉線節(jié)點。常見做法是直接用Flower這類聯(lián)邦框架改配置或者自己拉一套gRPC兩者都能保留第4章代碼本體的八到九成。我做這個方向時踩過最大的坑是默認(rèn)“本機模擬的結(jié)果等于分布式結(jié)果”真搬到多機后才發(fā)現(xiàn)網(wǎng)絡(luò)延時會放大每個round的耗時原來用60輪訓(xùn)練的代價在真環(huán)境下翻了不止三倍。后來我在模擬階段就把round數(shù)壓到40把epochs壓到1用更多客戶端替代更多輪次反而拿到更穩(wěn)定的結(jié)果。把“通信輪次”當(dāng)成跟學(xué)習(xí)率一樣的超參去調(diào)是聯(lián)邦項目跟普通深度學(xué)習(xí)項目最大的習(xí)慣差異。這個思路貫穿了我后來所有的聯(lián)邦實驗希望這些記錄對你有所幫助。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲欧美一区二区三区在钱蜜桃| 夜夜骑天天燥| 啪啪啪精品| 上床啊啊啊| 精品无码久久久久久久久果冻糖心| 性爱边摸边日免费AV| 狠狠中文字幕| 亚洲视频精选| 国产人妻精品久久久一区二区三区 | 九九九精品色乱九九九| 高清无码在线播放网站| 亚洲欧美国产va在线| 婷婷丁香九月| 日本好吊色视频| 日韩日本欧美在线观看| 女同在线视频一区| 亚洲丝袜二区在线| 久操婷婷| 亚洲精品久久久久毛片A片拉屎| 肉嘟嘟www视频在线观看高清| 欧美手机在线综合| 夂久色| 91精品导航| 97人人草| 午夜.DJ高清在线观看免费7| 久久99精品九九久久久婷婷| 久久精品国产亚洲AV片多多| 亚洲情色五月天| 久久国产成人精品国产成人亚洲| 色五月第四色| 亚洲天堂 视频你懂的| 久久久96| 97欧美久久久久久久| 嗯嗯嗯好爽| 无码外流操逼视频| 男人的天堂无码| 97超碰色屌| 成人一级性爱| 人妻精品一区二区在线| 美性中文综合网| 日韩一区二区精品视频| 成人a级高清视频在线观看| 中文字幕精品码亚洲| 刺激性视频黄页| 波多野结衣先锋影音| 国产精品69久久久久久久| 人妻加勒比东京热| 思思热免费视频观看| 欧美色综合网| 热热色色综合| 懂色av中文字幕| 老女人91| 欧美96在线|欧| 欧美97视频| 久久98| 韩国手机不卡无码三级视频| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 青青青艹在线视频| 99久久九九| 色欲日韩欧美在线一区| 五月激情综合网| 超碰精品在线| 欧美很很操视频| 欧美精品自慰系列寂寞少妇 | 色一射色一射| 日本一区二区三区欧美日韩中文字幕| 日韩偷拍色图| 九X超碰| 精品无码久久久久| 嫩草 我啊~嗯~在线| 欧美同性恋 的搜索结果 - 91n| 91熟女视频网| 无码区蜜乳| 久操91视频| 亚洲精品xxx| 91在线精品一区二区三区| 亚洲色系另类精品国产| 色九九综合| 精精夜夜| 加勒比人妻综合| 美国三级日本三级久久99| 色www精品视频在线观看| 激情综合av| 超碰九九| 操逼国产免费| 丁香六月啪啪| 91久久久老司机| 久操国产在线| 久久91精品国产9丨久久分亭| 91超级碰| 欧美综合 站| 久久这里只精品| 亚洲精品一区二区精华| 日韩在线观看中文字幕视频| 久久这里都是精品| 97视频在线观看网站| 97欧美日韩| 无码 黑人一区二区三区| 人人性爱视频免费| 啊啊啊啊啊好大好舒服想要| 操逼无码操逼| 人人乐大香蕉| 长久操视频| 免费男人的天堂| 国产区日韩区在线观看| 成人片在线播放| 九九成人精品| 97资源久久| 成人午夜小视频手机在线看| 婷婷15月天青娱乐| 性91| 人妻激情另类| 91高清欧美| 园内精品自拍视频在线播放| 国产久久视频| 日韩欧美加勒比| 精品毛片av一区二区 | 91啪9色| 日1区2区3区2020| 伊人丁香五月婷婷| 91快色色色色色| 综合国产97| 免费男人的天堂| 亚洲欧美首页| 久九干| 97亚洲欧美| 啪啪91| 9997se| 亚洲成人免费中文字幕| 亚洲亚洲亚洲天堂天堂| 天天操夜夜嗨| 天美传媒麻豆一区二区三区国产精| 国产日韩区| 宅男午夜在线视频| 在线日韩精品一区二区三区| 加勒比AV天堂| 国产理论视频在线播放| 黑人精品久久97| 国产一区二区成人av在线播放| 国产精品久久久久亚洲av| 精品无码人妻一区二区免费蜜桃| av毛片aaaaa免费看| 亚洲天堂电影精品一区| 97超碰色色| 粉嫩av在线一区二区| 粉嫩久久久久| 操逼逼无码| 91操熟女视频 | 天天干夜夜操一区二区| 中日高清无码操逼视频| 少妇一区二区三区| 午夜欧美J进J出白浆流出久久久| 欧州一区二区三区四区| 国产丸一视频| 丰满的三级少妇欧美久久久| suv精产一二三区| 日本狠狠干| 女性91网站| 91精品成人www| 麻豆三极片| 欧美久久婷婷| 亚洲精品第一| 美国精品国产精品| 精品视频一区二区| 日本不卡卡一区| 中文字幕精品一区欧美| 校园春色美腿丝袜| 97网址97| 另类图片五月| 日韩精品在线放| 青青草啪啪网| 翔田千里av一区二区三区| 淫荡网址| 熟女露脸激情自拍视频| 日韩紧密久久| 久久国产视频性吧| 日韩亚洲国产视频| 欧美日韩97| AV在线资源| 天天日天天色| 温婉少妇玩3p| 国产男女边吃边摸视频网站| 67914在线兔费成人视频| 久草成人福利导航| 五月丁香社区婷婷日韩欧美精品影院| 日本视频在线中文字幕| 欧美高清在线| 久草精品视频| AV天天综合| 日韩久久.一级黄色片| 欧美极品美女aaaaaa级黄片| 精品偷拍13p欧美dodk视频| 蜜臀Av一区二区三区| 久久精品一区| 99精品丰满人妻无| 五月天色色网站| 啪啪啪东京| 蜜臀久久99'精品久久久| 91老熟女老女人国产老太| 日韩99神马视频播放片在线播放| 国产精品爽爽va在线观看98| 亚洲天堂中文字| 色综合av综合久久| 欧美亚洲丝袜人妻制服中文99| 熟女色图在线| 嗯嗯,好大,好爽,好骚| 婷婷综合五月天| 久久香蕉国产线看观看猫咪av| 亚洲无码com| 青青草国产欧美非洲黑人| 亚洲欧洲无码一区夜| 国产肏屁眼视频| 国内精品不卡无毒99999| 久热9| 国产精品无码论坛| 国产 热久久久久国产精品| 在线欧美69V免费观看视频| 欧美一区二区福利在线| 国产高清精品一区二区三区毛片 | 操一区| 91中文精品日韩欧美在线| 中文啪啪视频| 久99| 四虎影库国产精品免费| 国产精品一区二区在钱播放| 男人天堂站| 日韩天堂av电影在线观看| 97精品国产97久久久久久户外免费| 婷色五月| 欧美香蕉视xxx| 中文字幕版| 九九九九九用不成了| 免费农村成人少妇人妻Aa一区二区视频 | a片 xxxx受爽视频| 天天影视亚洲| 性色AV蜜色av色欲av| 日日操免费视频| 天天操天天射天天日| 强奸乱伦免费网站| 91丨国产丨白浆秘 洗澡动漫| 91一区二区三区蜜桃| 国产中出内射一区二区| 欧美性爱无码一区二区三区| 日韩极品无码B| 免费操逼91| 欧美人与动性人交a| 中日亚韩免费视频| 91中文在线| 91在线欧色| 欧美日韩大陆黑人少妇99| 国产青青美女玩逼视频| 亚洲欧美97√| 久久人人爽爽人人爽人人片αV| 91|九色|国产熟女| 91色综合激情| 亚洲色图欧美色图在线播放| 亚洲九九九| 操逼操逼逼操操逼91 | 欧美大香蕉久| 蜜桃无码AV一区二区| 国模限制级电影| 久草综合视频| 午夜传煤十二区精品| 色欲久久久久综合网| 最新日产中文在线麻豆| 97硬碰| 亚洲国产福利视频| 青青操综合网| 蜜臀AV成人精品蜜臀AV久久| 天天看精品动漫视频一区| 午夜福利视频在线一区| 97一本大道亚洲一区| 78精品| 天天插夜夜操| 天天日日本| 99国内精品| 欧美人妖内射| 亚洲色欲天天人妻无码系列专区| 久久久男人的天堂| 国产精品人妻无码久久久老鸭窝| 亚洲成av人片色午夜乱码| 啪啪视频mP4| 精品国产乱码久久久影院| 亚洲欧美精品国产一区二区| 久久精品店| 超碰天天操你比| 国产精品爆乳懂色蜜乳| 小草三级久久观看| 美女久久久久久久久久久| 国产精品视频白浆免费| 天天搞欧美| 欧美日韩另类在线播放| 精品一区二区麻豆| a片偷拍视频| 尹人大香蕉视频在线| 97爱碰| 亚洲人妻在线一区| 国产白领连续中出在线播放| 18禁无码永久免费无限制| 五月黑AⅤ| 亚洲国产日韩精品久久久| 欧美成人一区二区三区在线播放| 九九九精品色乱九九九| 国产精品久久久久无码A√| 亚洲国产综合久久久性感熟妇| 亚州欧美综合| 国产 v乱码一区二| 欧美偷偷网| 91被操| 中文字幕 一区二区 亚洲无码| 成人久久久| 五月婷婷色| 啊啊啊好舒服视频| 日韩精品99999| 国产精品乱码久久久| 欧美婷婷| 最新日本中文字幕| 日本女厕偷拍| 亚洲 日韩 丝袜 熟女 变态| 亚洲极品| 性欧美另类高清| 亚洲码在线中文在线观看| 伊人久久国产免费观看视频| 强奸乱伦AV网址| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 日韩高清一二三| 中文久久爆乳| 老熟女91视频| 884t在线| 国产精品久久久久无码AV会牛| 91老熟女91老女人| 人妻久久久久久| 囯产精品久久久久久久久久二区三区 | 英伦大奶子熟妇吊带| 精品免费视频国产一区| 国产精品粉嫩福利在线| 色色99| 欧美一二三级精品在线| 丰满熟女人妻一区二区三五十一路| 亚洲欧美国产成人综合不卡| 欧美综合色图网| 亚洲情色91| www.久久制服糖| 中字一区| 久久久久久性爱片| 日本免费专区| 久久日本熟妇熟色一区| 欧美黑人91| 天天日天天舔| 免费精品中文字幕| 伊人91| 小骚逼被操的爽不爽| 国产热RE99久久6国产精品首| 超碰97.com| 9久久9综合| 日韩激情啪啪| 黄色大片免费在线| 久久亚洲天堂| 欧美在线干| 日婷婷| 成人一二三区| 欧美韩日精品资源| 德国一二三不卡| 久久精品性| 成人av影院在线观看| 91热| 欧美日韩97在线| 99热综合| 高清无码网址| 91啪啪视频| 国产精品极品美女视频| 欧美在线永久天堂| 欧美岛国精品在线观看| 易易A毛视频| 狠狠爱夜夜干| 中出789在线视频| 久久精品国产精品亚洲艾通辽熟妇| 约操熟妇| 亚洲成人福利电影免费| 久久性爱精品一区| 日本一级特级毛片视频| 超碰91在线| 高清无码学生妹高潮| 一区| 成人在线永久| 精品乱码久久久久| 二级久久网| 天天日日日射| 艾草av| 天天操女人| 偷窥自拍亚洲色图| 亚洲一二三精品久久网| 桃色六月天| 欧洲射精91| 六月婷婷综合| 97人人干| 99国产精品在线观看| 久热99| 99在线观看| 99ri精品| **一级毛片国产| 久久无码电影| 在线不卡视频| 丝袜AV一二三区| 色综合中文字幕不卡| 99这里有精品| 亚洲宗合电影| 亚洲中文字幕有码视频一区二区三区| 日本天天人人狠狠在线日美女 | 青青草久久| 成人精品水蜜桃久久久久久久| 热的中文 热的有码 热的国产| 中文字幕一区二区三四五区日日骚| 一本久久精品中文字| 偷拍在线观看视频| 无码精品啪啪啪一区二区三区三州| 日本九九久久99| 欧美最大综合网| 精久久久| 蜜臀久久99精品久久久久久无删减 | 香蕉大久久久| 另类小说欧美激情校园春色| 国产二区三区免费视频| 国产网红精品| 99热自拍| 日韩午夜国产| 国产Av超碰| 日韩高清一二三| 亚州再线| 蜜桃臀一区二区三区久久| 亚洲丝袜99| 大香蕉性欧美| 99热综合| 久久久久女教师免费一区 | 亚洲另类久操网| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 午夜无码精品免费看性色| 日韩精品一区二区三区色欲| 偷拍亚洲高清图片| 色综合大香蕉| a片在线播放| 亚洲综合精品国产一区| 97超碰69| 青青草影视蜜久久| 最新AV在线| 一级片在线观看高清无码| 极品尤物在线观看| 97日视频| 超碰成人人人爽人人爽| 免费超碰97在线观看| 丁香五月激情综合| 丁香7月婷婷| 日韩欧美午夜一区二区| 五月婷婷综合网| 亚州春色| 国产欧美日本亚洲精品| 91丨九色丨大屁股| 大香蕉琪琪日本女优不卡| 1区2区3区视频| 色色色五月婷婷| 成年男人的天堂| 欧美劲爆第一页| 国产三级多多影院2022国产AA一级毛片无码 | 97超碰超欧美。| 久久在线观看免费视频| 欧美色偷拍| 蜜臀99久| 东北丰满熟女国产一区| 天天干天天日天天射黄色片| 精品视频在线观看| 成人av免费观看| 欧美91色| 欧美黑人精品一区二区| 欧美亚洲成人在线一区二区三区| 精品国产乱码| 懂色AV中文| 欧美亚洲高清| 久久久久久亚洲精品中文字幕人妻| 欧美色综合网| 日本三级日本三级99| 偷拍亚洲情色| 亚洲精品国产精品乱码不99| 日欧毛片久久| 一区二区三区免费岛国片| 淫乱图区| 日韩乱中文| 国产欧美黑人丰满在线| 九色在线熟女国产黑人| 日日97| 404操逼福利视频| 久久骚| 黄在线| av线电影| 91精品大奶人妻| 91欧美少妇| 色色色色综合网| 欧美九九九九九| 欧洲无码一区二区| 影音先锋日本乱伦| 啊啊啊在线看| 五月花婷婷| 亚洲色图欧美色图另类图片| 精品v1区| 十八禁的黄污污免费网站| 久久华人网| 色婷婷导航| 欧美色图片| 亚洲色图美腿丝袜| 国产亚洲禁久一区二区| 国产综合久久久麻桃个| 午夜福利久久久噜久噜久久综合| 啪啪啪精品| 欧美高潮| 国产精品九9| 国产兽交视频在线播放| 久久r精品| 黄色乱论网站| 播播亚洲小说亚洲| 色综合加勒比| 久草久日| 亚洲美女精品| 熟女视频久久| 一区AV| 亚洲影视高清第一页| 丁香激情五月天| 成人av福利在线观看| 色欧美色交综合| 精品国产嫩穴视频| 91在线精品| 精品视频一区二区| KK色在线影院| 好屌色综合| 小草精彩毛片| 五月天丁香网| 国产精品无码久久久久2025| 亚洲97综| 夜夜性| 神马久久久久| 久久九七| 欧美后进式| 亚洲性爱无码乱伦av| 国产精品高潮久久久无码| 一区二区亚州激情久婷婷欧美| 久久婷婷一区二| 8x福利精品第一福利视频导航| 日韩中文9| 91亚洲欧美色图| 婷婷五月天福利| 91社操逼| 夜夜天天噜狠狠爱2021| 人人性爱视频免费| 91亚州| 欧美天天影院| 久热99999| 欧美激情久久久久| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV| 久久精品人体AV| 亚洲成人性爱在线观看| 久综合国内精品自在自线| 蜜臀久久99精品久久久电影| 欲色综合| 亚洲日韩久久精品一区| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 91成人无码| 久久久涩| 无码国产精品96久久久久孕妇| 狠狠躁伊人中文字幕| 亚洲美女精品九九视频| 97干色| 免费AV中文网在线观看| 日韩免费三级黄片电影| 911av网站免费观看| 97精品熟女少妇一区| 欧美性生活免费网| 国产精品熟女九色九色蜜臀| A级毛片在线看免费| 乱伦一二三区| 久久久久久久人妻丝袜| 亚洲97成人在线观看| www.亚洲黄色| 日本日逼高清| 亚洲AV操| 婷婷五月天丁香| 日本在线一二 | 九九九草| 亚洲色图 91| 欧美性夜| 亚洲欧洲日本精品中文a∨| 亚洲欧美清纯| 欧美日本成人一区二区| 亚洲成a人v欧美综合天堂下载| 碰碰97| 亚洲精品国产日韩无码AV永久免| 樱花蜜乳av| 免费黄色A片| 久久91精品国产9丨久久分亭| 色噜噜人妻丝袜a∨先锋影 | 91综合色| 国产精品白丝在线播放| 日韩人妻中文视频| 色九九九九久| 啊啊啊啊二区好大| 欧美97色| 荡小穴在线观看| 欧美78| 麻豆成人影音在线| 99久久精品无码一区二区| 亚洲精品久| 国产吹潮女在线观看| 国产精品点击进入在线影院高清| 中日韩熟女| 日韩丝袜人妻AV| 久久婷婷苹果| 国产高清免费不卡av| 日韩高潮一区| 天天综合欧美黑人| 日本三级一区二区 在线| 天天干美少妇一区| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 91丨九色丨43老版熟女| 91美女看B| 97超碰人人模人人拍人人| 午夜色婷婷| 中文字幕AV片| 蜜乳AV免费观看| 91九久| 一区二区三区麻豆| 欧美午夜一区二区三区| a片亚洲一本通视频| 最新亚洲黄色免费电影| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 日韩精品三区四区| 色臀av| 开心五月天激情网| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 日日黄色三级网站| 欧美人人操人人插| 日韩一999精品| 一起草高清无码| 亚洲 综合 欧美| 亚洲小说视频| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 婷婷五月天成人| 啊啊啊啊嗯嗯在线久久久| 亚洲无码久久久久久久| 97超碰国产亚洲精品| 人人操人人操草草| 久9爱经典视频| 熟妇操花| 久久这里只精品| 一区二区娱乐网站| 久久啊啊| 偷拍欧美激情| 性久久久| 任我爽在线视频免费观看 | 91高清日| 狠狠五月天| 久久久蜜桃臀无码视频| 久久国产视频专区一二三| 日韩性爱小视频| 人人污日韩一区二区| 久久久久久久久久久免费精品| 熟妇艹鸡八| 亚洲 图片 综合91| 精品人妻一区二区免费蜜桃视频| 女色视频社区| 翔田千里AⅤHD无码| 色老牛| 欧美视频边做饭边橾| 久久97视频| 天天狠| 日本一区二区三区午夜观看| 91国内外在线| 亚洲综合九九| 97超碰人人模人人拍人人| 久久精品视频在线观看| 入口操逼网站| 亚洲情色视频| 天天天天天超碰| 伊人久久艹| 青娱乐老司机视频| 久久噜噜噜精品国产亚洲综合| AV中文在线| 内射老妇BBWX0C0CK| AV色图| 日本有码久久| 亚洲AV操| TS人妖另类精品视频系列| 91精产一区二区三区| 思思热在线| 密乳AV免费观看| 欧美劲爆第一页| 成人久久精品| 亚洲人妻一区二区三区| 奇米狠999| 久久久一区二区三区四区五区| 欧美韩国你懂得在线| 婷婷色婷婷| 最新亚洲人成网站在线影院| 欧色网址| 香蕉免费一区二区三区不读| 殴美牲| 中文字幕av乱伦| 国产精品露脸在线观看| 亚州男人天堂| 伊人网一本| 91美女在线视频| 欧美美女自慰一区二区三区| 白嫩国模丰满一二三区| 中文字幕AV乱伦| 亚洲国产97| 毛片99-全集电影手机免费观看完整-B029AV | 丁香激情网| AV污污污污| 少妇一级无码精品| 色综合91好| 天美av在线| 国产久久男人天堂| 91性生活久久久| 国产怡红院| 加勒比大香蕉视频在线| 欧美一级黄片免费播放| 亚洲蜜乳av| 免费观看性欧美一级| 国产毛片毛片4p懂色| 亚洲精品91| 偷偷人人精品女女久久| 亚洲综合 欧美| 欧美伦乱爱| 啊啊啊不要啊啊受不了了视频在线 | www鬼畜国产男人的天堂| 精品成人av一区二区三区在线| 国产精品熟女九色九色蜜臀| 日B操| 天天射天天操天天干天天吃2018 | 91美女丝袜诱惑视频| 亚洲精品日韩国产欧美| 欧洲一级性爱视频在线观看| 免费的很黄很污的全部视频| 国产久久成人| 正在播放国产精品一区| 日韩免费高清大片在线| 成人无遮挡毛片免费看| 夜夜操美女| 内射小黄片| 亚州精人品大香蕉| 五月丁香久久| 日韩素人无码一区二区三区三州| 农村妇女一级二级三级视频| 一区二区偷拍拍视频| 亚洲欧美精品91| 91亚洲人电影| 三级片大波波| 男生女生啊啊啊啊| 制服诱惑亚洲一区二区三区在线观看| 熟女AV一区| 嗯,啊。舔我逼| 亚洲成人AB| 91 丝袜在线播放| 中文字幕黄片在线| 亚洲成人免费中文字幕| 国内毛片国产专区二| 国内三级自拍小视频在线观看 | 日韩三级av片| 老熟女91| 亚洲av综合色区无码一| 5月婷婷6月六月丁香| 99无码视频| 9热9热综合网| 人妻天天爽夜夜爽2| 亚洲毛片久久| 亚洲一区在线观看欧洲| 青椒国产97在线熟女| 激情四射五月天| 亚洲中文字幕有码视频一区二区三区| 久久99精品九九久久久婷婷| 热热色青青草| 国产呦精品系列在线观看| 国产精品亚洲一级av第二区| 美女被艹尤物视频| 中文字幕一二三区| 欧美激情精品久久久| 青青草中文字幕| 日韩欧美中文日韩欧美色| 国产精品电影| 国产亚洲日本| 久九色| 韩国午夜理伦三级好看| 亚洲人精| 国产深喉| 久久透逼视频| 好吊妞转入那个网| 偷拍综合亚洲| 丁香婷婷五月| 91chinese在线| 国产精品久久久777| 91欧美网| 欧美三级中文字幕hd| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 亚洲日韩欧美一区二区| 91肉丝| 亚洲精品三| 91丨精品丨国产丨丝袜| 亚洲精品久久久久毛片A片拉屎| 91狼人| av72网| 欧亚无码视频| 极品色社| 农村少妇久久久久久久| 国产欧美日韩精品中文| 又摸又舔在线观看网站| 久久久久9999| 五月丁香影视| 情色大香蕉| 久久九九国产精品| 欧美成人综合| 在线中文字幕| 亚洲乱色视频一区、二区在线| 黄色工厂这里只有精品| 久久精品国产亚洲AV无码电影 | 亚洲综合中文字幕有码| 黑丝日韩av丝袜av| 男人女人18禁片免费看网站| 精品一区二区三区蜜桃臀赵总| 日韩干B| 国产精品探花视频| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 男人的天堂Va| 日本 欧美 国产一区| 欧美第二页午夜| jizzjizz欧美| 国产99999久久精品| 色婷婷视频| 伊人影院日本| 麻豆精品久久久久久久| 天美传媒精品一区二区| 精品国产乱码久久久久久影片| 嗯嗯啊啊啊好爽| 欧美色色色| 92久久| 色综合98| 国产精品午夜福利亚洲综合网| www.四虎在线| A级国产欧美激情在线| 日日干日日操五月天伦理视频| 91天天| 91网18| 亚洲第一精品在线视频| 啊啊啊啊好疼视频| 一级性爱aaaa| 色妇综合网| 91逼逼女人91| 精品午夜福利国产一区二区在线观看 | 偷拍片久久| 91狼人| 欧美黄业| 亚洲 欧美 小说| 美中日韩无码| 熟女熟妇一区二区三四区| 精品视频久久久久九九九九9999| 99人妻| 国产熟女精品区| 欧美一区二区亚洲天堂| 骚女天天综合网| 三上制服丝AV| 亚洲色图殴美色图激情乱伦| 欧美九九九九九| 9999伦理视频| 国产午夜无码片在线观看影视| 欧美综合色图网| 亚洲中文字幕有码视频一区二区三区| 久久久久亚洲av综合波多野制衣| 美女骚尻视频| 欧美日韩99精品麻豆传媒| 亚洲天堂五月天国产| 亚洲欧美91√| AV天堂丝袜| 亚洲成人久久一区二区| 夜夜爽夜夜操| 大香蕉青青9| 欧美色棕合| 家庭乱伦网站国产| 久久精品黄色| 美女爽爽爽刺痛洞洞| 高潮内射在线| 九九无码视频| 岛国激情视频在线观看| 亚洲图片欧美偷拍| 亚洲精品 欧美精品| 96AV精品| 99精品久久久久久久婷婷蜜桃| 肉动漫无遮挡h在线观看| 天天综合网亚洲综合网| 丰满少妇一区二区三区四区观看| 97任你吞精| 日B操| 女人综合网| 超碰是碰在线观看| 熟女天天干| 天天色综合图片| 国产呦精品一区二区三区下载| 日本孕妇一区二区视频操逼免费看| 久久九九精品一区二区 | 大香蕉专区| 色网站导航大全| 久久久久久综合久久伊人蜜月| 美美91成人国产精品欧美精品久久久久久久| 丁香五月色情| 91在线精品| 国产精品呦一区二区三区| 欧美第一页| 九九九九9999| 九九九久久久W精品| 91麻豆一二三区| 91熟女综合| 综合 青草 伊久久 影院 综合| 操91| 九九Av| 国产乱伦一二三区| 丰满高潮18xxxx| 日韩久久.一级黄色片| 操逼逼一区视频| 福利视频香蕉免费一区二区在线| 色香综合| 97色综合中文网| 国产成人精品网站| 午夜啊啊| 美女高潮国产高清| 久久久久99精品成人片蜜臀| 久9爱精品| 五月天AV资源| 无套后入双马尾| 懂色AV网| 草草草视频| 欧姜老司机| 久久97超碰| 欧美成人一级麻豆| 97精品一区二区视频| 国产成年女黄特黄| 国产精品久久久久无码Av网曝门| 激情小说日韩无码| 国产极品精品美女视频| 亚洲 自拍偷拍 欧美| 欧美日韩国产中文精品字幕自在自线| 黄页视频网站野外| 国产污视频麻豆传媒一区二区| 97超碰色屌| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 亲子敌伦对白在线播放| 97在线视频观看| yaouchengrenav| 强奸乱伦亚洲第一页| 国产白嫩漂亮KTV在线| 国产精品自在自拍视频| 亚洲经典啪啪| 97香焦色区| 色婷婷婷五月天激情四射| 黑人精品久久97| 噜噜瑟| 啊啊啊想要| 久久国产熟女影院| 夜夜天天噜狠狠爱2021| 女人双腿搬开让男人桶| 婷婷综合| 国产丰满少妇久久久精品影院| jiujiujiujingpin| 美女91网| 日韩精品在线放| 欧美一区二区观看在线| 嗯嗯啊在线视频| 亚洲人妻熟妇三十三区| 中字一区| 人妻一区二区三区四区视频| 久久黄色视频一区二区三区| 色婷亚洲五月在线观看| 亚洲国产一区二区三区在线| ai欧美亚洲小说| 加勒比aⅴ| 亚洲国产欧美一区二区潘金莲| 日韩精品黄片免费观看| 999狠狠综合| 久久动漫精品视频这里只有精品| 92大香蕉| 国产丝袜欧美在线视频| 99re国产中文字幕| 亚洲综合99999| 黄色成年| 超碰碰激情97+久| 97在线日韩中文字幕| 大香久久| 99精品欧美一区二区三区桃色| 爱av免费| 国产亚洲色婷婷99精品91| 色天堂在线观看| 久久久久久九九九| 国产AV无码AV| 自拍丝袜美腿人妻| 超碰久草| 亚州免费啪啪视频| 顶级少妇BT天堂| 尤物视频偷拍免费| 影音先锋每日最新资源在线观看| 久久欧美性爱视频| 青草伊人久久| 久久女婷| 日韩精品第3页| 欧洲黄色网| 91美女在线视频| 殴美大黄片| 亚洲天堂2020| 亚州综合电影| 免费一级特黄特色大片在线观看看 | 手机av亚洲丝袜美腿日韩第一页二页| 中文字幕精品一区欧美| 国产在线精品电影观看| 国产精品一区二区黄片| 97超级久久| 欧美无圣光在线| 久久香蕉综合一本到3atv| 婷婷激情丁香| 国产11页| 亚洲第一精品在线视频| 欧美色爱综合| 亚洲国产剧情少妇激情| 无码聚合| 欧美亚洲自拍另类人妻| 另类av综合久久| 99在线精品观看99| 蜜乳成人AV| 欧美色交| 欧美激情色婷婷花野真衣一区二区 | 国产人妻久久精品一区二区三区| 色九九九九久| 全免费a敌肛交毛片免费| 欧美 亚洲 第一页 | 国产一区二区三区久久久精品| 男人的天堂无码| 日本九九久久99播| 夜夜草网站| 探花在线免费观看视频国产一区| 国产精品久久久久久久久久久久久久吹 | 亚洲色综合| 国产精品熟女一区二区三区| 中文日韩欧美熟| 欧亚久久偷拍视频| 欧美三级不卡| 激情色播| 色婷婷丁香五月| 98色网| 人妻夜夜爽天天爽麻豆三区网站 | 女人双腿搬开让男人桶| 日韩欧美俄罗斯A片| 亚洲欧美激情在线视频| 开心五月天激情网| 欧美五区| 91精品操美女| 97这里只有精品| 亚洲?V无码专区在线电影| 五月综合婷婷久久网站| 国产51色综合久久免费| 黄色在线网站| 九月丁香| 一区二区精品更新提醒| 日日骚精品视频| 国产自偷| 桃花色综合影院| 成人性爱美曰韩| 色色激情| 欧美91网站| 午夜福利 成人 91| 在线观看不卡一区二区三区| 丰满人妻无码一区二区三区| 岛园激情| 97色色色综合网站| 天天日骚逼熟女| 肏逼视频日本| 国产精品无码久久久久2025| 亚洲无线观看久久| 国产日韩精品人妻久久久久色欲网站| 国内精品久久人妻性色av| 日本一区二区不卡精品| 欧美人妻精品| 少妇高潮喷水无套久久久久久| 久久久久久十| 2019天天干天天操| 久久发布国产伦子伦精品| 玖色av| 欧美特大AA级黄片| 91色艳| 51一区二区三区| 51久久夜色精品国产麻豆| 99色色网| 色九九综合AV| 天天操天天射天天日| 东京热激情视频一二三区| 天天超级碰碰碰| 熟女激情综合网| 欧美1727免费观看视频| 风间由美日韩欧美久久| 亚洲h片在线免费观看| 久久人妻丝袜一区二区三| 九九久精品| 国产树林里野战在线看| 啊啊啊啊啊啊啊啊要喷了| 日韩欧美成人性爱在线| 九月婷婷| 欧州激情视频在线一区二区| 中文字幕欧美日韩三级| 亚洲双插| 国产操逼网站亚洲一级黄色| 插入逼91| 秋霞无码av鲁丝片一区| 国产自产91区13区| 秋霞怕怕片| 熟女AV一区| 五月婷婷色色| 中国一级特黄大片护士| 欧美日韩精品久久久久东北老熟妇| 天天做天天爱天天爽| 女欧美一区二三区| 天天影视综合色| 亚洲综合影片| 99热91| 亚洲国产一区二区入口| 国产路线专区| 欧美亚洲宗合色性图| oumeisetu综合| 亚洲AV无码乱码在线观看性色| 91肉片| 91精品国产91熟女| 亚洲欲| 国产乱人妻精品入口| 91九久| 99自拍视频在线观看| 欧美日韩另类激情图片| 18禁超污无遮挡无码免费网| 国产精品suv一区| 国产精品无码AV网站| 日韩91网站| 亚洲大色堂| 久久久久久欧美精品se一二三四| 亚洲成人精品久久久| 自拍偷拍 高清无码| ...日韩成人一区二区三区字幕| 中文字幕精品一区二| 草草影院最新网址| 伊人成人中文字幕久久网| 国产精品久久久亚洲第一牛牛_在线观看 | 欧美人人AAA| 嫩草黄页| 亚洲九区| 亚洲色婷婷久久91| 爱干爱射网啊啊啊| 亚洲国产精品99久久久| 伊人一区二区三区| 一区不卡在线观看av| 人妻熟女一区二区| 国产精品久久久久综合| 97在线视频网站| 欧美性暴力猛交XXXX|