人工智能安全:原理與實踐 課件全套 李劍 第1-16章 人工智能安全概述- 代碼漏洞檢測原理與實踐_第1頁
人工智能安全:原理與實踐 課件全套 李劍 第1-16章 人工智能安全概述- 代碼漏洞檢測原理與實踐_第2頁
人工智能安全:原理與實踐 課件全套 李劍 第1-16章 人工智能安全概述- 代碼漏洞檢測原理與實踐_第3頁
人工智能安全:原理與實踐 課件全套 李劍 第1-16章 人工智能安全概述- 代碼漏洞檢測原理與實踐_第4頁
人工智能安全:原理與實踐 課件全套 李劍 第1-16章 人工智能安全概述- 代碼漏洞檢測原理與實踐_第5頁
已閱讀5頁,還剩456頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

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

本章從經(jīng)典的兩個人工智能安全案例事件說起,引入人工智能安全的概念及框架,說明了人工智能安全現(xiàn)狀,最后給出了本教材的組織、學(xué)習(xí)和講授教材的方法。知識與能力目標(biāo)了解人工智能安全的重要性。認(rèn)知人工智能安全的概念。掌握人工智能安全的模型。了解這門課的知識體系。了解如何學(xué)習(xí)這門課程。熟悉這門課的講授方法。內(nèi)容提綱1.3人工智能安全的架構(gòu)、風(fēng)險及應(yīng)對方法1.2人工智能安全的概念1.1人工智能安全的引入1.4人工智能安全現(xiàn)狀1.1人工智能安全的引入

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

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

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

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

這個人工智能安全定義是全國信息安全標(biāo)準(zhǔn)化技術(shù)委員會在《人工智能安全標(biāo)準(zhǔn)化白皮書(2019年版)》上發(fā)布的。以上的對人工智能安全定義只是強調(diào)人工智能內(nèi)在的安全。更廣義上的講,人工智能安全還包括人工智能的應(yīng)用安全。內(nèi)容提綱1.3人工智能安全的架構(gòu)、風(fēng)險及應(yīng)對方法1.2人工智能安全的概念1.1人工智能安全的引入1.4人工智能安全現(xiàn)狀1.3人工智能安全的架構(gòu)、風(fēng)險及應(yīng)對方法

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

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

生成器:試圖生成與真實數(shù)據(jù)相似的新樣本。

判別器:則試圖區(qū)分生成器生成的樣本和真實數(shù)據(jù)樣本。內(nèi)容提綱3.生成對抗網(wǎng)絡(luò)的應(yīng)用2.生成對抗網(wǎng)絡(luò)原理1.生成對抗網(wǎng)絡(luò)概述4.生成對抗網(wǎng)絡(luò)的訓(xùn)練步驟2.生成對抗網(wǎng)絡(luò)原理

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

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

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

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

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

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

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

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

(1)激活層(ActivationLayer)

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

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

(4)全連接層(FullyConnectedLayer)

全連接層用于將卷積層和池化層提取的特征映射轉(zhuǎn)化為最終的輸出。全連接層中的每個神經(jīng)元都與前一層的所有神經(jīng)元相連,通過學(xué)習(xí)權(quán)重和偏置來進(jìn)行特征的組合和分類。全連接層用于將之前各層提取的特征整合起來,并進(jìn)行分類或回歸等任務(wù)。每個神經(jīng)元與上一層的所有神經(jīng)元相連,形成了一個全連接的結(jié)構(gòu)。4.AlexNet模型

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

MNIST數(shù)據(jù)集下載地址:http://yann./exdb/mnist/。數(shù)據(jù)集分為訓(xùn)練集和測試集,訓(xùn)練集有60000條數(shù)據(jù),測試集有10000條數(shù)據(jù),每一條數(shù)據(jù)都是由785個數(shù)字組成,數(shù)值大小在0-255之間,第一個數(shù)字代表該條數(shù)據(jù)所表示的數(shù)字,后面的784個數(shù)字可以形成28×28的矩陣,每一個數(shù)值都對應(yīng)該位置的像素點的像素值大小,由此形成了一幅像素為28×28的圖片。小結(jié)本章從神經(jīng)網(wǎng)絡(luò)的概念入手,講述如何利用卷積神經(jīng)網(wǎng)絡(luò)CNN進(jìn)行相關(guān)的人工智能安全實踐。還講解了AlexNet和VGG模型,以及本章要用的MNIST數(shù)據(jù)集。感謝同學(xué)們的收聽!致謝網(wǎng)絡(luò)空間安全學(xué)院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)練集進(jìn)行投毒攻擊(PoisoningAttack),即更改原始標(biāo)簽,從而降低模型檢測的準(zhǔn)確率。1.投毒攻擊概述投毒攻擊是一種對機器學(xué)習(xí)模型的安全攻擊方法,特別是在模型訓(xùn)練階段進(jì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。在命令行或終端中使用下面指令進(jìn)行安裝:4.實踐步驟第3步:導(dǎo)入第三方庫。首先設(shè)置和準(zhǔn)備使用PyTorch進(jìn)行深度學(xué)習(xí)項目的環(huán)境,包括導(dǎo)入必要的庫、模塊和數(shù)據(jù)加載器。下面將按照導(dǎo)入第三方庫的順序進(jìn)行詳細(xì)介紹:4.實踐步驟第4步:定義AlexNet的網(wǎng)絡(luò)結(jié)構(gòu)AlexNet這個類特別針對處理MNIST數(shù)據(jù)集進(jìn)行了調(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)中隨機選擇一部分?jǐn)?shù)據(jù)作為子集,并返回這個子集。4.實踐步驟第7步:定義展示正確分類的圖片函數(shù)。展示模型正確分類的圖片,最多展示num_images張。模型的預(yù)測值與標(biāo)簽匹配時將其存儲并繪制圖像。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ù)值進(jìn)行對比實驗。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ù)進(jìn)行預(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)建了一個交叉熵?fù)p失函數(shù)的實例,并將其移動到了指定的設(shè)備上。交叉熵?fù)p失是分類任務(wù)中常用的損失函數(shù),它衡量了模型預(yù)測的概率分布與真實標(biāo)簽的概率分布之間的差異。4.實踐步驟第16步:準(zhǔn)備訓(xùn)練,定義訓(xùn)練所需的參數(shù)及列表clean_acc_list用于記錄每個epoch之后的測試集準(zhǔn)確率。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)體外部測試樣本準(zhǔ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)練過程中準(zhǔn)確率的折線圖。它首先設(shè)置了Matplotlib的一些全局參數(shù),以確保圖表中的字體大小、字體類型以及如何處理Unicode符號都符合需求。5.實踐要求在編程實踐過程中,需要注意以下事項:(1)要求修改投毒樣本的比例,分別為0%,50%,100%,繪制相應(yīng)的線型圖。(2)要求修改投毒策略,例:將原有的標(biāo)簽修改為該標(biāo)簽的下一位數(shù)字(0->1,9->0),修改后對比變化。(3)

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

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

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

驗證碼通過要求用戶輸入一組從圖像中顯示的字符、識別圖像中的對象或解決簡單的邏輯題,以此來證明用戶是真實的人類而非自動化程序。這些字符或圖像通常會以一種對計算機識別算法構(gòu)成挑戰(zhàn)的方式展示,例如字符扭曲、遮擋、不同字體和顏色、復(fù)雜背景以及噪聲等。如圖所示為使用驗證碼進(jìn)行身份識別的例子。1.驗證碼識別介紹驗證碼主要可分為以下四類:1.文本驗證碼2.圖像識別驗證碼3.音頻驗證碼4.邏輯或問題解答驗證碼2.實踐目的本小節(jié)實踐的目的如下:1.結(jié)合驗證碼識別具體特點,自主設(shè)計適合的CNN訓(xùn)練模型,加深對深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的理解。2.設(shè)計卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程。3.理解驗證碼識別的基本原理,完成程序設(shè)計。3.驗證碼識別實踐框架本小節(jié)實踐4.實踐環(huán)境 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的函數(shù),用于構(gòu)建一個基于CNN網(wǎng)絡(luò)結(jié)構(gòu)的小型卷積神經(jīng)網(wǎng)絡(luò)模型。5.實踐過程第2步:編寫圖片生成程序5.實踐過程第3步:編寫預(yù)處理程序5.實踐過程第4步:編寫?yīng)殶峋幋a向量與文本轉(zhuǎn)換函數(shù)5.實踐過程第5步:編寫訓(xùn)練程序5.實踐過程第6步:編寫預(yù)測程序6.實踐結(jié)果1.使用訓(xùn)練好的模型對測試集預(yù)測并給出正確率。運行predict.py,測試訓(xùn)練好的模型的性能情況。6.實踐結(jié)果從上述驗證碼識別結(jié)果可以得到,模型正確率達(dá)到了84.80%,表明模型在識別驗證碼方面表現(xiàn)相當(dāng)出色。在具體錯誤樣本中,可以看到預(yù)測值與實際值往往只有一到兩個字符的差異,例如“zmfp”預(yù)測為“zmn”,“zhco”預(yù)測為“zhon”。這種錯誤通常表明模型在某些字符上可能存在混淆,可能是由于字符形態(tài)相似或者噪音影響導(dǎo)致的。小結(jié)本實踐內(nèi)容講述如何使用卷積神經(jīng)網(wǎng)絡(luò)來實現(xiàn)驗證碼識別。祝同學(xué)們學(xué)習(xí)進(jìn)步!致謝第4章對抗樣本生成算法的安全應(yīng)用4.1對抗樣本生成算法原理介紹本章介紹

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

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

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

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

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

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

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

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

其他庫版本:numpy1.24.3,imutils0.5.4,progressbar2.5,scikit-learn1.0,matplotlib3.7.2,pyqt55.15.10

運行平臺:PyCharm4.實踐步驟第1步,訪問Python官方網(wǎng)站下載Python3.9。4.實踐步驟第2步,安裝實踐環(huán)境。4.實踐步驟第3步,配置文件。4.實踐步驟第4步,build_features.py從圖像中提取特征和目標(biāo)值,寫入CSV文件。4.實踐步驟第5步,train_denoiser.py訓(xùn)練提取到的特征和目標(biāo)值。4.實踐步驟第6步,denoise_document.py對測試集進(jìn)行去噪4.實踐步驟第7步,通過命令行執(zhí)行程序。程序的執(zhí)行過程如圖所示。5.實踐結(jié)果結(jié)果:去除噪音前去除噪音后小結(jié)本小節(jié)詳細(xì)介紹如何使用Python編程實現(xiàn)隨機森林算法對圖像進(jìn)行去噪。祝同學(xué)們學(xué)習(xí)進(jìn)步!致謝第6章貝葉斯和SVM分類算法的安全應(yīng)用6.1貝葉斯和SVM分類算法原理簡介本章介紹本章主要講述機器學(xué)習(xí)里兩個經(jīng)典的分類算法:貝葉斯分類算法和SVM分類算法,以及他們在網(wǎng)絡(luò)空間安全領(lǐng)域的應(yīng)用。在實踐部分,主要講述基于貝葉斯和SVM分類算法的垃圾郵件過濾系統(tǒng)。1.貝葉斯分類算法(1)樸素貝葉斯分類器樸素貝葉斯分類器(NaiveBayesClassifier)是一種基于貝葉斯定理的分類算法。它是一種簡單而高效的分類方法,在文本分類等領(lǐng)域廣泛應(yīng)用。樸素貝葉斯分類器假設(shè)特征之間相互獨立,這是一個“樸素”的假設(shè),因此稱為樸素貝葉斯。貝葉斯分類算法的基本步驟如圖所示:1.貝葉斯分類算法貝葉斯分類算法的優(yōu)點是:簡單、高效,對于大規(guī)模數(shù)據(jù)集和高維特征空間也有良好的適應(yīng)性。貝葉斯分類算法的缺點是:樸素貝葉斯分類器對于特征之間的依賴關(guān)系較為敏感,對于存在相關(guān)性較強的特征可能表現(xiàn)不佳。2.SVM分類算法支持向量機(SupportVectorMachine,簡稱SVM)是一種常用的監(jiān)督學(xué)習(xí)算法,用于解決二分類和多分類問題。SVM算法是一種用于分類和回歸問題的機器學(xué)習(xí)算法,其基本思想是在特征空間中找到一個最優(yōu)的超平面,將不同類別的樣本實例分隔開。支持向量機訓(xùn)練基本步驟如圖所示。2.SVM分類算法SVM的適用場景:SVM在許多領(lǐng)域都有廣泛的應(yīng)用,包括文本分類、圖像識別、生物信息學(xué)、金融風(fēng)險分析等,其強大的泛化能力和對高維數(shù)據(jù)的處理能力使得它成為機器學(xué)習(xí)中常用的分類算法之一。小結(jié)本小節(jié)主要簡單講述機器學(xué)習(xí)里兩個經(jīng)典的分類算法:貝葉斯分類算法和SVM分類算法。祝同學(xué)們學(xué)習(xí)進(jìn)步!致謝網(wǎng)絡(luò)空間安全學(xué)院January23,2025第6章貝葉斯和SVM分類算法的安全應(yīng)用實踐6-1基于貝葉斯和SVM分類算法的垃圾郵件過濾本實踐介紹本實踐內(nèi)容主要是分別采用機器學(xué)習(xí)里面兩個經(jīng)典算法即貝葉斯和SVM分類算法實現(xiàn)對垃圾郵件的過濾功能。1.實踐目的本實踐的目的如下:(1)熟悉垃圾郵件過濾的一般性流程,理解分類器的基本原理。(2)設(shè)計簡易的垃圾郵件分類器,完成程序設(shè)計。(3)采用不同的分類器,對性能結(jié)果進(jìn)行比較。1.實踐目的垃圾郵件過濾是一種用于檢測和過濾無用郵件的技術(shù),同時也是文檔分類技術(shù)的一個典型應(yīng)用。隨著電子郵件的普及,垃圾郵件成為了一個嚴(yán)重的問題,給用戶帶來了許多不便和安全風(fēng)險。如圖所示為電子郵箱中的垃圾郵件。1.實踐目的甚至有些垃圾郵件里包含著一些很明顯的詐騙信息,如圖所示。1.實踐目的常見方法:1.關(guān)鍵詞過濾:2.黑名單過濾3.白名單過濾4.基于規(guī)則的過濾5.機器學(xué)習(xí)過濾2.實驗流程(1)數(shù)據(jù)準(zhǔn)備(2)構(gòu)建字典(3)將郵件文本提取成特征矩陣(4)對樸素貝葉斯分類器和支持向量機進(jìn)行訓(xùn)練(5)使用測試集得到預(yù)測結(jié)果(6)對模型性能進(jìn)行對比評估3.實踐步驟第1步:導(dǎo)入第三方庫。首先導(dǎo)入了Python中處理數(shù)據(jù)科學(xué)、機器學(xué)習(xí)和統(tǒng)計相關(guān)的幾個重要庫和模塊。下面將按照導(dǎo)入第三方庫的順序進(jìn)行詳細(xì)介紹:3.實踐步驟第2步:定義構(gòu)建字典函數(shù)。定義了一個名為create_word_dictionary的函數(shù),該函數(shù)接收一個參數(shù)train_directory,該參數(shù)是一個包含電子郵件文件的目錄的路徑。函數(shù)的目的是從這個目錄中的所有電子郵件文件中提取單詞,創(chuàng)建一個單詞字典,該字典包含最常見的3000個非數(shù)字、非單字母的單詞及其出現(xiàn)次數(shù)。3.實踐步驟第3步:定義提取特征函數(shù)。函數(shù)的目的是從指定

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論