英語積累
- Machine learning systems that operate in the real openworld invariably encounter test-time data that is unlike training examples, such as anomalies or rare objects that were insufficiently or even never observed during training. invariably:一貫的
- … can be crisply formulated as … 可以被很清晰的定義/表述為
- an elegant idea is to… 一個絕佳的方法是…
為什么使用GAN系列網(wǎng)絡(luò)進(jìn)行開放集檢測
綜述:Applications of Generative Adversarial Networks in Anomaly Detection: A Systematic Literature Review
-
GAN網(wǎng)絡(luò)可以學(xué)習(xí)數(shù)據(jù)分布
GAN的基本思想是通過讓兩個神經(jīng)網(wǎng)絡(luò)相互對抗,從而學(xué)習(xí)到數(shù)據(jù)的分布。其中一個神經(jīng)網(wǎng)絡(luò)被稱為生成器(Generator),它的目標(biāo)是生成與真實數(shù)據(jù)相似的假數(shù)據(jù);另一個神經(jīng)網(wǎng)絡(luò)被稱為判別器(Discriminator),它的目標(biāo)是區(qū)分真實數(shù)據(jù)和假數(shù)據(jù)。兩個網(wǎng)絡(luò)相互對抗,不斷調(diào)整參數(shù),從而最終生成具有高質(zhì)量和多樣性的假數(shù)據(jù)。 -
GAN網(wǎng)絡(luò)有產(chǎn)生新數(shù)據(jù)的能力,可以大大緩解新穎類檢測中缺少新穎類別數(shù)據(jù)的情況。
摘要
開放集現(xiàn)階段兩大方法:
- 利用一些例外(異常)數(shù)據(jù)作為開放集,訓(xùn)練一個閉集VS開放集的二分類檢測器
- 使用GAN網(wǎng)絡(luò)無監(jiān)督學(xué)習(xí)閉集數(shù)據(jù)分布,使用該判別器作為開放集的似然函數(shù)
兩個方法的缺陷:
- 作為開放集使用的異常數(shù)據(jù)無法窮盡現(xiàn)實世界的所有可能的未知值
- GAN網(wǎng)絡(luò)訓(xùn)練過程不穩(wěn)定
解決: 提出OpenGAN
- 使用對抗合成的假數(shù)據(jù)填充可用的真實開放集訓(xùn)練數(shù)據(jù)
- 在閉集k-ways的特征基礎(chǔ)上建立判別器
1. 前言
算法演變過程:
- 使用GAN網(wǎng)絡(luò)生成fake data,訓(xùn)練一個判別 close data 和 fake data 的二分類判別器;
- 在訓(xùn)練時使用一些真實世界中的離群數(shù)據(jù)(outlier data) 可以增強(qiáng)網(wǎng)絡(luò)性能,即訓(xùn)練一個判別close data和open data的判別器;
- O p e n G A N p i x OpenGAN^{pix} OpenGANpix: 結(jié)合GAN產(chǎn)生的fake data并且使用真實世界中的outlier data來訓(xùn)練判別器
- O p e n G A N f e a OpenGAN^{fea} OpenGANfea : 不再使用圖片的RGB像素進(jìn)行訓(xùn)練,而是使用off-the-shelf (OTS) features來對GAN網(wǎng)絡(luò)的訓(xùn)練;
off-the-shelf (OTS) features: 通過閉集檢測的網(wǎng)絡(luò)計算出來的特征
2. 相關(guān)工作
開集檢測
一般來說,異常數(shù)據(jù)不會在訓(xùn)練階段出現(xiàn)。
通用方法:
- 在閉集數(shù)據(jù)上訓(xùn)練k-ways閉集分類器,然后用于開放集檢測
- 開發(fā)集成模型: 在閉集數(shù)據(jù)上訓(xùn)練k-ways閉集分類器 + 訓(xùn)練時使用合成的fake data進(jìn)行開集檢測,會犧閉集檢測的準(zhǔn)確率
基于GAN網(wǎng)絡(luò)的開集檢測
基于暴露異常數(shù)據(jù)的開集檢測
3. OpenGAN
開放集檢測步驟:
- 把測試數(shù)據(jù)先分類:是開集還是閉集 (關(guān)鍵步驟)
- 對閉集進(jìn)行K-ways分類
一般的開放集檢測都會在訓(xùn)練時設(shè)置開放集數(shù)據(jù)不可見,但是有研究證明在訓(xùn)練階段將一些異常數(shù)據(jù)作為開放集數(shù)據(jù)進(jìn)行訓(xùn)練可以有限的提升檢測性能;
但是由于很難產(chǎn)生覆蓋開放世界的訓(xùn)練集數(shù)據(jù),而且分類器可能會在異常數(shù)據(jù)上發(fā)生過擬合,因此提出OpenGAN
OpenGAN優(yōu)勢:使用GAN網(wǎng)絡(luò)產(chǎn)生假數(shù)據(jù)作為開放集數(shù)據(jù)的訓(xùn)練集去欺騙分類器
3.1 公式建模
3.1.1 二分類方法
給定一個二元分類器D,它的訓(xùn)練目標(biāo)是將輸入樣本分為閉集(closed-set)和開集(open-set)兩個類別。
D
c
l
o
s
e
d
(
x
)
D_{closed}(x)
Dclosed?(x):在閉集上的數(shù)據(jù)分布
D
o
p
e
n
(
x
)
D_{open}(x)
Dopen?(x):在開放集上的數(shù)據(jù)分布(不屬于閉集)
m a x D E x ~ D c l o s e d [ l o g D ( x ) ] + λ o ? E x ~ D o p e n [ l o g ( 1 ? D ( x ) ) ] max_D E_{x~D_{closed}} [logD(x)] + λo · E_{x~D_{open}} [log(1?D(x))] maxD?Ex~Dclosed??[logD(x)]+λo?Ex~Dopen??[log(1?D(x))]
-
D ( x ) D(x) D(x):這表示分類器D對于給定輸入樣本x的輸出。它表示樣本屬于閉集類別的概率。也就是說,D(x)是模型對于輸入樣本屬于閉集的估計概率。
-
E x ~ D c l o s e d [ l o g D ( x ) ] E_{x~D_{closed}} [logD(x)] Ex~Dclosed??[logD(x)]:這是第一項,表示對于從閉集數(shù)據(jù)中抽取的樣本x,將其輸入到分類器D中,并計算其對數(shù)概率logD(x),然后對所有閉集樣本取平均。這一項鼓勵分類器正確地對閉集樣本進(jìn)行分類,即將閉集樣本的概率估計盡可能地提高。
-
E x ~ D o p e n [ l o g ( 1 ? D ( x ) ) ] E_{x~D_{open}} [log(1?D(x))] Ex~Dopen??[log(1?D(x))]:這是第二項,表示對于從開集數(shù)據(jù)中抽取的樣本x,將其輸入到分類器D中,并計算其對數(shù)概率log(1?D(x)),然后對所有開集樣本取平均。這一項鼓勵分類器正確地將開集樣本排除在閉集之外,即將開集樣本的概率估計盡可能地降低。
-
λ o λo λo:這是一個超參數(shù),用于調(diào)節(jié)第二項(開集樣本)相對于第一項(閉集樣本)的權(quán)重。通過調(diào)整λo的值,可以控制分類器在訓(xùn)練過程中對于閉集和開集樣本的重視程度。
存在問題
二分類方法的有效性取決于開集訓(xùn)練樣本是否能夠代表分類器在測試時遇到的開集數(shù)據(jù)。 如果開集訓(xùn)練樣本不能充分涵蓋開放世界數(shù)據(jù)中的變化和多樣性,那么分類器在面對未見過的開集樣本時可能表現(xiàn)不佳。
如何解決
使用GAN網(wǎng)絡(luò)生成數(shù)據(jù)。
3.1.2 使用合成數(shù)據(jù)
-
G ( z ) G(z) G(z) : 一個可以生成圖像的生成網(wǎng)絡(luò),生成器網(wǎng)絡(luò) G 接收從高斯正態(tài)分布中隨機(jī)采樣得到的噪聲輸入 z,并使用這個噪聲向量生成合成的圖像。
這些合成圖像可以被視為額外的負(fù)例或開放集樣本,然后將它們添加到用于訓(xùn)練分類器D的訓(xùn)練數(shù)據(jù)池中。 -
D ( D i s c r i m i n a t o r ) D(Discriminator) D(Discriminator): 判別器,負(fù)責(zé)判斷輸入的數(shù)據(jù)是真實的還是生成的。
為防止生成器網(wǎng)絡(luò) G 合成的圖片過于簡單,使用對抗性訓(xùn)練(adversarial training)的方法來訓(xùn)練生成器網(wǎng)絡(luò) G,以生成具有欺騙性的困難示例,使分類器 D 難以將其分類為開放集數(shù)據(jù)。
GAN的損失如下所示:
m
i
n
G
E
z
~
N
[
l
o
g
(
1
?
D
(
G
(
z
)
)
)
]
min_G E_{z~N} [ log (1 - D(G(z))) ]
minG?Ez~N?[log(1?D(G(z)))]
該損失函數(shù)的意思是,生成器G最小化判別器D對生成的合成數(shù)據(jù)不是開放集數(shù)據(jù)的分類概率;也就是說,生成器G試圖生成合成數(shù)據(jù),使得判別器D將其誤判為開放集數(shù)據(jù)的概率最大化。 通過這個過程,生成器G學(xué)會生成更難以分辨的合成數(shù)據(jù),從而提高了判別器D在面對開放集數(shù)據(jù)時的性能和魯棒性。
存在問題
開放集判別是指判別器 D 能夠正確識別已知類別的圖像,并將未知類別的圖像標(biāo)記為“未知”或“開放集”。然而,如果生成器 G 生成的圖像與已知類別的圖像非常相似,判別器 D 可能會錯誤地將其分類為已知類別(close-set),而無法準(zhǔn)確識別為開放集。
如何解決
設(shè)計一些技術(shù)或方法,使得生成器 G 不僅生成逼真的圖像,還能生成具有一定挑戰(zhàn)性的圖像,使判別器 D 能夠有效地進(jìn)行開放集判別。
這樣,判別器 D 就能夠準(zhǔn)確地將開放集的數(shù)據(jù)標(biāo)記為“未知”,而不是錯誤地將其分類為已知類別。
3.1.3 OpenGAN
通過使用真實的開放集和封閉集數(shù)據(jù),以及生成的開放集數(shù)據(jù),對判別器D和生成器G進(jìn)行聯(lián)合訓(xùn)練。
OpenGAN方法采用了一種類似GAN的最小最大優(yōu)化過程,同時優(yōu)化判別器D和生成器G。 公式如下所示。
m a x D m i n G E x ~ D c l o s e d [ l o g D ( x ) ] + λ o ? E x ~ D o p e n [ l o g ( 1 ? D ( x ) ) ] + λ G ? E z ~ N [ l o g ( 1 ? D ( G ( z ) ) ) ] max_D min_G E_{x~D_{closed}} [logD(x)] + λ_o · E_{x~D_{open}} [log(1?D(x))] + λ_G · E_{z~N} [log(1 ? D(G(z)))] maxD?minG?Ex~Dclosed??[logD(x)]+λo??Ex~Dopen??[log(1?D(x))]+λG??Ez~N?[log(1?D(G(z)))]
- E x ~ D c l o s e d [ l o g D ( x ) ] E_{x~D_{closed}} [logD(x)] Ex~Dclosed??[logD(x)] : 表示使用封閉集數(shù)據(jù)訓(xùn)練判別器D,使其正確區(qū)分封閉集數(shù)據(jù)。
- E x ~ D o p e n [ l o g ( 1 ? D ( x ) ) ] E_{x~D_{open}} [log(1?D(x))] Ex~Dopen??[log(1?D(x))]:表示使用真實的開放集數(shù)據(jù)訓(xùn)練判別器D,使其將開放集數(shù)據(jù)識別為開放集。
- E z ~ N [ l o g ( 1 ? D ( G ( z ) ) ) ] E_{z~N} [log(1 ? D(G(z)))] Ez~N?[log(1?D(G(z)))]:表示使用生成器G生成的假開放集數(shù)據(jù)訓(xùn)練判別器D,使其能夠正確區(qū)分生成的假開放集數(shù)據(jù)。
- λ o λ_o λo? 控制了真實開放集數(shù)據(jù)對于訓(xùn)練的貢獻(xiàn),而 λ G λ_G λG? 控制了生成器G生成的假開放集數(shù)據(jù)對于訓(xùn)練的貢獻(xiàn)。
當(dāng)沒有真實的開放集訓(xùn)練樣本時( λ o = 0 λ_o=0 λo?=0),上述最小最大優(yōu)化問題仍然可以訓(xùn)練一個用于開放集分類的判別器D。在這種情況下,訓(xùn)練OpenGAN等效于訓(xùn)練一個普通的GAN,并使用其判別器作為開放集的似然函數(shù)。
3.1.4 模型驗證
由于對抗生成訓(xùn)練會導(dǎo)致判別器D無法區(qū)分閉集中的真實數(shù)據(jù)和由生成器G產(chǎn)生的fake image,因此需要使用真實的異常數(shù)據(jù)來進(jìn)行模型的驗證,用于評估判別器D在開放集與封閉集分類準(zhǔn)確性上的表現(xiàn)。
選擇具有最佳開放集與封閉集分類準(zhǔn)確性的判別器D作為最終模型。
3.2 先前基于GAN方法的總結(jié)
3.2.1 生成器vs判別器
之前的方法中主要是利用生成器生成圖像來擴(kuò)充訓(xùn)練集,但是該方法主要是利用判別器來判別閉集圖像和開集圖像。
不需要訓(xùn)練一個單獨的模型來進(jìn)行開放集識別,而是直接使用已經(jīng)訓(xùn)練好的判別器模型來評估圖像的開放集歸屬。
通常情況下,對于封閉集分類任務(wù),我們會訓(xùn)練一個模型,比如一個卷積神經(jīng)網(wǎng)絡(luò)(CNN),來對已知類別進(jìn)行分類。這個模型會經(jīng)過訓(xùn)練,學(xué)習(xí)如何識別封閉集中的各個類別。然而,在開放集識別中,我們面臨的挑戰(zhàn)是要識別出封閉集中未知類別的樣本。傳統(tǒng)的方法是訓(xùn)練一個單獨的模型來處理開放集識別,這個模型通常包括一個分類器和一個開放集檢測器。
但是,使用已經(jīng)訓(xùn)練好的判別器模型作為開放集的似然函數(shù)時,我們可以繞過訓(xùn)練一個單獨的模型,直接使用判別器模型來評估一個給定圖像屬于封閉集中已知類別的概率。
判別器在訓(xùn)練過程中已經(jīng)學(xué)習(xí)到了區(qū)分真實圖像和生成圖像的能力。因此,我們可以通過將一個圖像輸入到判別器模型中,得到判別器對該圖像屬于封閉集已知類別的似然度。如果判別器給出的似然度低于某個閾值,我們可以將該圖像判定為開放集中的未知類別。
這種方法的優(yōu)勢在于利用了已經(jīng)訓(xùn)練好的判別器模型,無需額外訓(xùn)練一個專門的模型來處理開放集的識別。我們可以直接使用判別器模型來評估圖像的開放集歸屬,從而簡化了模型的設(shè)計和訓(xùn)練過程。
3.2.2 Features vs. Pixels
直接利用features訓(xùn)練GAN網(wǎng)絡(luò)比使用RGB圖像的效果更好。比如說使用分類網(wǎng)絡(luò)倒數(shù)第二層輸出的pre-logit特征向量。
off-the-shelf feature: 通用特征,指的是使用現(xiàn)有的、通用的預(yù)訓(xùn)練特征提取器提取到的特征,可以節(jié)省訓(xùn)練時間和計算資源,并且可以受益于預(yù)訓(xùn)練模型在大規(guī)模數(shù)據(jù)上的學(xué)習(xí)。
4. 實驗部分
- 設(shè)置一:把數(shù)據(jù)集分成閉集和開放集; e.g. 對于MINIST數(shù)據(jù)集,MNIST digits 0-5 as the closed-set for training, and digits 6-9 as the open-set in testing.
- 設(shè)置二:采用了跨數(shù)據(jù)集的圖像來構(gòu)建開放集的訓(xùn)練集和測試集。 這樣做的目的是確保開放集中的樣本與封閉集的樣本在數(shù)據(jù)來源上具有一定的差異,以更真實地模擬實際應(yīng)用中的開放集場景。
- 設(shè)置三:評估效果。
4.1 具體實現(xiàn)
K-way classification networks under Setup-I and II : 在閉集訓(xùn)練集上訓(xùn)練ResNet18,使用resnet18倒數(shù)第二層提取到的特征作為OTS特征,基于OTS特征的基礎(chǔ)上訓(xùn)練了 O p e n G A N f e a OpenGAN^{fea} OpenGANfea,為了對比實驗,還訓(xùn)練了 O p e n G A N p i x OpenGAN^{pix} OpenGANpix
4.2 Setup-I: Open-Set Discrimination
數(shù)據(jù)集劃分: For each of the first three datasets that have ten classes, we randomly split 6 (4) classes of train/val-sets as the closed (open) train/val-sets respectively. For TinyImageNet that has 200 classes, we randomly split 20 (180) classes of train/val-sets as the closed (open) train/val-set.
結(jié)果:
由于訓(xùn)練的時候沒有開放集數(shù)據(jù)的訓(xùn)練參與,所以不能使用訓(xùn)練二分類器的方法來進(jìn)行分類器訓(xùn)練,此處GAN判別器可以使用模型選擇的方法來進(jìn)行訓(xùn)練;
模型選擇是一種通過比較不同模型的性能來選擇最佳模型的方法。在訓(xùn)練過程中,作者可能會嘗試不同的鑒別器架構(gòu)或超參數(shù),并選擇在驗證集上表現(xiàn)最好的鑒別器模型作為OpenGAN-0的開放集可能性函數(shù)。
結(jié)果證明openGAN表現(xiàn)的是最好的。
討論
為了證明只構(gòu)建鑒別器作為似然函數(shù)的有效性,作者還使用BiGAN做了對比實驗,BiGAN是基于重構(gòu)誤差作為似然函數(shù)的網(wǎng)絡(luò),因此作者使用重構(gòu)誤差和判別器兩種方法分別訓(xùn)練BiGAN,實驗結(jié)果證明使用判別器的方法更好。
4.3. Setup-II: Cross-Dataset Open-Set Recognition
構(gòu)建跨數(shù)據(jù)集來訓(xùn)練,降低數(shù)據(jù)集層面的偏差;文章來源:http://www.zghlxwxcb.cn/news/detail-780805.html
e.g. 使用MNIST數(shù)據(jù)集去訓(xùn)練一個模型,使用CIFAR10數(shù)據(jù)集來測試,從而分析如何將開放集方法推廣到不同的數(shù)據(jù)集中。文章來源地址http://www.zghlxwxcb.cn/news/detail-780805.html
到了這里,關(guān)于【開放集檢測】OpenGAN: Open-Set Recognition via Open Data Generation 論文閱讀的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!