人工智能安全:原理與實踐 課件匯 李劍 第1-6章 人工智能安全概述- 貝葉斯和SVM分類算法的安全應用_第1頁
人工智能安全:原理與實踐 課件匯 李劍 第1-6章 人工智能安全概述- 貝葉斯和SVM分類算法的安全應用_第2頁
人工智能安全:原理與實踐 課件匯 李劍 第1-6章 人工智能安全概述- 貝葉斯和SVM分類算法的安全應用_第3頁
人工智能安全:原理與實踐 課件匯 李劍 第1-6章 人工智能安全概述- 貝葉斯和SVM分類算法的安全應用_第4頁
人工智能安全:原理與實踐 課件匯 李劍 第1-6章 人工智能安全概述- 貝葉斯和SVM分類算法的安全應用_第5頁
已閱讀5頁,還剩229頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第一章人工智能安全概述人工智能安全簡介本章介紹

本章從經典的兩個人工智能安全案例事件說起,引入人工智能安全的概念及框架,說明了人工智能安全現狀,最后給出了本教材的組織、學習和講授教材的方法。知識與能力目標了解人工智能安全的重要性。認知人工智能安全的概念。掌握人工智能安全的模型。了解這門課的知識體系。了解如何學習這門課程。熟悉這門課的講授方法。內容提綱1.3人工智能安全的架構、風險及應對方法1.2人工智能安全的概念1.1人工智能安全的引入1.4人工智能安全現狀1.1人工智能安全的引入

2016年11月18日,在中國深圳舉辦的“第十八屆中國國際高新技術成果交易會”上,一臺名為“小胖”的機器人引起了很多人的興趣。如圖所示為小胖機器人。1.1人工智能安全的引入小胖機器人原為4-12歲兒童研發,主要用于教育目的。然而在展示的過程中這臺機器人卻突發故障,在沒有任何指令的前提下自行打砸展臺的玻璃,最終導致部分展臺被破壞。更為嚴重的是,該機器人在破壞展臺的過程中還砸傷了一名路人。如圖所示為受傷的路人。該事件大概是國內最早報道的機器人傷害人類的事件。以前類似事件多是在電影電視里才能看到的虛擬場景。從深圳這次安全事件可以看出,人工智能方法自身如果出現問題就可以威脅到人類的安全。1.1人工智能安全的引入當前,人工智能技術應用最具新穎和挑戰性的場景之一就是自動駕駛技術,但是就是這樣一種技術處理不好的話,依然影響著人類的生命安全。例如,2018年3月23日,蘋果公司華裔工程師黃偉倫駕駛特斯拉ModelX在加利福尼亞州山景城附近的高速路上,撞上公路屏障不幸身亡。如圖所示為事故現場。1.1人工智能安全的引入美國國家運輸安全委員會(NTSB)的調查結果顯示,該車禍發生前,這輛特斯拉車的自動駕駛輔助系統被使用了近19分鐘,當時汽車以每小時71英里的速度偏離了高速公路。這場導致駕駛員死亡的車禍明顯是技術問題,而非人為因素。

從這次事件可以看出,就連特斯拉這樣的世界級頂流自動駕駛車企,在面臨人工智能安全問題時,依然會出重大安全問題。由此可見,人工智能技術的應用處理不好,會導致人類的生命受到安全威脅。

以上兩個典型的與人工智能相關的安全事件,一個是人工智能系統自身的安全問題,也稱為人工智能原生安全;另一個是人工智能技術應用出現的安全問題,也稱作人工智能衍生安全。以上兩種安全問題引起了國內外的廣泛討論,人們紛紛提出一個問題:人工智能是否安全呢?內容提綱1.3人工智能安全的架構、風險及應對方法1.2人工智能安全的概念1.1人工智能安全的引入1.4人工智能安全現狀1.2人工智能安全的概念人工智能(ArtificialIntelligence),英文縮寫為AI。它是指通過計算機科學、數學、統計學等多學科交叉融合的方法,開發出模擬人類智能的技術和算法。它通過模擬人類智能的學習、推理、感知和行動能力,實現機器自主的思考和決策,從而完成一系列復雜的任務和功能。人工智能是十分廣泛的科學,包括機器人、語言識別、圖像識別、自然語言處理、專家系統、機器學習,計算機視覺等。

簡單來說,人工智能就是:人類的智慧轉化成的能力!1.2人工智能安全的概念人工智能安全是指通過采取必要措施,防范對人工智能系統的攻擊、侵入、干擾、破壞和非法使用以及意外事故,使人工智能系統處于穩定可靠運行的狀態,以及遵循人工智能以人為本、權責一致等安全原則,保障人工智能算法模型、數據、系統和產品應用的完整性、保密性、可用性、魯棒性、透明性、公平性和隱私的能力。

這個人工智能安全定義是全國信息安全標準化技術委員會在《人工智能安全標準化白皮書(2019年版)》上發布的。以上的對人工智能安全定義只是強調人工智能內在的安全。更廣義上的講,人工智能安全還包括人工智能的應用安全。內容提綱1.3人工智能安全的架構、風險及應對方法1.2人工智能安全的概念1.1人工智能安全的引入1.4人工智能安全現狀1.3人工智能安全的架構、風險及應對方法

1.人工智能安全框架:如圖所示。包含安全目標、安全風險、安全評估和安全保障4大維度。人工智能安全分為4個核心步驟:1.3人工智能安全的架構、風險及應對方法1.人工智能安全架構:第1步:從人工智能的應用安全和人工智能系統自身的安全角度來設立安全目標。第2步:梳理人工智能的原生安全和衍生安全風險。(1)原生安全(也叫內生安全)主要是人工智能系統內在的安全或本身的安全,包括人工智能系統中機器學習框架的安全、數據安全和算法模型的安全等。(2)衍生安全主要是人工智能系統應用到實際生活當中而引起的安全問題。第3步:對人工智能安全現狀進行評估。主要是評估數據、算法、基礎設施和系統應用所面臨的風險程度。第4步:根據安全評估的結果,綜合運用技術和管理相結合的方法保障人工智能系統的安全。原生安全是人工智能技術自身在可解釋性、魯棒性、可控性、穩定性等方面存在的缺陷。衍生安全是人工智能技術在應用的過程中,由于不當使用或外部攻擊造成系統功能失效或錯誤使用。1.3人工智能安全的架構、風險及應對方法2.人工智能安全風險(1)數據安全風險攻擊者利用模型的輸出信息可以開展模型盜取攻擊和訓練數據盜取攻擊。在機器學習模型的訓練和應用過程中,所使用的訓練數據和模型參數都有被泄露的風險。(2)算法模型安全風險針對人工智能深度學習算法提取樣本特征的特點,在不改變深度學習系統模型的前提下,通過構造相關輸入樣本,使系統輸出錯誤的結果來對抗樣本攻擊。這種攻擊可分為躲避攻擊(即非定向攻擊)和假冒攻擊(即定向攻擊)。攻擊者可以通過特定樣本誤導深度學習系統輸出特定的錯誤結果。1.3人工智能安全的架構、風險及應對方法2.人工智能安全風險(3)機器學習框架安全風險人工智能算法基于機器學習框架完成其模型的搭建、訓練和運行。深度學習框架需要依靠于大量的基礎庫和第三方組件支持,組件的復雜度會嚴重降低深度學習框架的安全性。(4)人工智能系統應用安全風險。不當使用、外部攻擊和業務設計安全錯誤等都會引發人工智能系統的應用安全風險。例如,攻擊者可以通過提示詞技術輸入錯誤數據,使人工智能系統自學習到錯誤信息;也可以通過智能終端、應用軟件和設備的漏洞對人工智能系統實施注入攻擊,如以人臉識別系統、智能語音助手、偽造圖像為入口攻擊后臺業務系統。1.3人工智能安全的架構、風險及應對方法2.人工智能安全風險(5)法律風險。人工智能系統在使用過程中可能違反國家的相關法律法規。例如在人臉識別、語音識別、身份認證等領域使用的人工智能技術可能涉及侵犯隱私問題。如果這些個人隱私數據被大量竊取和泄露將會對個人造成嚴重后果,使用的企業和組織也會被判罰款、整頓或停運等。1.3人工智能安全的架構、風險及應對方法3.人工智能安全風險的應對方法(1)建立完善的安全管理制度。三分技術,七分管理,這句話在人工智能安全領域依然適用。在人工智能系統應用過程中,安全管理應該放在首位。(2)人工智能系統風險評估。對每個人工智能系統應用前都要進行風險評估。評估的目的是確定人工智能系統的安全性和可靠性。1.3人工智能安全的架構、風險及應對方法3.人工智能安全風險的應對方法(3)建立應急響應機制。在對人工智能系統進行風險評估之后,必須建立相應的風險應對機制。這些機制主要包括:預警機制。建立合理的預警機制,提前預測和識別風險,限制風險的發展,盡量減小風險帶來的影響。備份機制。對人工智能系統的重要數據進行備份,防止數據丟失,保證系統在出現問題時,依然能順利運行。應急響應機制。不要因為人工智能系統存在安全威脅或可能的隱患而不敢使用它,或者過多地限制使用它。1.3人工智能安全的架構、風險及應對方法3.人工智能安全風險的應對方法(4)加強法律法規的制定和執行。在人工智能系統應用的時候,必須加強法律法規的制定和執行。應該借鑒國外人工智能安全法律法規的經驗,規定人工智能系統的應用和限制條件,以保障企業和個人數據的安全;同時應該明確責任人違反人工智能安全時應承擔的相應處罰。內容提綱1.3人工智能安全的架構、風險及應對方法1.2人工智能安全的概念1.1人工智能安全的引入1.4人工智能安全現狀1.4人工智能安全現狀3.人工智能安全風險的應對方法人工智能的安全性甚至于關乎整個人類的命運。人工智能安全與國家安全緊密相連,世界各國都試圖在該領域占領先機,美國、歐盟、日本等多個國家接連發布相關政策法規加以規制。2024年3月21日,聯合國大會通過了首個關于人工智能安全的全球決議草案,倡議各國合作起來共同開發“安全、可靠和值得信賴的”人工智能系統,為全球各國合作制定并實施人工智能技術和安全應用的標準奠定了堅實基礎。2024年3月13日歐盟通過了《人工智能法案》,2023年10月,美國頒布《關于安全、可靠和值得信賴的人工智能開發和使用的行政命令》,中國也積極參與并倡導全球人工智能治理工作,中國國家網信辦在2023年10月提出《全球人工智能治理倡議》。小結人工智能安全很重要。世界各國都在積極發展人工智能安全技術!感謝同學們的收聽!致謝網絡空間安全學anuary24,2025第一章人工智能安全概述教材的組織、學習和講授方法1.5教材的組織、學習和講授方法由于關于人工智能安全的知識點非常多,本教材只是從實踐應用的角度講述了一些主要的人工智能安全知識。重點是教會學生如何通過Python語言編程的方法來實現一些經典的人工智能安全案例。1.5.1教材的組織教材主要從原理和實踐兩個方向出發編寫知識點,如表所示。這些原理和實踐知識都是當前人工智能安全領域的熱點。1.5.1教材的組織本教材的所有實踐內容如表所示。表中給出了所有實踐編程的題目,以及他們的難度水平。期中1星級最簡單,5星級最難。在做Python實踐編程的時候,教師可以根據實踐內容的偏好和難度級別選擇要做的實踐內容。本教材絕大部分編程實踐內容都可以在普通筆記本電腦上實現。1.5.1教材的組織本教材中所有18個Python編程實踐的內容都提供源代碼(見本教材的網盤)、數據集和相關庫文件。大部分源代碼都可以通過復制粘貼的方式進行編程,核心代碼采用圖片的方式呈現,需要學生自己理解并輸入。本教材的第2個實踐內容“實踐2-2基于對抗性攻擊無數據替代訓練的模型竊取”在運行時,需要大量的運算資源進行訓練,它的難度是5星級。感興趣的同學可以在老師的帶領下在網上購買計算資源再訓練得出實踐結果,或者直接使用本書已經訓練好的模型(詳見本書的網盤)進行實踐,得出實踐結果。本教材的第18個實踐內容“實踐16-1基于圖神經網絡的代碼漏洞檢測”需要在Ubuntu虛擬機上運行,并且需要學習的知識點比較多,它的難度是5星級。學生在做實踐的時候,如果感覺比較困難,可以以不多于4人的團隊形式進行編程實踐。1.5.2教材的學習方法學生在學習本教材的實踐內容時,可以通過以下步驟進行:第1步:學習教材中實踐內容的原理,理解實踐的目的。第2步:下載本教材指定的網盤中的資料,特別是實踐內容的原代碼、庫文件和數據集。第3步:配置編程實踐環境。第4步:按照教材中指定的實踐步驟進行編程實踐,直到最終出現正確的實踐結果。第5步:對實踐內容進行擴展練習,在教材內容基礎上進行更為深入的編程實踐。注意:這一步不是必須的,但是如果有的話,會加分。第6步:按照老師給的實踐報告模板撰寫實踐報告。報告要求如下:(1)對實踐中的原理部分進行更為詳細的描述;(2)報告中需要詳細說明自己的實踐步驟;(3)詳細說明每行代碼的功能作用。第7步:給老師提交報告。1.5.3教材的講授方法老師在輔導學生做編程實踐的時候,可以通過以下步驟進行:第1步:輔導學生在本教材指定的網盤下載實踐所需要的素材,如實踐所需要的數據集、圖像、視頻、模型等。第2步:輔導學生安裝實踐用的實踐環境,主要是Python編程環境和相關的庫文件。第3步:讓學生自己用Python編程實踐。大部分源代碼都可以從下載的文件中獲取并直接復制粘貼,少量核心代碼以圖片的形式出現在下載的文件當中,需要學生自己理解并輸入。第4步:老師給出學生的實踐成績。老師給出成績的標準建議如下:(1)編程實踐結果是否正確。成績在0至60分之間。(2)查看學生對Python編程實踐每行代碼的解釋程度。成績在0分至20分之間。(3)查看學生對于實踐內容是否有擴展。例如學生是否在實踐報告里對于實踐內容的原理部分有更多的篇幅介紹;學生是否在課程實踐內容的基礎上還有其它相關擴展實踐;學生是否在實踐報告后面有自己的心得體會等。此部分成績在0分至20分之間。(4)以上三部分加起來是100分。最后強調本教材的內容僅用于教育和學術交流目的,如果用于非法目的,后果自負。小結如何學習人工智能安全感謝同學們的收聽!致謝第二章生成對抗網絡的安全應用2.1生成對抗網絡原理簡介本章介紹

生成對抗網絡(GenerativeAdversarialNetworks,GANs)是一種非監督學習方法,其通過對抗訓練生成器和判別器兩個神經網絡相互博弈的方式實現。在實踐中講述了兩個實踐案例,一個是基于生成對抗網絡的sin曲線樣本模擬,另一個是基于對抗性攻擊無數據替代訓練的模型竊取。了解生成對抗網絡GANs的原理。掌握生成對抗網絡GANs的訓練步驟。熟悉利用生成對抗網絡模擬sin曲線樣本的方法。認知深度神經網絡。熟悉基于對抗性攻擊無數據替代訓練的模型竊取方法。內容提綱3.生成對抗網絡的應用2.生成對抗網絡原理1.生成對抗網絡概述4.生成對抗網絡的訓練步驟1.生成對抗網絡概述生成對抗網絡GANs是一種用于生成模型的機器學習框架,由IanGoodfellow和他的團隊于2014年提出。GANs由兩個主要組成部分組成:生成器(Generator)和判別器(Discriminator),

生成器:試圖生成與真實數據相似的新樣本。

判別器:則試圖區分生成器生成的樣本和真實數據樣本。內容提綱3.生成對抗網絡的應用2.生成對抗網絡原理1.生成對抗網絡概述4.生成對抗網絡的訓練步驟2.生成對抗網絡原理

GANs的基本原理是通過競爭的方式訓練生成器G和判別器D,以不斷提升生成器生成樣本的質量。生成器接收一個隨機噪聲向量作為輸入,并嘗試生成看起來像真實數據的樣本。判別器則接收生成器生成的樣本和真實數據樣本,并嘗試區分它們。2.生成對抗網絡原理生成器和判別器通過反復迭代的對抗過程進行訓練,其中生成器試圖欺騙判別器,而判別器試圖準確識別生成器生成的樣本。GANs的優點是能夠生成逼真的樣本,無需顯式地定義樣本的概率分布,它們在圖像生成、視頻生成、文本生成等任務上取得了顯著的成果。2.生成對抗網絡原理生成對抗網絡的原理結構如圖所示。生成對抗網絡的目標是要學習到訓練數據的具體分布。為了學習到這個分布,首先定義一個輸入噪聲變量Z,接下來將其映射到數據空間G。這里的G就是一個由多層感知網絡構成的生成模型。此外,定義一個判別器D,用來判斷輸入的數據是來自生成模型還是訓練數據。D的輸出是訓練數據的概率。2.生成對抗網絡原理生成對抗網絡也有各種改進模型:1.條件生成對抗網絡2.深度卷積生成對抗網絡3.半監督生成對抗網絡4.信息生成對抗網絡3.生成對抗網絡的應用生成對抗網絡的應用非常廣泛。以下是一些典型的應用場景:第一,圖像生成。生成對抗網絡可用于生成逼真的人臉或風景等圖像,甚至還可以用于藝術創作和特效圖形生成。GANs能夠學習特定類型的圖像信息分布,如人臉、室內外場景、藝術品等,并生成新圖像,這些新圖像在視覺上與訓練集中的真實圖像難以區分。這種圖像生成能力使GANs成為新藝術品創造、游戲或虛擬環境設計的重要工具。3.生成對抗網絡的應用用收藏齊白石作品(齊白石作品如圖所示)的書畫收藏家和假畫販子的例子來說明。假畫販子相當于是生成器,他們希望能夠模仿大師真跡偽造出以假亂真的假畫,騙過收藏家,從而賣出高價;書畫收藏家(判別器)則希望將贗品和真跡區分開,讓真跡流傳于世。齊白石畫蝦可以說是畫壇一絕,歷來為世人所追捧。3.生成對抗網絡的應用其它應用:圖像修復、視頻生成、自然語言處理、醫學影像、風格轉換、數據增強4.生成對抗網絡的訓練步驟有11步:小結簡單介紹了生成對抗網絡及其應用感謝同學們的收聽!致謝網絡空間安全學院January24,2025第二章生成對抗網絡的安全應用實踐2-1基于生成對抗網絡的sin曲線樣本模擬本章介紹

本實踐內容主要是Python語言編程來實現使用生成對抗網絡模擬sin曲線樣本。本實踐內容是用來完成一個最基本的對抗生成網絡模型,感興趣的學生可以使用其它改進的生成對抗網絡模型來學習。1.實踐目的理解生成對抗網絡GANs的基本原理:通過實現一個簡單的GANs模型,學習GANs的基本概念和工作原理,包括生成器和判別器的角色,生成器生成樣本,判別器評估樣本真實性,以及通過對抗訓練優化GANs模型。熟悉GANs模型的組成部分和結構:通過編寫代碼實現生成器和判別器模型,了解它們的結構和參數設置,以及如何將它們組合成一個完整的生成對抗網絡模型。實踐訓練和優化GANs模型:通過調整超參數、損失函數和優化器等設置,觀察生成器和判別器在訓練過程中的變化,最后通過可視化圖像保存訓練結果,直觀地觀察生成器的學習效果和生成樣本的質量。2.實踐內容生成對抗網絡GANs包含一個生成模型G和一個判別模型D,其流程如圖所示。

本實踐例子要求編寫代碼實現簡單的GANs模型,用于生成偽造樣本。其中真實樣本為二維數據,是x2=sin(x1),x1∈[-3,3]曲線上的隨機點。最終得到2000至8000次迭代中每增加2000次迭代后的樣本散點圖。8000次迭代完成后生成的偽造樣本與真實的正弦函數貼合度很高。3.實踐環境 python版本:3.10.12或以上版本 深度學習框架:tensorflow2.15.0,keras2.15.0

其他庫版本:numpy1.25.2,matplotlib3.7.1

運行平臺:jupyternotebook keras官方文檔:https://keras-zh.readthedocs.io/why-use-keras/ tensorflow中的keras文檔:/guide/keras?hl=zh-cn4.實踐前準備工作每個學生一臺安裝有pycharm或者可以在線運行python(或者jupyternotebook)文件的筆記本電腦,并提供給每個學生樣例代碼。5.實踐步驟(1)導入必要的庫。深度學習程序依賴于這些庫提供的功能和工具。(例如:numpy是Python中基于數組對象的科學計算庫。)5.實踐步驟(2)定義生成器函數。生成器的作用是接收一個潛在向量作為輸入,生成與訓練數據相似的樣本。其目標是產生逼真的樣本,使得判別器無法準確區分生成樣本與真實樣本。生成器可以看作是一個生成模型,通過學習訓練數據的分布特征,生成與之相似的新樣本。5.實踐步驟(3)定義判別器函數。判別器的作用是接收樣本(包括真實樣本和生成器生成的樣本)作為輸入,并預測樣本的真實性。其目標是對樣本進行分類,判斷其是真實的還是生成的。判別器可以看作是一個判別模型,通過學習如何區別真實樣本與生成樣本,并為生成器提供反饋信息,以改善生成樣本的質量。5.實踐步驟(4)定義完整GANs模型。5.實踐步驟(5)編寫函數用于生成真實樣本。5.實踐步驟(6)編寫函數用于在隱空間中生成隨機點。隱空間,即潛在空間,是生成模型中用于表示數據的低維空間。在這個空間中,數據的特征被壓縮,模型可以更容易地生成新樣本。隱空間中的每個點通常對應于一個潛在的樣本,通過解碼可以還原為實際的數據。通過在潛在空間中采樣不同的點作為生成器的輸入數據,可以生成多樣化的數據樣本。5.實踐步驟(7)編寫函數令生成器使用隱空間點生成偽造樣本。5.實踐步驟(8)編寫函數用于評估判別器的性能并繪制結果。目的是在每個迭代結束時評估判別器的性能,并可視化真實樣本和偽造樣本的分布情況。5.實踐步驟(9)編寫訓練函數。函數的目的是通過交替訓練生成器和判別器來訓練生成對抗網絡模型。通過不斷優化生成器和判別器的參數,使得生成器能夠生成更逼真的偽造樣本,同時判別器能夠更準確地區分真實樣本和偽造樣本。通過調用性能評估函數,可以觀察模型在訓練過程中的性能變化,并可視化生成的樣本。5.實踐步驟10.訓練模型生成結果。所有函數編寫完成后,按照題目要求設置所有常數,包括樣本維度,隱空間維度,一批樣本的數量,迭代次數等。創建生成器,判別器,并進一步創建GANs模型,調用訓練函數訓練模型并保存各階段的生成器生成樣本的效果。6.實踐結果運行程序,迭代8000次,得到如下結果:判別器在真實樣本上的準確率為53%,而在偽造樣本上的準確率為58%。6.實踐結果隨著迭代次數增加,生成器和判別器逐漸優化自己的網絡,使得生成的樣本與真實樣本的重合度提高。雙方達到動態平衡時,判別器準確率接近50%,相當于隨機猜測。進一步實驗表明,增加迭代次數和隱空間維度并不總是能夠提高模型性能,反而可能導致過擬合。因此,在調整參數時需謹慎,避免盲目增加參數導致模型性能下降。7.參考代碼本節實踐內容的Python語言源代碼見教材的網盤。小結實踐2-1基于生成對抗網絡的sin曲線樣本模擬感謝同學們的收聽!致謝網絡空間安全學院January24,2025第二章生成對抗網絡的安全應用實踐2-2基于對抗性攻擊無數據替代訓練的模型竊取本章介紹本實踐內容主要是利用專門設計的生成對抗網絡GANs來訓練替代模型,從而對目標模型進行竊取。本實踐的難度較大,主要困難在于需要大量的算力資源,感興趣的同學可以自己購買算力資源進行實踐。如果沒有條件,可以使用本教材提供的已經訓練好的模型進行實踐(詳見本教材網盤)。1.實踐概述本實踐使用了一種無數據替代訓練方法(DaST),無需任何真實數據即可獲得對抗性黑盒攻擊的替代模型。為了實現這一目標,DaST利用專門設計的生成對抗網絡(GANs)來訓練替代模型。特別是,為生成模型設計了多分支架構和標簽控制損失,以處理合成樣本分布不均勻的問題。然后,替代模型通過生成模型生成的合成樣本進行訓練,這些樣本隨后由被攻擊模型進行標記。實踐表明,DaST生成的替代模型與使用相同訓練集(被攻擊模型的訓練集)訓練的基線模型相比,可以達到具有競爭力的表現。此外,為了評估所提方法在實際任務中的實用性,本實踐內容設計攻擊了MicrosoftAzure平臺上的在線機器學習模型。該遠程模型對偽造的98.35%的對抗樣本進行了錯誤分類。1.實踐概述本實踐內容主要是對抗性無數據模仿,它主要涉及對抗性輸入的生成和利用,這是一種專門設計的輸入,旨在確保被誤分類以躲避檢測。它的流程如圖所示:3.對抗性攻擊對抗性攻擊就是通過對抗性例子來攻擊神經網絡。根據對抗性攻擊的特點和攻擊效果,對抗性攻擊可分為黑盒攻擊和白盒攻擊、單步攻擊和迭代攻擊、目標攻擊和非目標攻擊、特定擾動和通用擾動等。本實踐主要涉及到以下兩種攻擊:1.白盒攻擊:攻擊者可以獲得目標模型的完整結構和參數,包括訓練數據、梯度信息和激活函數等。

2.黑盒攻擊:攻擊者無法訪問深度神經網絡模型,從而無法獲取模型結構和參數,只能通過將原始數據輸入到目標模型中來獲取目標模型的輸出結果,并根據結果來想方設法進行攻擊。4.對抗性生成器-分類器訓練使用無數據替代訓練(DaST)方法進行對抗生成器-分類器訓練的過程不需要任何真實數據,主要通過生成模型??來創造合成訓練數據,以此來訓練替代模型??。具體步驟如下:1.生成合成數據:生成模型??從輸入空間隨機采樣噪聲向量??,并生成數據。2.模型訓練:生成的數據被用來探測被攻擊模型??的輸出。替代模型??則使用這些由??生成的數據和??的輸出作為訓練對來進行訓練。3.目標和損失函數:生成模型??的目標是創造出能夠探索??與??之間差異的新樣本,而??的目標是模仿??的輸出。4.標簽控制的數據生成:為了解決生成的樣本分布不均勻和類別單一的問題,實踐設計了一個多分支架構和標簽控制損失,使得生成模型??能夠產生具有隨機標簽的合成樣本。5.標簽可控的數據生成這種方法允許生成模型(G)產生帶有隨機標簽的合成樣本,這些標簽是被攻擊模型(T)賦予的。核心思想是通過多分支架構和標簽控制損失(label-controlloss),來改善合成樣本的分布不均勻問題。具體步驟如下:1.多分支架構:2.標簽控制損失3.訓練過程4.模型優化6.實踐目的1.驗證DaST方法的有效性2.評估不同模型架構的影響3.實踐在現實世界任務中的實用性4.探索無數據訓練的潛力5.提高對抗樣本的轉移性7.實踐環境 Python版本:3.9或者更高的版本 Pytorch1.11.0 Cuda:11.3.1 GPU:A40(AUTODL云服務器,若無條件,可直接對本地已訓練好的模型進行評估)

所需安裝庫:numpy1.21.5,matplotlib3.4.3,pyqt55.15.2

數據集:MNIST、CIFAR-108.實踐過程第1步:訪問Python官方網站下載Python3.9。選擇相應的Windows安裝程序(32位或64位)。下載后,運行安裝程序并遵循安裝向導,勾選“AddPython3.8toPATH”選項并點擊InstallNow,如圖所示。8.實踐過程第2步:安裝實踐環境。安裝numpy1.24.2,pyqt55.15.1,matplotlib3.7.1,在命令行或終端中使用下面指令進行安裝。8.實踐過程第3步:編寫相關代碼并運行,構建三個神經網絡模型。8.實踐過程第4步:模型訓練和測試8.實踐過程第5步:評估神經網絡模型在不同對抗性攻擊方法下的表現。8.實踐過程第6步:通過命令行執行程序。9.實踐結果實踐結果。9.實踐結果模型準確率和攻擊成功率。9.實踐結果竊取結果。小結本實踐內容采用了一種無數據的DaST方法來訓練對抗攻擊的替代模型。DaST利用GANs生成合成樣本,減少了對抗性替代攻擊的先決條件。這是一種不需要任何真實數據就可以訓練替代模型的方法。這表明機器學習系統存在很大的風險,攻擊者可以訓練替代模型,即使真實的輸入數據很難收集。所提出的DaST不能單獨生成對抗樣本,它應該與其他基于梯度的攻擊方法一起使用。感謝同學們的收聽!致謝第三章卷積神經網絡的安全應用3.1卷積神經網絡原理介紹本章介紹

卷積神經網絡(ConvolutionalNeuralNetworks,CNN)是人工智能中使用最為普遍的機器學習模型之一。本章簡要講述卷積神經網絡CNN的原理和它的實踐應用。在實踐案例中主要講述了三個經典案例:第一個是基于卷積神經網絡的數據投毒攻擊;第二個是基于卷積神經網絡的人臉活體檢測;最后一個是基于卷積神經網絡的驗證碼識別。1.神經網絡

神經網絡是一種受大腦神經元結構啟發而來的數學模型。它由大量的節點神經元和連接這些節點神經元的邊突出組成。每個節點可以接收輸入信息,通過激活函數處理這些信息,并將處理后的信息傳遞給其他節點。神經網絡通過調整這些節點之間的連接權重來學習數據的特征。2.卷積神經網絡概述卷積神經網絡是一種特殊的神經網絡。它在處理圖像數據時引用了卷機操作。卷機操作是一種數學運算,可以將輸入圖像與卷積核進行卷積,從而提取圖像的局部特征。卷積神經網絡CNN是一種在深度學習領域內廣泛使用的神經網絡架構。它特別適用于處理圖像和視頻數據。CNN通過模擬人類視覺系統的工作原理,能夠從圖像中自動學習和識別復雜的特征和模式。這種網絡由多個層組成,每一層都對輸入數據執行不同的操作,從而逐步提取和抽象數據的特征,用于分類、識別和處理視覺信息。CNN在許多領域都有出色的表現,尤其是在圖像識別、面部識別、物體檢測、醫學圖像分析以及自然語言處理等任務中。2.卷積神經網絡概述神經網絡模型訓練過程:3.卷積神經網絡核心組件卷積神經網絡的核心組件共有四個,分別是:卷積層、激活層、池化層和全鏈接層,如圖所示。3.卷積神經網絡核心組件(1)卷積層(ConvolutionalLayer)卷積層是CNN的基礎。它使用卷積運算對輸入圖像進行特征提取。卷積層通過將一個小的濾波器(也稱為卷積核)在輸入圖像上滑動,并對每個位置的局部區域進行卷積操作來提取特征。這種局部連接和權值共享的方式使得CNN能夠有效地捕捉圖像中的局部模式和結構。3.卷積神經網絡核心組件

(1)激活層(ActivationLayer)

激活層主要是激活函數,在神經網絡中扮演重要角色,它引入非線性變換,增加網絡的表達能力,解決線性不可分問題,并確保梯度傳播的有效性。激活函數的選擇和設計需考慮計算效率,以提高模型的訓練和推理速度。3.卷積神經網絡核心組件(3)池化層(PoolingLayer)

池化層用于減小特征圖的尺寸并保留關鍵信息。常用的池化操作是最大池化,它從局部區域中選擇最大值作為代表性特征。池化層的作用是降低特征圖的空間維度,減少參數量,同時具備一定的平移不變性。3.卷積神經網絡核心組件

(4)全連接層(FullyConnectedLayer)

全連接層用于將卷積層和池化層提取的特征映射轉化為最終的輸出。全連接層中的每個神經元都與前一層的所有神經元相連,通過學習權重和偏置來進行特征的組合和分類。全連接層用于將之前各層提取的特征整合起來,并進行分類或回歸等任務。每個神經元與上一層的所有神經元相連,形成了一個全連接的結構。4.AlexNet模型

AlexNet模型卷積神經網絡的一種。它是由AlexKrizhevsky、IlyaSutskever和GeoffreyHinton在2012年提出的。它在ImageNet圖像識別競賽(ILSVRC2012)中取得了巨大的成功,標志著深度學習在計算機視覺領域的突破。AlexNet是第一個展示了深度學習在大規模圖像數據集上卓越性能的模型,對后續神經網絡的設計產生了深遠的影響。6.MNIST數據集MNIST數據集來自美國國家標準與技術研究所。訓練集(trainingset)來自由250個不同人手寫的數字組成,其中50%是高中學生,50%來自人口普查局(theCensusBureau)的工作人員。測試集(testset)也是同樣比例的手寫數字數據。人工智能領域大佬YannLeCun利用MNIST做過測試。他首次提出了CNN神經網絡的概念,并且用神經網絡實現了MNIST數字識別的算法。

MNIST數據集下載地址:http://yann./exdb/mnist/。數據集分為訓練集和測試集,訓練集有60000條數據,測試集有10000條數據,每一條數據都是由785個數字組成,數值大小在0-255之間,第一個數字代表該條數據所表示的數字,后面的784個數字可以形成28×28的矩陣,每一個數值都對應該位置的像素點的像素值大小,由此形成了一幅像素為28×28的圖片。小結本章從神經網絡的概念入手,講述如何利用卷積神經網絡CNN進行相關的人工智能安全實踐。還講解了AlexNet和VGG模型,以及本章要用的MNIST數據集。感謝同學們的收聽!致謝網絡空間安全學院January24,2025第三章卷積神經網絡的安全應用實踐3-1基于卷積神經網絡的數據投毒實踐實踐介紹本實踐內容主要是在AlexNet模型訓練過程中對所使用的訓練集進行投毒攻擊(PoisoningAttack),即更改原始標簽,從而降低模型檢測的準確率。1.投毒攻擊概述投毒攻擊是一種對機器學習模型的安全攻擊方法,特別是在模型訓練階段進行攻擊。在這種攻擊方式中,攻擊者通過故意引入、修改或注入惡意數據到訓練數據集中,試圖影響模型的學習過程,使得模型在測試或實際應用時表現出預定的錯誤行為或降低模型的整體性能。2.實踐目的(1)深入理解數據投毒攻擊及其對模型的影響(2)了解AlexNet模型結構及其運作原理(3)實踐調整AlexNet模型參數以抵抗數據投毒(4)可視化訓練過程和評估模型性能3.實踐環境環境4.實踐步驟第1步:訪問Python官方網站下載并安裝Python3.8.5。4.實踐步驟第2步:安裝實踐環境。Pytorch1.7.0,numpy1.24.3,matplotlib3.7.2,torchvision0.15.2。在命令行或終端中使用下面指令進行安裝:4.實踐步驟第3步:導入第三方庫。首先設置和準備使用PyTorch進行深度學習項目的環境,包括導入必要的庫、模塊和數據加載器。下面將按照導入第三方庫的順序進行詳細介紹:4.實踐步驟第4步:定義AlexNet的網絡結構AlexNet這個類特別針對處理MNIST數據集進行了調整,因為原始的AlexNet是為處理227x227像素的圖像而設計的,而MNIST數據集中的圖像大小是28x28像素。4.實踐步驟第5步:定義AlexNet網絡結構的前向傳播函數定義了網絡的前向傳播過程。輸入數據x經過上述定義的多層卷積層、池化層和ReLU激活函數,然后將卷積層和池化層輸出的特征圖(x)展平為一個一維張量,以便可以輸入到全連接層中得到最終的預測值。4.實踐步驟第6步:定義數據集子集選擇函數。數據集子集選擇函數的目的是從一個給定的數據集(dataset)中隨機選擇一部分數據作為子集,并返回這個子集。4.實踐步驟第7步:定義展示正確分類的圖片函數。展示模型正確分類的圖片,最多展示num_images張。模型的預測值與標簽匹配時將其存儲并繪制圖像。4.實踐步驟第8步:定義展示錯誤分類的圖片函數類似于展示正確分類圖片的函數,只是在for循環中的if判斷不同,所以這里就不過多解釋。4.實踐步驟第9步:定義投毒攻擊函數投毒攻擊函數主要目的是從一個完整的數據集(full_dataset)中根據給定的訓練集索引(trainset.indices)和投毒比例(ratio)來分割出一個投毒訓練集(poison_trainset)和一個干凈的訓練集(clean_trainset)。4.實踐步驟第10步:定義投毒比例clean_rate和poison_rate分別表示干凈樣本和投毒樣本的比例。這里設置為1表示所有樣本為干凈數據,0表示沒有投毒樣本。這個比例在后續實驗中會改變數值進行對比實驗。4.實踐步驟第11步:獲取訓練集數據主要執行了從MNIST數據集中獲取訓練集,并通過特定方式處理這些訓練數據以生成帶有投毒樣本(poisonsamples)和干凈樣本(cleansamples)的訓練集。4.實踐步驟第12步:獲取測試集數據從MNIST數據集中獲取測試集,并對這些測試數據進行預處理以生成一個干凈的測試集clean_testset。具體步驟如下:4.實踐步驟第13步:定義數據加載器使用torch.utils.data.DataLoader創建一個數據加載器,用于在訓練過程中批量加載all_trainset中的數據。batch_size=64表示每個批次包含64個樣本,shuffle=True表示在每個epoch開始時打亂數據。4.實踐步驟第14步:實例化模型首先控制臺輸出一條消息,表明程序開始執行一個與模型“投毒”相關的操作。然后指定訓練設備。如果系統支持CUDA(GPU加速),則使用GPU,否則使用CPU。最后實例化之前定義的AlexNet模型,并將其移動到指定設備(CPU或GPU)上。4.實踐步驟第15步:選擇模型的損失函數和優化器首先創建了一個交叉熵損失函數的實例,并將其移動到了指定的設備上。交叉熵損失是分類任務中常用的損失函數,它衡量了模型預測的概率分布與真實標簽的概率分布之間的差異。4.實踐步驟第16步:準備訓練,定義訓練所需的參數及列表clean_acc_list用于記錄每個epoch之后的測試集準確率。clean_correct用于記錄模型對干凈測試樣本的正確預測數量。隨后設置訓練的epoch數為2,這個輪次數在后續實驗中會修改它的值。最后打開一個名為training_log.txt的文件,用于記錄訓練過程中的損失值。4.實踐步驟第17步:開始模型循環訓練在一個深度學習訓練循環中,通過迭代訓練數據集(通過trainset_dataloader提供)來訓練一個之前定義好的神經網絡(net)。4.實踐步驟第18步:在循環體外部測試樣本準確率初始化正確計數,clean_correct置為0,用于記錄模型在干凈樣本上正確預測的數量。4.實踐步驟第19步:可視化正確、錯誤分類圖片并關閉文件調用之前定義的函數,分別展示模型分類正確和錯誤的樣本圖片。并且關閉training_log.txt文件。4.實踐步驟第20步:可視化測試結果。使用Matplotlib庫繪制了一個關于模型在訓練過程中準確率的折線圖。它首先設置了Matplotlib的一些全局參數,以確保圖表中的字體大小、字體類型以及如何處理Unicode符號都符合需求。5.實踐要求在編程實踐過程中,需要注意以下事項:(1)要求修改投毒樣本的比例,分別為0%,50%,100%,繪制相應的線型圖。(2)要求修改投毒策略,例:將原有的標簽修改為該標簽的下一位數字(0->1,9->0),修改后對比變化。(3)

要求修改Adam優化器中的學習率,觀察不同學習率得到的準確率有何不同。(4)要求按照準確率線型圖的標準,繪制損失函數的線型圖,橫坐標為訓練輪數(epoch),縱坐標為損失值。(5)(拓展)修改epoch尋找最優模型。6.實踐結果實踐結果:小結本實踐內容講述如何使用卷積神經網絡來實現數據投毒。祝同學們學習進步!致謝網絡空間安全學院January24,2025第三章卷積神經網絡的安全應用實踐3-2基于卷積神經網絡的人臉活體檢測本實踐介紹傳統的人臉識別方法通常只依賴于靜態的人臉圖像進行識別。這種技術方法容易受到欺騙,例如使用照片、視頻或面具等進行偽造。為了解決這個問題,人臉活體檢測技術(FaceLivenessDetection)應運而生。本實踐內容講述如何使用卷積神經網絡來實現人臉的活體檢測。1.人臉活體檢測概述它的主要目的是防止攻擊者使用靜態圖像或非真實人臉進行欺騙,以提高人臉識別系統的安全性和準確性。人臉活體檢測的常見方法如下:1.眨眼檢測(BlinkDetection)2.姿態檢測(PoseDetection)3.紅外活體檢測(InfraredLivenessDetection)4.活體反饋檢測(LiveFeedbackDetection)2.人臉活體檢測的應用?VGG模型(VisualGeometryGroupNetwork)是由牛津大學的視覺幾何組在2014年提出的深度卷積神經網絡(CNN)模型,主要應用于圖像分類和識別任務。?VGG模型在ImageNet大規模視覺識別競賽(ILSVRC)中獲得了圖像分類任務的第二名,第一名是GoogLeNet。VGG模型以其簡潔和一致的結構著稱,主要使用小型3x3的卷積核和2x2的最大池化層。?人臉活體檢測有很多應用場景,下面是一些典型的應用:身份認證安防監控網絡安全3.實踐目的1.理解VGG模型結構及其運作原理。研究VGG模型的網絡結構,包括其卷積層、激活函數、池化層和全連接層的設計和作用。2.設計卷積神經網絡訓練流程。3.理解人臉活體檢測的基本原理,完成程序設計。4.實踐架構架構5.實踐環境 python版本:3.8或更高版本 深度學習框架:TensorFlow2.4.1

其他庫版本:imutils0.5.4Keras2.4.3h5py2.10.0sklearn0.0 opencv-python8

運行平臺:VSCode6.實踐過程1.導入庫文件requirements.txt。2.編寫模型文件model.py。該文件使用Keras庫構建了一個名為MiniVGG的卷積神經網絡(CNN)模型。該模型主要用于圖像分類任務,接收特定尺寸和深度的圖像作為輸入,并輸出屬于不同類別的概率。3.編寫訓練文件train.py。4.編寫工具文件utils.py。7.實踐結果結果real,fake8.參考代碼本節實踐內容的Python語言參考源代碼見本教材的網盤。小結本實踐內容講述如何使用卷積神經網絡來實現人臉的活體檢測。祝同學們學習進步!致謝網絡空間安全學院January24,2025第三章卷積神經網絡的安全應用實踐3-3基于卷積神經網絡的驗證碼識別本實踐介紹本小節介紹如何使用卷積神經網絡技術對身份驗證時使用的驗證碼進行識別。1.驗證碼識別介紹

驗證碼通過要求用戶輸入一組從圖像中顯示的字符、識別圖像中的對象或解決簡單的邏輯題,以此來證明用戶是真實的人類而非自動化程序。這些字符或圖像通常會以一種對計算機識別算法構成挑戰的方式展示,例如字符扭曲、遮擋、不同字體和顏色、復雜背景以及噪聲等。如圖所示為使用驗證碼進行身份識別的例子。1.驗證碼識別介紹驗證碼主要可分為以下四類:1.文本驗證碼2.圖像識別驗證碼3.音頻驗證碼4.邏輯或問題解答驗證碼2.實踐目的本小節實踐的目的如下:1.結合驗證碼識別具體特點,自主設計適合的CNN訓練模型,加深對深度學習神經網絡的理解。2.設計卷積神經網絡訓練流程。3.理解驗證碼識別的基本原理,完成程序設計。3.驗證碼識別實踐框架本小節實踐4.實踐環境 python版本:3.8-3.12

庫版本:torch:2.2.1;tqdm:4.66.2;captcha:0.5.0;torchvision:0.17.1

運行平臺:VSCode5.實踐過程第1步:定義CNN模型定義一個名為mymodel的函數,用于構建一個基于CNN網絡結構的小型卷積神經網絡模型。5.實踐過程第2步:編寫圖片生成程序5.實踐過程第3步:編寫預處理程序5.實踐過程第4步:編寫獨熱編碼向量與文本轉換函數5.實踐過程第5步:編寫訓練程序5.實踐過程第6步:編寫預測程序6.實踐結果1.使用訓練好的模型對測試集預測并給出正確率。運行predict.py,測試訓練好的模型的性能情況。6.實踐結果從上述驗證碼識別結果可以得到,模型正確率達到了84.80%,表明模型在識別驗證碼方面表現相當出色。在具體錯誤樣本中,可以看到預測值與實際值往往只有一到兩個字符的差異,例如“zmfp”預測為“zmn”,“zhco”預測為“zhon”。這種錯誤通常表明模型在某些字符上可能存在混淆,可能是由于字符形態相似或者噪音影響導致的。小結本實踐內容講述如何使用卷積神經網絡來實現驗證碼識別。祝同學們學習進步!致謝第4章對抗樣本生成算法的安全應用4.1對抗樣本生成算法原理介紹本章介紹

對抗樣本生成算法主要用于生成能夠欺騙機器學習模型的輸入樣本。這些算法通過在原始輸入數據中添加微小的、難以察覺的擾動,使得模型做出錯誤的預測。

本章介紹如何使用對抗樣本生成算法高效生成對抗樣本,并將其應用于圖形對抗當中,欺騙所使用的神經網絡,使其做出與正確答案完全不同的判定。本章將編程實踐兩個經典的對抗樣本生成算法FastGradientSignMethod(FGSM)算法和ProjectedGradientDescent(PGD)算法。1.對抗樣本生成攻擊在人工智能,特別是深度學習領域,神經網絡模型的應用已經深入各個領域,如圖像識別、語音處理、自動駕駛等。然而,研究表明,這些看似強大的模型實際上對某些精心設計的輸入非常脆弱。對抗樣本生成攻擊(AdversarialAttack)是通過在輸入數據上施加細微擾動,使模型產生錯誤預測的一類攻擊手段。這種攻擊表面上看起來無害,但可以導致系統崩潰、誤分類,甚至產生嚴重的安全隱患,例如在自動駕駛場景中,對抗樣本可能導致車輛錯誤地識別交通標志。1.對抗樣本生成攻擊對抗樣本生成攻擊的一般工作流程如圖所示。這里使用的經典案例來源于首次系統研究對抗樣本的論文,展示了通過添加微小的噪聲使得神經網絡將熊貓誤分類為長臂猿。2.對抗樣本生成算法對抗樣本生成算法的核心思想是通過在原始數據上添加微小的擾動,使得機器學習模型對修改后的數據做出錯誤的判斷。常見的對抗樣本生成算法包括快速梯度符號方法(FGSM)、基本迭代方法(BIM)、投影梯度下降(PGD)、Carlini&Wagner(C&W)攻擊等。

1.快速梯度符號方法(FGSM)由于白盒攻擊已知模型內部的結構和參數,所以最直接有效的白盒攻擊算法即:對模型輸入的梯度進行一定限度的擾動(因為不能讓圖片有太大變化),使得擾動后的損失函數最大。2.對抗樣本生成算法

2.投影梯度下降(PGD)PGD攻擊算法是FSGM的變體,它即是產生對抗樣本的攻擊算法,也是對抗訓練的防御算法。當我們面對一個非線性模型,僅僅做一次迭代,方向是不一定完全正確的,所以在這種情況下顯然不能認為FGSM一步的操作就可以達到最優解。PGD算法可以在之前的算法基礎上多次迭代,以此找到范圍內最強的對抗樣本。在PGD中,攻擊者會多次小幅度地調整輸入,每次調整都會沿著當前對抗樣本的損失梯度的方向進行,然后將擾動后的樣本投影回允許的擾動空間內。小結本小節主要介紹對抗樣本生成算法的基本知識,以及對抗樣本生成算法在圖形對抗中的應用。祝同學們學習進步!致謝網絡空間安全學院January24,2025第4章對抗樣本生成算法的安全應用實踐4-1基于對抗樣本生成算法的圖像對抗本實踐介紹本實踐內容主要是利用對抗樣本生成算法進行圖像對抗。實踐中使用簡單的卷積神經網絡模型實現,模型主要用于對28*28像素的灰度圖數字圖片進行識別。使用MNIST數據集進行驗證和性能測試。在攻擊過程中,使用FGSM算法進行攻擊;在拓展實驗中,使用PGD算法進行攻擊。1.圖像對抗對抗樣本是向原始樣本中加入一些人眼無法察覺的噪聲,這樣的噪聲不會影響人類的識別,但是卻很容易欺騙所使用的神經網絡,使其做出與正確答案完全不同的判定。

圖像對抗主要是在圖像識別系統當中,加入對抗樣本生成算法生成的噪音數據,從而使得圖像識別算法在識別圖像的訓練當中,給出錯誤的判定。圖像對抗的研究揭示了深度學習模型在面對精心設計的對抗數據時可能存在的漏洞,這對于圖像識別的安全應用(如自動駕駛、面部識別系統)尤為重要。2.實踐步驟圖像對抗的一般步驟如圖所示3.實踐目的1.理解圖像對抗的基本原理:通過學習圖像對抗的基本原理,研究深度學習模型(尤其是用于圖像識別的模型)對微小擾動的敏感性,了解模型的潛在脆弱性。2.熟悉生成對抗樣本的算法及實現:通過具體學習FGSM算法和實現代碼,從原理上了解對抗樣本生成的一般方法,理解算法的特點及應用場景。3.比較和分析不同算法的攻擊效能:通過動手實現PGD算法,比較FGSM和PGD算法在不同epsilon設置下的攻擊效果差異,直觀地了解不同對抗攻擊算法的性能,以及如何評估和優化對抗樣本的質量。4.實踐環境 python版本:3.10.12或更高版本 深度學習框架:torch2.2.1+cu121,torchvision0.17.1+cu121

其他庫版本:numpy1.25.2,matplotlib3.7.1

運行平臺:jupyternotebook(googlecolaboratory)5.FGSM算法生成數字灰度圖對抗樣本實驗中的被攻擊模型為pytorch/examples/mnist訓練的MNIST模型,是PyTorch官方提供的一個示例項目,本實驗提供可以本地讀取的預訓練模型,主要用于對28*28像素的灰度圖數字圖片進行識別。使用的對抗樣本生成算法為FGSM,epsilon參數選取0.05為步長、0到0.3范圍內的所有值。第1步:定義被攻擊的白盒神經網絡。5.FGSM算法生成數字灰度圖對抗樣本第2步:定義前向傳播函數。前向傳播函數主要定義了神經網絡中各層是如何連接的。5.FGSM算法生成數字灰度圖對抗樣本第3步:模型及數據庫導入。將本地的模型加載到定義好的神經網絡實例上,并讀取相關數據集用于后面的攻擊。5.FGSM算法生成數字灰度圖對抗樣本第4步:定義FGSM攻擊函數5.FGSM算法生成數字灰度圖對抗樣本第5步:定義測試函數測試函數主要是利用攻擊函數生成攻擊樣本,并輸入模型整理分類的正確率,并保存部分原始樣本和部分對抗樣本。5.FGSM算法生成數字灰度圖對抗樣本第6步:遍歷數據集5.FGSM算法生成數字灰度圖對抗樣本第7步;繪制圖像繪制模型準確率隨ε變化的折線圖。5.FGSM算法生成數字灰度圖對抗樣本結果:部分原樣本圖和部分噪聲引入導致模型分類錯誤的實例圖6.PGD算法生成數字灰度圖對抗樣本編寫代碼實現PGD算法對上述相同模型的攻擊,相比于上一個實驗,不同點在于需要修改對應的測試函數,整理攻擊效果,包括模型準確率和部分原樣本和對抗樣本。第1步:修改攻擊函數。第2步:繪制FGSM和PGD攻擊的對比折線曲線。第3步:繪制PGD算法下的部分樣本展示圖。6.PGD算法生成數字灰度圖對抗樣本部分原樣本圖和部分噪聲引入導致模型分類錯誤的實例圖小結對抗樣本生成算法在圖形對抗中的應用。祝同學們學習進步!致謝第5章隨機森林算法的安全應用5.1隨機森林算法原理簡介本章介紹隨機森林(RandomForest)是一種集成學習算法,通過構建多棵決策樹并結合它們的預測結果,提升模型的準確性和魯棒性。本章主要學習的基礎知識是隨機森林(RandomForest)算法,也是一種主要的機器學習算法之一。在此基礎上實踐一個基于隨機森林算法的圖像去噪安全應用系統。。1.隨機森林算法的概念

隨機森林是一種由LeoBreiman和AdeleCutler在2001年提出的集成學習方法。隨機森林算法既可以用于分類任務,也適用于回歸問題。隨機森林通過引入隨機樣本和隨機特征選擇來構建不同的決策樹,增加模型的多樣性,從而有效減少過擬合風險,特別在處理高維度特征和噪聲數據時表現優異。2.隨機森林算法的原理隨機森林算法的基本思想是通過“隨機化”和“集成”的策略來提升單棵決策樹的表現,最終構建出一個更加穩健的模型。隨機森林是由多棵決策樹組成的集成模型,每棵樹的構建過程都基于隨機樣本和隨機特征,使得各決策樹在訓練過程中彼此獨立,從而提升整體模型的泛化能力。模型的輸出是通過多數投票法(分類任務)或平均法(回歸任務)來生成最終的預測結果。隨機森林算法通過以下兩個關鍵策略來實現“隨機化”:1.數據集隨機化(Bagging)2.特征隨機化3.隨機森林算法的工作流程隨機森林算法的一般工作流程如下:1.選擇樣本2.隨機特征選擇3.構建多棵決策樹4.聚合結果4.隨機森林算法的優缺點隨機森林算法的優點如下:(1)高準確率:通過集成多個決策樹來減少過擬合,提高模型的預測準確性。(2)抗過擬合能力強:相比于單一的決策樹,隨機森林更不容易過擬合。(3)能夠處理高維數據,且不需要進行特征選擇。(4)能夠評估特征的重要性,為特征選擇提供直觀的指導。(5)適用性廣泛:可以應用于分類和回歸任務,同時也能處理缺失數據。4.隨機森林算法的優缺點隨機森林算法的缺點如下:1.高計算成本:2.模型解釋性差3.多數類偏向小結本小節主要介紹隨機森林的相關知識要點。主要包括隨機森林算法的概念、原理、工作流程等。祝同學們學習進步!致謝網絡空間安全學院January24,2025第5章隨機森林算法的安全應用實踐5-1基于隨機森林算法的圖像去噪本章介紹本實踐探究基于隨機森林算法的圖像去噪方法,以提高圖片的質量和可讀性,為文本分析、信息提取和自然語言處理等任務提供更好的基礎支持。1.圖像去噪介紹(1)圖像噪聲圖像噪聲是圖像中存在的任何不期望的或多余的信息,它會干擾圖像的視覺質量。(2)常見的圖像噪聲高斯噪聲椒鹽噪聲泊松噪聲量化噪聲(3)圖像去噪技術傳統的圖像去噪技術主要包括:平均濾波,高斯濾波,中值濾波。1.圖像去噪介紹基于機器學習的圖像去噪技術主要包括:(1)基于神經網絡的圖像去噪:通過訓練神經網絡模型來學習圖像噪聲的特征和去噪映射關系。(2)基于稀疏表示的圖像去噪:稀疏表示是一種把信號變換為略微稀疏的方式來表示,從而能夠提高信息的利用率以及提取率的方法。2.實踐目的本節實踐內容“基于隨機森林算法的圖像去噪”的主要目的如下:1.深入掌握隨機森林在圖像去噪中的應用及效果。2.實踐調整隨機森林模型參數以優化去噪性能。3.可視化模型學習過程和去噪效果評估。3.實踐環境 Python版本:3.9或更高版本 深度學習框架:torch2.2.,torchvision0.17.1

其他庫版本:numpy1.24.3,imutils0.5.4,progressbar2.5,s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論