人工智能安全:原理與實踐 課件 第3章 卷積神經(jīng)網(wǎng)絡(luò)的安全應(yīng)用(3.2基于卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)投毒-實踐)_第1頁
人工智能安全:原理與實踐 課件 第3章 卷積神經(jīng)網(wǎng)絡(luò)的安全應(yīng)用(3.2基于卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)投毒-實踐)_第2頁
人工智能安全:原理與實踐 課件 第3章 卷積神經(jīng)網(wǎng)絡(luò)的安全應(yīng)用(3.2基于卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)投毒-實踐)_第3頁
人工智能安全:原理與實踐 課件 第3章 卷積神經(jīng)網(wǎng)絡(luò)的安全應(yīng)用(3.2基于卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)投毒-實踐)_第4頁
人工智能安全:原理與實踐 課件 第3章 卷積神經(jīng)網(wǎng)絡(luò)的安全應(yīng)用(3.2基于卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)投毒-實踐)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論