天天看點

異常檢測 and 開集識别(2)前言一、開集識别的演變二、開集識别技術分類三、目前先進的開集識别算法總結

文章目錄

  • 前言
  • 一、開集識别的演變
  • 二、開集識别技術分類
  • 三、目前先進的開集識别算法
    • 1、OpenMax
    • 2、G-OpenMax
    • 3、CROSR
    • 4、MLOSR
  • 總結

前言

  本文是本人在學習開集識别時的一些記錄,主要是綜合其他部落客的内容并進行了一些修改,希望大家可以有所收獲~

一、開集識别的演變

  作為總結,下表1列出了開放集識别和上面提到的相關任務之間的差別。

異常檢測 and 開集識别(2)前言一、開集識别的演變二、開集識别技術分類三、目前先進的開集識别算法總結

事實上,OSR已經在許多架構、假設和名稱進行了研究。相關具體内容可參考Recent Advances in Open Set Recognition: A Survey,這裡提供了關于開集識别的全面回顧。

二、開集識别技術分類

  根據模組化形式,這些模型可進一步分為四類(見表2):判别模型角度的基于傳統ML (TML)的方法和基于深度神經網絡(DNN)的方法;生成模型的基于執行個體和非執行個體生成方法。對于每一個類别,文章通過關注其對應的代表作品來回顧不同的方法。此外,圖3給出了這些方法連結的全局圖,同時也列出了幾個可用的軟體包連結(表3),以友善相關研究者進行後續研究。其次,文章Recent Advances in Open Set Recognition: A Survey首先從判别模型的角度對現有的OSR算法進行了綜述,後面也從生成模型的角度進行了綜述。

異常檢測 and 開集識别(2)前言一、開集識别的演變二、開集識别技術分類三、目前先進的開集識别算法總結
異常檢測 and 開集識别(2)前言一、開集識别的演變二、開集識别技術分類三、目前先進的開集識别算法總結

三、目前先進的開集識别算法

1、OpenMax

  Softmax是深度學習分類網絡中最常見的最後一層的激活函數,用于機率值的生成。這不可避免地會帶來歸一化問題,使其固有的封閉集特性。例如,在處理UUCs的樣本時,DNNs常常做出錯誤的預測,甚至過于自信。是以《Towards Open Set Deep Networks》提出了openmax層來替代softmax,作為開放集深度網絡的第一個解決方案。

  Openmax利用來自預訓練的深度神經網絡的倒數第二層(也就是dense層)的激活矢量。

  流程:

  隻計算并保留所有預測樣本正确樣本(預測錯誤(預測值和真實label不符)輸出的舍棄)的特征值(特征值的長度就是類别的長度,比如最後的類别數量為3,那麼這個特征就是長度為3的向量,而不是之前一層的向量)。

  求出所有預測正确樣本的向量,根據不同的類别(真實label)将這些向量對應分開,然後分别計算每個類别對應向量的均值作為該類别的中心(可認為類别的中心點,和聚類的中心點類似)。

  然後分别計算每個類别中每個樣本對應向量和其類别中心的距離,然後對這些距離進行排序,針對排序後的幾個尾部極大值進行極大值理論分析,這些極大值的分布符合weibull分布,是以使用weibull分布(libmr中的fithigh方法)來拟合這些極大的距離,得到一個拟合分布的模型,這時候基本已經完成了Algrithms 1。

異常檢測 and 開集識别(2)前言一、開集識别的演變二、開集識别技術分類三、目前先進的開集識别算法總結
異常檢測 and 開集識别(2)前言一、開集識别的演變二、開集識别技術分類三、目前先進的開集識别算法總結

  接下來是算法2 的Openmax的計算。當來了一個新的測試圖像的時候,輸入模型,先得到對應的dense向量(softmax的前一層),然後針對該向量分别針對每個類别計算與其之間的距離(共得到N個距離),然後針對上述得到的每個距離分别使用每個類别對應的拟合模型對其進行預測,最後會分别得到一個分數FitScores,這個分數就是指該測試圖像特征值歸屬于其對應類别的機率,是以一共是有N個分類的。然後根據該圖像的最終輸出(此處為softmax的輸出),根據該機率分數的輸出進行排序,然後計算w的值(該值的計算就是根據采用tail的個數(即阿爾法的值)來計算的) f o r   i = 1... α      w = 1 − F i t S c o r e s ∗ ( α − i ) / α for \ i=1...α \ \ \ \ w=1−FitScores∗(α−i)/α for i=1...α    w=1−FitScores∗(α−i)/α

然後将該向量分别針對每個類别計算與其之間的距離與上述得到的w進行相乘,後續再進行類似softmax的操作,最終得到兩個分數,一個是openmax後的分數,一個是unknown的分數,注意這裡得到的openmax的類别比softmax輸出的類别多一個類别,也就是unknown的類别。

  概括:該方法使用EVT從每個類的平均值模組化這些激活矢量的距離,生成更新的倒數第二矢量(稱為OpenMax),這個更新的矢量産生了更好的模型,用于識别未知的類測試樣本。即以前的CNN中倒數第二層使用SoftMax機率描述,但是并沒有産生開集識别的良好模型,為适應開放式環境,更新倒數第二層矢量。

  EVT:極值理論,能夠處理小機率事件,預測極端事件的機率。

  使用EVT的原因:使用EVT模組化技術對來自網絡的重構誤差分布進行模組化,進而進一步提高性能。

2、G-OpenMax

  該算法是将OpenMax與使用GAN生成的資料增強相結合。使用GAN從已知的類資料生成未知樣本,然後将它們用于訓練CNN以及已知類。這種資料增強技術被證明可以改善未知的類别識别。

  GAN網絡:生成式對抗網絡是一種深度學習模型,是近年來複雜分布上無監督學習最具前景的方法之一。模型通過架構中(至少)兩個子產品:生成模型和判别模型的互相博弈學習産生相當好的輸出。

3、CROSR

  訓練網絡以進行輸入資料的聯合分類和重建。其增強了學習的表示,以便儲存未知和已知資料的資訊,以及區分已知類别的資訊。用于開集識别的新型分類-重建學習(CROSR),能夠在不損害已知分類準确度的情況下實作穩健的未知檢測。大量實驗表明,此方法在多個标準資料集中優于現有的深度開集分類器,并且對各種異常具有魯棒性。

4、MLOSR

  原理:其為基于CNN的深度開放式識别多任務學習,是通過将自動編碼器和分類結合起來可以有效通過多任務提高open-set的表現。系統架構由四個子產品組成:

  • 特征提取器(或編碼器)
  • 解碼器
  • 分類器
  • 極值模型(Pevt)

  特征提取器(或編碼器)網絡由CNN架構模組化,該架構将輸入圖像映射到潛在空間上表示。 另一個CNN和分類器模拟的解碼器,由完全連接配接的神經網絡模組化,将這種潛在的代表作為輸入,并分别産生重建的圖像及其标記作為輸出。 解碼器網絡和分類器網絡共享特征提取器子產品。 在訓練模型F,G和C之後,使用EVT對重建誤差進行模組化。訓練過程以學習參數(Θf,Θg,Θc)并使用EVT讨論識别分數分析。

  特征提取器網絡擷取任何輸入圖像(X)并産生潛在表示(z)。 分類器(C)和解碼器(G)使用該潛在表示來分别預測類标簽和重建輸入(X)。 訓練這些網絡以在多任務架構中執行分類和重建任務。 使用EVT對重建誤差分布的尾部模組化。在測試期間使用分類分數和EVT重建誤差機率來執行開集識别。

異常檢測 and 開集識别(2)前言一、開集識别的演變二、開集識别技術分類三、目前先進的開集識别算法總結

總結

參考網站如下:

開集識别(open-set)算法(1)——>Openmax參考

open-set recognition(OSR)開集識别的一些思考(四)——>Openmax參考

開集識别(Open Set Recognition)——>算法參考

繼續閱讀