人工智能安全:原理與實踐 課件匯 李劍 第7-16章 長短期記憶網(wǎng)絡(luò)的安全應(yīng)用- 代碼漏洞檢測原理與實踐_第1頁
人工智能安全:原理與實踐 課件匯 李劍 第7-16章 長短期記憶網(wǎng)絡(luò)的安全應(yīng)用- 代碼漏洞檢測原理與實踐_第2頁
人工智能安全:原理與實踐 課件匯 李劍 第7-16章 長短期記憶網(wǎng)絡(luò)的安全應(yīng)用- 代碼漏洞檢測原理與實踐_第3頁
人工智能安全:原理與實踐 課件匯 李劍 第7-16章 長短期記憶網(wǎng)絡(luò)的安全應(yīng)用- 代碼漏洞檢測原理與實踐_第4頁
人工智能安全:原理與實踐 課件匯 李劍 第7-16章 長短期記憶網(wǎng)絡(luò)的安全應(yīng)用- 代碼漏洞檢測原理與實踐_第5頁
已閱讀5頁,還剩222頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章長短期記憶網(wǎng)絡(luò)的安全應(yīng)用7.1長短期記憶網(wǎng)絡(luò)原理簡介本章介紹本章主要講述利用雙向長短期記憶網(wǎng)絡(luò)(LongShort-TermMemory,LSTM)模型對網(wǎng)絡(luò)流量進行攻擊檢測。通過預(yù)處理包含攻擊和正常流量的數(shù)據(jù)集,提取特征并標(biāo)準(zhǔn)化后,將數(shù)據(jù)轉(zhuǎn)換為LSTM輸入格式。模型經(jīng)過訓(xùn)練和驗證,達(dá)到較高的準(zhǔn)確率和召回率。最終,模型識別并分類網(wǎng)絡(luò)流量中的攻擊行為,驗證人工智能中的機器學(xué)習(xí)方法在網(wǎng)絡(luò)安全中的有效性。1.網(wǎng)絡(luò)安全概述網(wǎng)絡(luò)攻擊檢測的目標(biāo)是監(jiān)測網(wǎng)絡(luò)流量和系統(tǒng)行為,以檢測和警告各種類型的網(wǎng)絡(luò)攻擊。它通過分析網(wǎng)絡(luò)數(shù)據(jù)包、系統(tǒng)日志、入侵檢測系統(tǒng)(IDS)等的警報信息來發(fā)現(xiàn)潛在的攻擊行為。(1)基于特征的方法(2)基于異常的方法(3)基于統(tǒng)計的方法(4)基于機器學(xué)習(xí)的方法1.網(wǎng)絡(luò)安全概述網(wǎng)絡(luò)攻擊檢測系統(tǒng)通常包括以下組件:(1)數(shù)據(jù)采集:收集網(wǎng)絡(luò)流量、系統(tǒng)日志和其他相關(guān)數(shù)據(jù)。(2)數(shù)據(jù)預(yù)處理:對采集到的數(shù)據(jù)進行清洗、過濾和格式化,以便于后續(xù)分析。(3)分析和檢測:應(yīng)用特征匹配、機器學(xué)習(xí)、行為分析等技術(shù),對數(shù)據(jù)進行分析和檢測潛在的攻擊行為。(4)警報和響應(yīng):當(dāng)檢測到攻擊時,發(fā)出警報通知相關(guān)人員,并觸發(fā)相應(yīng)的響應(yīng)措施,如阻止攻擊流量或隔離受感染的系統(tǒng)。2.LSTM模型長短期記憶網(wǎng)絡(luò)(LongShort-TermMemory,LSTM)是一種特殊的遞歸神經(jīng)網(wǎng)絡(luò)(RNN),旨在解決傳統(tǒng)RNN在處理長序列數(shù)據(jù)時所面臨的梯度消失和梯度爆炸問題。LSTM通過引入一組門結(jié)構(gòu)(Gate)來控制信息的流動,從而能夠有效地學(xué)習(xí)并記憶長時間跨度的信息。LSTM的核心部件包括:(1)遺忘門(2)輸入門(3)輸出門3.雙向LSTM模型雙向LSTM(BidirectionalLSTM,BiLSTM)是在標(biāo)準(zhǔn)LSTM基礎(chǔ)上的改進,旨在更全面地捕捉序列數(shù)據(jù)中的特征。傳統(tǒng)的LSTM僅在時間序列的一個方向上處理數(shù)據(jù)(通常是從過去到未來),而雙向LSTM在時間序列的兩個方向上同時處理數(shù)據(jù),即前向和后向。小結(jié)本小節(jié)講述長短期記憶網(wǎng)絡(luò)的原理。祝同學(xué)們學(xué)習(xí)進步!致謝網(wǎng)絡(luò)空間安全學(xué)院January24,2025第7章長短期記憶網(wǎng)絡(luò)的安全應(yīng)用實踐7-1基于雙向LSTM模型的網(wǎng)絡(luò)攻擊檢測本實踐介紹本小節(jié)編程實踐內(nèi)容主要是使用雙向LSTM模型對網(wǎng)絡(luò)攻擊進行檢測。1.實驗內(nèi)容實踐的過程如下:2.實踐目的本實踐內(nèi)容的目的如下:(1)熟悉網(wǎng)絡(luò)攻擊檢測的一般性流程,理解雙向LSTM的基本原理。(2)設(shè)計簡易的雙向LSTM模型,完成程序設(shè)計。(3)結(jié)果可視化,對性能結(jié)果進行觀察。3.實踐過程第1步:導(dǎo)入相關(guān)庫和函數(shù)3.實踐過程第2步:定義常量NUMBER_OF_SAMPLES:定義要從每個數(shù)據(jù)集中讀取的樣本數(shù)量。TRAIN_LEN:定義LSTM模型的輸入序列長度(時間步數(shù))。3.實踐過程第3步:數(shù)據(jù)加載從CSV文件中加載攻擊流量和正常流量的數(shù)據(jù)集,各取50000條樣本。3.實踐過程第4步:設(shè)置列名第5步:刪除無關(guān)列第6步:定義特征第7步:提取特征標(biāo)簽X和標(biāo)簽Y第8步:標(biāo)準(zhǔn)化第9步:轉(zhuǎn)換標(biāo)簽第10步:準(zhǔn)備LSTM輸入數(shù)據(jù)第11步:劃分訓(xùn)練集和測試集第12步:創(chuàng)建模型第13步:訓(xùn)練模型第14步:繪制準(zhǔn)確率和損失圖第15步:模型預(yù)測第16步:混淆矩陣第17步:保存模型第18步:評估模型第19步:保存預(yù)測結(jié)果4.實踐結(jié)果1.對模型結(jié)果進行評估,測試并給出準(zhǔn)確率和損失率以及混淆矩陣運行brnn_classifier.py文件??梢钥吹剑P驮跍y試集上的評估結(jié)果為:準(zhǔn)確率(Accuracy)97.25%,召回率(Recall)99%。4.實踐結(jié)果訓(xùn)練過程中準(zhǔn)確率的變化:訓(xùn)練過程中準(zhǔn)確率和驗證準(zhǔn)確率都在逐漸上升,表明模型在逐步學(xué)習(xí)并改進其對數(shù)據(jù)的預(yù)測能力。4.實踐結(jié)果訓(xùn)練過程中損失的變化:訓(xùn)練損失和驗證損失在逐漸下降,表明模型在減少訓(xùn)練數(shù)據(jù)和驗證數(shù)據(jù)上的預(yù)測誤差。小結(jié)本小節(jié)講述長短期記憶網(wǎng)絡(luò)的原理,使用雙向LSTM模型對網(wǎng)絡(luò)攻擊進行檢測。祝同學(xué)們學(xué)習(xí)進步!致謝第8章梯度下降算法的安全應(yīng)用8.1梯度下降算法原理簡介本章介紹

梯度下降(GradientDescent)算法是機器學(xué)習(xí)中最常用的優(yōu)化方法之一。它的作用是通過迭代尋找函數(shù)的最大值或最小值。本章介紹了梯度下降算法的原理、優(yōu)化方法、常見問題以及實際應(yīng)用。在編程實踐部分介紹了一個基于梯度下降的模型逆向(ModelInversion)攻擊。1.梯度下降算法概述在機器學(xué)習(xí)中,通常用梯度下降算法最小化代價函數(shù)(CostFunction),這樣就可以得到模型的最優(yōu)參數(shù)。梯度下降算法原理如圖所示。1.梯度下降算法概述梯度下降算法的核心思想很簡單,它的原理是在每一步迭代過程中,沿著函數(shù)梯度方向移動一定的距離,進而達(dá)到找到最小值的目的。梯度下降算法的一般步驟如下:(1)初始化參數(shù)(2)計算代價函數(shù)(3)計算梯度(4)更新參數(shù)(5)重復(fù)步驟2-42.梯度下降算法優(yōu)化方法雖然梯度下降算法很簡單,但是在實際應(yīng)用中,為了提高算法的效率和穩(wěn)定性,通常需要對其進行優(yōu)化。下面介紹幾種常見的梯度下降算法優(yōu)化方法。(1)批量梯度下降算法(BatchGradientDescent)(2)隨機梯度下降算法(StochasticGradientDescent)(3)小批量梯度下降算法(Mini-BatchGradientDescent)(4)動量梯度下降算法(MomentumGradientDescent)(5)自適應(yīng)學(xué)習(xí)率梯度下降算法(AdaptiveLearningRateGradientDescent)3.梯度下降算法的應(yīng)用梯度下降算法在人工智能機器學(xué)習(xí)中有著廣泛的應(yīng)用,下面介紹幾個常見的應(yīng)用場景。(1)線性回歸(2)邏輯回歸(3)神經(jīng)網(wǎng)絡(luò)(4)深度學(xué)習(xí)深度學(xué)習(xí)通常使用隨機梯度下降算法或小批量梯度下降算法來進行訓(xùn)練。在深度學(xué)習(xí)中,梯度下降算法的性能對于模型的精度和速度都有著至關(guān)重要的影響。小結(jié)本小節(jié)詳細(xì)介紹梯度下降算法的技術(shù)原理、優(yōu)化方法以及其典型的應(yīng)用場景。祝同學(xué)們學(xué)習(xí)進步!致謝網(wǎng)絡(luò)空間安全學(xué)院January24,2025第8章梯度下降算法的安全應(yīng)用實踐8-1基于梯度下降的模型逆向攻擊本章介紹模型逆向是一種針對機器學(xué)習(xí)模型的隱私攻擊,目的是從模型的輸出推斷回其輸入數(shù)據(jù),或者從模型中提取關(guān)于輸入數(shù)據(jù)的信息。1.模型逆向攻擊簡介

敏感數(shù)據(jù)上訓(xùn)練的模型可能會意外地泄露關(guān)于其訓(xùn)練數(shù)據(jù)的信息。通過模型逆向,研究人員可以評估模型可能泄露的信息量,從而設(shè)計更好的數(shù)據(jù)保護策略和模型結(jié)構(gòu)。另外在數(shù)據(jù)受限的情況下,模型逆向可以用來生成新的數(shù)據(jù)實例,這些數(shù)據(jù)實例可以用于進一步的訓(xùn)練和增強模型的性能。模型逆向攻擊如圖所示。1.模型逆向攻擊簡介常見的模型逆向攻擊分類如下:(1)特征推導(dǎo)攻擊(FeatureInferenceAttacks):(2)數(shù)據(jù)重建攻擊(DataReconstructionAttacks):2.實踐目的本節(jié)實踐內(nèi)容“基于梯度下降的模型逆向攻擊”的目的如下:(1)理解機器學(xué)習(xí)隱私問題(2)熟悉基于梯度下降的模型逆向攻擊及實現(xiàn)(3)體驗對抗性思維3.常見的模型逆向攻擊方法常見的模型逆向攻擊方法如下:1.梯度下降法(GradientDescentMethods):使用梯度下降優(yōu)化產(chǎn)生的輸出,使其更接近目標(biāo)樣本,從而推導(dǎo)出訓(xùn)練數(shù)據(jù)。2.生成式模型(GenerativeModels):使用生成式對抗網(wǎng)絡(luò)(GANs)等技術(shù)生成可能的訓(xùn)練樣本。3.特征匹配(FeatureMatching):通過比較模型各層中間激活值與已知樣本,嘗試生成匹配訓(xùn)練數(shù)據(jù)特征的新樣本。

基于梯度下降的模型逆向攻擊(ModelInversionAttackusingGradientDescent)是一種通過優(yōu)化過程,逐步調(diào)整輸入數(shù)據(jù)(通常是初始猜測或隨機噪聲),使得其輸出與目標(biāo)模型給出的輸出盡可能一致,從而間接推測出來原始訓(xùn)練數(shù)據(jù)的一種攻擊方法。4.實踐方法和流程本實踐內(nèi)容“基于梯度下降的模型逆向攻擊”實現(xiàn)流程如下:確定目標(biāo)輸出初始化輸入計算損失求梯度更新輸入迭代優(yōu)化5.實踐內(nèi)容使用基于梯度下降的模型逆向攻擊,重建目標(biāo)MLP模型的人臉訓(xùn)練圖像。數(shù)據(jù)集:本地pgm圖像數(shù)據(jù)集,一共有40個類別,每個類別下有十張圖片,每個類別對應(yīng)一個人的各種人臉隱私信息。這些內(nèi)容都在本書提供的網(wǎng)站上下載。6.實踐環(huán)境 Python版本:3.10.0或以上版本 深度學(xué)習(xí)框架:Pytorch1.7.0

運行平臺:PyCharm

其他庫版本:numpy1.24.3,scikit-learn1.2.2,matplotlib3.7.1、pandas1.5.3、torchvision0.15.2、click7.1.27.實踐過程1.模型及訓(xùn)練設(shè)置隨機種子,torch.manual_seed(SEED),如果使用cuda還需要設(shè)置torch.cuda.manual_seed(SEED),以確保實驗結(jié)果的可重復(fù)性。7.實踐過程

定義目標(biāo)模型,案例里設(shè)置為一個簡單的兩層神經(jīng)網(wǎng)絡(luò),它有一個輸入層和一個輸出層。輸入層將輸入向量轉(zhuǎn)換到一個3000維的較大空間,然后通過sigmoid激活函數(shù),最后通過輸出層映射到目標(biāo)類別的數(shù)量。7.實踐過程下面是評估函數(shù)的實現(xiàn)。7.實踐過程2.模型逆向攻擊mi_face函數(shù)主要通過梯度下降的方式執(zhí)行模型逆向攻擊,從一個預(yù)訓(xùn)練的深度學(xué)習(xí)模型(及參數(shù)中的model)中重構(gòu)特定類別的代表性圖像。該函數(shù)的設(shè)計基于優(yōu)化過程,通過調(diào)整輸入圖像使得模型輸出的分類結(jié)果接近目標(biāo)分類。下面是mi_face的實現(xiàn)。8.實踐結(jié)果1.在預(yù)訓(xùn)練目標(biāo)模型或者重新訓(xùn)練目標(biāo)模型的場景下實現(xiàn)完整的模型逆向攻擊,使用50次迭代執(zhí)行攻擊,并對重構(gòu)圖像使用ZCA白化算法處理,觀察并保存所有分類的攻擊效果圖.最終結(jié)果如圖。8.實踐結(jié)果優(yōu)化后的實驗結(jié)果:小結(jié)本實踐部分介紹了一個基于梯度下降的模型逆向(ModelInversion)攻擊。祝同學(xué)們學(xué)習(xí)進步!致謝第9章深度偽造原理與安全應(yīng)用9.1深度偽造原理簡介本章介紹深度偽造(Deepfake)是一種利用人工智能技術(shù)偽造或篡改音圖像、音頻、視頻等內(nèi)容的技術(shù)。本章主要介紹人工智能安全領(lǐng)域的深度偽造技術(shù)原理,并且詳細(xì)介紹如何通過編程實踐實現(xiàn)一個典型的深度偽造應(yīng)用:人臉偽造。1.深度偽造概述自從俄烏戰(zhàn)爭爆發(fā)以后,有一天烏克蘭的網(wǎng)站上放出了一段烏克蘭總統(tǒng)澤連斯基的視頻。視頻中,澤連斯基身穿他標(biāo)志性的綠色T恤,表情略不自然的號召他的軍隊放下武器,向俄羅斯投降。輿論嘩然,但很快人們知道這是一個造假的視頻。如圖所示為烏克蘭總統(tǒng)澤連斯基。1.深度偽造概述Deepfake是“DeepMachineLearning(深度機器學(xué)習(xí))”與“FakePhoto(假照片)”兩個詞的合成詞,即通過人工智能技術(shù)中的深度學(xué)習(xí)模型將圖片或者視頻疊加到原始圖片或視頻上,借助神經(jīng)網(wǎng)絡(luò)技術(shù),對大量數(shù)據(jù)進行學(xué)習(xí)后,將人的聲音、面部表情及身體動作拼接合成為非常逼真的虛假內(nèi)容。如圖1所示為一個真實的人臉;如圖2所示為一個偽造的人臉。2.人臉圖像偽造技術(shù)人臉圖像偽造簡稱人臉偽造,它是一種利用先進的數(shù)字圖像處理技術(shù)和人工智能,來篡改或生成視頻和圖像中的人臉,是深度偽造的一種。這種技術(shù)依靠生成對抗網(wǎng)絡(luò)(GANs)或自編碼器等模型,可以高度真實地替換或修改視頻和圖像中的人臉特征,從而創(chuàng)造出看似真實的虛假內(nèi)容。2.人臉圖像偽造技術(shù)隨著對生成對抗網(wǎng)絡(luò)GANs研究的不斷深入,現(xiàn)有的深度人臉偽造技術(shù)得到進一步發(fā)展和提升。根據(jù)對人臉篡改區(qū)域和篡改目的,可將深度人臉偽造技術(shù)分為身份替換、面部重演、屬性編輯、人臉生成等,如圖所示。小結(jié)本小節(jié)簡單介紹深度偽造技術(shù)。祝同學(xué)們學(xué)習(xí)進步!致謝網(wǎng)絡(luò)空間安全學(xué)院January24,2025第9章深度偽造原理與安全應(yīng)用9.2基于深度偽造技術(shù)的人臉偽造本實踐介紹本實踐主要是采用Python、OpenCV和dlib實現(xiàn)了一個簡單的面部交換示例,可以在兩張靜態(tài)圖像之間或通過攝像頭捕獲的實時視頻中進行人臉交換。1.實踐簡介本章的人臉偽造實踐主要過程是通過dlib完成面部檢測和特征點定位,并利用OpenCV進行圖像變換與面部融合,以實現(xiàn)高度逼真和無縫的面部置換效果。2.實踐目的本章實踐的主要目的如下:(1)理解面部特征點檢測的原理。(2)掌握圖像的基本處理技巧。(3)學(xué)習(xí)面部區(qū)域掩模的創(chuàng)建和應(yīng)用。(4)熟悉圖像融合技術(shù),實現(xiàn)兩個圖像間的無縫融合。(5)增進編程能力和解決實際問題的能力,通過動手實踐加深對圖像處理算法的理解。3.實踐內(nèi)容本小節(jié)實踐的內(nèi)容如下:1.檢測面部標(biāo)志。2.對齊面部圖像。3.調(diào)整色彩平衡。4.融合面部特征。4.實踐環(huán)境本章實踐編程環(huán)境要求如下:

python版本:3.6.13或者更高版本 所需安裝庫:numpy1.19.2,opencv3.4.2,dlib

預(yù)訓(xùn)練模型:shape_predictor_68_face_landmarks

運行平臺:Pycharm/vscode/GoogleColaboratory5.實踐過程第1步:初始化和配置5.實踐過程第2步:檢測面部標(biāo)志5.實踐過程第3步:對齊面部圖像5.實踐過程第4步:調(diào)整色彩平衡5.實踐過程第5步:融合面部特征6.實踐結(jié)果實踐代碼運行后,導(dǎo)入實踐用的人臉圖像,就可以看到結(jié)果了。小結(jié)本小節(jié)介紹了基于深度偽造技術(shù)的人臉偽造實踐。祝同學(xué)們學(xué)習(xí)進步!致謝第10章成員推理攻擊原理與實踐10.1成員推理攻擊原理簡介本章介紹

成員推理攻擊(MembershipInferenceAttack)是一種針對機器學(xué)習(xí)模型的隱私攻擊,目的在于判斷特定的數(shù)據(jù)樣本是否被用于模型的訓(xùn)練過程中。本章主要講述成員推理攻擊的原理與應(yīng)用。在實踐部分,主要講述基于影子模型的成員推理攻擊。1.成員推理攻擊概述成員推理攻擊揭示了機器學(xué)習(xí)模型可能泄露關(guān)于其訓(xùn)練數(shù)據(jù)的敏感信息,尤其是在模型對訓(xùn)練數(shù)據(jù)過度擬合的情況下。通過成員推理攻擊,攻擊者可以推斷出某個特定的輸入是否是模型訓(xùn)練數(shù)據(jù)的一部分。這在涉及敏感數(shù)據(jù)的場合尤其危險,比如醫(yī)療或金融數(shù)據(jù),因為它可能導(dǎo)致隱私泄露。如圖所示為成員推理攻擊示意圖。2.成員推理攻擊分類成員推理攻擊在實施攻擊時,通常有兩種場景:白盒和黑盒。成員推理攻擊可以根據(jù)攻擊的方法論分為直接攻擊和間接攻擊。成員推理攻擊還可以根據(jù)攻擊的應(yīng)用場景分為在線攻擊和離線攻擊。3.常見的成員推理攻擊方法常見的成員推理攻擊方法包括影子模型攻擊(ShadowModelAttack)、基于模型置信度的攻擊和基于差分隱私的攻擊模型。(1)

影子模型攻擊(2)基于模型置信度的攻擊(3)

基于差分隱私的攻擊模型4.影子模型攻擊影子模型攻擊是一種針對機器學(xué)習(xí)模型的成員推斷攻擊(MembershipInferenceAttack)。其核心思想是利用一個或多個與目標(biāo)模型訓(xùn)練方式相似的影子模型來推斷某個數(shù)據(jù)樣本是否被用于目標(biāo)模型的訓(xùn)練集中。5.影子模型攻擊的步驟影子模型攻擊的步驟如下:1.數(shù)據(jù)收集2.影子模型訓(xùn)練3.輸出分析與標(biāo)簽生成4.攻擊模型訓(xùn)練5.攻擊執(zhí)行小結(jié)本小節(jié)簡單介紹成員推理攻擊原理。祝同學(xué)們學(xué)習(xí)進步!致謝網(wǎng)絡(luò)空間安全學(xué)院January24,2025第10章成員推理攻擊原理與實踐實踐10-1基于影子模型的成員推理攻擊本章介紹本小節(jié)詳細(xì)介紹如何通過Python編程實現(xiàn)基于影子模型的成員推理攻擊實踐。學(xué)習(xí)如何從潛在攻擊者的視角來分析和評估機器學(xué)習(xí)模型的安全性1.實踐目的基于影子模型的成員推理攻擊實踐的目的如下:(1)理解機器學(xué)習(xí)隱私問題(2)熟悉基于影子模型的成員推理攻擊及實現(xiàn)(3)體驗對抗性思維2.實踐內(nèi)容實現(xiàn)MLLeaks[1]論文的第一種知識水平和攻擊實施條件下的成員推斷攻擊。假設(shè)攻擊方知道目標(biāo)模型的訓(xùn)練數(shù)據(jù)分布以及用于訓(xùn)練模型的架構(gòu)和超參數(shù)。實踐中使用CIFAR10和MNIST數(shù)據(jù)集。3.實驗環(huán)境 Python版本:3.10.12或更高版本 深度學(xué)習(xí)框架:torch2.2.,torchvision0.17.1

其他庫版本:numpy1.24.3,scikit-learn1.3.0

運行平臺:PyCharm4.實驗步驟實驗的主要步驟流程如圖所示。1.數(shù)據(jù)準(zhǔn)備和預(yù)處理2.模型定義和訓(xùn)練3.攻擊模型準(zhǔn)備4.攻擊模型訓(xùn)練和評估5.命令行參數(shù)和實驗控制5.實踐過程第1步:建立模型文件model.py。5.實踐過程第2步:建立訓(xùn)練文件train.py。5.實踐過程第3步:建立攻擊文件attack.py。5.實踐過程第4步:建立cli.py文件6.實踐結(jié)果1.使用預(yù)訓(xùn)練模型對數(shù)據(jù)集進行攻擊在終端運行pythoncli.pymembership-inferencepretrained-dummy命令,使用預(yù)訓(xùn)練模型對默認(rèn)數(shù)據(jù)集CIFAR10進行攻擊,觀察控制臺輸出。6.實踐結(jié)果攻擊模型的測試準(zhǔn)確率為71.85%。表明其在區(qū)分成員和非成員樣本方面有一定的能力。詳細(xì)結(jié)果顯示,攻擊模型對“非成員”類別的準(zhǔn)確率為99%,但對“成員”類別的準(zhǔn)確率只有64%。

這說明攻擊模型在識別非成員方面表現(xiàn)很好,但在識別成員方面效果較差。小結(jié)本小節(jié)主要講述基于影子模型的成員推理攻擊實踐。祝同學(xué)們學(xué)習(xí)進步!致謝第11章屬性推理攻擊原理與實踐11.1屬性推理攻擊原理簡介本章介紹屬性推理攻擊通常利用機器學(xué)習(xí)和數(shù)據(jù)挖掘技術(shù),從公開或已知的屬性中推測出隱私屬性,因此從隱私保護的角度研究屬性推理攻擊具有重要的理論意義和實用價值。本章主要講述屬性推理攻擊(AttributeInferenceAttack)的概念、原理、攻擊場景和常用方法。在編程實踐部分講述了一個基于神經(jīng)網(wǎng)絡(luò)的屬性推理攻擊。1.屬性推理攻擊介紹屬性推理攻擊的目標(biāo)通常包括個人敏感信息,用戶行為模式,社交關(guān)系等。除了造成對用戶隱私的嚴(yán)重侵犯,通過屬性推理攻擊獲取的信息,攻擊者可以進一步進行社會工程學(xué)攻擊,例如假冒身份進行詐騙、獲取更多個人敏感信息,甚至進行身份盜用。如圖所示為機器學(xué)習(xí)中的屬性隱私問題。2.屬性推理攻擊的攻擊場景屬性推理攻擊通常包含以下具體攻擊場景:第一種是社交網(wǎng)絡(luò)用戶的隱私信息(如性別、年齡、興趣愛好等)通過其社交關(guān)系和互動行為被推斷。第二種是推薦系統(tǒng)中的屬性推理攻擊,推薦系統(tǒng)用戶的隱私信息(如性別、年齡、收入水平等)通過其歷史瀏覽和購買記錄被推斷。第三種是位置數(shù)據(jù)中的屬性推理攻擊,攻擊者通過用戶的地理位置數(shù)據(jù)推斷用戶的隱私屬性。3.屬性推理攻擊常用方法而屬性推理攻擊通常有以下攻擊方法:(1)第一種是基于對抗變分自動編碼器,它結(jié)合了變分自動編碼器(VAE)和生成對抗網(wǎng)絡(luò)(GANs)的優(yōu)點。(2)第二種是基于圖卷積網(wǎng)絡(luò)的屬性推理,它適用于處理圖結(jié)構(gòu)數(shù)據(jù),通過聚合節(jié)點的鄰居信息進行特征學(xué)習(xí),可以用于社交網(wǎng)絡(luò)中推斷用戶的隱私屬性。(3)最后一種常用方法是基于隱馬爾可夫模型的屬性推理,隱馬爾可夫模型是一種統(tǒng)計模型,通過觀測序列推斷隱藏狀態(tài)序列,可以用于時間序列數(shù)據(jù)中的隱私屬性推斷。小結(jié)屬性推理攻擊是指攻擊者通過訪問用戶的部分?jǐn)?shù)據(jù)和相關(guān)信息,推斷出用戶的其他屬性或敏感信息的攻擊方式。本小節(jié)主要介紹屬性推理攻擊的攻擊場景和常用方法。祝同學(xué)們學(xué)習(xí)進步!致謝網(wǎng)絡(luò)空間安全學(xué)院January24,2025第11章屬性推理攻擊原理與實踐實踐11-1基于神經(jīng)網(wǎng)絡(luò)的屬性推理攻擊本實踐介紹本小節(jié)主要講述如何使用神經(jīng)網(wǎng)絡(luò)技術(shù)進行屬性推理攻擊。1.實踐內(nèi)容本次實踐中使用的攻擊方法的基本步驟為:2.實驗?zāi)康谋敬螌嵺`中使用的攻擊方法的基本步驟為:(1)了解屬性推理攻擊隱私問題(2)熟悉屬性推理攻擊及實現(xiàn)(3)體驗對抗性思維3.實驗環(huán)境

python版本:3.10或更高版本 深度學(xué)習(xí)框架:torch2.2.2,torchvision0.17.2

其他庫版本:scikit-learn1.3.0,numpy1.24.3,pandas1.5.3、torchvision0.15.2、click7.1.2

運行平臺:pycharm

數(shù)據(jù)集:使用本地pkl數(shù)據(jù)集,廣泛使用的人臉圖像數(shù)據(jù)集,通常用于面部識別,年齡估計,性別分類等任務(wù),包含大量不同年齡、性別和種族的人的面部圖像。這一部分參見本教材的網(wǎng)盤。4.實踐步驟1.編寫模型文件af_models.py。這段代碼實現(xiàn)了一個攻擊模型(AttackModel)和一個目標(biāo)模型(TargetModel)。攻擊模型用于執(zhí)行攻擊,預(yù)測某個特定維度(輸入的特征向量)的輸出結(jié)果。目標(biāo)模型則是一個典型的卷積神經(jīng)網(wǎng)絡(luò)(CNN),負(fù)責(zé)從圖像中提取特征并進行分類預(yù)測。4.實踐步驟第1步:導(dǎo)入第三方庫。第2步:設(shè)置隨機種子。第3步:定義攻擊模型(AttackModel)并進行初始化。第4步:攻擊模型的初始化。第5步:攻擊模型的前向傳播。第6步:定義目標(biāo)模型(TargetModel)。第7步:定義目標(biāo)模型的特征提取器部分。第8步:定義目標(biāo)模型的分類器部分。第9步:定義目標(biāo)模型的輸出層部分。第10步:定義目標(biāo)模型的前向傳播。4.實踐步驟2.數(shù)據(jù)加載文件af_datasets.py。定義了兩個數(shù)據(jù)集類:UTKFace和AttackData,分別用于處理UTKFace數(shù)據(jù)集的加載和攻擊模型所需的數(shù)據(jù)。UTKFace類主要從數(shù)據(jù)集中讀取圖像及其標(biāo)簽(如性別或種族);AttackData類則進一步通過目標(biāo)模型提取特征向量z,并將其與標(biāo)簽一起返回。4.實踐步驟第1步:導(dǎo)入必要的庫。第2步:設(shè)置隨機種子和設(shè)備。第3步:定義UTKFace數(shù)據(jù)集類及構(gòu)造函數(shù)。第4步:定義UTKFace類的獲取數(shù)據(jù)集長度__len__方法。第5步:定義UTKFace類的獲取單個樣本__getitem__方法。第6步:加載圖像并預(yù)處理。第7步:根據(jù)標(biāo)簽類型返回標(biāo)簽。第8步:定義攻擊數(shù)據(jù)集類AttackData并初始化函數(shù)。第8步:定義攻擊數(shù)據(jù)集類AttackData并初始化函數(shù)。第9步:定義AttackData的獲取數(shù)據(jù)集長度__len__方法。第10步:定義AttackData的獲取單個樣本__getitem__。第11步:加載圖像并預(yù)處理。第12步:使用目標(biāo)模型生成特征向量。第13步:獲取標(biāo)簽并返回樣本。4.實踐步驟3.模型訓(xùn)練文件af_train.py。模型訓(xùn)練文件af_train.py主要用于訓(xùn)練和測試神經(jīng)網(wǎng)絡(luò)模型,包括三個主要功能:一是training函數(shù):用于在給定的訓(xùn)練數(shù)據(jù)集上訓(xùn)練模型,并保存訓(xùn)練好的模型參數(shù)。二是test函數(shù):用于在測試集上評估模型的整體準(zhǔn)確率。最后是test_class函數(shù):用于評估模型在每個類別上的分類準(zhǔn)確率。4.實踐步驟第1步:導(dǎo)入第三方庫。第2步:設(shè)置隨機種子和設(shè)備。第3步:定義訓(xùn)練函數(shù)training。第4步:在訓(xùn)練函數(shù)中循環(huán)訓(xùn)練模型。第5步:在訓(xùn)練函數(shù)中遍歷訓(xùn)練數(shù)據(jù)。第6步:在訓(xùn)練函數(shù)中清空梯度并進行前向傳播。第7步:在訓(xùn)練函數(shù)中計算損失并進行反向傳播。第8步:在訓(xùn)練函數(shù)中打印訓(xùn)練損失并保存模型參數(shù)。第9步:定義測試函數(shù)test。第10步:在測試函數(shù)中禁用梯度計算并遍歷測試集。第10步:在測試函數(shù)中禁用梯度計算并遍歷測試集。第11步:在測試函數(shù)中進行前向傳播并獲取預(yù)測結(jié)果。第12步:在測試函數(shù)中計算準(zhǔn)確率。第13步:在測試函數(shù)中打印準(zhǔn)確率。第14步:定義按類別測試函數(shù)test_class。第15步:在test_class函數(shù)中準(zhǔn)備每個類別的統(tǒng)計計數(shù)。第16步:在test_class函數(shù)中禁用梯度、遍歷測試數(shù)據(jù)。第17步:在test_class函數(shù)中獲取每個類別的預(yù)測結(jié)果。第18步:在test_class函數(shù)中統(tǒng)計每個類別預(yù)測正確率并計算打印準(zhǔn)確率。4.實踐步驟4.屬性推理攻擊文件af_attack.py。該文件用于訓(xùn)練和測試目標(biāo)模型以及攻擊模型,主要目的是執(zhí)行屬性推斷攻擊。首先通過加載UTKFace人臉數(shù)據(jù)集,訓(xùn)練目標(biāo)模型進行性別分類。接著,攻擊模型利用目標(biāo)模型的輸出特征進行種族分類預(yù)測。文件還提供了三種執(zhí)行攻擊的方式:加載預(yù)訓(xùn)練模型進行攻擊、訓(xùn)練目標(biāo)模型并攻擊、以及提供自定義的目標(biāo)模型進行攻擊。4.實踐步驟第1步:導(dǎo)入必要的庫。第2步:設(shè)置隨機種子和路徑。第3步:加載并保存數(shù)據(jù)集。第4步:劃分訓(xùn)練集、測試集和攻擊集。第5步:設(shè)置設(shè)備(CPU或GPU)。第6步:配置數(shù)據(jù)增強和預(yù)處理。第7步:初始化目標(biāo)模型其優(yōu)化器,并創(chuàng)建目標(biāo)模型的數(shù)據(jù)加載器。第8步:初始化攻擊模型及優(yōu)化器,并創(chuàng)建攻擊模型的數(shù)據(jù)加載器。第9步:定義函數(shù)perform_pretrained_dummy:執(zhí)行預(yù)訓(xùn)練模型的攻擊。第10步:在perform_pretrained_dummy函數(shù)中加載目標(biāo)模型。第11步:在perform_pretrained_dummy函數(shù)中測試目標(biāo)模型。第12步:在perform_pretrained_dummy函數(shù)中加載攻擊模型。第13步:在perform_pretrained_dummy函數(shù)中測試攻擊模型。第14步:定義訓(xùn)練目標(biāo)模型并進行攻擊函數(shù)perform_train_dummy。第15步:定義perform_train_dummy函數(shù)中的訓(xùn)練目標(biāo)模型。第16步:在perform_train_dummy函數(shù)中訓(xùn)練攻擊模型。第17步:在perform_train_dummy中加載并測試目標(biāo)模型、攻擊模型。第18步:定義用訓(xùn)練過的目標(biāo)模型并攻擊函數(shù)perform_supply_target。第19步:在perform_supply_target函數(shù)中加載并測試自定義目標(biāo)模型。第20步:在perform_supply_target函數(shù)中初始化攻擊模型并訓(xùn)練。第21步:在perform_supply_target函數(shù)中訓(xùn)練并測試攻擊模型。4.實踐步驟5.命令行指令cli.py文件。定義了一個基于Click庫的命令行接口,用于執(zhí)行"AttributeInference"攻擊實驗。主要功能包括加載預(yù)訓(xùn)練的目標(biāo)模型和攻擊模型、訓(xùn)練新模型,以及使用自定義的目標(biāo)模型并訓(xùn)練攻擊模型。通過命令行可以運行不同的任務(wù)并設(shè)置相關(guān)的參數(shù)。4.實踐步驟第1步:導(dǎo)入必要的庫。第2步:定義命令行接口的父命令組。第3步:定義命令加載預(yù)訓(xùn)練模型并攻擊。第4步:定義命令訓(xùn)練目標(biāo)模型和攻擊模型。第5步:定義命令使用自定義目標(biāo)模型進行攻擊。第6步:執(zhí)行主程序。5.實踐結(jié)果得到目標(biāo)模型的準(zhǔn)確率和各個分類的屬性推理的準(zhǔn)確率的結(jié)果:1.目標(biāo)模型的性能:在訓(xùn)練了目標(biāo)模型后,該模型在性別分類任務(wù)中的準(zhǔn)確率達(dá)到了90%。說明目標(biāo)模型有效地從輸入的圖像中提取到了特征,并準(zhǔn)確地區(qū)分了性別種類。2.攻擊模型的性能:在訓(xùn)練完攻擊模型之后,通過利用目標(biāo)模型的輸出特征,推斷出55%的準(zhǔn)確率,意味著攻擊者通過較少的信息,仍然能對敏感屬性進行有效的推測,這顯示了潛在的隱私風(fēng)險。小結(jié)本實踐主要講述了如何利用神經(jīng)網(wǎng)絡(luò)技術(shù)進行屬性推理攻擊。祝同學(xué)們學(xué)習(xí)進步!致謝第12章模型公平性檢測與提升原理與實踐12.1模型公平性檢測與提升原理簡介本章介紹人工智能算法模型在處理數(shù)據(jù)時,由于設(shè)計不完善、數(shù)據(jù)不平衡或偏見的引入,會導(dǎo)致某些群體或?qū)ο笫艿讲还綄Υ?,從而形成算法歧視。本章主要講述如何對人工智能算法進行公平性檢測,從而消除歧視,進而提升算法的公平性。1.算法歧視機器學(xué)習(xí)模型隨著性能的極大提升,廣泛應(yīng)用于決策系統(tǒng)中,如醫(yī)療診斷和信用評分等。盡管取得了巨大成功,但大量研究揭示了訓(xùn)練數(shù)據(jù)中可能包含先前歧視和社會偏見的模式。在這些數(shù)據(jù)上訓(xùn)練的機器學(xué)習(xí)模型可能會繼承對年齡、性別、膚色和地區(qū)等敏感屬性的偏見。例如,有研究發(fā)現(xiàn),用于評估犯罪被告再犯可能性的犯罪預(yù)測系統(tǒng)存在嚴(yán)重的不公平現(xiàn)象。該系統(tǒng)對有色人種存在強烈的偏見,傾向于預(yù)測他們會再犯,即使他們沒有再犯的可能。如圖所示為算法歧視導(dǎo)致應(yīng)用場景中的可能問題。2.模型公平性方法常見模型公平性方法有訓(xùn)練前預(yù)處理,正則化技術(shù)和預(yù)測后處理等方法。其中常用的訓(xùn)練前預(yù)處理方法有重加權(quán)方法等,重加權(quán)方法通過修改訓(xùn)練實例的權(quán)重來平衡不同敏感屬性組的表示。上面提到的常見算法的性能都比較好,但是都需要敏感屬性信息以去除偏見。然而,對于許多現(xiàn)實世界的應(yīng)用來說,由于隱私和法律等問題,或數(shù)據(jù)收集的困難,很難獲得每個數(shù)據(jù)樣本的敏感屬性。盡管每個數(shù)據(jù)樣本的敏感屬性是未知的,但訓(xùn)練數(shù)據(jù)中通常有一些非敏感特征與敏感屬性高度相關(guān),可以用來減輕偏見。小結(jié)人工智能算法模型的不公平可能會導(dǎo)致某些潛在的安全影響,例如面部識別導(dǎo)致某些群體在身份驗證過程中遇到更高的拒絕率或錯誤率,再或者入侵檢測系統(tǒng)和行為分析算法對特定群體的誤報,這樣也會浪費資源。

本小節(jié)簡單介紹了模型公平性檢測原理。祝同學(xué)們學(xué)習(xí)進步!致謝網(wǎng)絡(luò)空間安全學(xué)院January24,2025第12章模型公平性檢測與提升原理與實踐實踐12-1模型公平性檢測與提升本章介紹本實踐內(nèi)容主要是檢測模型算法的公平性,消除算法歧視。實踐中使用ProPublicaCOMPAS數(shù)據(jù)集并構(gòu)建分類任務(wù),目標(biāo)是預(yù)測刑事被告是否會再次犯罪。1.實踐介紹實踐中主要使用了相關(guān)特征來學(xué)習(xí)沒有敏感屬性的公平和準(zhǔn)確的分類器?;舅悸肥鞘褂孟嚓P(guān)特征既作為訓(xùn)練分類器的特征,又作為偽敏感屬性來規(guī)范其行為,從而幫助學(xué)習(xí)公平和準(zhǔn)確的分類器。為了平衡分類準(zhǔn)確性和模型公平性,并應(yīng)對識別的相關(guān)特征不準(zhǔn)確和噪聲的情況,實踐中可以自動學(xué)習(xí)每個相關(guān)特征在模型中用于正則化的重要性權(quán)重。關(guān)于實踐中選用的基準(zhǔn),為了評估公平性算法的有效性,首先將其與普通模型和敏感屬性感知模型進行比較,它們可以作為模型性能的下界和上界:

1.香草模型:它直接使用基本分類器,不需要任何正則化項。在不采用公平保證算法的情況下顯示其性能。

2.約束條件:在這個基線中,假設(shè)每個數(shù)據(jù)樣本的敏感屬性都是已知的。1.實踐介紹實踐流程圖如圖所示。2.實踐目的(1)理解機器學(xué)習(xí)公平性問題(2)熟悉相關(guān)特征正則化算法及實現(xiàn)(3)體驗公平性設(shè)計思維3.實踐環(huán)境 python版本:3.10.12或更高版本 深度學(xué)習(xí)框架:torch2.2.2,sklearn1.3.0

其他庫版本:numpy1.24.3,click8.0.4,fairlearn0.10.0

運行平臺:pycharm4.實踐過程1、確定數(shù)據(jù)集。本文使用ProPublicaCOMPAS數(shù)據(jù)集并構(gòu)建分類任務(wù),目標(biāo)是預(yù)測刑事被告是否會再次犯罪。該數(shù)據(jù)集由2013年至2014年在佛羅里達(dá)州Broward縣接受COMPAS篩查的所有刑事被告組成。本實踐內(nèi)容僅對可用于預(yù)測被告再犯風(fēng)險的特征感興趣。4.實踐過程2、定義重要工具函數(shù)文件,命名utils.py。3、定義模型訓(xùn)練及公平性算法文件main.py。4、繪制相關(guān)屬性公平性模型關(guān)于迭代次數(shù)的熱力圖,在3中的main.py文件運行后得出相關(guān)屬性的參數(shù)設(shè)置后,對3中的main.py文件進行修改。5.實踐結(jié)果實踐結(jié)果:隨著迭代次數(shù)的增加,熱力圖中的顏色逐漸加深或變亮,則表明準(zhǔn)確率在逐漸提高,但是顏色加深到準(zhǔn)確率在0.67左右就開始保持不變,說明可能到達(dá)了該模型的性能上限或數(shù)據(jù)集較為復(fù)雜,應(yīng)考慮優(yōu)化模型的復(fù)雜度、數(shù)據(jù)質(zhì)量、特征選擇等因素,并可能需要進行模型調(diào)整或數(shù)據(jù)增強。小結(jié)本實踐內(nèi)容主要是檢測模型算法的公平性,消除算法歧視。祝同學(xué)們學(xué)習(xí)進步!致謝第13章水印去除原理與實踐13.1水印去除原理簡介本章介紹水?。╓atermark)原指中國傳統(tǒng)的用木刻印刷繪畫作品的方法?,F(xiàn)在的水印通常指的是添加到圖片、視頻等多媒體內(nèi)容中的防止盜版的半透明Logo或圖標(biāo)。本章主要是對水印知識進行介紹。實踐內(nèi)容是一個基于深度學(xué)習(xí)的圖像去水印應(yīng)用,采用SkipEncoder-Decoder模型。它的核心功能是通過對圖像及其相應(yīng)水印蒙版的深度分析和處理,有效去除圖像中的水印。在實踐中通過自動化學(xué)習(xí)和調(diào)整圖像數(shù)據(jù),以確保去水印后的輸出圖片質(zhì)量高,維持圖像的原始細(xì)節(jié)和色彩。1.水印介紹水印是一種在圖像、視頻或文檔中嵌入的標(biāo)識信息,通常用于版權(quán)保護、所有權(quán)聲明和信息驗證。水印可以分為兩類:1.可見水印2.不可見水印2.去除水印的方法1.傳統(tǒng)方法(1)圖像濾波:使用低通濾波、高通濾波等方法來去除水印,但容易影響圖像質(zhì)量。(2)插值法:通過插值技術(shù)填補去除水印后的空白區(qū)域,但效果受限于水印的復(fù)雜度和位置。(3)頻域方法:在頻域中處理圖像,通過傅里葉變換等技術(shù)去除水印,但復(fù)雜度較高。2.深度學(xué)習(xí)方法(1)卷積神經(jīng)網(wǎng)絡(luò)(CNN):使用卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)去水印的特征,能夠處理復(fù)雜的水印類型。(2)生成對抗網(wǎng)絡(luò)(GAN):通過生成器和判別器的對抗訓(xùn)練,生成高質(zhì)量的去水印圖像。3.去水印面臨的挑戰(zhàn)(1)保持圖像質(zhì)量(2)處理復(fù)雜背景(3)計算成本和效率4.水印蒙版水印蒙版是指用于標(biāo)記原始圖像中水印位置的二維圖形,通常是一個與原圖大小相同的圖像,其中水印部分是可見的,而非水印部分則是透明的或用其他方式標(biāo)識。5.SkipEncoder-Decoder模型

SkipEncoder-Decoder模型是一種用于圖像處理任務(wù)的深度學(xué)習(xí)架構(gòu),特別適用于像去水印這樣的圖像重建和修復(fù)任務(wù)。

它結(jié)合了編碼器-解碼器的架構(gòu),并引入了跳躍連接(skipconnections),從而有效地保留了圖像中的重要特征,并在解碼過程中重構(gòu)細(xì)節(jié)。小結(jié)本小節(jié)主要介紹圖像水印的相關(guān)知識。祝同學(xué)們學(xué)習(xí)進步!致謝網(wǎng)絡(luò)空間安全學(xué)院January24,2025第13章水印去除原理與實踐13.2基于SkipEncoder-Decoder網(wǎng)絡(luò)的圖像水印去除實踐介紹本實踐主要是讓學(xué)生使用SkipEncoder-Decoder模型來去除圖像中的水印,進一步學(xué)習(xí)深度神經(jīng)網(wǎng)絡(luò)的應(yīng)用實踐。1.實踐目的(1)模型理解:了解SkipEncoder-Decoder模型的工作原理。(2)算法應(yīng)用:通過實際編程實現(xiàn)去水印處理,掌握如何應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)進行圖像的特征提取和重建。(3)效果對比:通過實驗比較去水印前后的圖像,評估去水印效果的質(zhì)量,如清晰度、色彩保真度和細(xì)節(jié)恢復(fù)。(4)參數(shù)調(diào)優(yōu):通過調(diào)整模型參數(shù)(如損失函數(shù)、訓(xùn)練迭代次數(shù)等),學(xué)會如何優(yōu)化模型性能,達(dá)到更好的去水印效果。2.實踐環(huán)境1.Python版本:Python3.8.192.所需安裝庫:numpy1.23.5,torch2.3.0,torchvision0.18.0,matplotlib3.7.2,tqdm4.62.33.實踐過程1.配置實踐環(huán)境2.編寫inference.py文件。3.編寫api.py文件。4.編寫helper.py文件5.在model文件夾下定義generator.py文件。6.編寫modules.py文件。

(所有代碼書上和網(wǎng)盤里都有,大家可以下載、學(xué)習(xí))4.模型配置與訓(xùn)練(1)參數(shù)配置與初始化參數(shù)解析:使用argparse庫創(chuàng)建一個解析器,定義并獲取命令行輸入?yún)?shù),如圖像路徑、水印蒙版路徑、學(xué)習(xí)率等。這些參數(shù)將直接影響去水印的操作和結(jié)果。(2)圖像和蒙版的預(yù)處理讀取圖像和蒙版圖像尺寸調(diào)整轉(zhuǎn)換格式可視化預(yù)處理結(jié)果4.模型配置與訓(xùn)練可視化預(yù)處理結(jié)果:4.模型配置與訓(xùn)練(3)模型配置與訓(xùn)練準(zhǔn)備

設(shè)備配置:根據(jù)系統(tǒng)的硬件支持設(shè)置計算設(shè)備(CPU,CUDA,MPS),優(yōu)化運行效率。模型實例化:實例化Skip-Encoder-Decoder模型。這是一個復(fù)雜的編碼器-解碼器網(wǎng)絡(luò),結(jié)合了跳躍連接和深度可分離卷積,能有效地處理圖像中的詳細(xì)特征,并在去水印過程中重建損失或被遮蓋的圖像內(nèi)容。訓(xùn)練準(zhǔn)備。4.模型配置與訓(xùn)練(4)訓(xùn)練執(zhí)行與可視化(5)模型測試模型訓(xùn)練過程如圖所示。5.實踐結(jié)果實踐結(jié)果:小結(jié)本小節(jié)主要介紹通過深度神經(jīng)網(wǎng)絡(luò)的方法去除去除圖像中的水印。祝同學(xué)們學(xué)習(xí)進步!致謝第14章語音合成原理與實踐14.1語音合成原理簡介本章介紹

語音合成指的是一種能夠利用給定輸入合成語音的技術(shù),即文本到語音(Text-to-Speech,TTS)或語音到語音轉(zhuǎn)換(VoiceConversion,VC)方法。本章主要介紹了人工智能合成音頻技術(shù)、Tacotron模型、梅爾譜圖、長短記憶網(wǎng)絡(luò)、混合注意力機制等,在實踐環(huán)節(jié)主要介紹基于Tacotron2的語音合成系統(tǒng)。1.人工智能合成音頻技術(shù)介紹2022年江蘇衛(wèi)視跨年晚會上,一身優(yōu)雅紅色裙裝的鄧麗君與周深一起演繹了《小城故事》,《漫步人生路》,《大魚》3首歌,讓不少觀眾直呼感動。1.人工智能合成音頻技術(shù)介紹人工智能合成音頻技術(shù)是一種深度偽造技術(shù),它可以克隆一個人的聲音,并生成該人從未說過的話。具體來說,語音合成指的是一種能夠利用給定輸入合成語音的技術(shù),即文本到語音(Text-to-Speech,TTS)或語音到語音轉(zhuǎn)換(VoiceConversion,VC)方法。TTS方法可以從給定的輸入文本中合成自然的說話人聲音,而VC方法則通過修改源說話人的音頻波形,使其聽起來像目標(biāo)說話人的聲音,同時保持語音內(nèi)容不變。1.人工智能合成音頻技術(shù)介紹音合成技術(shù)主要包括兩個步驟:文本分析和聲音合成。文本分析階段涉及將輸入的文本轉(zhuǎn)換為語音合成的內(nèi)部表示,包括文本規(guī)范化、詞性標(biāo)注、語義解析等。聲音合成階段則是將這些內(nèi)部表示轉(zhuǎn)換為聲音波形,最終輸出為人類可聽的語音。目前主流的方法是基于深度學(xué)習(xí)的語音合成方法。1.人工智能合成音頻技術(shù)介紹

語音合成流水線包含文本前端(TextFrontend)、聲學(xué)模型(AcousticModel)和聲碼器(Vocoder)三個主要模塊。語音合成基本流程圖:2.Tacotron模型介紹在人工智能合成音頻技術(shù)領(lǐng)域,目前應(yīng)用較為廣泛的是Tacotron系統(tǒng)。2017年3月,Google提出了一種新的端到端的語音合成系統(tǒng):Tacotron。該系統(tǒng)可以接收字符輸入并輸出相應(yīng)的原始頻譜圖,然后將其提供給Griffin-Lim重建算法直接生成語音。2.Tacotron模型介紹Tacotron后來研究出了改進版Tacotron2。Tacotron2系統(tǒng)去除了CBHG模塊,更改為使用長短期記憶網(wǎng)絡(luò)(LongShort-TermMemory,LSTM)和卷積層來代替CBHG。3.梅爾譜圖

梅爾譜圖通過模擬人耳對頻率的感知方式,將音頻信號從線性頻率尺度轉(zhuǎn)換為梅爾頻率尺度,從而更好地反映人類對不同頻率的感知。它主要用于處理音頻信號,幫助分析和識別音頻內(nèi)容。3.梅爾譜圖梅爾譜圖生成過程:?(1)預(yù)處理音頻信號?:首先,音頻信號會被采樣,并分成多個重疊的短時間幀。每個幀通常持續(xù)20-40毫秒,并對每一幀施加窗函數(shù)以減少頻譜泄露。?(2)短時傅里葉變換(STFT)?:對每一幀進行傅里葉變換,得到頻譜圖。這一步將信號從時間域轉(zhuǎn)換為頻率域,表示為頻率和時間的二維數(shù)組。?(3)計算功率譜?:從STFT的復(fù)數(shù)矩陣中計算功率譜,即將每個頻率成分的幅度平方,得到頻率成分的能量。?(4)應(yīng)用梅爾濾波器組?:使用梅爾濾波器組將功率譜從線性頻率尺度轉(zhuǎn)換到梅爾頻率尺度。這些濾波器是三角形的,覆蓋頻譜的不同頻率區(qū)域,每個濾波器的中心頻率根據(jù)梅爾刻度均勻分布。4.長短期記憶網(wǎng)絡(luò)在語音合成領(lǐng)域,由于輸入語句的某處發(fā)音通常決定于其上下文內(nèi)容,因此建模時需要關(guān)注長時間跨度的序列信息。卷積神經(jīng)網(wǎng)絡(luò)屬于前向神經(jīng)網(wǎng)絡(luò),即是單向的輸入到輸出映射,無法很好地獲取時序相關(guān)信息。因此在建模具有時間跨度的序列特征時,通常使用的結(jié)構(gòu)是RNN。但一般的RNN結(jié)構(gòu),由于梯度消失問題,能捕獲到的上下文內(nèi)容是有范圍限制的,故使用長短期記憶網(wǎng)絡(luò)LSTM。LSTM網(wǎng)絡(luò)內(nèi)部的核心構(gòu)件記憶細(xì)胞單元如圖14.5所示。記憶細(xì)胞單元內(nèi)部由胞狀態(tài)(CellState)、輸入門(InputGate)、輸出門(OutputGate)、遺忘門(ForgetGate)這四個部件構(gòu)成。4.長短期記憶網(wǎng)絡(luò)

LSTM網(wǎng)絡(luò)內(nèi)部的核心構(gòu)件記憶細(xì)胞單元如圖所示。記憶細(xì)胞單元內(nèi)部由胞狀態(tài)(CellState)、輸入門(InputGate)、輸出門(OutputGate)、遺忘門(ForgetGate)這四個部件構(gòu)成。5.混合注意力機制

注意力機制是一種人類大腦信號處理方法,被人類大腦用來快速篩選關(guān)鍵信息,它可以提高人類對信息處理的效率與準(zhǔn)確性。注意力機制也常被用于深度學(xué)習(xí)中的序列到序列模型中,使得模型能夠關(guān)注到輸入序列的關(guān)鍵信息。

注意力機制的有很多種,在Tacotron2中使用的是混合注意力機制(HbridAttention),它基于內(nèi)容的注意力機制(Content-basedAttention)與基于位置的注意力機制(Location-basedAttention)有效地結(jié)合起來。

6.編碼器-解碼器結(jié)構(gòu)在語音合成系統(tǒng)中,輸入序列(文本)與輸出序列(音頻)的長度往往是不一致的,不能直接將輸入序列的每個字符與目標(biāo)發(fā)音進行一一對應(yīng),為此需使用編碼器-解碼器(Encoder-Decoder)結(jié)構(gòu)。7.聲碼器聲碼器(Vocoder)在人工語音合成中經(jīng)常被用于將生成的語音特征轉(zhuǎn)換為所需要的語音波形。在Tacotron2中,由于前端的神經(jīng)網(wǎng)絡(luò)所預(yù)測出的梅爾譜圖只包含了幅值信息而缺乏相應(yīng)的相位信息,系統(tǒng)難以直接通過短時傅里葉變換(STFT)的逆變換將梅爾譜圖還原為相應(yīng)的聲音波形文件;因此,系統(tǒng)需要使用聲碼器進行相應(yīng)的相位估計,并將梅爾譜圖轉(zhuǎn)換為語音波形。小結(jié)

人工智能合成音頻技術(shù)(簡稱語音合成技術(shù))是一種深度偽造技術(shù),它可以克隆一個人的聲音,并生成該人從未說過的話。TTS方法可以從給定的輸入文本中合成自然的說話人聲音,而VC方法則通過修改源說話人的音頻波形,使其聽起來像目標(biāo)說話人的聲音,同時保持語音內(nèi)容不變。本小節(jié)主要介紹人工智能合成音頻時用到的相關(guān)技術(shù)。祝同學(xué)們學(xué)習(xí)進步!致謝網(wǎng)絡(luò)空間安全學(xué)院January24,2025第14章語音合成原理與實踐14.2基于Tacotron2的語音合成實踐本章介紹本實踐能夠克隆一個人的聲音,并利用這個聲音說一些指定的話,但事實上這個人從來沒有說過。項目特別關(guān)注零樣本學(xué)習(xí)設(shè)置,即僅使用幾秒鐘未轉(zhuǎn)錄的目標(biāo)說話人的參考音頻生成新的語音,而不需要更新任何模型參數(shù)。1.系統(tǒng)結(jié)構(gòu)基于Tacotron2的語音合成主要由三個獨立的神經(jīng)網(wǎng)絡(luò)組成:(1)說話人編碼器網(wǎng)絡(luò)

在包含數(shù)千名說話人的帶噪聲數(shù)據(jù)集上進行訓(xùn)練,不需要文本數(shù)據(jù)。它可以利用幾秒鐘的語音生成一個代表說話人特征的向量。說話人編碼器用于生成一個固定維度的嵌入向量(d-vector),這個向量表示了說話人的特征。它可以從目標(biāo)說話人的幾秒鐘參考語音中提取出這些特征。1.系統(tǒng)結(jié)構(gòu)(2)基于Tacotron2的序列到序列合成器

利用說話人特征向量,從文本生成梅爾頻譜圖(MelSpectrogram),用來表示音頻信號的頻率內(nèi)容的圖像。合成器根據(jù)輸入文本和說話人編碼器生成的嵌入向量生成高質(zhì)量的梅爾頻譜圖。梅爾頻譜圖(MelSpectrogram)是音頻信號的頻率域表示,顯示音頻信號在不同時間點上的頻率強度。1.系統(tǒng)結(jié)構(gòu)(3)基于WaveNet的自回歸聲碼器將梅爾頻譜圖轉(zhuǎn)換為時域波形(時域波形表示音頻信號隨時間變化的圖形,是音頻信號的原始形式),生成最終的語音信號。聲碼器將合成器生成的梅爾頻譜圖轉(zhuǎn)換為時域波形,生成最終的語音信號。2.實驗?zāi)繕?biāo)(1)學(xué)習(xí)和理解語音合成模型的基本原理(2)實現(xiàn)和理解TTS系統(tǒng)(3)了解模型訓(xùn)練3.實驗環(huán)境(1)學(xué)習(xí)4.實踐過程(1)下載安裝包(2)編寫Encode(編碼器)文件夾下的inference.py文件該文件用于執(zhí)行音頻嵌入的推理任務(wù),特別是對語音進行特征提取和生成嵌入向量。該代碼使用了預(yù)訓(xùn)練的SpeakerEncoder模型,輸入音頻片段,生成用于說話人識別等任務(wù)的嵌入向量。4.實踐過程(3)編寫Synthesizer(合成器)文件夾下的inference.py文件該文件實現(xiàn)了一個基于Tacotron模型的文本到語音合成器類TextToSpeechSynthesizer。它主要負(fù)責(zé)加載訓(xùn)練好的Tacotron模型并使用它將文本輸入轉(zhuǎn)換為音頻的梅爾頻譜圖。該文件還提供了多個輔助函數(shù)來加載模型、處理音頻文件、生成梅爾頻譜圖、以及處理輸入數(shù)據(jù)的填充操作。4.實踐過程(4)編寫vocoder(聲碼器)文件夾inference.py文件。該文件加載并使用WaveRNN模型來生成語音波形。它通過`load_wave_rnn_model`函數(shù)加載模型權(quán)重,并根據(jù)設(shè)備選擇在CPU或GPU上運行。`is_wave_rnn_model_loaded`用于檢查模型是否已加載,`generate_waveform`函數(shù)根據(jù)輸入的梅爾頻譜圖生成語音波形,支持歸一化和批處理選項。4.實踐過程(5)編寫demo.py文件。該文件的功能是執(zhí)行文本到語音的合成,具體是通過加載語音編碼器、文本合成器和聲碼器模型,從輸入的語音文件生成語音特征文件,并根據(jù)用戶提供的文本進行語音合成。代碼支持通過命令行參數(shù)指定模型路徑,并控制是否播放生成的音頻。5.實踐結(jié)果在實驗中,克隆samples文件夾下person1的音頻,并輸出HelloLisa,IamalsofromBeijingUniversityofPostsandTelecommunications。發(fā)現(xiàn)可以成功地克隆聲音,文件保存為person1_demo_output_00.wav。在合成Person1的音頻時,生成的梅爾頻譜圖如圖所示:小結(jié)本實踐主要講述了如何利用Tacotron2模型進行語音合成實踐。祝同學(xué)們學(xué)習(xí)進步!致謝第15章視頻分析原理與實踐15.1視頻分析原理簡介本章介紹視頻分析技術(shù)在網(wǎng)絡(luò)空間安全中有著非常廣泛的應(yīng)用,例如自動駕駛、犯罪分子識別、自動車牌識別等。本章簡單介紹視頻分析原理,并通過一個安全帽子識別的例子來實踐視頻分析技術(shù)。該方法主要是從視頻中截取圖像來進行特定對象(如安全帽)的檢測。1.視頻分析介紹視頻分析英文叫IVS(IntelligentVideoSystem)。視頻分析技術(shù)就是使用計算機圖像視覺分析技術(shù),通過將場景中背景和目標(biāo)分離進而分析并追蹤在攝像機場景內(nèi)出現(xiàn)的目標(biāo)。

視頻分析系統(tǒng)可以根據(jù)視頻內(nèi)容或視頻截獲的圖像內(nèi)容進行分析,通過在不同攝像機的場景中預(yù)設(shè)不同的報警規(guī)則,一旦目標(biāo)在場景中違反了預(yù)定義的規(guī)則,系統(tǒng)會自動發(fā)出報警。圖:特斯拉的視頻分析。1.視頻分析介紹視頻分析技術(shù)目前發(fā)展非??臁R曨l分析技術(shù)實質(zhì)是一種算法,它主要基于數(shù)字化圖像分析和計算機視覺。視頻分析技術(shù)主要發(fā)展方向如下:(1)視頻分析技術(shù)將繼續(xù)數(shù)字化、網(wǎng)絡(luò)化、智能化。(2)視頻分析技術(shù)將向著適應(yīng)更為復(fù)雜和多變的場景發(fā)展。(3)視頻分析技術(shù)向著識別和分析更多的行為和異常事件的方向發(fā)展。(4)視頻分析技術(shù)向著更低的成本方向發(fā)展。(5)視頻分析技術(shù)向著真正“基于場景內(nèi)容分析”的方向發(fā)展。(6)視頻分析技術(shù)向著提前預(yù)警和預(yù)防的方向發(fā)展。2.視頻目標(biāo)檢測深度學(xué)習(xí)中的目標(biāo)檢測是指使用深度學(xué)習(xí)模型來識別和定位圖像中的對象。這個過程不僅包括識別圖像中存在哪些目標(biāo)(例如人、車輛、安全帽等),還包括確定這些目標(biāo)在圖像中的具體位置,通常是通過繪制邊界框(boundingboxes)來實現(xiàn)。

視頻中的目標(biāo)檢測模型能夠輸出每個邊界框內(nèi)對象的類別和位置信息,廣泛應(yīng)用于視頻監(jiān)控、自動駕駛、醫(yī)療影像分析等多個領(lǐng)域。3.YOLOv5框架YOLOv5是由Ultralytics開發(fā)的先進目標(biāo)檢測框架,作為YOLO系列的第五代,它繼承了YOLO算法速度快和易于部署的特點,同時在準(zhǔn)確性上也進行了顯著提升。YOLOv5采用CSPDarknet53作為其主干網(wǎng)絡(luò),通過CrossStagePartialNetwork結(jié)構(gòu)優(yōu)化了特征提取過程,減少了計算量。作為一個單階段檢測器,它避免了傳統(tǒng)兩階段檢測器中的區(qū)域提議網(wǎng)絡(luò),實現(xiàn)快速且高效的目標(biāo)定位和分類。YOLOv5的代碼完全開源。小結(jié)本小節(jié)主要介紹視頻分析技術(shù)、目標(biāo)檢測以及YOLOv5框架,為進一步編程實踐視頻分析和圖形分析做基礎(chǔ)。祝同學(xué)們學(xué)習(xí)進步!致謝網(wǎng)絡(luò)空間安全學(xué)院January24,2025第15章視頻分析原理與實踐實踐15-1基于YOLOv5的安全帽識別實踐介紹本實踐基于YOLOv5模型開發(fā)的自動化目標(biāo)檢測項目,旨在通過實時分析圖像或視頻流來確保工地人員正確佩戴安全帽。1.實踐內(nèi)容本編程實踐通過一系列預(yù)定義的步驟,包括數(shù)據(jù)集的準(zhǔn)備、預(yù)處理、模型訓(xùn)練和檢測,實現(xiàn)了對安全帽佩戴情況的高精度監(jiān)控。圖為YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)圖。2.實踐目的理解視頻目標(biāo)檢測技術(shù)。YOLOv5模型架構(gòu)理解。模型訓(xùn)練與超參數(shù)調(diào)整。模型性能分析與優(yōu)化。3.實踐環(huán)境python版本:3.8.5或以上版本所需安裝庫:numpy1.18.5,tensorboard2.2,Torch1.6.0,torchvision0.7.0,matplotlib3.2.2,opencv-python4.1.2預(yù)訓(xùn)練模型:yolov5m.pt4.實踐過程第1步:通過以下鏈接下載項目代碼。將壓縮包解壓后,用Pycharm打開。鏈接:/s/1liTgVRYVaQIEUiomchl58g?pwd=g3cu提取碼:g3cu。在Pycharm中打開項目代碼,如圖所示。4.實踐過程第2步:安裝實踐環(huán)境,打開PyCharm的終端界面。輸入命令`pipinstall-rrequirements.txt`并按回車鍵執(zhí)行。系統(tǒng)將根據(jù)requirements.txt文件中的列表自動下載并安裝所有必要的依賴項。等待安裝過程完成,這可能需要一些時間,具體取決于實際網(wǎng)絡(luò)速度。然后安裝實踐環(huán)境。4

溫馨提示

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

評論

0/150

提交評論