算法實現「管中窺豹」

2021-01-10 程式設計師觀察

深度網絡明顯改善了各種各樣的機器學習問題和應用程式。但是這些性能提升是以大量手工標記數據為代價的。求助於模擬數據,如計算機生成的場景是目前研究的一個流行趨勢是,以便提供無限數量的自動注釋。然而,這種學習受到數據分布之間變化的影響。

對於目標任務來說,不僅是數據標記,數據收集本身也可能是具有挑戰性的,如果不是不可能的話。例如,罕見的可能很難獲得疾病信息有隱私或者可以拍下視頻極端的天氣狀況。在這個缺乏數據的場景中由於來自目標域的未標記數據數量有限。

因此,發表於NeurIPS2020文章《Adversarial Style Mining for One-Shot Unsupervised Domain Adaptation》為這種現實但且具挑戰性的學習場景設計一個特定的算法,即一次性無監督領域適應(OSUDA)。

論文傳送門:

https://www.researchgate.net/publication/340618059_Adversarial_Style_Mining_for_One-Shot_Unsupervised_Domain_Adaptation

問題描述

只有單個樣本的情況下效果不佳

作者為了解決由虛擬數據訓練出的網絡在真實數據上往往泛化能力不佳這一問題,利用無監督領域自適應方法One-Shot Unsupervised Domain Adaptation (OSUDA)來緩解虛擬源域數據和真實目標域數據分布的差距,達到了比較好的效果。

針對目標數據稀缺的現實問題,本文提出只搜集到了一張來自於目標域的珍貴樣本,僅僅通過對該樣本的充分挖掘,使模型能夠感知到潛在的目標域分布,達到「管中窺豹」的效果。

解決思路

假設源域和目標域具有相似的語義內容,但圖片風格不同。傳統基於風格遷移的Domain Adaptation方法將源域圖片轉化到目標域圖片的風格分布上進行訓練,以此降低domain gap。然而,在只有一張目標域圖片的情況下,如果直接按照風格遷移的思路,所有的源域圖片均會遷移到同一個單調的風格上,造成過擬合。

因此,這裡將OSUDA的問題轉化為了風格搜索問題,即如何從一個「孤點」風格搜索出更多潛在的目標域風格,形成「風格分布」,從而讓領域自適應變得可行。

但是只有一張圖片,潛在的目標域風格分布是完全未知的。那麼如何有效地搜索呢?

思路:

潛在的目標域風格雖然不可見,但大概分布在該one-shot風格的附近。應該讓搜索出的風格對模型的泛化能力有價值,即不能完全過擬合到one-shot的風格。沿著這種思路,我們設計了ASM方法。ASM方法以one-shot圖片提供的風格作為「錨」風格(anchored style),利用一個圖片生成網絡G在anchored style周圍採樣一個相似的風格(該風格離anchored style較近)進行圖片生成,然後將下一步的搜索方向確定為對當前任務模型M最難的方向(利用梯度上升實現)進行搜索,從而生成更多更難風格的圖像來提高任務特定模型 M 的泛化能力。更新後的 M 為 G 提供動態反饋,以指導G下一步的搜索方向。顯然,M與G形成了一個對抗的過程。在這種對抗訓練過程中,G逐步生成對於M來說更加困難的圖片,而M不斷地更新G的搜索方向。訓練收斂後,M可以對anchored style周圍的所有風格具有較強的泛化能力。方法詳情

風格生成網絡RAIN

根據解決思路中的描述,針對OSUDA問題,ASM算法需要一個根據M的訓練loss而動態改變遷移風格的模塊G,且模塊G需要具有採樣能力和端到端可導的搜索能力。

基於AdaIN方法,設計了RAIN模塊。

RAIN

RAIN 在原始 AdaIN 的特徵空間中額外裝備了一個變分自編碼器(稱為 style VAE)。style VAE將所有的風格分布都編碼到了一個正態分布中,因此RAIN在訓練完成後,不需要再像AdaIN一樣每次輸入風格圖片進行風格遷移,而是可以直接通過採樣進行隨機風格遷移。通過改變採樣向量,生成的風格也相應的發生變化。因此,直接將梯度反傳至採樣向量即可完成端到端的對抗訓練。

對抗風格挖掘網絡ASM

將預訓練的G(也就是RAIN)的參數固定(可變的只有採樣向量),與M組成一個對抗網絡。以語義分割常用的FCN網絡為例的網絡結構如下。

ASM

ASM的訓練目標是優化兩個損失函數。任務損失:利用任務損失指導M從(已經過風格化的)源域數據和標籤中學習知識。一致性損失:為了進一步鼓勵 M 提取領域不變性特徵,算法使用了一致性損失。

實驗結果

本文分別在Classification和Segmentation的OSUDA任務上進行了實驗。

OSUDA Classification實驗

經典的MNIST-USPS-SVHN互相遷移的任務

T-SNE圖展示ASM的效果

OSUDA Segmentation實驗

GTA2Cityscapes和Synthia2Cityscapes兩個任務進行測試

OSUDA語義分割任務的可視化結果。

圖5 OSUDA語義分割可視化結果

不同採樣策略的結果比較

比較了不同採樣類型的風格生成結果。Anchor Sampling是完全在one-shot樣本附近的採樣策略(無對抗搜索過程),容易造成過擬合;而Random Sampling會生成對M無益的隨機風格。ASM方法生成的樣本既保證了風格符合潛在的目標域風格分布,又保證了對任務模型的有效泛化能力。

可視化不同採樣策略生成結果

圖6 不同採樣策略的風格遷移結果

結論

在分類和分割任務上的實驗結果表明了 ASM 針對 OSUDA 問題有效性。與其他領域自適應方法相比,ASM 在目標域樣本稀缺的情境下具有最優的性能。

OSUDA是一種非常現實卻極具挑戰性的問題環境,目前相關研究較少,特別是在語義分割任務上還有較大提升空間

相關焦點

  • 科普知識系列之四:管中窺豹(光學奇觀)
    管中窺豹產品介紹管中窺豹由由背光燈、下偏光片、液晶、上偏光片4部分組成,背光燈發出光線,光線經過下偏光片、液晶和上偏光片後呈現畫面。管中窺豹將上偏光片做成了「窺視鏡」,屏幕內只保留了背光燈、下偏光片和液晶3個部分。
  • JavaScript實現排序算法
    一、大O表示法大O表示法:在計算機中採用粗略的度量來描述計算機算法的效率,這種方法被稱為「大O」表示法在數據項個數發生改變時,算法的效率也會跟著改變。所以說算法A比算法B快兩倍,這樣的比較是沒有意義的。因此我們通常使用算法的速度隨著數據量的變化會如何變化的方式來表示算法的效率,大O表示法就是方式之一。
  • 用FPGA實現FFT算法
    當N較大時,因計算量太大,直接用DFT算法進行譜分析和信號的實時處理是不切實際的。快速傅立葉變換(Fast Fourier Transformation,簡稱FFT)使DFT運算效率提高1~2個數量級。其原因是當N較大時,對DFT進行了基4和基2分解運算。FFT算法除了必需的數據存儲器ram和旋轉因子rom外,仍需較複雜的運算和控制電路單元,即使現在,實現長點數的FFT仍然是很困難。
  • Python零基礎入門—算法的實現與偽代碼
    在前面一節課,我們了解了什麼是算法,知道了在一個算法中,要有輸入、計算過程、還要有輸出。這節課我們來討論算法的實現。這節課的內容與前面課程的課後練習有關。在課後練習中要求同學們寫出計算長方形面積算法的步驟,步驟要包含輸入、計算過程和輸出。老師在這裡寫出計算長方形面積算法的步驟,同學們可以和自己寫的算法步驟比較一下,看看哪個寫的更詳細和完善一些?
  • 用FPGA實現FFT算法(圖)
    當n較大時,因計算量太大,直接用dft算法進行譜分析和信號的實時處理是不切實際的。快速傅立葉變換(fast fourier transformation,簡稱fft)使dft運算效率提高1~2個數量級。其原因是當n較大時,對dft進行了基4和基2分解運算。fft算法除了必需的數據存儲器ram和旋轉因子rom外,仍需較複雜的運算和控制電路單元,即使現在,實現長點數的fft仍然是很困難。
  • KNN分類算法的python實現
    前言 K最近鄰(k-Nearest Neighbor,KNN)分類算法,是一個理論上比較成熟的方法,也是最簡單的機器學習算法之一。該方法的思路是:在特徵空間中,如果一個樣本附近的k個最近(即特徵空間中最鄰近)樣本的大多數屬於某一個類別,則該樣本也屬於這個類別。。
  • 用Python實現隨機森林算法
    除了仍然根據從訓練數據樣本建立複合模型之外,隨機森林對用做構建樹(tree)的數據特徵做了一定限制,使得生成的決策樹之間沒有關聯,從而提升算法效果。本文章旨在探討如何用 Python 實現隨機森林算法。
  • 基於AES算法實現對數據的加密
    對稱密碼體制是較傳統的加密體制,主要用於保證數據的機密性,通信雙方在加密/解密過程中使用其共享的單一密鑰,由於其算法實現簡單和加密速度快等優點,目前仍然是主流密碼體制之一。對稱密碼體制分為序列密碼和分組密碼兩類,序列密碼以密鑰控制密鑰發生器,產生一個隨機序列,用這個隨機序列和明文信息逐位進行異或運算,就得到密文,其加密單元為比特。
  • 利用FFT IP Core實現FFT算法
    結合工程實踐,介紹了一種利用FFT IP Core實現FFT的方法,設計能同時對兩路實數序列進行256點FFT運算,並對轉換結果進行求模平方運算,且對數據具有連續處理的能力。
  • 利用彙編語言實現DES加密算法
    DES算法是一種數據加密算法。自從1977年公布以來,一直是國際上的商用保密通信和計算機通信的最常用的加密標準。DES算法的實現一般用高級語言。
  • 潘建偉等在國際上首次實現量子分解算法
    日前,中國科技大學教授潘建偉和他的同事楊濤、陸朝陽等,與英國牛津大學的研究人員合作,在國際上首次利用光量子計算機實現了Shor量子分解算法,研究成果發表在近日出版的美國權威物理學期刊《物理評論快報》上,標誌著我國光學量子計算研究達到了國際領先水平。
  • 潘建偉小組首次實現量子分解算法
    記者日前從中國科技大學了解到,該校潘建偉教授及其同事楊濤、陸朝陽等,在國際上首次利用光量子計算機實現了休爾量子分解算法,研究成果發表在12月21日出版的美國權威物理學期刊《物理評論快報》(PRL)上,標誌著我國光學量子計算研究達到了國際領先水平。
  • 中國科大全球首次實現量子分解算法
    日前,中國科大潘建偉教授領導的研究小組,在國際上首次實現了Shor量子分解算法,其研究成果發表在12月19日出版的美國權威物理學期刊《物理評論快報》上,這標誌著我國光學量子計算研究達到了國際領先水平。  量子分解算法是迄今量子計算領域最著名的算法。
  • 基於MSP430系列微控制器的FFT算法實現
    TI公司的MSP430系統微控制器具有功耗低、供電範圍寬及外圍模塊齊全等特點,適合實現各種監測設備。離散時間採樣的快速傅立葉變換FFT(fast Fouriertrans form)算法是目前最主要的諧波檢測和分析方法。FFT算法的實現可以採用專用晶片37—40、DSP晶片6—1141—44、FPGA晶片193— 207以及微控制器等。隨著集成電路製造技術和數字計算機技術的進步,微控制器晶片的功能和所能提供的邏輯資源越來越多。
  • 如何實現算法中的公平性
    Sachs,美國經濟學家有監督機器學習算法在本質上是判別性的。這種判別性的根源,在於算法是根據嵌入在數據中的特徵信息進行實例分類的。的確,現實中此類算法就是設計用於分類的。判別性同樣體現在算法的命名上。有別於根據特定類別生成數據的「生成算法」,此類對數據分門別類的算法通常稱為「判別算法」。
  • 遺傳算法的基本概念和實現(附 Java 實現案例)
    基因遺傳算法是一種靈感源於達爾文自然進化理論的啟發式搜索算法。該算法反映了自然選擇的過程,即最適者被選定繁殖,並產生下一代。本文簡要地介紹了遺傳算法的基本概念和實現,希望能為讀者展示啟發式搜索的魅力。   如上圖(左)所示,遺傳算法當個體由多條染色體組成,每條染色體由多個基因組成。上圖(右)展示了染色體分割和組合方式。
  • 基於FPGA的高速流水線FFT算法實現
    FFT(快速傅立葉變換)算法是作為DFT的快速算法提出,它將長序列的DFT分解為短序列的DFT,大大減少了運算量,使得DFT算法在頻譜分析、濾波器設計等領域得到了廣泛的應用。  FPGA(現場可編程門陣列)是一種具有大規模可編程門陣列的器件,不僅具有專用集成電路(ASIC)快速的特點,更具有很好的系統實現的靈活性。FPGA可通過開發工具實現在線編程。
  • 基於DSP的FFT算法實現
    基於DSP的FFT算法實現1、FFT的原理快速傅氏變換(FFT)是離散傅氏變換的快速算法,它是根據離散傅氏變換的奇、偶、
  • 使用 algorithm2e 宏包實現算法排版
    在導言區中引入宏包:\usepackage{algorithm2e}之後,便可以使用該宏包提供的環境和命令實現算法排版。算法環境algorithm2e宏包提供了3組環境用於實現算法排版:algorithm(algorithm*)環境該環境是算法排版的主要環境,帶星號環境用於在雙欄排版中實現跨欄算法排版。
  • CMOS溫度傳感器校準算法設計與實現
    通過對未校準之前CMOS溫度傳感器隨溫度變化的函數關係構造校準函數是算法的核心。通過分析精度指標、數據運算量及系統資源等因素,採取添加中值濾波和均值濾波處理原始數據的分段擬合校準方法,並在運算量的約束下得出了最優的分段值。