




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
李劍博士,教授,博士生導(dǎo)師網(wǎng)絡(luò)空間安全學(xué)院lijian@January23,2025第三章卷積神經(jīng)網(wǎng)絡(luò)的安全應(yīng)用實踐3-1基于卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)投毒實踐實踐介紹本實踐內(nèi)容主要是在AlexNet模型訓(xùn)練過程中對所使用的訓(xùn)練集進行投毒攻擊(PoisoningAttack),即更改原始標簽,從而降低模型檢測的準確率。1.投毒攻擊概述投毒攻擊是一種對機器學(xué)習(xí)模型的安全攻擊方法,特別是在模型訓(xùn)練階段進行攻擊。在這種攻擊方式中,攻擊者通過故意引入、修改或注入惡意數(shù)據(jù)到訓(xùn)練數(shù)據(jù)集中,試圖影響模型的學(xué)習(xí)過程,使得模型在測試或?qū)嶋H應(yīng)用時表現(xiàn)出預(yù)定的錯誤行為或降低模型的整體性能。2.實踐目的(1)深入理解數(shù)據(jù)投毒攻擊及其對模型的影響(2)了解AlexNet模型結(jié)構(gòu)及其運作原理(3)實踐調(diào)整AlexNet模型參數(shù)以抵抗數(shù)據(jù)投毒(4)可視化訓(xùn)練過程和評估模型性能3.實踐環(huán)境環(huán)境4.實踐步驟第1步:訪問Python官方網(wǎng)站下載并安裝Python3.8.5。4.實踐步驟第2步:安裝實踐環(huán)境。Pytorch1.7.0,numpy1.24.3,matplotlib3.7.2,torchvision0.15.2。在命令行或終端中使用下面指令進行安裝:4.實踐步驟第3步:導(dǎo)入第三方庫。首先設(shè)置和準備使用PyTorch進行深度學(xué)習(xí)項目的環(huán)境,包括導(dǎo)入必要的庫、模塊和數(shù)據(jù)加載器。下面將按照導(dǎo)入第三方庫的順序進行詳細介紹:4.實踐步驟第4步:定義AlexNet的網(wǎng)絡(luò)結(jié)構(gòu)AlexNet這個類特別針對處理MNIST數(shù)據(jù)集進行了調(diào)整,因為原始的AlexNet是為處理227x227像素的圖像而設(shè)計的,而MNIST數(shù)據(jù)集中的圖像大小是28x28像素。4.實踐步驟第5步:定義AlexNet網(wǎng)絡(luò)結(jié)構(gòu)的前向傳播函數(shù)定義了網(wǎng)絡(luò)的前向傳播過程。輸入數(shù)據(jù)x經(jīng)過上述定義的多層卷積層、池化層和ReLU激活函數(shù),然后將卷積層和池化層輸出的特征圖(x)展平為一個一維張量,以便可以輸入到全連接層中得到最終的預(yù)測值。4.實踐步驟第6步:定義數(shù)據(jù)集子集選擇函數(shù)。數(shù)據(jù)集子集選擇函數(shù)的目的是從一個給定的數(shù)據(jù)集(dataset)中隨機選擇一部分數(shù)據(jù)作為子集,并返回這個子集。4.實踐步驟第7步:定義展示正確分類的圖片函數(shù)。展示模型正確分類的圖片,最多展示num_images張。模型的預(yù)測值與標簽匹配時將其存儲并繪制圖像。4.實踐步驟第8步:定義展示錯誤分類的圖片函數(shù)類似于展示正確分類圖片的函數(shù),只是在for循環(huán)中的if判斷不同,所以這里就不過多解釋。4.實踐步驟第9步:定義投毒攻擊函數(shù)投毒攻擊函數(shù)主要目的是從一個完整的數(shù)據(jù)集(full_dataset)中根據(jù)給定的訓(xùn)練集索引(trainset.indices)和投毒比例(ratio)來分割出一個投毒訓(xùn)練集(poison_trainset)和一個干凈的訓(xùn)練集(clean_trainset)。4.實踐步驟第10步:定義投毒比例clean_rate和poison_rate分別表示干凈樣本和投毒樣本的比例。這里設(shè)置為1表示所有樣本為干凈數(shù)據(jù),0表示沒有投毒樣本。這個比例在后續(xù)實驗中會改變數(shù)值進行對比實驗。4.實踐步驟第11步:獲取訓(xùn)練集數(shù)據(jù)主要執(zhí)行了從MNIST數(shù)據(jù)集中獲取訓(xùn)練集,并通過特定方式處理這些訓(xùn)練數(shù)據(jù)以生成帶有投毒樣本(poisonsamples)和干凈樣本(cleansamples)的訓(xùn)練集。4.實踐步驟第12步:獲取測試集數(shù)據(jù)從MNIST數(shù)據(jù)集中獲取測試集,并對這些測試數(shù)據(jù)進行預(yù)處理以生成一個干凈的測試集clean_testset。具體步驟如下:4.實踐步驟第13步:定義數(shù)據(jù)加載器使用torch.utils.data.DataLoader創(chuàng)建一個數(shù)據(jù)加載器,用于在訓(xùn)練過程中批量加載all_trainset中的數(shù)據(jù)。batch_size=64表示每個批次包含64個樣本,shuffle=True表示在每個epoch開始時打亂數(shù)據(jù)。4.實踐步驟第14步:實例化模型首先控制臺輸出一條消息,表明程序開始執(zhí)行一個與模型“投毒”相關(guān)的操作。然后指定訓(xùn)練設(shè)備。如果系統(tǒng)支持CUDA(GPU加速),則使用GPU,否則使用CPU。最后實例化之前定義的AlexNet模型,并將其移動到指定設(shè)備(CPU或GPU)上。4.實踐步驟第15步:選擇模型的損失函數(shù)和優(yōu)化器首先創(chuàng)建了一個交叉熵損失函數(shù)的實例,并將其移動到了指定的設(shè)備上。交叉熵損失是分類任務(wù)中常用的損失函數(shù),它衡量了模型預(yù)測的概率分布與真實標簽的概率分布之間的差異。4.實踐步驟第16步:準備訓(xùn)練,定義訓(xùn)練所需的參數(shù)及列表clean_acc_list用于記錄每個epoch之后的測試集準確率。clean_correct用于記錄模型對干凈測試樣本的正確預(yù)測數(shù)量。隨后設(shè)置訓(xùn)練的epoch數(shù)為2,這個輪次數(shù)在后續(xù)實驗中會修改它的值。最后打開一個名為training_log.txt的文件,用于記錄訓(xùn)練過程中的損失值。4.實踐步驟第17步:開始模型循環(huán)訓(xùn)練在一個深度學(xué)習(xí)訓(xùn)練循環(huán)中,通過迭代訓(xùn)練數(shù)據(jù)集(通過trainset_dataloader提供)來訓(xùn)練一個之前定義好的神經(jīng)網(wǎng)絡(luò)(net)。4.實踐步驟第18步:在循環(huán)體外部測試樣本準確率初始化正確計數(shù),clean_correct置為0,用于記錄模型在干凈樣本上正確預(yù)測的數(shù)量。4.實踐步驟第19步:可視化正確、錯誤分類圖片并關(guān)閉文件調(diào)用之前定義的函數(shù),分別展示模型分類正確和錯誤的樣本圖片。并且關(guān)閉training_log.txt文件。4.實踐步驟第20步:可視化測試結(jié)果。使用Matplotlib庫繪制了一個關(guān)于模型在訓(xùn)練過程中準確率的折線圖。它首先設(shè)置了Matplotlib的一些全局參數(shù),以確保圖表中的字體大小、字體類型以及如何處理Unicode符號都符合需求。5.實踐要求在編程實踐過程中,需要注意以下事項:(1)要求修改投毒樣本的比例,分別為0%,50%,100%,繪制相應(yīng)的線型圖。(2)要求修改投毒策略,例:將原有的標簽修改為該標簽的下一位數(shù)字(0->1,9->0),修改后對比變化。(3)
要求修改Adam優(yōu)化器中的學(xué)習(xí)率,觀察不同學(xué)習(xí)率得到的準確率有何
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品終端配送合同樣本
- 深圳市商業(yè)地產(chǎn)租賃合同
- 學(xué)校與教師簽訂的勞動合同
- 八小時工作制勞動合同模板
- 生態(tài)農(nóng)業(yè)種植技術(shù)服務(wù)合同
- 游泳池常年服務(wù)承包合同范本教學(xué)用
- 農(nóng)用土地租賃合同協(xié)議書
- Module 1 Unit 1 I want a hot dog,please(教學(xué)設(shè)計)2024-2025學(xué)年外研版(三起)英語六年級下冊
- 11 再塑生命的人2024-2025學(xué)年新教材七年級上冊語文新教學(xué)設(shè)計(統(tǒng)編版2024)
- 電競比賽承辦合同范本
- 定量包裝商品培訓(xùn)
- 毛戈平-+毛戈平深度報告:再論毛戈平商業(yè)模式與核心壁壘:個人IP+化妝學(xué)校+線下服務(wù)
- 第二章美容手術(shù)的特點及其實施中的基本原則美容外科學(xué)概論講解
- 山東省濰坊市2024-2025學(xué)年高三上學(xué)期1月期末考試生物試卷含答案
- 2025年“春訓(xùn)”學(xué)習(xí)心得體會例文(3篇)
- 中央2025年公安部部分直屬事業(yè)單位招聘84人筆試歷年參考題庫附帶答案詳解
- 2025年春新外研版(三起)英語三年級下冊課件 Unit4第1課時Startup
- 2025年職業(yè)教案編寫指南:教師技巧
- 人教版(2025新版)七年級下冊數(shù)學(xué)第七章 相交線與平行線 單元測試卷(含答案)
- 2025-2025學(xué)年度第二學(xué)期高二物理教學(xué)計劃
- 幼兒園市級課一等獎-大班語言健康繪本《我的情緒小怪獸》有聲繪本課件
評論
0/150
提交評論