• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于記憶增強的對抗自編碼器異常檢測算法

      2021-02-24 13:04:04成衛(wèi)青
      關(guān)鍵詞:編碼器重構(gòu)矩陣

      蔚 燾,成衛(wèi)青

      (南京郵電大學計算機學院、軟件學院、網(wǎng)絡(luò)空間安全學院,江蘇 南京 210023)

      異常檢測(Anomaly detection)[1],又稱離群點檢測(Outlier detecion),是檢測不匹配預期模式或與大多數(shù)數(shù)據(jù)實例顯著不同的數(shù)據(jù)點,這些被檢測出的數(shù)據(jù)點被稱為異常點。隨著人工智能的快速發(fā)展,異常檢測在計算機視覺[2]、數(shù)據(jù)挖掘[3]、自然語言處理等實際應用領(lǐng)域發(fā)揮著越來越重要的作用。例如,從監(jiān)控視頻中檢測出不符合常規(guī)模式的行為[4-5],金融企業(yè)根據(jù)信用卡交易記錄識別出欺詐行為[6],網(wǎng)絡(luò)安全領(lǐng)域中的攻擊檢測[7],這些領(lǐng)域的數(shù)據(jù)在維度和規(guī)模上都在迅速增長,因此需要更高效和準確的方法檢測數(shù)據(jù)中的異常。由于異常的罕見性,數(shù)據(jù)集中正常數(shù)據(jù)往往占據(jù)絕大多數(shù),這就導致獲取足夠異常數(shù)據(jù)的高成本和困難性,所以在實際應用中采用監(jiān)督學習通常不切實際。

      近些年來,國內(nèi)外針對異常檢測問題的研究主要集中于半監(jiān)督[8]方式與無監(jiān)督方式。通常來說,異常檢測所采用的技術(shù)大致可以分為基于統(tǒng)計的方法、基于距離的方法、基于密度的方法和深度學習方法。由于深度學習在處理高維數(shù)據(jù)、時序數(shù)據(jù)和空間數(shù)據(jù)等復雜數(shù)據(jù)的優(yōu)異表現(xiàn),深度學習開始應用于解決現(xiàn)實世界中各種具有挑戰(zhàn)性的異常檢測問題,并且相較于其他方法其性能有了大幅提高。其中最具代表性的深度異常檢測方法就是自編碼器,自編碼器不僅能夠?qū)?shù)據(jù)進行降維,還能將降維數(shù)據(jù)重新構(gòu)造為原始輸入。這一特性成為自編碼器應用于異常檢測的關(guān)鍵原因,自編碼器異常檢測技術(shù)通過學習到的低維特征對訓練數(shù)據(jù)的某些內(nèi)在規(guī)律進行表示,當輸入異常樣本時產(chǎn)生更大的重構(gòu)誤差,異常樣本得以檢測成功。

      自編碼器作為一種無監(jiān)督的人工神經(jīng)網(wǎng)絡(luò),將重構(gòu)輸入數(shù)據(jù)作為訓練目標,忽略數(shù)據(jù)中存在的噪聲進行表征學習。自編碼器主要應用于數(shù)據(jù)降維和異常檢測,它的一系列變體能夠使其具有更豐富的特征表示能力,能夠更好地解決自編碼器泛化能力過強的問題。稀疏自編碼器(Sparse Autoencoder,SAE)[9]鼓勵以稀疏性的方式進行特征學習,對隱藏層的節(jié)點添加稀疏性約束,即只允許隱藏層同時激活更少的單元,這種稀疏性約束迫使神經(jīng)網(wǎng)絡(luò)學習到訓練數(shù)據(jù)中更具代表性的特征。降噪自編碼器(Denoising AE,DAE)[10]通過向輸入數(shù)據(jù)添加一些隨機噪點,然后讓其重構(gòu)沒有噪聲的原始數(shù)據(jù)。這種情況下,模型能夠迫使隱藏層學習更具魯棒性的特征。變分自編碼器(Variational Autoencoder,VAE)[11]是一種生成模型,通過學習用于對數(shù)據(jù)進行建模的概率分布參數(shù),使用潛在空間上的先驗分布將輸入數(shù)據(jù)映射到一個分布,其編碼分布在訓練過程中會引入正則化,確保學習結(jié)構(gòu)良好的潛在空間并減少訓練過程中的過擬合,從而能夠生成新的數(shù)據(jù)樣本。Gong等人于2019年提出了一種將記憶增強模塊用于改進傳統(tǒng)的自編碼器無監(jiān)督異常檢測模型MemAE[12],該模型旨在解決自編碼器在進行異常檢測時所面臨的泛化能力過強的問題,提高異常檢測性能。

      雖然MemAE有效提高了異常檢測性能,但是受限于自編碼器對于正常數(shù)據(jù)的編碼能力,對于部分測試數(shù)據(jù)依然難以實現(xiàn)較好的重構(gòu)?;谙惹暗难芯?,對抗自編碼器[13]融合了生成式對抗網(wǎng)絡(luò)的思想,使得解碼器學習成為一個表現(xiàn)良好的深度生成模型。受此啟發(fā),本文提出一種基于記憶增強的對抗自編碼器異常檢測模型。

      在一系列異常檢測數(shù)據(jù)集上的實驗結(jié)果表明,本文提出的MemAAE模型相較于其他異常檢測模型擁有更好的結(jié)果,證明了方法的有效性。

      1 相關(guān)工作

      1.1 MemAE 模型

      隨著深度學習被廣泛應用于解決各種復雜問題,那些不具備捕獲數(shù)據(jù)間依賴關(guān)系的神經(jīng)網(wǎng)絡(luò)模型難以滿足需求。循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[14]的提出使得網(wǎng)絡(luò)具有短期記憶的功能,相較于傳統(tǒng)模型的隱節(jié)點輸出僅取決于當前的輸入特征,而RNN網(wǎng)絡(luò)的當前輸出也包含了記憶信息。在此基礎(chǔ)上,Hochreiter等人提出的長短期記憶(Long Short?Term Memory,LSTM)[15]神經(jīng)網(wǎng)絡(luò)進一步提升了記憶能力。它們被廣泛應用于自然語言處理、機器翻譯和推薦算法等領(lǐng)域并取得了巨大的成功[16]。但是LSTM網(wǎng)絡(luò)通過隱藏層或注意力機制實現(xiàn)的記憶功能有限,因此有研究使用外部記憶保存訓練信息并在需要時進行讀取。

      2014年,F(xiàn)acebook人工智能實驗室提出一種新的學習模型,將其命名為 MemNN(Memory Neural Network)[17]。該模型的核心思想是將用于推理的機器學習策略與可讀寫的長期記憶模塊相結(jié)合,構(gòu)建一個動態(tài)的知識庫。MemNN在問答數(shù)據(jù)集bAbl上的表現(xiàn)遠遠超過其他模型,受到了廣泛關(guān)注。由于該篇論文提出的是一種普適性的架構(gòu),之后有很多論文提出了多種改進方式[18],記憶神經(jīng)網(wǎng)絡(luò)得到了快速發(fā)展并成為機器學習領(lǐng)域中不可或缺的分支。

      2019年提出的MemAE[12]模型主要由3個組件組成:編碼器、解碼器和記憶增強模塊。編碼器用于將輸入數(shù)據(jù)進行編碼并生成查詢項,解碼器用于重構(gòu)編碼輸入,而記憶增強模塊包括用于記錄各種正常模式的記憶項和讀取記憶項的尋址操作,算法的具體流程如圖1所示。該算法通過在自編碼器中引入記憶增強模塊,不直接將編碼結(jié)果進行解碼,而將其作為查詢項通過基于注意力機制的尋址操作檢索記憶增強模塊中的正常模式并對記憶項進行更新,最后將查詢結(jié)果輸入解碼器進行重構(gòu)。在訓練過程中,算法通過最小化重構(gòu)誤差和記憶項查詢權(quán)值的熵損失對模型進行訓練。在測試階段,固定記憶矩陣參數(shù),根據(jù)編碼器的編碼結(jié)果對記憶矩陣的尋址結(jié)果將記憶項進行組合,組合結(jié)果將通過解碼器進行重構(gòu),重建誤差將作為量化異常程度的標準。

      1.2 AAE 模型

      生成式對抗網(wǎng)絡(luò)(GenerativeAdversarial Networks,GAN)由Goodfellow等人于2014年提出,自提出以來迅速成為一種流行的生成式模型[19]。生成式對抗網(wǎng)絡(luò)的核心思想源自于零和博弈(Two?player game),該模型由生成模型G和判別模型D組成。生成模型G通過學習捕捉真實數(shù)據(jù)的分布,將隨機噪聲映射為分布與真實樣本一致的偽樣本,目的是最大程度地混淆鑒別器D。鑒別器是一個判斷樣本是否來自于真實樣本的神經(jīng)網(wǎng)絡(luò)。模型的訓練過程視為生成器和判別器的交替更新,直到判別器難以區(qū)分樣本來自于真實樣本還是生成的偽樣本,此時模型達到了納什均衡,說明生成器學習到了訓練數(shù)據(jù)的潛在特征空間。真實樣本與生成樣本的重構(gòu)誤差可以被定義為異常分數(shù),用于解決異常檢測問題[20]。

      2015年,Makhzani等人通過將自編碼器網(wǎng)絡(luò)與GAN網(wǎng)絡(luò)引入的對抗性損失訓練相融合提出了對抗自編碼器 (Adversarial Autoencoder,AAE)[13]。AAE網(wǎng)絡(luò)使用了類似于變分自編碼器(VAE)的思想,不同之處是AAE使用對抗損失代替KL散度進行正則化。AAE模型有兩個訓練目標:一個是最小化傳統(tǒng)自編碼器的重構(gòu)誤差,另一個是將自編碼器隱變量的聚合后驗分布與任意的先驗分布相匹配。

      如圖2所示,AAE模型由兩個部分組成:自編碼器和生成對抗網(wǎng)絡(luò)GAN。自編碼器中的編碼器既承擔著將輸入數(shù)據(jù)編碼到低維特征空間中,作為解碼器的輸入,同時又作為對抗網(wǎng)絡(luò)中的生成器生成偽樣本。設(shè)x為輸入數(shù)據(jù),z為經(jīng)過編碼器得到的編碼向量。q(z|x)表示編碼分布函數(shù),pd(x)表示真實的數(shù)據(jù)分布,那么編碼器隱藏層的聚合后驗分布q(z) 為

      圖2 對抗自編碼器模型

      對抗自編碼器在訓練過程中引入了生成對抗網(wǎng)絡(luò)的正則化,目的是使聚合后驗分布q(z)與先驗分布p(z)相匹配。編碼器將生成的服從聚合后驗分布q(z)的樣本連同服從先驗分布p(z)的樣本發(fā)送給判別器,首先判別器將更新自身參數(shù),提高判別能力,然后將判別結(jié)果進行反饋,編碼器將根據(jù)反饋結(jié)果更新參數(shù),生成能夠混淆判別網(wǎng)絡(luò)的樣本。當訓練結(jié)束后,判別網(wǎng)絡(luò)將難以判別樣本來自于先驗分布還是聚合后驗分布,編碼器將引導編碼結(jié)果的聚合后驗分布q(z)匹配先驗分布p(z)。

      2 異常檢測模型

      2.1 模型結(jié)構(gòu)

      AAE的編碼器和解碼器使用對稱的前饋非循環(huán)網(wǎng)絡(luò),當模型被應用于處理圖像數(shù)據(jù)時,將圖像像素值堆疊到一列數(shù)據(jù)之中,將其作為標準的全連接神經(jīng)網(wǎng)絡(luò)的輸入。但是像素值的堆疊會導致圖像空間信息的丟失,深度神經(jīng)網(wǎng)絡(luò)對于高維數(shù)據(jù)的非線性映射表現(xiàn)一般,并且這種處理方式需要計算大量的神經(jīng)網(wǎng)絡(luò)參數(shù),為實驗帶來了更大的計算壓力。因此當數(shù)據(jù)集為圖像數(shù)據(jù)時,本文使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)代替原先的全連接神經(jīng)網(wǎng)絡(luò),卷積將有效提取隱藏于圖像中的空間信息。當AAE模型運用于異常檢測時,由于自編碼器的泛化能力過強使得異常數(shù)據(jù)也能夠較好地重構(gòu),為此引入記憶增強模塊。

      記憶增強的對抗自編碼器結(jié)構(gòu)如圖3所示。MemAAE模型由4部分組成:編碼器、記憶增強模塊、解碼器和判別器。與傳統(tǒng)自編碼器模型相比,該模型在編碼器之后增加記憶增強模塊,使用存儲的記憶項聚合結(jié)果代替編碼結(jié)果進行解碼。該模型的對抗訓練過程與GAN網(wǎng)絡(luò)類似,MemAAE將編碼器與記憶增強模塊作為生成器,訓練過程的目標為記憶模塊輸出的編碼向量所服從的分布盡可能與某一先驗分布接近。

      圖3 記憶增強的對抗自編碼器模型

      判別器是一個全連接的前饋神經(jīng)網(wǎng)絡(luò),并且判別器的輸出層僅由一個神經(jīng)元組成,并使用Sigmoid函數(shù)作為激活函數(shù)。對于任何輸入,判別器將輸出范圍在(0,1)之間的值,該值表示輸入來自于某一先驗分布p(z)的概率。在訓練過程中,判別器將首先更新自身參數(shù),提高判別能力,并賦予自編碼器生成的樣本更低的評分,然后將判別結(jié)果反饋給編碼器,編碼器將據(jù)此更新自身參數(shù)生成“以假亂真”的樣本來欺騙判別器。

      2.2 算法詳情

      本文提出的異常檢測算法訓練過程主要可分為兩個階段:自編碼器通過最小化重構(gòu)誤差更新自身參數(shù),以及生成器與判別器的對抗過程。

      2.2.1 重構(gòu)階段

      本文將輸入的原始數(shù)據(jù)集樣本空間表示為X,當給定一個輸入x∈X,經(jīng)過編碼器fe(x)編碼將其轉(zhuǎn)換為低維特征空間中的編碼z∈Z,然后解碼fd(z)將其重構(gòu)為輸出。 以上過程可表達為

      式中,Θe和Θd分別代表編碼器和解碼器的參數(shù),We和Wd分別表示編碼器和解碼器神經(jīng)單元之間的連接參數(shù),be和bd則表示神經(jīng)元的偏置項,σ表示激活函數(shù)。重構(gòu)誤差由均方誤差(Mean?Square Error,MSE)進行度量,作為異常程度判別的依據(jù)。

      記憶增強模塊設(shè)計為一個大小為N×C的矩陣M,即N個維數(shù)固定為C的實值向量,每個記憶項維數(shù)C與自編碼器編碼結(jié)果z的維數(shù)相同。使用pi∈RC(i=1,…,N) 表示記憶矩陣中第i個行向量,即第i個記憶項。如上文所述,假設(shè)給定某一輸入,經(jīng)過編碼器編碼的結(jié)果為z∈RC,通過計算查詢項z和記憶矩陣中每一記憶項pi之間的余弦相似度獲取注意力權(quán)重系數(shù),獲取記憶模塊的查詢結(jié)果。假定余弦相似度計算公式為cos(·,·),余弦相似度表達式為

      將得到大小為1×N的表示查詢z和記憶項pi相關(guān)性的一維向量,然后對向量應用softmax函數(shù)獲取注意力權(quán)重

      如式(5)所示,當給定某一查詢項z時,記憶模塊將檢索與z相似度最高的記憶項,獲得查詢結(jié)果。 在訓練階段,由于記憶矩陣的大小受到限制,而重構(gòu)輸出是解碼器對查詢結(jié)果z^進行解碼的結(jié)果,這就潛在要求了記憶矩陣保存最具代表性的原型模式。

      然而,某些異常數(shù)據(jù)仍然可能通過記憶項的復雜組合使得最終得到的重構(gòu)誤差較小。文獻[12]提出一種收縮機制提高注意力權(quán)重系數(shù)w的稀疏性,因為稀疏性鼓勵使用更少的記憶項表示查詢結(jié)果,這將提高記憶項的表示精度。其公式為

      式中,λ表示收縮閾值,將權(quán)重系數(shù)w中小于或等于閾值的元素賦值為0,實現(xiàn)系數(shù)的稀疏性,表示稀疏化后的權(quán)重系數(shù)。但是計算不連續(xù)函數(shù)的反向傳播并不容易,為了計算的簡便性,本文使用連續(xù)的ReLU函數(shù)實現(xiàn)收縮操作,其公式為

      式中,δ表示一個極小的常量。當收縮完成后,重新進行標準化操作

      假設(shè)最終獲取的尋址向量為w=(w1,…,wN)∈R1×N,將尋址向量w作為N個原型向量的權(quán)重進行加權(quán)求和運算讀取記憶模塊,獲得如下查詢結(jié)果計算過程由式(9)表示。

      式中尋址向量w為非負向量。

      如式(9)所示,最終的查詢結(jié)果考慮到所有的原型向量而非距離最近的某一原型,記憶原型在訓練過程中得到了優(yōu)化,在理解訓練樣本正常性的同時,解決了自編碼器的泛化能力過強的問題,使得異常樣本重構(gòu)損失明顯大于正常樣本重構(gòu)損失。

      2.2.2 對抗訓練階段

      本階段的訓練過程與GAN網(wǎng)絡(luò)相類似,自編碼器中的編碼器與記憶矩陣一起充當生成器,判別器將區(qū)分數(shù)據(jù)是否來源于服從某一先驗分布的真實樣本。

      在經(jīng)過一次自編碼器最小化重構(gòu)誤差的基礎(chǔ)上,判別器將收到服從于某一真實先驗分布的樣本以及由編碼器和記憶增強矩陣組成的生成器所生成的偽樣本。相較于AAE的對抗訓練過程,因為記憶增強矩陣具有的記憶特性,在一定程度上彌補了單一自編碼器作為生成器生成能力不足的問題,提高了判別器的判別能力。判別器將通過最小化式(10)提高判別器的判別能力,以區(qū)分生成的偽樣本和真實樣本,此階段生成器G不參與訓練,即

      式中,ΘD表示判別器參數(shù),表示生成器G生成的偽樣本,zi表示服從于某一先驗分布的真實樣本。生成器G將參與訓練過程,通過最小化二值交叉熵損失提高生成器的生成能力,以根據(jù)先驗分布p(z)生成樣本,公式為

      式中,ΘG表示生成器的參數(shù),表示判別器對于輸入樣本的判別結(jié)果,所以式(11)等價于

      式中,xi表示編碼器輸入,G和D分別表示生成器與判別器。

      當訓練結(jié)束時,判別器將難以區(qū)分輸入來自于生成器輸出的偽樣本還是服從某種先驗分布的真實樣本。相較于MemAE模型的記憶矩陣在訓練過程中提取訓練數(shù)據(jù)中的正常模式,MemAAE模型中的記憶矩陣在提取正常模式的基礎(chǔ)上同時具有滿足先驗分布的特性。在之后的重構(gòu)階段,解碼器能夠?qū)⑷我獾姆哪骋幌闰灧植嫉臄?shù)據(jù)解碼為正常樣本,這將在一定程度上增大輸入異常數(shù)據(jù)時的重構(gòu)誤差。同時記憶增強模塊的加入降低了對抗自編碼器的過擬合風險以及可能出現(xiàn)的模式崩潰問題。以上這些因素說明了MemAE模型引入對抗訓練過程的合理性和必要性。測試階段僅使用自編碼器進行測試,此時記憶矩陣中存儲著從訓練數(shù)據(jù)提取的正常模式,測試時保持記憶矩陣參數(shù)不變,使用均方誤差度量輸入和輸出之間的重構(gòu)誤差。當輸入異常數(shù)據(jù)時,編碼結(jié)果會被檢索到的正常模式所取代,這會使得異常數(shù)據(jù)的重構(gòu)誤差大于正常數(shù)據(jù)的重構(gòu)誤差,優(yōu)于傳統(tǒng)的自編碼器方法。此外,經(jīng)過對抗訓練任何服從先驗分布的樣本都會成為有意義的樣本,這在一定程度上優(yōu)化了解碼器的生成效果,提高了異常檢測結(jié)果。

      3 實驗與結(jié)果分析

      3.1 實驗設(shè)置

      為驗證MemAAE模型的有效性,本文將在文本數(shù)據(jù)集和圖像數(shù)據(jù)集分別進行測試。文本數(shù)據(jù)集選用來自于異常檢測數(shù)據(jù)集網(wǎng)站OODS[21]的8個數(shù)據(jù)集進行實驗,這些數(shù)據(jù)集均來自于真實世界。8種文本數(shù)據(jù)集的詳細信息見表1。文本數(shù)據(jù)集描述如下:

      表1 數(shù)據(jù)集統(tǒng)計信息

      (1)分娩心電圖描記法(Cardio)數(shù)據(jù)集是記錄胎兒心率數(shù)據(jù)的分類數(shù)據(jù)集。數(shù)據(jù)集包含正常、可疑和非正常3個類別。本文實驗舍去了類別為可疑的數(shù)據(jù),非正常類別被標記為異常數(shù)據(jù)。

      (2)大腸桿菌(Ecoli)數(shù)據(jù)集記錄了蛋白質(zhì)定位信息。其中將omL、imL和imS類別數(shù)據(jù)標記為異常數(shù)據(jù),其余類別標記為正常數(shù)據(jù)。

      (3)淋巴系造影(Lympho)數(shù)據(jù)集是記錄患者淋巴影像信息用于腫瘤診斷的數(shù)據(jù)集。它包含了4個類別,將其中兩個較小類別標記為異常數(shù)據(jù),其余標記為正常數(shù)據(jù)。

      (4)手寫數(shù)字(Optdigits)數(shù)據(jù)集包含了對數(shù)千條手寫數(shù)字0~9的圖像進行預處理之后的標準化位圖。其中將數(shù)字1~9標記為正常數(shù)據(jù),提取150條數(shù)字0實例標記為異常。

      (5)鋼筆手寫數(shù)字(Pendigits)數(shù)據(jù)集是從44位不同書寫者的手寫數(shù)字收集的,數(shù)據(jù)集包含了數(shù)字0~9,將數(shù)字0視為異常樣本。

      (6)地震預測(Seismic)數(shù)據(jù)集是來自于波蘭某處煤礦所記錄的一系列地質(zhì)數(shù)據(jù),用于預測未來可能出現(xiàn)的地震活動。它是一個不平衡數(shù)據(jù)集,其中“危險”為少數(shù)類,將視為異常類別。

      (7)甲狀腺疾病(Thyroid)數(shù)據(jù)集來自于澳大利亞Garavan研究所記錄的甲狀腺疾病的診斷檔案。其中將功能亢進類別視作異常數(shù)據(jù),其余視為正常數(shù)據(jù)。

      (8)酵母(Yeast)數(shù)據(jù)集來自于日本一所研究院對于酵母細胞的蛋白質(zhì)定位位點與細胞化學分析指標關(guān)系的研究。將原始數(shù)據(jù)集中類別為ME3、MIT、NUC和CYT的數(shù)據(jù)視為正常樣本,隨機抽取其他類別的5%標記為異常樣本。

      本文選用的圖像數(shù)據(jù)集為MNIST[22]。該數(shù)據(jù)集來自于美國國家標準與技術(shù)研究所,MNIST[22]包含了250個人的手寫數(shù)字,其中50%的人是高中學生,其余50%來自于人口普查局。該數(shù)據(jù)集包含了數(shù)字0~9共計70 000張手寫數(shù)字的灰度圖像,圖像大小均為28像素×28像素,其中的60 000張圖像組成訓練集,其余的10 000張圖像組成測試集。

      3.2 模型設(shè)置及評價指標

      對于文本異常數(shù)據(jù),MemAAE異常檢測模型中的編碼器和解碼器均使用全連接層實現(xiàn)。在MemAAE模型中,自編碼器采用對稱設(shè)計,編碼器輸入和解碼器輸出的維度均與數(shù)據(jù)集特征維數(shù)相同,對于隱藏層節(jié)點的個數(shù),通常設(shè)置為前一層神經(jīng)元數(shù)量的1/2或2/3,但是為了避免數(shù)據(jù)被過度壓縮,難以重建,隱藏層的節(jié)點個數(shù)不少于3個。以數(shù)據(jù)集Optdigits為例,原始數(shù)據(jù)特征維數(shù)為64,編碼器的隱藏層節(jié)點個數(shù)分別設(shè)置為32、16和8。判別器設(shè)置為3層前饋神經(jīng)網(wǎng)絡(luò),隱藏層使用Relu激活函數(shù),輸出層為單一神經(jīng)元節(jié)點,使用Sigmoid激活函數(shù)將結(jié)果轉(zhuǎn)化為0到1之間,表示輸入為異常的概率。

      對于原始數(shù)據(jù)集,類別屬性值為0表示正常數(shù)據(jù),1表示異常數(shù)據(jù)。本文將隨機抽取80%的正常數(shù)據(jù)組成訓練集,將其余20%的正常數(shù)據(jù)與全部的異常數(shù)據(jù)組成測試集。本文選擇Adma算法作為深度神經(jīng)網(wǎng)絡(luò)的優(yōu)化算法,學習率設(shè)置為0.001。

      對于圖像數(shù)據(jù),本文使用簡單的卷積神經(jīng)網(wǎng)絡(luò)代替原先的全連接神經(jīng)網(wǎng)絡(luò)實現(xiàn)自編碼器。相較于全連接網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)能夠有效提取圖像中的空間信息,而且大大減少了訓練過程中的參數(shù)以及可能出現(xiàn)的過擬合問題。對于MNIST數(shù)據(jù)集,編碼器和解碼器分別用三層卷積層和反卷積層實現(xiàn),除去最后的反卷積層,每一層之后都經(jīng)過批量標準化處理(Batch Normalization,BN)和ReLU激活函數(shù)。對于編碼器的輸出,將其變換為一維行向量作為查詢項。判別器模型的設(shè)置與文本異常檢測相類似。

      對于MNIST數(shù)據(jù)集的10個不同類別,將其中的一個類別視為正常樣本,其余9個類別視為異常樣本,將訓練得到10個異常檢測模型。本文將采用MNIST數(shù)據(jù)集的初始分割,將某一類別大約6 000張圖像作為訓練集,測試集中的10 000張圖像全部作為測試樣本。同樣選擇Adam算法進行訓練,學習率設(shè)置為0.000 1,記憶矩陣大小固定為100,單次訓練選取樣本數(shù)為32。

      本文將以AUC值作為模型的評價指標。AUC值通過計算ROC曲線與坐標軸形成的圖形面積得到,ROC曲線通過真正例率(TPR)和假正例率(FPR)繪制。

      3.3 實驗結(jié)果與分析

      3.3.1 文本數(shù)據(jù)

      為驗證本文提出方法的有效性,選擇了4種具有代表性的異常檢測算法進行對比,采用AUC值作為異常檢測性能的評判指標。5種模型在8個真實文本數(shù)據(jù)集上的測試結(jié)果見表2。每一數(shù)據(jù)集下取得的最優(yōu)實驗結(jié)果用粗體標記。

      表2 異常檢測性能比較

      從8個文本數(shù)據(jù)集的實驗結(jié)果可以看出,MemAAE模型在5個數(shù)據(jù)集上取得了相較于其他4種模型更好的結(jié)果,證明了MemAAE模型在文本異常檢測任務(wù)中的有效性。相較于MemAE模型,MemAAE模型引入了對抗訓練過程,增強了自編碼器及記憶矩陣對于正常樣本的編碼能力,使記憶矩陣中存儲的記憶項更具代表性,提高了模型對于異常樣本的檢測能力。

      對于MemAAE的訓練過程,可以分為2個階段:自編碼器更新自身參數(shù)最小化重構(gòu)誤差以及生成器和判別器的對抗過程。為了探尋對抗過程的增加對于原始MemAE模型訓練過程的影響,MemAE模型和MemAAE模型的自編碼器重構(gòu)誤差隨迭代次數(shù)增加而不斷變化的過程如圖4所示。除此之外,通過將記憶矩陣大小設(shè)置為不同的值進行實驗,使用折線圖表示記憶矩陣大小對實驗結(jié)果的影響,實驗結(jié)果如圖5所示。以上過程將使用Thyroid數(shù)據(jù)集進行實驗。

      圖4 MemAAE模型訓練過程中重構(gòu)誤差的變化曲線

      圖5 記憶增強模塊的大小設(shè)置為不同的值對實驗結(jié)果的影響

      如圖4所示,根據(jù)Thyroid數(shù)據(jù)集訓練過程中重構(gòu)損失的變化圖像,MemAAE模型在訓練初始階段的重構(gòu)誤差遠大于MemAE,但是其損失的下降速度遠大于MemAE模型,在大約10次迭代之后兩者的重構(gòu)損失開始趨于穩(wěn)定并且收斂值大致相同。這表明MemAAE模型增加了對抗訓練過程之后,會影響訓練初始過程的重構(gòu)損失,但對于收斂速度和收斂值的影響較小,證明本文提出的改進方法的有效性。通過改變記憶矩陣維數(shù)這個超參數(shù),對MemAAE模型的魯棒性進行研究,如圖5所示,對于文本異常檢測數(shù)據(jù)集,隨著記憶矩陣維度的增加,模型的AUC值將趨于穩(wěn)定,說明當記憶矩陣維度大于某一閾值時,MemAAE對于這個超參數(shù)的設(shè)置并不敏感。

      3.3.2 圖像數(shù)據(jù)

      為了驗證MemAAE模型在圖像數(shù)據(jù)集上依然有著良好的表現(xiàn),選擇MNIST數(shù)據(jù)集進行實驗。為了驗證本文提出的改進方案的有效性,選擇以下異常模型作為對比。

      一類支持向量機(One Class Support Vector Machine,OC?SVM)/支持向量數(shù)據(jù)描述(Support Vector Data Description,SVDD)[26]通過將數(shù)據(jù)映射到高維特征空間中學習正常數(shù)據(jù)的邊界,測試時將處于邊界之外的數(shù)據(jù)視為異常數(shù)據(jù)。

      深度支持向量數(shù)據(jù)描述(Deep Support Vector Data Description,Deep SVDD)[27]將原 SVDD 利用核函數(shù)提取特征改進為利用神經(jīng)網(wǎng)絡(luò)提取特征,將正常樣本收縮于超球面,異常樣本遠離超球面。

      孤立森林(Isolation Forest,IF)[28]將異常定義為遠離高密度數(shù)據(jù)的容易被孤立的樣本,該算法通過多次隨機分割數(shù)據(jù)集直至所有樣本點孤立,而異常樣本相較正常樣本可以通過更少的次數(shù)被分割孤立。

      深度卷積自編碼器(Deep Convolutional Autoen?coder,DCAE)的編碼器采用了與Deep SVDD一樣的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),解碼器采用對稱結(jié)構(gòu),通過最小化均方損失誤差進行訓練,利用重構(gòu)誤差作為異常程度的判別標準。

      AnoGAN[29]是一種利用GAN網(wǎng)絡(luò)實現(xiàn)異常檢測的方法,該模型對于給定的任何數(shù)據(jù)實例x,它的訓練目標是在生成網(wǎng)絡(luò)G學習到的潛在特征空間中搜索實例z,使得相應的生成實例G(z)和x盡可能相似。異常分數(shù)由測試樣本與生成實例的重構(gòu)誤差以及判別器的判別分數(shù)組成。

      對于MNIST數(shù)據(jù)集,將10個數(shù)字分別視為正常數(shù)據(jù),訓練相應的異常檢測模型。以上的異常檢測方法在該數(shù)據(jù)集上的測試結(jié)果如表3所示,其中加粗結(jié)果為該數(shù)據(jù)集在不同方法下取得的最優(yōu)結(jié)果。

      表3 各異常檢測模型在MNIST數(shù)據(jù)集上的結(jié)果比較

      如表3所示,本文所提出的MemAAE模型在MNIST數(shù)據(jù)集的7個數(shù)字上取得了優(yōu)于其他方法的性能,表明了MemAAE模型在圖像數(shù)據(jù)集上依然能夠有良好的表現(xiàn)。與MemAE模型相比,對抗訓練過程的引入使得編碼器和記憶矩陣輸出的編碼向量符合某一先驗分布。此時的解碼器可以視為生成式對抗網(wǎng)絡(luò)的深度生成網(wǎng)絡(luò),它可以將服從先驗分布的隱向量重新映射回原始的數(shù)據(jù)空間,重構(gòu)誤差可以作為判別輸入數(shù)據(jù)是否為異常的依據(jù)。由實驗結(jié)果可知,對抗過程的引入一定程度上提高了檢測性能,證明了本文所提改進方案的有效性。

      為了觀察引入對抗訓練對于自編碼器訓練過程產(chǎn)生的影響,以MNIST數(shù)據(jù)集中數(shù)字1的訓練過程為例進行對比,兩個模型保持結(jié)構(gòu)、參數(shù)相同,訓練次數(shù)設(shè)置為100次。最終自編碼器訓練過程中的重構(gòu)損失如圖6所示,可以看到MemAAE模型在訓練初期的重構(gòu)損失遠大于MemAE模型,但其訓練損失下降較快,最終收斂的重構(gòu)損失稍大于對比模型。圖7(a)顯示了判別器通過最小化式(10)所示的判別損失提高判別能力的過程,此階段自編碼器不參與訓練過程。而圖7(b)則展示了編碼器參與訓練過程,判別器對應的判別損失隨迭代次數(shù)增加的變化曲線,判別損失的計算如式(12)所示。由此可知,判別器的判別損失在大約40次迭代后開始趨于穩(wěn)定,表示此時的編碼器能夠使得輸出的編碼結(jié)果與某一先驗分布相匹配,證明了本文引入對抗訓練過程的有效性。

      圖6 訓練過程中重構(gòu)誤差變化曲線的對比

      圖7 MemAAE模型的判別器在訓練過程中判別損失的變化曲線

      同樣地,為了研究記憶模塊大小對于實驗結(jié)果的影響,將記憶矩陣大小分別設(shè)置為不同的值進行實驗,最終的結(jié)果取5次實驗的平均值。如圖8所示,當記憶矩陣的大小為100時,AUC值最高,獲得最佳結(jié)果。綜上,MemAAE模型在圖像數(shù)據(jù)集上的結(jié)果表明模型對于記憶增強模塊大小設(shè)置的敏感性,這與模型在文本數(shù)據(jù)集上的表現(xiàn)不同。

      圖8 記憶增強模塊的維數(shù)設(shè)置為不同的值對實驗結(jié)果的影響

      4 結(jié)束語

      針對已有基于記憶增強的自編碼器異常檢測模型不能很好地重構(gòu)輸入數(shù)據(jù)的問題,本文提出了基于記憶增強的對抗自編碼器異常檢測模型。在多個公共數(shù)據(jù)集上的實驗結(jié)果表明了MemAAE模型在異常檢測領(lǐng)域的有效性。其中針對圖像數(shù)據(jù)集的實驗結(jié)果說明將卷積神經(jīng)網(wǎng)絡(luò)與AAE網(wǎng)絡(luò)相結(jié)合依然能夠取得良好的結(jié)果,拓展了AAE的模型結(jié)構(gòu)與應用范圍。在未來的研究工作可以針對模型訓練過程中的不穩(wěn)定問題進行改進,另外可以進一步拓展MemAAE模型的實際應用場景。

      猜你喜歡
      編碼器重構(gòu)矩陣
      長城敘事的重構(gòu)
      攝影世界(2022年1期)2022-01-21 10:50:14
      北方大陸 重構(gòu)未來
      基于FPGA的同步機軸角編碼器
      北京的重構(gòu)與再造
      商周刊(2017年6期)2017-08-22 03:42:36
      基于PRBS檢測的8B/IOB編碼器設(shè)計
      論中止行為及其對中止犯的重構(gòu)
      初等行變換與初等列變換并用求逆矩陣
      JESD204B接口協(xié)議中的8B10B編碼器設(shè)計
      電子器件(2015年5期)2015-12-29 08:42:24
      矩陣
      南都周刊(2015年4期)2015-09-10 07:22:44
      矩陣
      南都周刊(2015年3期)2015-09-10 07:22:44
      镇宁| 大英县| 调兵山市| 麦盖提县| 绥江县| 双江| 淮滨县| 繁昌县| 洛阳市| 皋兰县| 双城市| 全椒县| 江华| 潮安县| 元阳县| 论坛| 道孚县| 广德县| 平谷区| 武义县| 汉寿县| 蕲春县| 酒泉市| 长海县| 营山县| 林甸县| 潞城市| 阳曲县| 阿合奇县| 湖州市| 海南省| 田东县| 岑巩县| 桂林市| 方山县| 嘉峪关市| 渝北区| 晋中市| 康保县| 龙州县| 龙陵县|