• 
    

    
    

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

      ?

      基于CNN的安防數(shù)據(jù)相似重復(fù)記錄檢測模型

      2023-03-15 09:56:42洪惠君梁雅靜
      關(guān)鍵詞:向量矩陣算法

      王 巍 劉 陽 洪惠君 梁雅靜

      1(河北工程大學(xué)信息與電氣工程學(xué)院 河北 邯鄲 056038) 2(河北省安防信息感知與處理重點(diǎn)實(shí)驗(yàn)室 河北 邯鄲 056038) 3(江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院 江蘇 無錫 214122)

      0 引 言

      隨著信息化時(shí)代的飛速發(fā)展,每個(gè)行業(yè)每天都會(huì)產(chǎn)生大量的數(shù)據(jù),安防行業(yè)也不例外。在安防行業(yè)中,部分結(jié)構(gòu)化的信息還需要以手工錄入、人為修改的方式進(jìn)行[1]。這種方式不但效率低,而且會(huì)產(chǎn)生許多的臟數(shù)據(jù),會(huì)直接影響到各類事件的后續(xù)處理效率。這些臟數(shù)據(jù)的表現(xiàn)形式主要有相似重復(fù)記錄、缺失數(shù)據(jù)、沖突數(shù)據(jù)和錯(cuò)誤數(shù)據(jù)等幾種類型[2]。其中數(shù)據(jù)源中存在相似重復(fù)記錄是最嚴(yán)重的問題之一,嚴(yán)重時(shí)可能會(huì)導(dǎo)致數(shù)據(jù)失效。因此相似重復(fù)記錄的檢測及清除一直都是研究的熱點(diǎn)。

      當(dāng)前常見的相似重復(fù)記錄檢測算法主要有編輯距離算法(Levenshtein Distance)、Smith-Waterman算法、N-gram算法和機(jī)器學(xué)習(xí)算法等。陳俊月等[3]提出了基于詞向量的編輯距離算法,改進(jìn)了傳統(tǒng)的編輯距離算法和Jaccard系數(shù),將編輯距離的刪除和插入兩種編輯操作修改為空字符與目標(biāo)字符的替換操作,通過詞向量計(jì)算每種編輯操作的相似度并累加,得出改進(jìn)的編輯距離相似度。文獻(xiàn)[4]改進(jìn)了編輯距離算法,使用同義詞詞典替換了傳統(tǒng)的語法變異的方法,對于存在大量語法錯(cuò)誤和拼寫錯(cuò)誤的問題的數(shù)據(jù)集,可有效提高算法的精度。文獻(xiàn)[5]利用依賴圖的傳遞閉包和循環(huán)傾斜提出了一種Smith-Waterman算法并行化的方法,將精確傳遞閉包的方法替代為近似傳遞閉包,在現(xiàn)代多核計(jì)算機(jī)中加速效果顯著。文獻(xiàn)[6]對比了三種基于統(tǒng)一計(jì)算設(shè)備架構(gòu)(Compute Unified Device Architecture,CUDA)的Smith-Waterman算法的并行計(jì)算方法,分別是粗粒度加速方法、細(xì)粒度加速方法和重新定義遞歸公式的方法。其中:粗粒度加速方法可利用GPU同時(shí)處理多個(gè)對齊,但是不同線程處理長度不同的序列的時(shí)間不同,導(dǎo)致處理短序列的線程等待時(shí)間較長;細(xì)粒度加速方法可以利用多線程計(jì)算DP矩陣,減少了中間計(jì)算的時(shí)間,但是在計(jì)算開始和結(jié)束的階段都需要花費(fèi)大量的時(shí)間;重新定義遞歸公式的方法重新定義了Smith-Waterman算法的遞歸公式,將算法時(shí)間復(fù)雜度從O(mn)降低到了O(mlog2n),其中m和n表示任意兩條記錄的長度,提高了算法的效率,但不能對差距的擴(kuò)大給出不同的罰分。王常武等[7]提出了一種加權(quán)的N-Gram相似重復(fù)元數(shù)據(jù)記錄檢測算法,對于不同的標(biāo)簽在相似重復(fù)記錄檢測的過程中的重要程度賦予不同的權(quán)重,依據(jù)權(quán)重使用加權(quán)的N-gram算法進(jìn)行相似度計(jì)算,實(shí)驗(yàn)表明,加權(quán)后的N-gram算法優(yōu)于普通的N-gram算法。陳亮等[8]使用分塊技術(shù)根據(jù)字段對數(shù)據(jù)排序并分塊,使用滑動(dòng)窗口的思想提升檢測效率,然后將各字段得出的分塊一起聚類,對重復(fù)率較大的分塊對首先比對,并放棄聚類效果較差的分塊,最終通過降低聚類次數(shù)和放棄聚類效果較差的分塊的方式提升了效率和準(zhǔn)確率。

      近年來機(jī)器學(xué)習(xí)成了研究的熱點(diǎn),幾乎在各行業(yè)都有應(yīng)用案例,也有研究人員運(yùn)用機(jī)器學(xué)習(xí)算法來檢測相似重復(fù)記錄。相似重復(fù)記錄的檢測在機(jī)器學(xué)習(xí)中可以看作分類問題中的二分類問題。呂國俊等[9]提出了一種基于多目標(biāo)蟻群優(yōu)化的支持向量機(jī)的相似重復(fù)記錄檢測方法,該方法將相似重復(fù)記錄描述為一個(gè)二分類問題,同時(shí)考慮到相似重復(fù)記錄中重復(fù)樣本很少的問題,只用不相似重復(fù)記錄樣本進(jìn)行訓(xùn)練。文中的實(shí)驗(yàn)結(jié)果驗(yàn)證單類支持向量機(jī)算法的有效性。張攀[10]將BP神經(jīng)網(wǎng)絡(luò)運(yùn)用到相似重復(fù)記錄的檢測當(dāng)中,用兩條記錄相同字段間的編輯距離組成的向量作為BP網(wǎng)絡(luò)的輸入數(shù)據(jù),并為其添加上標(biāo)簽訓(xùn)練出BP網(wǎng)絡(luò),然后使用訓(xùn)練出的BP神經(jīng)網(wǎng)絡(luò)檢測兩條記錄是否為相似重復(fù)記錄,實(shí)驗(yàn)結(jié)果表明,在數(shù)據(jù)生成器“febrl”生成的數(shù)據(jù)中,基于BP神經(jīng)網(wǎng)絡(luò)的相似重復(fù)記錄檢測方法的準(zhǔn)確率可達(dá)97%以上。孟祥逢等[11]首先融合Jaro算法與TF-IDF算法計(jì)算字段相似度,然后使用經(jīng)過遺傳算法優(yōu)化的神經(jīng)網(wǎng)絡(luò)計(jì)算兩條記錄的相似度,可以有效提高檢測的準(zhǔn)確率和精度,但在中文數(shù)據(jù)中的效果還有待商榷。

      盡管上述相似重復(fù)記錄檢測算法的精確率(Precision)和召回率(Recall)等指標(biāo)都已經(jīng)達(dá)到了較高的水平,但是上述數(shù)據(jù)大部分是開源的數(shù)據(jù)集,實(shí)際應(yīng)用中的數(shù)據(jù)集存在更復(fù)雜的情況。在安防數(shù)據(jù)庫中,由于不同信息錄入員的不同習(xí)慣,存在大量空值、錯(cuò)誤值、串字段錯(cuò)誤和各種符號(hào)等干擾信息,對相似重復(fù)記錄的檢測產(chǎn)生了一定的影響,同時(shí)安防數(shù)據(jù)中部分相似重復(fù)記錄肉眼辨別都需要較長時(shí)間。例如表1中前兩條記錄表述不同,但實(shí)際含義相同,是相似重復(fù)記錄,而后兩條記錄雖然僅存在個(gè)別字不同,但其是兩個(gè)不同的加油站,不是相似重復(fù)記錄。因此,安防數(shù)據(jù)相似重復(fù)記錄的檢測難度比網(wǎng)絡(luò)上開源的數(shù)據(jù)集要高,需要開發(fā)一種適用于安防數(shù)據(jù)的相似重復(fù)記錄檢測模型,檢測出盡可能多的相似重復(fù)記錄對,同時(shí)還需要較強(qiáng)的泛化能力。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是深度學(xué)習(xí)的代表算法之一,在深度學(xué)習(xí)中的研究最為廣泛[12]。近年來,CNN開始應(yīng)用于文本分類等自然語言處理領(lǐng)域,并且取得了一定的成果。例如,文獻(xiàn)[13-14]將CNN應(yīng)用于文本情感分類;宋巖等[15]使用CNN對文本進(jìn)行分類;肖琳等[16]使用CNN對文本進(jìn)行多標(biāo)簽分類;張璞等[17]結(jié)合CNN與微博文本特征對用戶性別進(jìn)行分類等。

      表1 安防數(shù)據(jù)相似重復(fù)記錄示例

      因此,本文設(shè)計(jì)一種基于CNN的安防數(shù)據(jù)相似重復(fù)記錄檢測模型。通過對在手寫數(shù)字識(shí)別上擁有不錯(cuò)效果的LeNet- 5進(jìn)行改進(jìn),得出了兩種適用于安防數(shù)據(jù)的相似重復(fù)記錄模型,一種是以詞向量矩陣為輸入的CNN模型(Word Embedding Matrix CNN,WE-CNN),另一種是以相似度矩陣為輸入的CNN模型(Similarity Matrix CNN,SIM-CNN)。然后分別對這兩種模型進(jìn)行了介紹,并通過了K折驗(yàn)證,使用精確率、召回率和F1值(F1 Score)等評價(jià)指標(biāo)對模型進(jìn)行了評價(jià)。

      1 數(shù)據(jù)預(yù)處理

      為了提高模型的效率和可靠性,在訓(xùn)練模型之前,需要對數(shù)據(jù)進(jìn)行預(yù)處理,并且需要將每條記錄中的每個(gè)詞都轉(zhuǎn)換為模型可以識(shí)別的詞向量(Word Embedding)。根據(jù)安防數(shù)據(jù)存在的問題以及安防數(shù)據(jù)的特點(diǎn),本文將數(shù)據(jù)預(yù)處理主要步驟分為分詞和詞向量生成兩部分,具體流程如下:

      (1) 字段選擇。手動(dòng)選擇數(shù)據(jù)庫中對于任意兩條記錄是否為相似重復(fù)記錄影響較大的字段,并且刪除數(shù)據(jù)庫中的空記錄等無效的記錄。

      (2) 分詞。對記錄中的每一個(gè)字段進(jìn)行中文分詞,并刪除停用詞、標(biāo)點(diǎn)、特殊字符等內(nèi)容。本文采用“jieba”分詞工具進(jìn)行分詞。將每條記錄分詞后的內(nèi)容按照字段順序組成一個(gè)列表,也就是一個(gè)列表對應(yīng)一條記錄,則第i個(gè)列表的長度L(i)表示為:

      (1)

      式中:n為字段數(shù);lif為第i個(gè)列表的第f個(gè)字段分詞后的詞語的個(gè)數(shù)。

      (3) 訓(xùn)練詞向量。對分詞后的所有列表進(jìn)行詞向量的訓(xùn)練,得出每一個(gè)詞的詞向量c。本文采用Google的“Word2vec”工具訓(xùn)練詞向量,主要參數(shù)如表2所示。其語料庫為本文的實(shí)驗(yàn)數(shù)據(jù)某安防報(bào)警網(wǎng)絡(luò)公司用戶數(shù)據(jù)。

      表2 “Word2vec”詞向量訓(xùn)練工具主要參數(shù)

      表2中的Skip-gram算法使用中心詞預(yù)測周圍詞語,根據(jù)預(yù)測結(jié)果修正中心詞詞向量。通過對安防領(lǐng)域數(shù)據(jù)的驗(yàn)證,大部分字段為中文短句或者長詞組,每個(gè)詞與前后詞的關(guān)聯(lián)較大,并且這些短句或者長詞組對兩條記錄是否為相似重復(fù)記錄影響較大,因此對于安防領(lǐng)域數(shù)據(jù),可使用“Word2vec”的Skip-gram算法訓(xùn)練詞向量。

      (4) 合成矩陣。將每一個(gè)記錄中的所有詞語對應(yīng)的詞向量組成一個(gè)向量組,該向量組就是詞向量矩陣。假設(shè)第i條記錄的詞向量矩陣是Vi,則該矩陣表示為:

      Vi=[c1,c2,…,cL(i)]

      (2)

      使用Word2vec中的相似度計(jì)算算法,計(jì)算出兩條記錄m和n中所有詞之間的相似度,組成相似度矩陣S,表示為:

      (3)

      (5) 統(tǒng)一矩陣大小。統(tǒng)一各詞向量矩陣的矩陣大小和各相似度矩陣的矩陣大小,根據(jù)分詞后的每一個(gè)列表的長度L(i)(i∈N且i∈[0,n),n是數(shù)據(jù)庫中刪除無效記錄后的記錄數(shù)),選擇合適的矩陣大小,不足的部分補(bǔ)充0,超出的部分刪除。如果選擇的矩陣大小太小,無法包含記錄的有效信息,相反,過大會(huì)降低計(jì)算的效率。圖1為本文選用的安防數(shù)據(jù)記錄對應(yīng)的記錄長度比例分布圖,橫坐標(biāo)表示記錄長度,縱坐標(biāo)表示小于等于某長度的記錄與全部記錄的數(shù)量比??梢钥闯?5%左右的記錄長度都在60以下,因此本文的詞向量矩陣大小為60×100,相似度矩陣大小為60×60。

      圖1 安防數(shù)據(jù)記錄長度比例分布

      (6) 標(biāo)記數(shù)據(jù)。標(biāo)記兩條記錄m和n是否為相似重復(fù)記錄,并將m和n詞向量矩陣與標(biāo)簽組成帶標(biāo)簽的詞向量矩陣數(shù)據(jù)。將兩條記錄m和n組成的相似度矩陣與標(biāo)簽組成帶標(biāo)簽的相似度矩陣數(shù)據(jù)。

      上述流程如圖2所示。

      圖2 數(shù)據(jù)預(yù)處理流程

      2 模型設(shè)計(jì)

      2.1 LeNet- 5模型

      Fukushima[18]最早提出了卷積神經(jīng)網(wǎng)絡(luò),除去輸入層和輸出層,卷積神經(jīng)網(wǎng)絡(luò)通常還包含若干個(gè)卷積層、池化層和全連接層。LeNet- 5[19]是出現(xiàn)時(shí)間最早的卷積神經(jīng)網(wǎng)絡(luò)之一,由Yann LeCun提出,最早應(yīng)用于手寫體識(shí)別。LeNet- 5的結(jié)構(gòu)如圖3所示。

      圖3 LeNet- 5結(jié)構(gòu)

      LeNet- 5一共有8層,包括:3個(gè)卷積層C1、C3和C5;兩個(gè)池化層S2和S4;一個(gè)全連接層F6;一個(gè)輸入層INPUT和一個(gè)輸出層OUTPUT。其中INPUT層的輸入是1幅維度為32的圖片;C1層通過6個(gè)5×5大小的卷積核得出6幅維度為28的特征圖;S2層將上一層特征圖中2×2范圍內(nèi)的數(shù)值相加并乘一個(gè)系數(shù)加一個(gè)偏置,得出6幅維度為14的特征圖,這個(gè)過程稱為二次采樣(Subsampling),其中的系數(shù)和偏置可訓(xùn)練;C3層采用部分映射的方式將S2層的6幅特征圖通過5×5大小的卷積核轉(zhuǎn)換為16幅10×10的特征圖,表3展示了具體對應(yīng)的方案,其中的數(shù)字為特征圖(通道)號(hào);S4層通過二次采樣,得出16幅5×5的特征圖;C5層用5×5的卷積核對5×5的特征圖進(jìn)行卷積操作,將S4層的16幅特征圖轉(zhuǎn)換為120幅1×1的特征圖;F6層包括84個(gè)單元,并且完全連接到C5層。OUTPUT層有10個(gè)歐氏徑向基函數(shù)單元,表示十個(gè)手寫數(shù)字,可得到圖片是哪個(gè)手寫數(shù)字。

      表3 S2與C3的連接方案

      2.2 改進(jìn)的LeNet- 5模型

      (1) WE-CNN模型。與復(fù)雜的圖像識(shí)別相比,文本識(shí)別的復(fù)雜度要低一些。而LeNet- 5可以識(shí)別較為簡單的手寫體圖片,所以將LeNet- 5應(yīng)用于相似重復(fù)記錄的識(shí)別具有一定的可行性。為了讓LeNet- 5模型適用于文本識(shí)別,并且可以有效解決安防數(shù)據(jù)相似重復(fù)記錄檢測存在的無法填補(bǔ)的空值、串字段等難點(diǎn),本文設(shè)計(jì)以記錄的詞向量矩陣為輸入的CNN模型WE-CNN,模型在LeNet- 5的基礎(chǔ)上進(jìn)行改進(jìn),改進(jìn)后的模型如圖4所示,具體做了以下幾個(gè)部分的改進(jìn)。

      圖4 WE-CNN模型結(jié)構(gòu)

      在LeNet- 5中,輸入維度為32×32,為了保證得到更全的細(xì)節(jié)特征,提高模型的識(shí)別率,將輸入的維度修改為與數(shù)據(jù)預(yù)處理中描述的60×100,同時(shí)因?yàn)橐袛鄡蓷l記錄的相似度,所以輸入的通道數(shù)為2。

      為了簡化算法,將S2層與C3層之間的連接方案改為全映射;把C5層改為全連接層并改名為F5,這樣可以更好地將特征矩陣中的信息傳遞下去,這里涉及的特征矩陣對應(yīng)LeNet- 5中的特征圖;C1層和C3層均采用3×3的卷積核,并且將卷積操作的填補(bǔ)(padding)設(shè)置為1,在進(jìn)行卷積操作時(shí)可以不改變特征矩陣的維度,在簡化各層之間的維度計(jì)算的同時(shí)可以保留更全的信息;將S2層和S4層中的二次采樣修改為最大池化(Max-Pool),可以保留記錄中更多的邊緣特征。

      由于相似重復(fù)記錄檢測問題屬于二分類問題,故將模型的輸出從十個(gè)改為一個(gè),并使用Sigmoid函數(shù),將輸出值轉(zhuǎn)化為一個(gè)介于0到1之間的概率值,概率值越接近1,表示輸入的兩條記錄為相似重復(fù)記錄的可能性越大,反之不是相似重復(fù)記錄的可能性越大,區(qū)分是否是相似重復(fù)記錄的閾值通常取0.5。

      為了防止出現(xiàn)過擬合的現(xiàn)象,在S2層與C3層之間、S4層和F5層之間、F5層和F6層之間、F6層和OUTPUT層之間均加入Dropout方法。Dropout方法可以隨機(jī)丟棄p%的神經(jīng)元,使用剩下的神經(jīng)元進(jìn)行訓(xùn)練,可以防止過擬合和增強(qiáng)模型的泛化能力。為了減輕梯度消失問題對模型的影響,在S2層、S4層、F5層、F6層和F7層均設(shè)置一個(gè)tanh函數(shù)。

      使用Adam算法作為模型的優(yōu)化算法。Adam算法結(jié)合了Momentum算法和RMSprop算法中的更新方向方法和計(jì)算衰減系數(shù)方法,式(4)為Adam算法的算法策略。

      (4)

      在二分類問題中,可以采用適用于二分類問題的交叉熵?fù)p失函數(shù)函數(shù)(Cross Entropy Error Function)作為模型的損失函數(shù),式(5)為該函數(shù)的表達(dá)式。

      (5)

      式中:n是批量大小(batch size);x是模型實(shí)際輸出的值;y是標(biāo)簽上的值,也就是目標(biāo)值。

      (2) SIM-CNN模型。在安防行業(yè)中,某些數(shù)據(jù)會(huì)有極高的質(zhì)量要求,為了進(jìn)一步提高數(shù)據(jù)的質(zhì)量,在WE-CNN模型的基礎(chǔ)上,提出以相似度矩陣為輸入的CNN模型SIM-CNN。從理論上來說,與WE-CNN模型相比,在同樣的數(shù)據(jù)源下,SIM-CNN模型應(yīng)該具有更高的識(shí)別率,但是SIM-CNN模型所需的相似度矩陣生成的時(shí)間較長。

      除了輸入層,SIM-CNN與WE-CNN模型的其余部分完全相同。SIM-CNN的輸入為通道數(shù)為1的相似度矩陣,根據(jù)數(shù)據(jù)預(yù)處理中的描述,將輸入的相似度矩陣維度設(shè)置為60,模型的結(jié)構(gòu)如圖5所示。

      圖5 SIM-CNN模型結(jié)構(gòu)

      3 實(shí)驗(yàn)驗(yàn)證

      本次實(shí)驗(yàn)首先對實(shí)驗(yàn)數(shù)據(jù)、實(shí)驗(yàn)環(huán)境和實(shí)驗(yàn)中用到的一些評價(jià)方法進(jìn)行了介紹;然后對模型中的部分參數(shù)進(jìn)行了選擇分析,并對模型的效果、泛化能力進(jìn)行了驗(yàn)證;最后與BP神經(jīng)網(wǎng)絡(luò)進(jìn)行了對比。

      3.1 實(shí)驗(yàn)數(shù)據(jù)說明

      實(shí)驗(yàn)采用某安防網(wǎng)絡(luò)報(bào)警公司的用戶數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),一共有32 480條記錄,120個(gè)字段。經(jīng)過篩選,得到了30 513條有意義的記錄,26個(gè)對相似重復(fù)記錄的識(shí)別影響較大的字段。經(jīng)過初步判斷,實(shí)驗(yàn)數(shù)據(jù)中有6 100對左右的相似重復(fù)記錄。

      本次實(shí)驗(yàn)選取了11 000對記錄作為訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù),其中相似重復(fù)記錄和不是相似重復(fù)記錄的數(shù)據(jù)各5 500對。

      3.2 實(shí)驗(yàn)環(huán)境

      實(shí)驗(yàn)的硬件環(huán)境配置如表4所示。

      表4 實(shí)驗(yàn)硬件環(huán)境

      本實(shí)驗(yàn)采用了CUDA并行計(jì)算架構(gòu),實(shí)驗(yàn)的軟件環(huán)境如表5所示。

      表5 實(shí)驗(yàn)軟件環(huán)境

      3.3 實(shí)驗(yàn)評價(jià)方式

      為了評價(jià)模型的優(yōu)劣,引入了精確率、召回率和F1值等評價(jià)指標(biāo)。精確率、召回率和F1值分別可以用式(6)-式(8)表示。

      (6)

      (7)

      (8)

      假設(shè)將不是相似重復(fù)記錄記為正類,是相似重復(fù)記錄記為負(fù)類,則式(6)-式(8)中:TP表示實(shí)際上和預(yù)測的都不是相似重復(fù)記錄的數(shù)據(jù)對的個(gè)數(shù),記為真正類;FN表示實(shí)際上不是相似重復(fù)記錄,預(yù)測是相似重復(fù)記錄的數(shù)據(jù)對的個(gè)數(shù),記為假負(fù)類;FP表示實(shí)際上是相似重復(fù)記錄,預(yù)測不是相似重復(fù)記錄的數(shù)據(jù)對的個(gè)數(shù),記為假正類;TN表示實(shí)際上和預(yù)測的都是相似重復(fù)記錄的數(shù)據(jù)對的個(gè)數(shù),記為真負(fù)類。

      為了驗(yàn)證模型的可靠性,引入K折交叉驗(yàn)證的方法對模型進(jìn)行分析。K折交叉驗(yàn)證是將數(shù)據(jù)分成K組,使用任意一組作為測試集,剩余的K-1組作為訓(xùn)練集,迭代K次,讓每一組數(shù)據(jù)都做過一次測試集,每次迭代的測試集中的數(shù)據(jù)不會(huì)出現(xiàn)在當(dāng)次迭代的訓(xùn)練數(shù)據(jù)中。

      3.4 實(shí)驗(yàn)結(jié)果和分析

      (1) 學(xué)習(xí)速率選擇實(shí)驗(yàn)。在批量大小batch-size都為64,迭代次數(shù)epoch都為60,以及其他參數(shù)都相同的情況下,從0.01、0.005、0.001、0.000 5和0.000 1五個(gè)學(xué)習(xí)速率當(dāng)中確定合適的學(xué)習(xí)速率。從理論上來說,在各參數(shù)都相同的條件下,如果學(xué)習(xí)速率較大,可能會(huì)出現(xiàn)發(fā)散的情況,如果學(xué)習(xí)速率越小,收斂速度越慢。本實(shí)驗(yàn)中,在學(xué)習(xí)速率在0.01時(shí),兩個(gè)模型出現(xiàn)了損失發(fā)散的情況,在學(xué)習(xí)速率為0.005時(shí),WE-CNN模型存在低概率的發(fā)散,故舍棄這些導(dǎo)致?lián)p失發(fā)散的學(xué)習(xí)速率。兩個(gè)模型在不同學(xué)習(xí)速率下的各項(xiàng)指標(biāo)如圖6和圖7所示。

      圖6 WE-CNN模型不同學(xué)習(xí)速率下的表現(xiàn)

      圖7 SIM-CNN模型不同學(xué)習(xí)速率下的表現(xiàn)

      從圖6中可以看出,WE-CNN模型的學(xué)習(xí)速率為0.001時(shí)的整體效果最好,其F1值最大,但是召回率較低;從圖7中可以看出,當(dāng)SIM-CNN模型在學(xué)習(xí)速率為0.001、0.000 5和0.000 1時(shí),精確率、召回率和F1值都很接近,并且都在0.975以上,不過學(xué)習(xí)速率等于0.001時(shí)的SIM-CNN模型略優(yōu)于其他學(xué)習(xí)速率的模型。這是因?yàn)殡S著迭代次數(shù)的增加,學(xué)習(xí)速率為0.001的模型可以最先達(dá)到最優(yōu)結(jié)果。所以在本實(shí)驗(yàn)的測試數(shù)據(jù)集中,WE-CNN模型和SIM-CNN模型的學(xué)習(xí)速率在0.001時(shí)模型的表現(xiàn)最優(yōu)。

      (2) Dropout對模型的影響。表6介紹了是否使用Dropout優(yōu)化方法對模型的影響。可以得出WE-CNN模型在不使用Dropout優(yōu)化方法時(shí)會(huì)對模型的識(shí)別能力產(chǎn)生較大的影響,因?yàn)槊看斡?xùn)練都是使用相同的模型,所以出現(xiàn)了過擬合現(xiàn)象。而使用Dropout可以使神經(jīng)元隨機(jī)失活,每次訓(xùn)練的模型都不同,因此不容易出現(xiàn)過擬合現(xiàn)象,識(shí)別率相對更高。SIM-CNN模型在不使用Dropout優(yōu)化方法時(shí)同樣會(huì)對模型的識(shí)別能力產(chǎn)生影響,所以使用Dropout優(yōu)化方法可以有效防止過擬合,增強(qiáng)模型的識(shí)別能力。

      表6 Dropout優(yōu)化方法對模型的影響

      (3) K折交叉驗(yàn)證。根據(jù)K折交叉驗(yàn)證的規(guī)則,將本次實(shí)驗(yàn)的11 000個(gè)樣本,分成了11組數(shù)據(jù),每組數(shù)據(jù)中都有500個(gè)正類樣本和500個(gè)負(fù)類樣本。從第1組樣本開始,依次將該組數(shù)據(jù)作為測試集,并將剩余的數(shù)據(jù)作為第1組的訓(xùn)練集。將學(xué)習(xí)速率設(shè)置為0.001,批量值batch-size=64,迭代次數(shù)epoch設(shè)置為60,閾值設(shè)置為0.5,通過WE-CNN模型在所有的訓(xùn)練集進(jìn)行訓(xùn)練,并使用每個(gè)訓(xùn)練集對應(yīng)的測試集對模型進(jìn)行測試,使用式(5)所示的交叉熵?fù)p失函數(shù)計(jì)算損失,得出K折驗(yàn)證中每個(gè)測試集的精確率、召回率和F1值。WE-CNN模型的K折交叉驗(yàn)證的各項(xiàng)指標(biāo)如表7所示。

      表7 WE-CNN模型K折交叉驗(yàn)證各項(xiàng)指標(biāo)

      可以看出,雖然第6組數(shù)據(jù)對應(yīng)的模型的召回率只有0.878,精確率和F1值也只有0.969和0.921,出現(xiàn)這種情況可能是因?yàn)樵摻M數(shù)據(jù)的測試集中存在個(gè)別的標(biāo)記錯(cuò)誤。但是從整體上看,大部分組的精確率、召回率和F1值都在0.95到0.99左右,處于一個(gè)范圍較小的區(qū)間內(nèi),平均指標(biāo)中最低的召回率也高達(dá)0.967,偏差也僅有0.038,F(xiàn)1值為0.973,偏差僅為0.024。但是在實(shí)際情況中,相似重復(fù)記錄的占比較少,而召回率可以表示數(shù)據(jù)中沒有相似重復(fù)記錄的極端情況,所以WE-CNN模型在極端情況下的平均識(shí)別率也能高達(dá)0.967。因此,WE-CNN模型具有較高的識(shí)別率和較強(qiáng)的泛化能力。

      基于WE-CNN模型改進(jìn)的SIM-CNN模型的K折交叉驗(yàn)證的各項(xiàng)指標(biāo)如表8所示。

      表8 SIM-CNN模型K折交叉驗(yàn)證各項(xiàng)指標(biāo)

      其中SIM-CNN模型的K折交叉驗(yàn)證實(shí)驗(yàn)的每一組的訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)都與WE-CNN模型K折交叉驗(yàn)證實(shí)驗(yàn)中對應(yīng)的組中的數(shù)據(jù)相同。各類超參數(shù)也與WE-CNN模型的K折交叉驗(yàn)證實(shí)驗(yàn)相同。從表9中可以看出,SIM-CNN模型的各項(xiàng)指標(biāo)要明顯優(yōu)于WE-CNN,整體上都有了一定的提升。同樣是最低的第6組數(shù)據(jù)對應(yīng)的模型的召回率已經(jīng)達(dá)到了0.924,比SIM-CNN模型提升了0.046。從整體上來看,大部分的精確率、召回率、F1值都在0.97到1之間,處于一個(gè)很小的區(qū)間內(nèi),從平均上來看,精確率、召回率和F1值都達(dá)到了0.98以上,而偏差最大的召回率也僅有0.023,F(xiàn)1值也高達(dá)0.985,偏差僅有0.017。因此,與WE-CNN模型相比,SIM-CNN模型具有更高的識(shí)別率和更強(qiáng)的泛化能力。

      (4) 運(yùn)行時(shí)間。數(shù)據(jù)量為本次實(shí)驗(yàn)所用的11 000對記錄,batch-size均設(shè)置為64,迭代次數(shù)epoch均設(shè)置為60,WE-CNN模型和SIM-CNN模型的訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)都相同。兩模型的整體運(yùn)行時(shí)間如表9所示。

      表9 模型運(yùn)行時(shí)間 單位:s

      從模型訓(xùn)練和測試時(shí)間上來看,SIM-CNN模型的訓(xùn)練速度要比WE-CNN模型快,但是由于SIM-CNN模型的輸入是兩條記錄對應(yīng)的相似度矩陣,生成實(shí)驗(yàn)所需的所有相似度矩陣需要556 s,而生成WE-CNN模型所需的所有詞向量矩陣僅需81 s。因此從整體上看,在本次實(shí)驗(yàn)的數(shù)據(jù)集中,WE-CNN模型的整體運(yùn)行時(shí)間為1 073 s,比SIM-CNN模型的整體運(yùn)行時(shí)間少200 s。

      (5) 模型對比。圖8為相同的實(shí)驗(yàn)數(shù)據(jù)在WE-CNN、SIM-CNN和文獻(xiàn)[10]所述的BP神經(jīng)網(wǎng)絡(luò)3種模型下的各項(xiàng)指標(biāo)柱狀圖。

      圖8 3種模型指標(biāo)對比

      可以看出,在整體識(shí)別效果上SIM-CNN模型最好,其次是WE-CNN模型,最后是BP神經(jīng)網(wǎng)絡(luò)。這是因?yàn)镾IM-CNN的輸入為相似度矩陣,與WE-CNN的輸入詞向量矩陣相比,在都保留了原有信息的基礎(chǔ)上輸入更簡潔,需要訓(xùn)練的參數(shù)更少,因此SIM-CNN模型的識(shí)別效果最優(yōu)。而BP網(wǎng)絡(luò)的輸入是相同字段間的編輯距離值組成的向量,而安防數(shù)據(jù)中的部分相似重復(fù)記錄的記錄對相同字段間的編輯距離值較大,部分不是相似重復(fù)記錄的記錄對相同字段之間的編輯距離值較小,識(shí)別效果自然較差。

      3.5 實(shí)驗(yàn)評價(jià)

      綜上所述,SIM-CNN模型在上述實(shí)驗(yàn)數(shù)據(jù)集中的識(shí)別率和在沒有相似重復(fù)記錄的極端情況下的識(shí)別率(實(shí)驗(yàn)數(shù)據(jù)集中的召回率)均優(yōu)于WE-CNN模型,但是SIM-CNN模型的數(shù)據(jù)生成和加載時(shí)間較長,導(dǎo)致整個(gè)訓(xùn)練和測試的時(shí)間要長于WE-CNN模型。如果WE-CNN模型可以達(dá)到識(shí)別率的要求,或者檢測時(shí)長受限,可以使用WE-CNN模型進(jìn)行相似重復(fù)記錄的檢測。如果對識(shí)別率等指標(biāo)要求較高,或者檢測時(shí)長寬松,可以使用SIM-CNN模型進(jìn)行相似重復(fù)記錄的檢測。

      4 結(jié) 語

      對于任意兩條記錄來說,相似重復(fù)記錄檢測只有是相似重復(fù)記錄和不是相似重復(fù)記錄兩種情況,故本文將相似重復(fù)記錄檢測問題視為了二分類問題。同時(shí)考慮到安防行業(yè)數(shù)據(jù)的相似重復(fù)記錄檢測要比網(wǎng)絡(luò)上的開源數(shù)據(jù)的檢測難度高,并且需要較高的識(shí)別率和較強(qiáng)的泛化能力。因此引入了CNN檢測相似重復(fù)記錄,提出以詞向量矩陣為輸入的WE-CNN模型和以相似度矩陣為輸入的SIM-CNN模型。

      WE-CNN是以LeNet- 5為基礎(chǔ)進(jìn)行改進(jìn)的,現(xiàn)將改進(jìn)內(nèi)容總結(jié)為以下三部分。

      1) 輸入和輸出層:將輸入層設(shè)置為兩個(gè)60×100的詞向量矩陣;輸出層增加Sigmoid函數(shù)。

      2) 輸入和輸出層以外各層:將S2層與C3層之間設(shè)置為全映射;C5層設(shè)置為全連層并改名為F5;C1和C3層的采用3×3的卷積核;S2和S4層均設(shè)置為最大池化;在各層之間加入Dropout方法。

      3) 優(yōu)化器和損失函數(shù):使用Adam優(yōu)化器對模型進(jìn)行優(yōu)化;使用交叉熵?fù)p失函數(shù)對模型的損失進(jìn)行計(jì)算。

      將改進(jìn)后的模型(WE-CNN)應(yīng)用于安防數(shù)據(jù)相似重復(fù)記錄檢測,通過K折交叉驗(yàn)證,得出了平均精確率、召回率和F1值均在0.96以上的結(jié)果。

      SIM-CNN改進(jìn)了WE-CNN的輸入層,將一組詞向量矩陣濃縮為一個(gè)相似度矩陣。在安防數(shù)據(jù)相似重復(fù)記錄檢測中,SIM-CNN模型K折交叉驗(yàn)證的平均精確率、召回率和F1值均在0.98以上。SIM-CNN模型在損失了數(shù)據(jù)預(yù)處理和生成的時(shí)間的同時(shí),精確率、召回率和F1值相對于WE-CNN模型分別提高了0.612%、1.656%和1.131%,偏差相對降低了33.333%、39.474%和29.167%。

      以上驗(yàn)證了兩種模型都具有較高的穩(wěn)定性和泛化能力,可以適用于安防數(shù)據(jù)相似重復(fù)記錄檢測。但是當(dāng)前模型和模型生成的過程還存在需要進(jìn)一步完善或者改進(jìn)的問題,比如安防數(shù)據(jù)標(biāo)記方法較難、安防數(shù)據(jù)中的相似重復(fù)記錄的數(shù)量可能小于訓(xùn)練所需的相似重復(fù)記錄的數(shù)量和安防數(shù)據(jù)相似重復(fù)記錄清除算法的設(shè)計(jì)等問題還需要解決。

      猜你喜歡
      向量矩陣算法
      向量的分解
      聚焦“向量與三角”創(chuàng)新題
      基于MapReduce的改進(jìn)Eclat算法
      Travellng thg World Full—time for Rree
      進(jìn)位加法的兩種算法
      初等行變換與初等列變換并用求逆矩陣
      一種改進(jìn)的整周模糊度去相關(guān)算法
      向量垂直在解析幾何中的應(yīng)用
      向量五種“變身” 玩轉(zhuǎn)圓錐曲線
      矩陣
      南都周刊(2015年1期)2015-09-10 07:22:44
      台东市| 桐梓县| 通许县| 绥江县| 怀柔区| 卢龙县| 临高县| 宁陕县| 隆化县| 泉州市| 中西区| 吉木乃县| 青河县| 调兵山市| 大兴区| 辉县市| 亚东县| 丹巴县| 满城县| 修武县| 温宿县| 通渭县| 黔南| 黑水县| 兴化市| 陇西县| 蒙山县| 中江县| 荥经县| 望奎县| 安陆市| 江华| 江源县| 遂宁市| 融水| 莆田市| 乌什县| 海丰县| 西吉县| 惠水县| 吴忠市|