對(duì)遷移學(xué)習(xí)中域適應(yīng)的理解和3種技術(shù)的介紹
點(diǎn)擊上方“小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
作者:Harsh Maheshwari
編譯:ronghuaiyang
我們的目標(biāo)是在一個(gè)標(biāo)簽可用的數(shù)據(jù)集(源)上訓(xùn)練神經(jīng)網(wǎng)絡(luò),并在另一個(gè)標(biāo)簽不可用的數(shù)據(jù)集(目標(biāo))上保證良好的性能。
域適應(yīng)是計(jì)算機(jī)視覺(jué)的一個(gè)領(lǐng)域,我們的目標(biāo)是在源數(shù)據(jù)集上訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò),并確保在顯著不同于源數(shù)據(jù)集的目標(biāo)數(shù)據(jù)集上也有良好的準(zhǔn)確性。為了更好地理解域適應(yīng)和它的應(yīng)用,讓我們先看看它的一些用例。
我們有很多不同用途的標(biāo)準(zhǔn)數(shù)據(jù)集,比如GTSRB用于交通標(biāo)志識(shí)別,LISA和LARA dataset用于交通信號(hào)燈檢測(cè),COCO用于目標(biāo)檢測(cè)和分割等。然而,如果你想讓神經(jīng)網(wǎng)絡(luò)很好地完成你的任務(wù),比如識(shí)別印度道路上的交通標(biāo)志,那么你必須首先收集印度道路的所有類型的圖像,然后為這些圖像做標(biāo)注,這是一項(xiàng)費(fèi)時(shí)費(fèi)力的任務(wù)。在這里我們可以使用域適應(yīng),因?yàn)槲覀兛梢栽贕TSRB(源數(shù)據(jù)集)上訓(xùn)練模型,并在我們的印度交通標(biāo)志圖像(目標(biāo)數(shù)據(jù)集)上測(cè)試它。 在很多情況下,很難收集數(shù)據(jù)集,這些數(shù)據(jù)集具有訓(xùn)練魯棒神經(jīng)網(wǎng)絡(luò)所需的所有變化和多樣性。在這種情況下,在不同的計(jì)算機(jī)視覺(jué)算法的幫助下,我們可以生成具有我們需要的所有變化的大型合成數(shù)據(jù)集。然后在合成數(shù)據(jù)集(源數(shù)據(jù)集)上訓(xùn)練神經(jīng)網(wǎng)絡(luò),并在真實(shí)數(shù)據(jù)集(目標(biāo)數(shù)據(jù)集)上測(cè)試它。
為了更好地理解,我假設(shè)我們對(duì)目標(biāo)數(shù)據(jù)集沒(méi)有可用的標(biāo)注,但這不是唯一的情況。
因此在域適應(yīng)方面,我們的目標(biāo)是在一個(gè)標(biāo)簽可用的數(shù)據(jù)集(源)上訓(xùn)練神經(jīng)網(wǎng)絡(luò),并在另一個(gè)標(biāo)簽不可用的數(shù)據(jù)集(目標(biāo))上保證良好的性能。

現(xiàn)在讓我們看看如何實(shí)現(xiàn)我們的目標(biāo)??紤]以上圖像分類的例子。為了從一個(gè)域適應(yīng)到另一個(gè)域,我們希望我們的分類器能夠很好地從源數(shù)據(jù)集和目標(biāo)數(shù)據(jù)集中提取特征。由于我們已經(jīng)在源數(shù)據(jù)集上訓(xùn)練了神經(jīng)網(wǎng)絡(luò),分類器必須在源數(shù)據(jù)集上表現(xiàn)良好。然而,為了使分類器在目標(biāo)數(shù)據(jù)集上表現(xiàn)良好,我們希望從源數(shù)據(jù)集和目標(biāo)數(shù)據(jù)集提取的特征是相似的。因此,在訓(xùn)練時(shí),我們加強(qiáng)特征提取,為源和目標(biāo)域圖像提取相似的特征。

基于目標(biāo)域的域自適應(yīng)類型
根據(jù)目標(biāo)域提供的數(shù)據(jù)類型,域適應(yīng)可分為以下幾類:
監(jiān)督 — 你已經(jīng)標(biāo)記了來(lái)自目標(biāo)域的數(shù)據(jù),目標(biāo)域數(shù)據(jù)集的大小比源數(shù)據(jù)集小得多。 半監(jiān)督 — 你既有目標(biāo)域的標(biāo)記數(shù)據(jù)也有未標(biāo)記數(shù)據(jù)。 無(wú)監(jiān)督的 — 你有很多目標(biāo)域的未標(biāo)記樣本。
域適應(yīng)技術(shù)
主要采用三種技術(shù)實(shí)現(xiàn)任意域適應(yīng)算法。以下是域適應(yīng)的三種技術(shù):
基于分布的域適應(yīng) 基于對(duì)抗性的域適應(yīng) 基于重建的域適應(yīng)
現(xiàn)在讓我們逐個(gè)來(lái)看每種技術(shù)。
基于分布的域適應(yīng)
基于散度的域適應(yīng)原理是最小化源與目標(biāo)分布之間的散度準(zhǔn)則,從而得到域不變性特征。常用的分布準(zhǔn)則有對(duì)比域描述、相關(guān)對(duì)齊、最大平均差異(MMD),Wasserstein等。為了更好地理解這個(gè)算法,讓我們先看看一些不同的分布。
在最大平均差異(MMD)中,我們?cè)噲D找出給定的兩個(gè)樣本是否屬于相同的分布。我們將兩個(gè)分布之間的距離定義為平均嵌入特征之間的距離。如果我們有兩個(gè)在集合X上的分布P和Q。MMD通過(guò)一個(gè)特征映射來(lái)定義,??: X→H,這里H再生核希爾伯特空間。MMD的公式如下:

為了更好地了解MMD,請(qǐng)查看以下描述:如果兩個(gè)分布的矩相似,則它們是相似的。通過(guò)使用kernel,我可以對(duì)變量進(jìn)行變換,從而計(jì)算出所有的矩(一階,二階,三階等)。在潛在空間中,我可以計(jì)算出矩之間的差值并求其平均值。
在相關(guān)對(duì)齊中,我們嘗試對(duì)源和目標(biāo)域之間的相關(guān)(二階統(tǒng)計(jì)量)進(jìn)行對(duì)齊,而不是使用MMD中的線性變換對(duì)均值進(jìn)行對(duì)齊。


上面的結(jié)構(gòu)假設(shè)源域和目標(biāo)域有相同的類別。在上述架構(gòu)中,在訓(xùn)練過(guò)程中,我們最小化了兩種損失,分類損失和基于散度的損失。分類損失通過(guò)對(duì)特征提取器和分類器的權(quán)值進(jìn)行更新,確保獲得良好的分類性能。而散度損失則通過(guò)更新特征提取器的權(quán)值來(lái)保證源域和目標(biāo)域的特征相似。在推理過(guò)程中,我們只需將目標(biāo)域圖像通過(guò)神經(jīng)網(wǎng)絡(luò)。
所有的分布通常是非參數(shù)而且是人工的數(shù)學(xué)公式,不是專門針對(duì)數(shù)據(jù)集或我們的問(wèn)題的,如分類,目標(biāo)檢測(cè),分割等。因此,這種基于分布的方法并不能很好地解決我們的問(wèn)題。但是,如果分布可以通過(guò)數(shù)據(jù)集或問(wèn)題來(lái)學(xué)習(xí),那么它將比傳統(tǒng)的預(yù)定義分布表現(xiàn)得更好。
基于對(duì)抗的域適應(yīng)
為了實(shí)現(xiàn)基于對(duì)抗性的域適應(yīng),我們使用GANs。這里我們的生成器是簡(jiǎn)單的特征提取器,我們添加了新的判別器網(wǎng)絡(luò),學(xué)習(xí)區(qū)分源和目標(biāo)域的特征。由于這是一個(gè)雙人游戲,判別器幫助生成器產(chǎn)生的特征對(duì)于源和目標(biāo)領(lǐng)域是不可區(qū)分的。由于我們有一個(gè)可學(xué)習(xí)的判別器網(wǎng)絡(luò),我們學(xué)習(xí)特定于我們的問(wèn)題和數(shù)據(jù)集的特征提取,這可以幫助區(qū)分源和目標(biāo)域,從而幫助生成器產(chǎn)生更魯棒的特征,即,不能很容易區(qū)分的特征。


假設(shè)是分類問(wèn)題,我們使用兩種損失,分類損失和判別器損失。分類損失的目的已在前面說(shuō)明。判別器損失有助于判別器正確地區(qū)分源域和目標(biāo)域的特征。這里我們使用梯度反向?qū)?GRL)來(lái)實(shí)現(xiàn)對(duì)抗性訓(xùn)練。GRL block是一個(gè)簡(jiǎn)單的block,它在反向傳播時(shí)將梯度乘以-1或一個(gè)負(fù)值。在訓(xùn)練過(guò)程中,為了更新生成器,我們有來(lái)自兩個(gè)方向的梯度,首先來(lái)自分類器,其次來(lái)自判別器。由于GRL的存在,判別的梯度乘以一個(gè)負(fù)值,導(dǎo)致訓(xùn)練生成器的效果與判別器相反。例如,如果優(yōu)化判別器損失函數(shù)的計(jì)算梯度為2,那么我們使用-2(假設(shè)負(fù)值為-1)來(lái)更新生成器。通過(guò)這種方式,我們?cè)噲D訓(xùn)練生成器,使其生成即使是判別器也無(wú)法區(qū)分源域和目標(biāo)域的特征。GRL層在許多域適應(yīng)的文獻(xiàn)中都有廣泛的應(yīng)用。
基于重建的域適應(yīng)
這是基于圖像到圖像的轉(zhuǎn)換。一個(gè)簡(jiǎn)單的方法是學(xué)習(xí)從目標(biāo)域圖像到源域圖像的轉(zhuǎn)換,然后在源域上訓(xùn)練一個(gè)分類器。我們可以用這個(gè)想法引入多種方法。圖像到圖像轉(zhuǎn)換的最簡(jiǎn)單模型可以是基于編碼器-解碼器的網(wǎng)絡(luò),并使用判別器強(qiáng)制編碼器 — 解碼器網(wǎng)絡(luò)生成與源域相似的圖像。


另一種方法是使用CycleGANs。在Cycle GAN中采用了基于兩種編解碼器的神經(jīng)網(wǎng)絡(luò)。一個(gè)用于將目標(biāo)轉(zhuǎn)換為源域,另一個(gè)用于將源轉(zhuǎn)換為目標(biāo)域。我們同時(shí)訓(xùn)練了生成兩個(gè)域(源域和目標(biāo)域)圖像的GANs。為了保證一致性,引入了循環(huán)一致性損失。這可以確保從一個(gè)域轉(zhuǎn)換到另一個(gè)域,然后再轉(zhuǎn)換回來(lái),得到與輸入大致相同的圖像。因此,兩個(gè)配對(duì)網(wǎng)絡(luò)的總損失和是判別器損失與循環(huán)一致性損失的和。
總結(jié)
我們已經(jīng)看到了三種不同的技術(shù),可以幫助我們實(shí)現(xiàn)或?qū)嵤┎煌挠蜻m應(yīng)方法。它在圖像分類、目標(biāo)檢測(cè)、分割等不同任務(wù)中都有很大的應(yīng)用。在某些方面,我們可以說(shuō),這種方法類似于人類如何學(xué)習(xí)視覺(jué)識(shí)別不同的東西。我希望這個(gè)博客能讓你了解我們是如何思考不同的域適應(yīng)pipelines的。

英文原文:https://levelup.gitconnected.com/understanding-domain-adaptation-63b3bb89436f
好消息!
小白學(xué)視覺(jué)知識(shí)星球
開(kāi)始面向外開(kāi)放啦??????
下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程 在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺(jué)、目標(biāo)跟蹤、生物視覺(jué)、超分辨率處理等二十多章內(nèi)容。 下載2:Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目52講 在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺(jué)實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺(jué)。 下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講 在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。 交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~

