1. 程式人生 > >Partial Transfer Learning 使用選擇性對抗網路的部分遷移學習

Partial Transfer Learning 使用選擇性對抗網路的部分遷移學習

論文地址:
http://openaccess.thecvf.com/content_cvpr_2018/papers/Cao_Partial_Transfer_Learning_CVPR_2018_paper.pdf

簡介

何為部分遷移學習呢,部分遷移的應用場景又是什麼呢?----當目標域中的標籤空間只是源域標籤空間的一個子集時,如果將這個子集外的知識遷移到目標任務識別中,那麼很大程度上會發生負遷移,而通過篩選,選出源域中與目標域的標籤空間對應的那部分資料進行遷移,則很大程度上減少了負遷移的發生,這種關於源域部分知識的遷移就是部分遷移學習。

目前很大一部分遷移學習演算法的應用場景都是目標域的標籤空間與源域的標籤空間相同,然後在現實場景中,這樣的條件經常是達不到的,更多的情況則是因為源域的資料量比目標域大得多,往往源域的標籤空間比目標域大,而目標域則是源域標籤空間的一個子集,這篇論文則是應於這樣的場景下提出將對抗學習與遷移學習相結合,以實現部分遷移。其實這篇論文的框架與Ganin的《Unsupervised domain adaptation by backpropagation》[2]中的框架很相似,也可以看做是以上網路的改進版。

文中通過擴充套件深度對抗網路來處理了一個大的域(源域)向一個小的域(目標域)的部分遷移問題,通過源域和目標域的標籤空間對齊,從而篩選出異常類(源域和目標域標籤空間交集之外的類別)的源域資料。 Selective Adversarial Networks(SAN)框架如下:

Selective Adversarial Networks

選擇性對抗網路的框架如上圖所示,其中f為被提取出來的深度特徵。 y ^

\hat{y} 為預測標籤, d ^ \hat{d} 為預測的域標籤, G f
G_f
是特徵提取器, G y G_y L y L_y 是標籤預測器和標籤預測器的loss, G d k G_d^k L d k L_d^k 是第k個域判別器和域判別器的loss,k的大小為源域中類別的數量(比如只有兩個類別,那麼k=2),GRL則表示梯度反轉層[2]。

文中稱源域的標籤空間為 C s \mathcal{C}_s ,目標域的標籤空間為 C t \mathcal{C}_t ,而部分遷移中源域和目標域存在這樣的關係: C t C s \mathcal{C}_t \subset \mathcal{C}_s 。同時稱源域標籤空間中除了目標域那部分以外的標籤集為 C s C t \mathcal{C}_s \diagdown \mathcal{C}_t ,也叫作異常標籤空間。SAN要做的就是要篩選出這些異常源域類資料以減小負遷移。

SAN的思想是讓 G y G_y 通過有監督的方式優化標籤預測器,最小化預測損失值,讓網路根據 G f G_f 儘可能分類好樣本,同時又要讓域判別器的損失最大化,以至於域判別器能夠更準確的判斷出 G f G_f 是屬於所有類別k中的哪一類,好給樣本分配權重,讓屬於與目標域相關的源域類別樣本的權值高,而屬於異常類的權值低。然後通過一個GRL層(也就是讓正的梯度變為負的,讓負的梯度變為正的),讓梯度反轉,這樣由於反轉,最大化域判別器損失也就變為了最小化了,就可以與上面的 L y L_y 同時通過最小化進行優化。

存在一個問題, G y G_y 是一個有監督判別器,源域資料有標籤是很正常的,但是目標域沒有標籤哦,遇到目標域資料怎麼給域判別器損失進行優化呢?我們都知道資料經過 G y G_y 會得到一個概率指數,比如樣本有多少比例屬於哪一類,像[0.2,0.8]則表明樣本有0.2的機率屬於第一類,而有0.8的機率屬於第二類,這個概率指數被稱為probability-weighted,而作者也是用這個probability-weighted將樣本分配到不同的域判別器 G d k G_d^k

目標函式

好了,那我們現在來看一下網路的損失函式:

第一項 L y L_y 是標籤預測器的交叉熵損失,很常規的監督網路損失,其中 y i y_i 為樣本的真實標籤。

因為域判別器 G d G_d 的表現效果很受概率指數 y ^ i = G y ( x i ) \hat{y}_i=G_y(x_i) 的影響(因為上面說了 G d k G_d^k 的損失 L d k L_d^k 根據 G y G_y 而來)。因此作者用了一個熵最小化原則來重定義標籤預測器 G y G_y ,使得類之間進行低密度分離。這由條件熵H在目標域 D t \mathcal{D}_t 上的概率 y ^ i k \hat{y}_i^k 實現,如下:

因此,這就有了以上損失函式中的第二項。

第三項 L d L_d 為域判別器的損失,其由眾多小判別器 L d k L_d^k 通過加權構成,其中的權值則是上面提到的,樣本屬於異常類的權值低,而屬於相關類的權值高。這裡的權值由 1 n t x i D t y ^ i k \frac{1}{n_t} \sum_{x_i \in \mathcal{D}_t} \hat{y}_i^k 表示。後面的 L d k ( G d k ( G f ( x i ) , d i ) ) L_d^k(G_d^k(G_f(x_i),d_i)) 則是一個正常的有監督損失,其中 d i d_i 為樣本的域標籤, y ^ i k \hat{y}_i^k 則為上面提到的probability-weighted,第三項損失的意義是說每個子判別器通過probability-weighted來進行有監督優化,同時每個子判別器又通過權值相乘進行結合而成,其中樣本屬於異常類的權值低,而屬於相關類的權值高。而第三項前面的負號則是因為上面提到的要最小化 G y G_y 並最大化 G d G_d 的原因。

好,到此為止,網路就可以根據這個損失函式進行優化了。

總結

SAN的框架和《Unsupervised domain adaptation by backpropagation》[2]中的很相似,其不同之處在於域判別器分為不同類的子判別器 G d k G_d^k

相關推薦

《A Survey on Transfer Learning》中文版翻譯《遷移學習研究綜述》

首先感謝(http://blog.csdn.net/magic_leg/article/details/73957331)這篇部落格首次將《A Survey on Transfer Learning》這篇文章翻譯成中文版,給予我們很大的參考。但上述作者翻譯的內容有很多不準確的

Partial Transfer Learning 使用選擇性對抗網路部分遷移學習

論文地址: http://openaccess.thecvf.com/content_cvpr_2018/papers/Cao_Partial_Transfer_Learning_CVPR_2018_paper.pdf 簡介 何為部分遷移學習呢,部分遷移的應用場景又是什麼呢?----

王小草【深度學習】筆記第四彈--卷積神經網路遷移學習

標籤(空格分隔): 王小草深度學習筆記 1. 影象識別與定位 影象的相關任務可以分成以下兩大類和四小類: 影象識別,影象識別+定位,物體檢測,影象分割。 影象的定位就是指在這個圖片中不但識別出有只貓,還把貓在圖片中的位置給精確地摳出來今天我們來講

Importance Weighted Adversarial Nets for Partial Domain Adaptation 使用加權對抗網路實現部分域適應

論文地址:https://arxiv.org/pdf/1803.09210。 簡介 這篇文章介紹了一種深度域適應方法,構造了兩個網路以及兩個判別器,兩個網路作用是分別提取源域和目標域的,然後一個判別器用於獲取源域樣本的重要性權重,第二個分類器使用經過加權的源域樣本特徵和目標域資料進行

遷移學習(Transfer Learning)

style 多任務 部分 容易 完全 In bubuko 出現 很快 深度學習中在計算機視覺任務和自然語言處理任務中將預訓練的模型作為新模型的起點是一種常用的方法,通常這些預訓練的模型在開發神經網絡的時候已經消耗了巨大的時間資源和計算資源,遷移學習可以將已習得的強大技能遷移

遷移學習簡介(transfer learning

遷移學習簡介(transfer learning) https://blog.csdn.net/qq_33414271/article/details/78756366   一、什麼是遷移學習? 遷移學習將一個場景中學到的知識遷移到另一個場景中 達叔也說將來遷移學習也會

PyTorch之遷移學習Transfer Learning

TRANSFER LEARNING TUTORIAL Finetuning the convnet: Instead of random initializaion, we initialize the network with a pretrained network, l

Transfer Learning遷移學習

Transfer Learning In practice, very few people train an entire Convolutional Network from scratch (with random initialization), because it is relativ

基於keras.MNIST的遷移學習(Transfer Learning)

       遷移學習用來解決當某一任務A資料量不足時,通過另一相似任務B提供經驗(也就是從任務B遷移到任務A)的問題。此處的情形是,在MNIST資料集中,通過對前5個數字(0~4)的學習遷移到後5個數字(5~9)的任務(在一些paper中似乎也有teacher和studen

【GAN ZOO閱讀系列】NONSUPERVISED REPRESENTATION LEARNING WITH DCGAN 使用深度卷積生成對抗網路的無監督的表示學習

Alec Radford & Luke Metz indico Research Boston, MA {alec,luke}@indico.io Soumith Chintala Facebook AI Research New York, NY [e

遷移學習TRANSFER LEARNING

在本教程中,您將學習如何使用遷移學習來培訓您的網路。 在實踐中,很少有人從頭開始訓練整個卷積網路(使用隨機初始化),因為擁有足夠大小的資料集是相對少見的。相反,在一個非常大的資料集上預先訓練一個卷積神經網路是很常見的(例如,ImageNet,它包含了120萬個有1000個類

Online Transfer Learning 線上遷移學習

簡介 現存的很多遷移學習演算法都是一種離線學習(Offline learning)演算法,即源域資料和目標域資料都是已經存在固定了的,然而在現實當中,經常會遇到線上資料的情況,即資料並不是固定存在的,而是一個或多個產生“流進”目標域中,比如工業上數控機床產生的

遷移學習Transfer Learning

1、簡介 一句話概括:從以前的任務當中去學習知識(knowledge)或經驗,並應用於新的任務當中。 傳統的機器學習方法包括有監督學習、無監督學習和半監督學習,針對不完全資料,有監督和半監督學習還有相應的變形,如處理噪聲分類標籤問題以及代價敏感學習。然而,這些方法的大多數

遷移學習 Transfer Learning

from:http://transferlearning.xyz/ 關於遷移學習的所有資料,包括:介紹、綜述文章、最新文章、代表工作及其程式碼、常用資料集、碩博士論文、比賽等等。(可能是目前最全的遷移學習資料庫?) 歡迎一起貢獻! Everything about Transfer

Distant Domain Transfer Learning遠域遷移學習--通過人臉識別飛機!

論文地址: http://www.ntu.edu.sg/home/sinnopan/publications/[AAAI17]Distant Domain Transfer Learning.pdf 從標題就可以看出,這是一個想法很牛掰的方法,當然實際也很牛掰。現今很多遷移學習方法都是假

【GAN ZOO閱讀系列】UNSUPERVISED REPRESENTATION LEARNING WITH DCGAN 使用深度卷積生成對抗網路的無監督的表示學習

Alec Radford & Luke Metz indico Research Boston, MA {alec,luke}@indico.io Soumith Chintala

淺說“遷移學習”(Transfer Learning

—— 原文釋出於本人的微信公眾號“大資料與人工智慧Lab”(BigdataAILab),歡迎關注。 什麼是遷移學習? 遷移學習(Transfer Learning)是一種機器學習方法,是把一個領域(即源領域)的知識,遷移到另外一個領域(即目標領域),使得目標領

遷移學習transfer learning)、多工學習(multi-task learning)、深度學習(deep learning)概念摘抄

本文在寫作過程中參考了諸多前輩的部落格、論文、筆記等。由於人數太多,在此不一一列出,若有侵權,敬請告知,方便我進行刪改,謝謝!!! 遷移學習(Transfer Learning) 遷移學習出現的背景如下:在一些新興領域很難得到我們需要的大量的訓練資料,另外,傳統的機器學習

Learning Notes】生成式對抗網路(Generative Adversarial Networks,GAN)

在學習 Variational Auto-Encoder時,同時注意到了 GAN 研究的火熱。但當時覺得 GAN 非常不成熟(訓練不穩定,依賴各種說不清的 tricks;沒有有效的監控指標,需要大量的人工判斷,因此難以擴展到圖像之外的高維數據)。在讀了 Good