MCD算法及代碼理解:《Maximum Classifier Discrepancy for Unsupervised Domain Adaptation》

MCD算法及代碼理解

這次的內容迴歸到了我目前的研究領域 – 遷移學習,更細的範圍是領域自適應,遷移學習中最簡單、最基礎的一種問題設置場景。本文是發表在CVPR 2018上的一篇論文,這篇論文從一個基礎理論出發,去理解域適應這個問題,並在理解、分析理論的基礎上設計了本文中的MCD算法,可以說算法思想有很好的insight,設計的算法也很合理,個人理解也可以用作遷移學習中的一個基礎框架。

1.背景知識

機器學習或是深度學習在最近的十幾年取得了非常大的成功,其應用領域包括音頻、圖像、視頻、文本等各個方面,其成功的背後依靠大量的有標註數據。而在許多現實場景中,由於獲取成本較高或條件受限,有標註的數據很難獲得,更多的情況下,我們只能夠獲得少量的有標註數據甚至無有標註數據。因此,如何在具有少量有標註數據甚至在無有標註數據的情況下訓練一個好的學習模型就成爲一個有待探索的問題。解決上述問題的方式有很多學習範式,包括半監督學習,無監督學習,主動學習等。本文是通過遷移學習的方式來解決這個問題,其基本思想是將需要建立學習模型的領域叫做目標域,我們先找到一個和目標域相似但不同的領域,被稱爲源域,源域中含有大量的有標註數據,我們希望能夠從源領域中學習到兩個領域的共享知識並將其遷移到目標領域中,從而提高目標域的學習效果。這一過程也與人類學習知識的過程相似,形象來說就是能夠達到舉一反三的能力。

現有的域適用方法可以分爲基於統計指標優化及基於對抗學習兩種方式,從2014年對抗生成網絡(GAN)興起之後,這一方法也逐漸被人用於解決遷移學習問題,最早的基於對抗網絡的算法結構如圖1所示:本網絡中包括一個生成器G,一個分類器F,一個判別器D,判別器用於將兩個領域的數據進行判別(源域數據標記爲1,目標域數據標記爲0),特徵提取器用於提取領域無關的特徵從而迷惑判別器,分類器用於將源域數據進行分類,其損失函數爲:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

2.算法思想

針對於最初的基於對抗網絡的算法,提出了各種的改進算法,本算法是通過對2010年的一個遷移學習理論出發,去發展出了新的算法。

首先,2010年有一篇經典的遷移學習理論文章,其給出了目標域上的泛化誤差與兩個域及特定分類器之間的關係,結果如下:從上述理論我們可以得出,目標域上的泛化出於由源域上的泛化誤差及兩個領域之間的差異進行界定,其中領域差異通過指標dHδHd_{H\delta H}距離進行測量,這也從理論上給出後續我們設計算法的思路,即尋找一個分類器h,使得其在源域上的誤差及兩個領域之間的差異最小。
在這裏插入圖片描述
針對於dHδHd_{H \delta H}距離,其具體的計算表達式爲:
在這裏插入圖片描述
假定我們現在已經找到一個學習器使得其在源域上的誤差很小,上式中的RS(h)R_S(h)可以省略,以及上式中的λ\lambda項由於比較小也可以被省略,此時我們對於一個學習器,需要的目標爲min dHδHd_{H \delta H}, 由於一個分類器h由特徵提取器G和分類器F構成,所以上述目標可以表達爲最小化一個上界:
在這裏插入圖片描述

由於這時我們的優化目標是要最小化一個上界,因此這就隱含着一個最小最大化問題,我們將這個問題表述爲:
在這裏插入圖片描述
由於存在一個最小最大的優化過程,我們可以採用對抗生成網絡的思想來設計算法,設計一個特徵提取器G,兩個分類器F1F_1F2F_2, 在最大化階段,我們最大化兩個分類器之間的差異,使得當前的差異值逼近上述表達式的上界,也就是使其更加準確地近似dHδHd_{H \delta H}, 在最小化階段,我們最小化兩個分類器之間的差異,也就是上面逼近出來的上界,最終經過多輪迭代,使得兩個領域間的差異變小

3.算法流程

該算法對應的模型結構如下圖所示:
在這裏插入圖片描述
訓練過程分爲兩個階段:
第一階段:
固定G,更新F1F_1,F2F_2:在此階段的損失函數爲:
在這裏插入圖片描述
第二階段:
固定F1F_1F2F_2,更新G,在此階段的損失函數爲:
在這裏插入圖片描述
注:上述的測量兩個預測值的距離爲L1L_1 distance,上述過程並沒有真正的寫成最大,最小兩個過程,而是兩個最小過程,使得訓練過程可以直接靠神經網絡來完成 。

4.代碼理解

TBD

5.實驗結果

在這裏插入圖片描述

6.思考

本算法是一個比較好的範例,其是從理論的角度進行出發,從而得出了比較好的insight,並且根據這個過程設計出了新的算法,本文呢在寫作的時候,是從決策邊界的角度進行解釋和引入算法,之後在進行理論insight的理解,我認爲這種寫法正好將一般的過程反過來了,不是很認可這個做法,但這個方法本身還是有很好的性質,也可以從多視角的角度進行理解,可以用作之後許多算法的框架。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章