劉洋 張勝茂 王斐 樊偉 鄒國(guó)華 伯靜
1.中國(guó)水產(chǎn)科學(xué)研究院東海水產(chǎn)研究所,農(nóng)業(yè)農(nóng)村部漁業(yè)遙感重點(diǎn)實(shí)驗(yàn)室;2.上海海洋大學(xué)信息學(xué)院;3.上海峻鼎漁業(yè)科技有限公司;4.湖南省武漢市武漢紡織大學(xué)
神經(jīng)網(wǎng)絡(luò)默認(rèn)所有輸入數(shù)據(jù)均屬于正常數(shù)據(jù),當(dāng)輸入異常的數(shù)據(jù),網(wǎng)絡(luò)會(huì)在已知的標(biāo)簽中找到高度自信的錯(cuò)誤結(jié)果,這種無(wú)法檢測(cè)異常數(shù)據(jù)的現(xiàn)象出現(xiàn)在所有學(xué)習(xí)模型中。使網(wǎng)絡(luò)具備檢測(cè)異常數(shù)據(jù)的能力,對(duì)于系統(tǒng)安全、算法可靠性和算法的實(shí)際應(yīng)用具有重要的意義。實(shí)驗(yàn)提出一種區(qū)分異常數(shù)據(jù)和正常數(shù)據(jù)的方法,該方法首先訓(xùn)練一個(gè)名為Wildnet的分類(lèi)網(wǎng)絡(luò),而后去掉該網(wǎng)絡(luò)的Softmax層作為特征提取器,提取正常數(shù)據(jù)的高層語(yǔ)義信息Embedding,并用該Embedding構(gòu)建卷積網(wǎng)絡(luò)的認(rèn)知域,通過(guò)計(jì)算測(cè)試數(shù)據(jù)的Embedding是否屬于該認(rèn)知域,來(lái)判斷該數(shù)據(jù)是否為異常數(shù)據(jù),達(dá)到異常檢測(cè)的目的。實(shí)驗(yàn)在海鮮市場(chǎng)拍攝的1284張包含13個(gè)種類(lèi)的魚(yú)類(lèi)圖像上進(jìn)行,用前11種魚(yú)類(lèi)數(shù)據(jù)作為正常數(shù)據(jù),后2種魚(yú)類(lèi)數(shù)據(jù)作為異常數(shù)據(jù)。并用正常數(shù)據(jù)的60%訓(xùn)練Wildnet網(wǎng)絡(luò),得到測(cè)試精度91.10%的分類(lèi)網(wǎng)絡(luò),然后去掉網(wǎng)絡(luò)的Softmax層作為特征提取器,提取訓(xùn)練數(shù)據(jù)的Embedding,建立認(rèn)知域,最后用20%未經(jīng)訓(xùn)練的正常數(shù)據(jù)和異常數(shù)據(jù)作為測(cè)試集,測(cè)試其是否屬于網(wǎng)絡(luò)認(rèn)知域,來(lái)判斷測(cè)試數(shù)據(jù)區(qū)分異常數(shù)據(jù)的能力,精度達(dá)到71.59%。證明通過(guò)建立卷積網(wǎng)路的有界認(rèn)知域,可以區(qū)分異常的數(shù)據(jù),達(dá)到異常檢測(cè)的目的。該方法能讓神經(jīng)網(wǎng)絡(luò)算法具備檢測(cè)“異常數(shù)據(jù)”的意識(shí),為傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法增加了異常檢測(cè)功能,進(jìn)一步提高系統(tǒng)安全性和算法魯棒性。
自Rumelhart等人[1]證明反向傳播算法的可行性以來(lái),神經(jīng)網(wǎng)絡(luò)被廣泛的應(yīng)用目標(biāo)識(shí)別[2]、分類(lèi)[3]、檢測(cè)[4]、跟蹤[5-6]等領(lǐng)域。通過(guò)反向傳播算法學(xué)習(xí)數(shù)據(jù)分布特征的方法,使它具有了逼近真實(shí)的結(jié)果的能力,超越了傳統(tǒng)機(jī)器學(xué)習(xí)方法。在圖形識(shí)別領(lǐng)域,神經(jīng)網(wǎng)絡(luò)分類(lèi)器在訓(xùn)練數(shù)據(jù)集上學(xué)習(xí)決策規(guī)則,將卷積模型提取的特征,分配給正確的類(lèi)標(biāo)簽[3,7]。該方法的缺陷是將訓(xùn)練數(shù)據(jù)的識(shí)別域作為網(wǎng)絡(luò)的全局識(shí)別域,默認(rèn)所有的輸入數(shù)據(jù)均屬于網(wǎng)絡(luò)的識(shí)別域,當(dāng)算法預(yù)測(cè)訓(xùn)練數(shù)據(jù)分布之外的數(shù)據(jù)時(shí),由于其不具備識(shí)別異常數(shù)據(jù)的能力,完全有可能得到高度自信卻錯(cuò)誤的結(jié)果。此外訓(xùn)練數(shù)據(jù)可能不足以表達(dá)實(shí)際應(yīng)用中所有類(lèi)的完整情況,因此分類(lèi)網(wǎng)絡(luò)的泛化能力可能很差[8]。由于大多數(shù)神經(jīng)網(wǎng)絡(luò)算法不具備異常數(shù)據(jù)檢測(cè)的能力,導(dǎo)致實(shí)際應(yīng)用部署中面臨巨大的挑戰(zhàn)。而這些問(wèn)題都有一個(gè)共同的特點(diǎn),那就是測(cè)試數(shù)據(jù)為學(xué)習(xí)窗口之外的異常數(shù)據(jù),解決這個(gè)問(wèn)題的關(guān)鍵在于量化當(dāng)前神經(jīng)網(wǎng)絡(luò)的自我的認(rèn)知范圍。
Chow等人[9]將分類(lèi)問(wèn)題轉(zhuǎn)換為決策問(wèn)題,為每一個(gè)類(lèi)別建立一個(gè)模型,用權(quán)重函數(shù)來(lái)度量系統(tǒng)決策結(jié)果,通過(guò)不斷的優(yōu)化權(quán)重函數(shù)來(lái)提高異常檢測(cè)能力。通過(guò)后驗(yàn)概率建立決策系統(tǒng),如果后驗(yàn)概率的最大值小于閾值,則拒絕輸入,并闡述了錯(cuò)誤識(shí)別、拒絕識(shí)別和正確識(shí)別在決策系統(tǒng)中相關(guān)關(guān)系。利用Weihull分布計(jì)算Softmax層向量的激活分?jǐn)?shù)(OpenMax分?jǐn)?shù)),來(lái)判斷圖像是否屬于異常數(shù)據(jù),該方法能提高網(wǎng)絡(luò)的識(shí)別率。Softmax層的設(shè)計(jì)方式,沒(méi)有表達(dá)異常檢測(cè)的能力,而Softmax層的前一層沒(méi)有受到這種約束,并且同一個(gè)類(lèi)別的數(shù)據(jù)應(yīng)當(dāng)屬于同一個(gè)集合,對(duì)于未知類(lèi)應(yīng)當(dāng)遠(yuǎn)離已知數(shù)據(jù)集合,基于此,他們?yōu)榫W(wǎng)絡(luò)的Embedding設(shè)計(jì)了被稱(chēng)為ii-loss的損失函數(shù),可以最大程度的減小類(lèi)內(nèi)距離,并擴(kuò)大類(lèi)間距離。通過(guò)減小異常數(shù)據(jù)在反向傳播過(guò)程中的貢獻(xiàn),來(lái)增加網(wǎng)絡(luò)檢測(cè)異常數(shù)據(jù)的能力。SVDD(Support Vector Data Description)的級(jí)聯(lián)分類(lèi)器,對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行建模,任何不屬于該模型的樣本將被標(biāo)記為異常數(shù)據(jù)。
由于網(wǎng)絡(luò)在有限的訓(xùn)練集上學(xué)習(xí)數(shù)據(jù)的表征能力,數(shù)據(jù)能夠表征的范圍是網(wǎng)絡(luò)認(rèn)知能力的極限[10]。如果能量化有限數(shù)據(jù)的信息表征能力,即可表征網(wǎng)絡(luò)的認(rèn)知范圍,對(duì)于認(rèn)知范圍之外的,就為異常數(shù)據(jù)。在分類(lèi)神經(jīng)網(wǎng)絡(luò)中,這種數(shù)據(jù)表征能力的實(shí)質(zhì)是“識(shí)別類(lèi)內(nèi)相似性和類(lèi)間差異性”的分類(lèi)能力?;诖耍疚奶岢鲆环N利用卷積神經(jīng)網(wǎng)絡(luò)的高層語(yǔ)義信息,量化訓(xùn)練數(shù)據(jù)(正常)的信息表征能力的方法。該方法首先用交叉熵?fù)p失函數(shù)訓(xùn)練了名為Wildnet的簡(jiǎn)單分類(lèi)網(wǎng)絡(luò),然后去掉Wildnet的Softmax層,用Softmax前一層的Embedding表征數(shù)據(jù)的高層語(yǔ)義信息。而后將訓(xùn)練數(shù)據(jù)的Embedding特征集,用主成分分析法PCA(Principal Component Analysis )降維到3維,并計(jì)算3維特征點(diǎn)的凸包,以此構(gòu)建網(wǎng)絡(luò)的認(rèn)知域,通過(guò)計(jì)算測(cè)試數(shù)據(jù)的特征是否屬于該認(rèn)知域,來(lái)區(qū)分正常數(shù)據(jù)和異常數(shù)據(jù)。經(jīng)過(guò)測(cè)試,該方法在數(shù)據(jù)不夠充分的情況下能得到了71.59%的正確檢測(cè)率。實(shí)現(xiàn)了卷積神經(jīng)網(wǎng)絡(luò)對(duì)異常數(shù)據(jù)的檢測(cè),增加了算法的魯棒性,并讓神經(jīng)網(wǎng)絡(luò)具有了異常檢測(cè)的能力。
利用深度學(xué)習(xí)的CNN卷積網(wǎng)絡(luò),對(duì)海洋捕撈魚(yú)類(lèi)圖像的高層語(yǔ)義特征信息,進(jìn)行精確提取,需要大量的、高質(zhì)量的、多樣化的和差異明顯的圖像數(shù)據(jù),供給深度學(xué)習(xí)模型學(xué)習(xí)不同魚(yú)種的紋理信息的區(qū)別。但是如何準(zhǔn)確有效的采集和組織該類(lèi)數(shù)據(jù)集,仍是關(guān)鍵的問(wèn)題。為了收集高質(zhì)量、多樣化和差異明顯的魚(yú)類(lèi)數(shù)據(jù)集,該實(shí)驗(yàn)的科研人員在海鮮市場(chǎng)挑選不同種類(lèi)、大小、形態(tài)、姿勢(shì)和其他個(gè)體差異的海洋捕撈魚(yú)類(lèi),在純色背景上,用相機(jī)從不同角度拍攝捕撈魚(yú)類(lèi)在不同擺放姿態(tài)下的照片1284張(如圖1所示),而后魚(yú)類(lèi)鑒別專(zhuān)家將照片準(zhǔn)確分成13個(gè)魚(yú)種,包括斑尾刺蝦虎魚(yú)、舌鰨某種、銀鯧、帶魚(yú)、棘頭梅童魚(yú)、三疣梭子蟹、對(duì)蝦、小黃魚(yú)、馬鮫、龍頭魚(yú)、鮸、馬面鲀、鮋(表1)。拍攝的圖像大小為4000×2248像素。
圖1 魚(yú)類(lèi)照片,從正面、側(cè)面、以及改變魚(yú)的擺放姿勢(shì)拍攝照片F(xiàn)ig.1 Fish photos, taking photos from the front, side and changing the placement position of fish
在數(shù)據(jù)處理方面,考慮到深度學(xué)習(xí)中一張w×h像素的圖像,通過(guò)一個(gè)r×c神經(jīng)元的乘法計(jì)算量為w×h×r×c,為避免因圖像尺寸導(dǎo)致乘法計(jì)算量太大引起學(xué)習(xí)過(guò)程中占用顯存過(guò)多,從而導(dǎo)致網(wǎng)絡(luò)計(jì)算緩慢的問(wèn)題,本文使用OpenCV的區(qū)域插值法將圖像縮小到224×224像素,大大降低了網(wǎng)絡(luò)的計(jì)算量。另外為使網(wǎng)絡(luò)具有更好的魯棒性,提高網(wǎng)絡(luò)的泛化能力,降低過(guò)擬合,對(duì)原圖像進(jìn)行偏移、旋轉(zhuǎn)、縮放、裁剪增廣數(shù)據(jù)集,并將圖像進(jìn)行歸一化和白熱化處理。根據(jù)圖像所屬的魚(yú)種為每一張圖像制作標(biāo)簽文檔。為了模擬正常和異常的場(chǎng)景,實(shí)驗(yàn)將前11種魚(yú)類(lèi)數(shù)據(jù)共1036張圖像作為正常魚(yú)種,后2種魚(yú)共計(jì)218張圖像作為異常魚(yú)種。本文將正常的魚(yú)種圖像數(shù)據(jù)充分打亂之后,按照6∶2∶2劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集;將異常魚(yú)種數(shù)據(jù)集作為異常魚(yú)種的測(cè)試集合。為方便闡述,設(shè)正常訓(xùn)練集為Dtrain,正常的驗(yàn)證集為Dvalid,正常的測(cè)試集為Dtest,異常的測(cè)試集為Dwild。其中Dtrain={Dt}11t=1,包含11種魚(yú)類(lèi),Dt表示第t種魚(yú)類(lèi)數(shù)據(jù)集。Dtrain用于訓(xùn)練Wildne網(wǎng)絡(luò)的分類(lèi)能力,Dvalid用于驗(yàn)證Wildne網(wǎng)絡(luò)的分類(lèi)能力,Dtest和Dwild用于驗(yàn)證本文提出的方法的可行性。
神經(jīng)網(wǎng)絡(luò)表征數(shù)據(jù)的能力,來(lái)源于對(duì)訓(xùn)練數(shù)據(jù)Dtrain(正常數(shù)據(jù))的學(xué)習(xí),所以網(wǎng)絡(luò)對(duì)正常數(shù)據(jù)表征的信息分布是部分可知的;而異常數(shù)據(jù)Dwild表征的信息,網(wǎng)絡(luò)是不可知的;即正常數(shù)據(jù)在網(wǎng)路的認(rèn)知域之內(nèi),而異常的數(shù)據(jù)在認(rèn)知域之外。網(wǎng)絡(luò)對(duì)數(shù)據(jù)的認(rèn)知域來(lái)源于數(shù)據(jù)本身表征的信息域,設(shè)正常數(shù)據(jù)和異常數(shù)據(jù)表征的全局信息域?yàn)镚,正常數(shù)據(jù)表征(前11種魚(yú)圖)的信息域?yàn)镽,異常數(shù)據(jù)表征(后2種魚(yú)圖)的信息域?yàn)镺。理論上除了正常的數(shù)據(jù),都是異常的數(shù)據(jù),所以R∪O=G,R與O互斥。區(qū)分O和R的問(wèn)題,只需在G中找到描述二者信息的邊界,表達(dá)其中一個(gè)即可表達(dá)另一個(gè)。由于O是開(kāi)域的(未知域),缺乏數(shù)據(jù)支撐,無(wú)法直接表征,而R在本實(shí)驗(yàn)中可通過(guò)訓(xùn)練集(正常)的圖像數(shù)據(jù)間接表征。
由于卷積網(wǎng)絡(luò)通過(guò)提取數(shù)據(jù)的特征信息來(lái)識(shí)別數(shù)據(jù),理論上用圖像的特征信息表征數(shù)據(jù)的信息域是合理的。假設(shè)卷積網(wǎng)絡(luò)識(shí)別第t類(lèi)對(duì)象的信息域?yàn)镋t,Et∈R;第t類(lèi)數(shù)據(jù)的第j張圖像xj,通過(guò)映射關(guān)系(神經(jīng)網(wǎng)絡(luò))F(·)提取的特征信息ej∈Et。設(shè)某種魚(yú)有N張圖像,其通過(guò)F(·)映射后的信息域集合為At={ej|ej=F(xj)}N,當(dāng)N趨近于無(wú)窮的時(shí)候,At表達(dá)的信息域趨近于Et,其中At?Et。即,提取同類(lèi)圖像數(shù)據(jù)的特征信息表征類(lèi)信息域Et,不同類(lèi)的信息域組合R,從而構(gòu)成網(wǎng)絡(luò)的認(rèn)知域。所以,圖像xj可以準(zhǔn)確有效的“映射”到其特征ej的情況下,更多樣的圖像可以更加完備的表達(dá)Et,而F(·)的準(zhǔn)確性和可行性,是盡可能的將同類(lèi)圖像的特征聚集在一起,而不同類(lèi)的特征互相遠(yuǎn)離,其取決于“描述種內(nèi)相似性和種間差異性”的分類(lèi)能力,這和深度學(xué)習(xí)分類(lèi)網(wǎng)絡(luò)能力相似,實(shí)質(zhì)就是描述類(lèi)內(nèi)相似性和類(lèi)間差異性。基于此,本文利用卷積網(wǎng)絡(luò)訓(xùn)練具備分類(lèi)能力的特征提取器Wildnet,描述圖像xj與特征ej的映射關(guān)系F(·)。
Wildnet網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。為了保證F(·)描述“種內(nèi)相似性和種間差異性”的準(zhǔn)確性和可行性,實(shí)驗(yàn)用包含11個(gè)魚(yú)種的數(shù)據(jù)集Dtrain訓(xùn)練網(wǎng)絡(luò)的分類(lèi)能力,由于其數(shù)據(jù)量較少,不必使用較大參數(shù)量的網(wǎng)絡(luò)結(jié)構(gòu),實(shí)驗(yàn)利用深度可分離卷積(Depthwise)搭建了一個(gè)較小的卷積網(wǎng)絡(luò),在該網(wǎng)絡(luò)中,為了能靈活的壓縮和擴(kuò)張通道,用Pointwise卷積融合Depthwise卷積后的張量信息;為了加速訓(xùn)練與防止過(guò)擬合,在卷積之后使用Batch Normalization(簡(jiǎn)稱(chēng):BN)模塊;為了防止特征消失,使用了特征融合和殘差的方法。在訓(xùn)練過(guò)程中,用包含11種魚(yú)種的數(shù)據(jù)集Dvalid驗(yàn)證其分類(lèi)準(zhǔn)確度,以防止過(guò)擬合和欠擬合。
圖2 Wildnet特征提取網(wǎng)絡(luò)Fig.2 Wildnet feature extraction network
為了計(jì)算真實(shí)數(shù)據(jù)分布和生成特征數(shù)據(jù)分布的相似度,用多分類(lèi)交叉熵函數(shù)計(jì)算損失(式1),在反向傳播的過(guò)程中,用SGD (Stochastic Gradient Descent)更新權(quán)重。
公式(1)中,C為類(lèi)別總數(shù),i表示類(lèi)別數(shù),xi表示輸入圖像,yi表示圖像的真實(shí)標(biāo)簽,;表示W(wǎng)ildnet網(wǎng)絡(luò)的權(quán)重,L為損失率。在成功訓(xùn)練之后,先用測(cè)試集Dtest測(cè)試網(wǎng)絡(luò)識(shí)別能力,確定其已經(jīng)具備“識(shí)別類(lèi)內(nèi)相似性和類(lèi)間差異性”的分類(lèi)能力后,再將網(wǎng)絡(luò)去掉Softmax輸出層,留下Embedding層作為輸出層,改造成特征提取器,作為圖像到特征的映射關(guān)系F(·)。去掉Softmax的原因是Softmax激活層輸出11維張量,其維度偏少且數(shù)值分布不均勻,不能很好的表達(dá)圖像的高層語(yǔ)義信息,不適合作為特征提取器的輸出。而經(jīng)過(guò)Embedding層輸出128維的張量,是經(jīng)過(guò)Batch Normalization歸一化處理的,其分布較為均勻,且維度足夠表達(dá)圖像的高層語(yǔ)義信息,對(duì)于輸入圖像xj能夠得到一個(gè)表達(dá)更全面的特征ej。因此在特征提取過(guò)程中,去掉該網(wǎng)絡(luò)層Softmax層,留下Embedding層,作為特征提取器。由于該特征提取器已經(jīng)具備了“描述種內(nèi)相似性和種間差異性”的能力,其輸出的特征能夠很好的表征真實(shí)數(shù)據(jù)分布,因此本文將該特征提取器作為圖像xj和特征ej的映射關(guān)系F(·)。
Convolution(k,k,s,c):表示c個(gè)卷積核大小為k,步長(zhǎng)為s的CNN卷積。
Pointwise (1,1,s,c):表示c個(gè)卷積核大小為1,步長(zhǎng)為s的CNN卷積。
Depthwise(3,3,2,c):表示c個(gè)卷積核大小為3,步長(zhǎng)為2的通道可分離卷積。
Route:表示兩個(gè)張量在通道上拼接。
BN(Batch Normalization):表示對(duì)輸出特征歸一化,使其符合均值為0,方差為1的分布,防止ICR現(xiàn)象。
Mish:平滑的激活函數(shù),能讓模型擬合更細(xì)膩。
Embadding:128∶128的特征張量層。對(duì)于輸入圖像xj,該層輸出128維的特征張量,即圖像經(jīng)過(guò)映射關(guān)系F(·)輸出的ej。
Softmax:分類(lèi)層有11個(gè)神經(jīng)元,表示11個(gè)已知魚(yú)種。
在成功制作特征提取器Wildnet之后,為了近似的量化正常數(shù)據(jù)的信息域R,達(dá)到在全局信息域G中描述“正常和異常的邊界”的目的,如圖3所示,實(shí)驗(yàn)將Dtrain,Dtest和Dwild數(shù)據(jù)集輸入到Wildnet特征提取器中,分別生成正常特征集Etrain,Etest和異常特征集Ewild。由于Dtest和Dtrain擁有同樣的魚(yú)種,屬于同種數(shù)據(jù)分布;Dwild數(shù)據(jù)集與Dtrain數(shù)據(jù)集擁有不同的魚(yú)種,表征不同的數(shù)據(jù)信息,其數(shù)據(jù)分布不同。由于使用交叉熵作為損失函數(shù)訓(xùn)練網(wǎng)絡(luò),最小化了真實(shí)分布和預(yù)測(cè)分布的差異,即輸入數(shù)據(jù)(真實(shí)分布)和特征數(shù)據(jù)(預(yù)測(cè)分布)是相似的分布。所以,同一分布的數(shù)據(jù)與經(jīng)過(guò)映射關(guān)系F(·)生成的特征數(shù)據(jù),其分布相似,反之亦然。即Dtrain,Dtest和Etrain,Etest分布相似,Etrain和Ewild屬于不同分布,加之Wildnet的認(rèn)知域來(lái)源于Dtrain表征的數(shù)據(jù)信息(正常的信息域R),即Etrain可近似表征Wildnet的認(rèn)知域。而Dwild數(shù)據(jù)集與Dtrain屬于不同的分布,故Ewild表征的數(shù)據(jù)信息屬于異常的信息域O。因此實(shí)驗(yàn)將Etrain,Etest,Ewild用PCA方法降維,將128維特征向量的維度降到3維,而后將Etrain的特征集構(gòu)成的空間作為Wildnet網(wǎng)絡(luò)的認(rèn)知域,其外為異常信息域O。
圖3 特征提取流程圖Fig.3 Flow chart of feature extraction
如算法2所示,判斷測(cè)試數(shù)據(jù)是否為異常數(shù)據(jù),只需判斷其特征是否在R中。在該實(shí)驗(yàn)中,用凸面體體積法判斷Etest和Ewild的3維特征點(diǎn)是否屬于Etrain構(gòu)成的凸面體,來(lái)判斷是否屬于認(rèn)知域內(nèi)。為了獲得由Etrain中不同類(lèi)別魚(yú)種數(shù)據(jù)表征的信息域,首先用Graham掃描法計(jì)算Etrain中3維特征點(diǎn)的凸包Tt,根據(jù)凸包計(jì)算鄰點(diǎn)集合{P1,P2,P3}N,其中P1, P2, P3表示三角形的頂點(diǎn)集,N為凸包頂點(diǎn)數(shù)量。然后根據(jù)鄰點(diǎn)集依次計(jì)算三角形的面積,以及測(cè)試點(diǎn)到所有三角形的高,并用三角形的面積和測(cè)試點(diǎn)到該面的距離計(jì)算四面體的體積,最后求和所有四面體的體積,得到測(cè)試點(diǎn)與凸包構(gòu)成的多面體的體積。如果其值等于原凸包構(gòu)成的凸面體體積,則在認(rèn)知域內(nèi),否則在認(rèn)知域外。實(shí)驗(yàn)在Dtest與Dwild數(shù)據(jù)集上測(cè)試,其異常檢測(cè)的正確率為71.59%。
實(shí)驗(yàn)在32G內(nèi)存,16G顯存(TeslaV100)的Linux主機(jī)上進(jìn)行,開(kāi)發(fā)框架為Pytorch。為了讓神經(jīng)網(wǎng)絡(luò)對(duì)不確定的數(shù)據(jù)具有認(rèn)知能力,本文做了兩個(gè)實(shí)驗(yàn),第一個(gè)實(shí)驗(yàn)是訓(xùn)練Wildnet網(wǎng)絡(luò),使其具有識(shí)別“種間差異性和種內(nèi)相似性”的能力。第二個(gè)實(shí)驗(yàn)利用Wildnet網(wǎng)絡(luò)生成的高層語(yǔ)義信息,描述正常數(shù)據(jù)的信息域,并通過(guò)該信息域來(lái)判斷測(cè)試數(shù)據(jù)是否屬于正常范圍。
實(shí)驗(yàn)用Dtrain數(shù)據(jù)集訓(xùn)練網(wǎng)絡(luò)具備分類(lèi)能力,設(shè)置SGD優(yōu)化器的初始學(xué)習(xí)率η;η為0.001,momentumα為0.9,decay為1e-9;用Softmax激活函數(shù)激活最后一層的神經(jīng)元,并配合交叉熵?fù)p失函數(shù)(公式1)計(jì)算網(wǎng)絡(luò)損失。為了防止訓(xùn)練過(guò)程中的過(guò)擬合和欠擬合現(xiàn)象,實(shí)驗(yàn)用Dvalid數(shù)據(jù)集每迭代10次計(jì)算網(wǎng)絡(luò)的驗(yàn)證損失,如果降低則保存權(quán)重,可有效的防止過(guò)擬合。訓(xùn)練在經(jīng)過(guò)90次迭代后,訓(xùn)練精度為97.10%,驗(yàn)證精度為92.29%(如圖4所示)。
圖4 Wildnet訓(xùn)練過(guò)程圖Fig.4 Wildnet training process
在網(wǎng)絡(luò)訓(xùn)練成功之后,用測(cè)試集Dtest測(cè)試網(wǎng)絡(luò)的分類(lèi)能力,其測(cè)試精度為91.10%。說(shuō)明該網(wǎng)絡(luò)已經(jīng)具備“識(shí)別種間差異性和種內(nèi)相似性”的能力,可以表征11種數(shù)據(jù)的大部分信息特征,將輸入數(shù)據(jù)和輸出數(shù)據(jù)分布的差異最小化,這是量化正常信息域的基礎(chǔ)。
由于Softmax層中的神經(jīng)元被限定為只能表示已知類(lèi)別,無(wú)法表示未知類(lèi)別,其張量信息難以表征未知類(lèi)別的高層語(yǔ)義信息。而Embedding層位于Softmax的前一層,沒(méi)有受到該限制,并且相比于Softmax層的11維張量,Embedding層有128維的張量,能夠更加全面的表征數(shù)據(jù)的高層語(yǔ)義信息。據(jù)此,實(shí)驗(yàn)將Wildnet網(wǎng)絡(luò)去掉Softmax層,用Embedding層作為網(wǎng)絡(luò)的輸出層,將修改后的網(wǎng)絡(luò)作為特征提取器。實(shí)驗(yàn)將訓(xùn)練集Dtrain的圖像輸入到特征提取器,生成128維的特征向量集合Etrain={At}11t=1,其中At表示第t種魚(yú)的特征集合;將Dtest和Dwild數(shù)據(jù)集分別輸入到Wildnet網(wǎng)絡(luò),生成Etest和Ewild。其中Etrain中包含640個(gè)128維的具有類(lèi)別標(biāo)簽的特征向量;Etest包含213個(gè)128維的具有類(lèi)別標(biāo)簽的特征向量;Ewild中包含218個(gè)128維的具有類(lèi)別標(biāo)簽的特征向量,其中馬面鲀的數(shù)量為104,龍頭魚(yú)的數(shù)量為114。
將Etrain,Etest和Ewild的128維高層語(yǔ)義信息,用主成分析法PCA降維到3維,并將其3個(gè)維度上的數(shù)值作為3維坐標(biāo)系的x, y, z上的坐標(biāo)值。通過(guò)Etrain和Etest在3維坐標(biāo)系中的分布分析,Etrain和Etest特征點(diǎn)在空間中呈現(xiàn)彼此交融的分布狀態(tài),這證明了本文的觀(guān)點(diǎn),即網(wǎng)絡(luò)成功學(xué)習(xí)了Dtrain數(shù)據(jù)集的分布特征,而Dtest數(shù)據(jù)集與Dtrain擁有一樣的魚(yú)種,表征同樣的數(shù)據(jù)特征信息,故Etrain和Etest屬于同一分布。由于Wildnet網(wǎng)絡(luò)表征數(shù)據(jù)的信息有一定的誤差,并且少部分?jǐn)?shù)據(jù)質(zhì)量較差,導(dǎo)致少部分的特征點(diǎn)游離于聚集區(qū)域以外。
由于Dtrain中沒(méi)有Dwild包含的新魚(yú)種數(shù)據(jù),如果不經(jīng)過(guò)處理直接交給Wildnet分類(lèi)網(wǎng)絡(luò)分類(lèi),肯定會(huì)在訓(xùn)練集的標(biāo)簽上找到高度自信卻錯(cuò)誤的結(jié)果。Dwild數(shù)據(jù)集通過(guò)Wildnet特征提取器生成Ewild特征集,包含異常魚(yú)類(lèi)馬面鲀和龍頭魚(yú)的高層語(yǔ)義信息。將Ewild加入3維空間中,馬面鲀和龍頭魚(yú)的大多數(shù)特征點(diǎn)分布于Etrain和Etest的兩邊,證實(shí)了本文推論,即不同分布的數(shù)據(jù),其特征信息屬于不同分布。并且同一魚(yú)種的特征點(diǎn)聚集在一起,這種現(xiàn)象一定程度上說(shuō)明分類(lèi)網(wǎng)絡(luò),對(duì)同類(lèi)數(shù)據(jù)表征的信息具有聚集作用,對(duì)不同種類(lèi)的數(shù)據(jù)表征的信息具有遠(yuǎn)離作用,這證實(shí)了本文的觀(guān)點(diǎn),即分類(lèi)的實(shí)質(zhì)就是“識(shí)別種間差異性和種內(nèi)相似性”,而數(shù)據(jù)量如果足夠大。聚集在一起的特征,可以逼近表征該類(lèi)數(shù)據(jù)的完整信息域(Et),從而表達(dá)正常信息域R,達(dá)到檢測(cè)異常數(shù)據(jù)的目的。
為了表達(dá)正常信息域R和異常信息域O的邊界,實(shí)驗(yàn)用Gramham-Scan算法計(jì)算Etrain中不同魚(yú)種數(shù)據(jù)的特征集At的凸包,得到11個(gè)不同類(lèi)別數(shù)據(jù)特征的3維凸包,用每一個(gè)類(lèi)別的凸包構(gòu)成的凸多面體作為該類(lèi)魚(yú)的信息域,所有凸面體空間作為Wildnet的認(rèn)知域。實(shí)驗(yàn)用體積法計(jì)算測(cè)試樣本是否屬于這11個(gè)凸面體,首先分別計(jì)算11個(gè)凸面體的體積,如果測(cè)試特征點(diǎn)屬于某一凸面體,則測(cè)試特征點(diǎn)與凸包組成的新凸面體體積等于原凸面體的體積。如果測(cè)試特征點(diǎn)不屬于任何一個(gè)凸面體,則該測(cè)試數(shù)據(jù)為異常數(shù)據(jù)。從未被訓(xùn)練的馬面鲀和龍頭魚(yú)大多分布在認(rèn)知域外,而正常的魚(yú)種,大多分布在認(rèn)知域內(nèi)。如算法2所示,實(shí)驗(yàn)在Dtest與Dwild數(shù)據(jù)集上測(cè)試,檢測(cè)正確率為71.59%,證明了該方法的可行性。
根據(jù)實(shí)驗(yàn)結(jié)果,可以得出如下結(jié)論:(1)卷積神經(jīng)網(wǎng)絡(luò)對(duì)同一種類(lèi)的數(shù)據(jù)特征信息具有聚類(lèi)作用。(2)用訓(xùn)練數(shù)據(jù)表征的數(shù)據(jù)信息域,可檢測(cè)異常數(shù)據(jù)。(3)具有分類(lèi)能力的卷積神經(jīng)網(wǎng)絡(luò),其認(rèn)知范圍可近似表征。
為了讓卷積神經(jīng)網(wǎng)絡(luò)具備檢測(cè)異常數(shù)據(jù)的能力,本文研究了卷積神經(jīng)網(wǎng)絡(luò)對(duì)正常數(shù)據(jù)的表征能力。實(shí)驗(yàn)用卷積網(wǎng)絡(luò)提取圖像的高層語(yǔ)義信息,構(gòu)建正常數(shù)據(jù)的信息域,通過(guò)計(jì)算測(cè)試數(shù)據(jù)的高層語(yǔ)義信息是否屬于該空間,來(lái)判斷測(cè)試數(shù)據(jù)是否為異常數(shù)據(jù),取得了71.59%的檢測(cè)正確率。結(jié)果表明該方法可量化卷積神經(jīng)網(wǎng)絡(luò)的對(duì)數(shù)據(jù)的表征能力,讓神經(jīng)網(wǎng)絡(luò)算法具備識(shí)別“異常數(shù)據(jù)”的能力,可達(dá)到檢測(cè)異常數(shù)據(jù)的目的,進(jìn)一步提高系統(tǒng)安全性和算法魯棒性。