【迁移学习】隐私保护下的迁移算法
作者:李新春
————————
計算機軟件新技術國家重點實驗室
偽文藝程序員
既可提刀立碼,行遍天下
又可調參煉丹,臥于隆中
本文概要
本文介紹一種特殊場景下的遷移算法:隱私保護下的遷移算法。首先,本文稍微回顧一下傳統遷移算法的流程、特性和局限之處,然后文章介紹幾種解決當源域數據有某些訪問限制的場景下實現遷移的算法。具體包括:ADDA-CVPR2017,FADA-ICLR2020,SHOT-ICML2020。
1
傳統遷移算法UDDA
首先說明這里說的傳統遷移算法,主要指深度域適應(Deep Domain Adaptation),更具體的是無監督深度域適應(Unsupervised Deep Domain Adaptation, UDDA)。因為UDDA是最為常見,也是大家廣泛關注的設定,因此這方面的工作遠遠多于其余遷移算法的設定。
先介紹一下UDDA具體是做什么的:給定一個目標域(Target Domain),該域只有無標記數據,因此不能有監督地訓練模型,目標域通常是一個新的局點、場景或者數據集;為了在目標域無標記數據的情況下建立模型,可以借助源域(Source Domain)的知識,源域通常是已有局點、場景或者數據集,知識可以是源域訓練好的模型、源域的原始數據、源域的特征等。
借助有標記信息的源域,目標域上即便沒有標記數據,也可以建立一個模型。使得該模型對目標域數據有效的關鍵難點在于源域和目標域存在數據分布的差異,稱之為域漂移(Domain Shift),如何去對齊源域和目標域的數據是UDDA解決的主要問題。
UDDA通常包含下面的三種框架:
首先,源域和目標域的數據(圓柱)會經過特征提取器(Encoder)提取特征(矩形),然后各種辦法會對源域和目標域的特征進行操作,使得源域和目標域上數據的特征對齊。這里值得一提的是,UDDA通常假設源域和目標域的類別是一樣的,比如源域和目標域都是去分類0-9十個手寫數字,只不過源域和目標域的手寫風格不一樣。
?對源域和目標域特征進行操作的辦法包括三種類別:
1
基于統計對齊:使用各種統計量對齊源域和目標域特征的分布,比如對齊核空間均值(MMD Loss)、對齊協方差矩陣(CORAL Loss)等;
2
基于對抗對齊:建立一個域分類器(Domain Classifier)作為判別器(Discriminator),目的要盡可能將源域和目標域的特征區分開來,使用梯度反轉(Gradient Reversal Gradient,GRL)可以促使特征提取器提取和領域無關(Domain Invariant)的特征;
3
基于重構對齊:將源域和目標域的特征通過同一個生成網絡進行生成相應的數據,通過假設只有分布接近的樣本才可以使用同一個網絡生成數據對齊源域和目標域特征。
“
關于以上幾種UDDA的具體算法可以參加以前的文章:https://zhuanlan.zhihu.com/p/205433863
這里本文只給出UDDA的幾個特性:
1
源域數據可獲得:UDDA假設源域數據存在并且可以獲得;
2
源域目標域數據可混合:UDDA通常假設源域和目標域數據可以在一起處理,即可以放在同一個設備上進行運算;
3
訓練預測過程是Transductive的:目標域數據必須和源域數據一同訓練才可以使得特征提取器提取領域無關的特征,才可以將源域的模型遷移到目標域,因此當一批新的目標域的數據到來的話,并不能直接使用源域模型進行預測。
總的來說,傳統的UDDA方法假設源域數據可獲得、源域目標域數據可混合、訓練過程Transductive。然而,有一些場景下,源域數據不可獲得,或者源域數據不可以外傳,這種情況下如何進行遷移呢?
首先,這里需要注意的是,源域數據不能外傳和源域數據不可獲得是兩種情況,前者假設源域數據存在,但是不可以和目標域數據放在一起,后者是源域數據根本就不存在了。
2
ADDA
ADDA是CVPR2017的一篇工作,來自論文《Adversarial Discriminative Domain Adaptation》,作者信息截圖如下:
一作Eric Tzeng來自于加利福尼亞大學伯克利分校,代表作有DDC和ADDA;二作Judy Hoffman來自斯坦福大學,代表作CyCADA,以及多篇在多領域遷移方面的理論文章,比如NeurIPS 2018的《Algorithms and Theory for Multiple-Source Adaptation》;三作Kate Saenko是波斯頓大學計算機科學計算機視覺組(Computer Vision and Learning Group,CVL)的Leader,是一名女性學者,Baochen Sun,Xingchao Peng,Kuniaki Saito等人都在該組深造或者深造過。
CVL代表作有(個人評定,以下文章個人在學習DA的過程中或多或少閱讀或者研究過):
Xingchao Peng, Zijun Huang, Yizhe Zhu, Kate Saenko: Federated Adversarial Domain Adaptation. ICLR 2020
Xingchao Peng, Yichen Li, Kate Saenko: Domain2Vec: Domain Embedding for Unsupervised Domain Adaptation. ECCV (6) 2020: 756-774
Shuhan Tan, Xingchao Peng, Kate Saenko: Generalized Domain Adaptation with Covariate and Label Shift CO-ALignment. CoRR abs/1910.10320 (2019)
Xingchao Peng, Zijun Huang, Ximeng Sun, Kate Saenko: Domain Agnostic Learning with Disentangled Representations. ICML 2019: 5102-5112
Xingchao Peng, Qinxun Bai, Xide Xia, Zijun Huang, Kate Saenko, Bo Wang: Moment Matching for Multi-Source Domain Adaptation. ICCV 2019: 1406-1415
Kuniaki Saito, Donghyun Kim, Stan Sclaroff, Trevor Darrell, Kate Saenko: Semi-Supervised Domain Adaptation via Minimax Entropy. ICCV 2019: 8049-8057
Kuniaki Saito, Yoshitaka Ushiku, Tatsuya Harada, Kate Saenko: Adversarial Dropout Regularization. ICLR (Poster) 2018
Xingchao Peng, Ben Usman, Neela Kaushik, Dequan Wang, Judy Hoffman, Kate Saenko: VisDA: A Synthetic-to-Real Benchmark for Visual Domain Adaptation. CVPR Workshops 2018: 2021-2026
Eric Tzeng, Judy Hoffman, Kate Saenko, Trevor Darrell: Adversarial Discriminative Domain Adaptation. CVPR 2017: 2962-2971
Baochen Sun, Kate Saenko: Deep CORAL: Correlation Alignment for Deep Domain Adaptation. ECCV Workshops (3) 2016: 443-450
Baochen Sun, Jiashi Feng, Kate Saenko: Return of Frustratingly Easy Domain Adaptation. AAAI 2016: 2058-2065
Eric Tzeng, Judy Hoffman, Trevor Darrell, Kate Saenko: Simultaneous Deep Transfer Across Domains and Tasks. ICCV 2015: 4068-4076
回歸正題,ADDA的訓練流程圖如下:
首先是預訓練階段(Pre-training Stage),源域上利用有標記數據訓練,采用交叉熵損失:
其中??為源域的特征提取器,??為源域的分類器。
然后是對抗對齊階段(Adversarial Adaptation Stage),將源域的特征提取器拷貝給目標域??,并且將分類器??固定住遷移到目標域。然后就是對??根據目標域數據進行微調,當且僅當目標域特征提取器??在目標域提取的特征和源域特征提取器??在源域數據提取的特征相似時,源域的分類器才可以很好地適應目標域,即下面幾個公式的目的主要是使得??。
簡單的方法仍然是使用對抗進行訓練。第一步訓練域判別器(Discriminator)將源域的特征和目標域的特征進行區分開,??代表域判別器:
第二步,訓練??,使得??讓判別器盡可能分不開:
重復以上兩步,直到收斂。
可以看出以上過程中, 源域特征提取器?只在源域預訓練階段使用到,然后拷貝給目標域,目標域微調特征提取器。換句話說,源域訓練好的模型,包括特征提取器和分類器,傳輸到目標域之后,目標域只微調特征提取器,使得特征提取器提取的特征單向向源域的特征對齊,分類時使用的仍然是源域的分類器。
為什么說這個方法可以推廣到隱私保護呢?因為可以看到,源域的數據只在預訓練階段利用到,且后面對齊的過程中只用到了源域的特征??,而不是??,后者需要訪問到源域原始數據。
總的來說,ADDA容許源域和目標域的特征提取器不一致,將??參數解耦開來,并且訓練過程中其實只用到了源域的特征。如果,源域數據和目標域數據不在同一設備上,假設源域數據的特征可以發送出去的話,該方案可以做到隱私保護。
3
FADA
正如上述介紹的CVL組,Xingchao Peng將ADDA擴充到多域版本,并且提出了FADA。FADA來自ICLR2020的《Federated Adversarial Domain Adaptation》,論文首頁截圖如下:
該文提出了一個新的場景FADA,即聯邦學習下的多域遷移。假設有很多個源域,每個源域的數據分布在單獨的設備上,原始數據不能外傳,如何在這種情況下將其模型復用到目標域呢?簡而言之,如何在數據不能被發送出去的約束下進行特征對齊呢?
該文假設各個領域的特征可以被發送出去,和ADDA假設一致。假設有??個源域,每個源域上都訓練了一個特征提取器??和分類器??,首先對于目標域的特征提取器??和分類器??,使用聯邦學習(Federated Learning)里面的加權平均方法:
其中??衡量了每個源域對目標域的貢獻,一般需要滿足??。FADA中提到了一種動態加權(Dynamic Attention)的方式,這里不過多介紹,主要是通過源域當前模型融合到目標域之后對目標域特征區分度的提升幅度作為衡量的標準。簡單的情況下,可以取??。總之,目標域上由于沒有標記,不可能訓練出??,需要通過源域的模型進行加權平均得到。
接下來,FADA使用特征提取器在各個域上提取特征,即??,然后假設這些特征可以傳輸到同一個設備上,就可以在該設備上訓練一個域判別器(Domain Identifier, DI),注意這里的判別器和ADDA中不一樣,因為涉及到多個域,此處的域判別器是多分類器,具體而言是??分類。
訓練域判別器的損失函數如下:
其中??是向量的第??項,即上述目標會訓練域判別器使得第??源域的數據會被預測為第??類別,且目標域樣本被預測為第??類。
訓練好域判別器之后,將??發送到各個源域所在的設備,然后訓練各自的特征提取器??去混淆??:
FADA總的框架圖如下,該框架融合了很多方法,還包括特征解耦(Feature Disentangle)等等,這里不過多介紹。
總的來說,FADA將多個源域和目標域的特征發送到一個指定的設備,在該設備上訓練一個域判別器,然后將域判別器下發到各個源域作為對抗項促使相應的特征提取器提取領域無關的特征。可以說,FADA是ADDA的多領域擴展版本。
4
SHOT
SHOT是比較有意思的一篇工作,名稱是《Do We Really Need to Access the Source Data? Source Hypothesis Transfer for Unsupervised Domain Adaptation》,來自ICML2020,作者信息截圖如下:
如果說ADDA和FADA都是假設源域數據不可以被發送出設備的話,SHOT假設源域數據獲取不到,即源域數據丟失或者不存在。
那么在只有源域模型和目標域眾多無標記數據的情況下,如何遷移呢?SHOT解決了這個問題。首先SHOT指的是Source Hypothesis Transfer,Source Hypothesis指的是源域模型的分類器。SHOT和ADDA有一個一致的地方就是,都固定住了源域模型的分類器,微調源域的特征提取器。ADDA通過對抗損失(假設可以訪問到源域數據的特征)進行微調目標域特征提取器,而SHOT則是通過偽標簽(Pseudo Label)自監督地訓練。
首先,SHOT對源域模型進行有監督地訓練,源域模型可以記為??,其中??分別是源域的特征提取器和分類器,訓練時采用標記平滑(Label Smoothing),促使訓練的模型具有更好的可遷移性、泛化性。
然后,將源域模型拷貝到目標域,??,固定住??,微調??。
SHOT首先采用一個常見的信息最大化(Information Maximization, IM)損失,促使目標域上每個樣本的分類概率的熵盡可能小,所有樣本預測的概率平均值盡可能均勻。假設目標域樣本??預測的結果為??,其中??是一個Softmax的函數。那么記??為目標域樣本預測概率的平均值(可以計算一個Batch的樣本預測概率的平均值)。那么IM損失為:
這一項損失并不能完全讓目標域的特征提取器完全訓練得當,因此需要使用下面的偽標簽技術進行訓練。
偽標簽技術很直觀,就是利用當下的模型對無標記樣本打標簽,然后取預測結果置信度最高的部分樣本來打標簽,然后用這些偽標簽的數據來繼續訓練這個模型。
比如,對于目標域樣本??,根據模型預測概率的最大值??進行排序,選擇最大的一部分對其打標簽為??。直接使用偽標簽訓練很容易帶來誤差累計問題,因此需要盡可能使得偽標簽打得準確,可以使用一個標簽精煉(Label Refinery)的過程。具體而言包括:
其中??是第??類樣本的類中心,??是距離函數。以上幾個公式可以看作是幾步K-Means操作,第一個公式根據模型輸出的概率值和每個樣本的特征向量進行Soft加權得到類別中心,第二個公式根據每個樣本和各個類中心的距離打標簽,第三個公式是Hard加權更新類中心,第四個公式是根據距離打標簽。該迭代可以重復很多次,但是一般來說使用這兩步迭代之后的偽標簽就會比較準確了。
以上就是標簽精煉的過程,主要是指使用目標域樣本的關系(聚簇結果)來對偽標簽進行進一步調整,而不僅僅是利用模型的預測結果。
打了偽標簽之后,模型可以根據交叉熵損失進行訓練,綜合IM損失,可以將模型性能提升至很高。
5
總? 結
總結一下,傳統UDDA以及本文主要介紹的ADDA、FADA和SHOT可以使用下圖來區分:
參考文獻
Eric Tzeng, Judy Hoffman, Kate Saenko, Trevor Darrell: Adversarial Discriminative Domain Adaptation. CVPR 2017: 2962-2971
Xingchao Peng, Zijun Huang, Yizhe Zhu, Kate Saenko: Federated Adversarial Domain Adaptation. ICLR 2020
Jian Liang, Dapeng Hu, Jiashi Feng: Do We Really Need to Access the Source Data? Source Hypothesis Transfer for Unsupervised Domain Adaptation. CoRR abs/2002.08546 (2020)
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯 獲取本站知識星球優惠券,復制鏈接直接打開: https://t.zsxq.com/qFiUFMV 本站qq群704220115。加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【迁移学习】隐私保护下的迁移算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【算法基础】数据结构导论第二章-线性表.
- 下一篇: 【Python基础】关于Python的前