論文資訊
- 論文标題:Domain Adaptation for Semantic Segmentation with Maximum Squares Loss
- 論文作者:Minghao Chen, Hongyang Xue, Deng Cai
- 研究機構:浙江大學;阿裡巴巴—浙江大學前沿技術聯合研究中心
- 論文出處:ICCV 2019
- 引用資訊:
@inproceedings{DBLP:conf/iccv/0001XC19, author = {Minghao Chen and Hongyang Xue and Deng Cai}, title = {Domain Adaptation for Semantic Segmentation With Maximum Squares Loss}, booktitle = {2019 {IEEE/CVF} International Conference on Computer Vision, {ICCV} 2019, Seoul, Korea (South), October 27 - November 2, 2019}, pages = {2090--2099}, publisher = {{IEEE}}, year = {2019}, url = {https://doi.org/10.1109/ICCV.2019.00218}, doi = {10.1109/ICCV.2019.00218}, timestamp = {Thu, 05 Mar 2020 13:43:22 +0100}, biburl = {https://dblp.org/rec/conf/iccv/0001XC19.bib}, bibsource = {dblp computer science bibliography, https://dblp.org} }
- 代碼連結:https://github.com/ZJULearning/MaxSquareLoss
論文主要貢獻和參考價值
- 主要貢獻:
- (1)發現 UDA 的熵最小化方法中存在的機率分布不均衡問題,通過分析熵的梯度,進而提出最大平方損失,以線性增長的梯度平衡高置信類别中的梯度;
- (2)解決無标簽資料中的類别不平衡問題,引入圖像級權重因子,比起傳統的類别權重因子,更适合 UDA 任務;
- (3)方法在多種 UDA 設定中獲得 SOTA 性能,方法不需要額外的結構或者判别器,不想自訓練方法,本文不需要額外的計算僞标簽的過程
- 參考價值:
- 域适應的損失函數設計
論文要點翻譯
- 摘要
- 語義分割中的 DNN 通常需要大量的像素級标注的資料,但是現實世界這個資料要求通常難以滿足,為了解決标注資料的需求,無監督域适應算法用于将從合成标注資料中學習到的知識遷移到新的真實資料場景中
- 最近的一些半監督學習算法被用于 UDA 領域,已經達到了 SOTA 性能,其中最流行的半監督學習方法就是熵最小化的方法,但是把熵最小化算法用于語義分割的 UDA 中,容易遷移的樣本的熵的梯度可能受較大傾向
- 為了平衡目标樣本分類的梯度,本文提出最大平方損失,最大平均損失使得訓練過程避免被容易遷移的目标域資料主導影響,此外,本文引入圖像級的權重比例避免無标簽資料域的類别不平衡問題
- 合成到真實以及不同城市之間的資料域的域适應實驗說明了提出方法的有效性
- 引言
- 過去數十年,DNN 已經在語義分割任務中取得巨大成功,研究者們已經在現有資料集上極大提高了語義分割的性能,但是真實的資料中像素級的語義标簽擷取需要大量的手工标注工作,對于 CityScape 資料集,需要花費 90 分鐘才能精确标注一張資料,因為标注資料的困難,真實資料集通常隻包含較小數量的樣本,使得模型難以泛化到真實場景,其中一個可能的解決方案就是使用合成場景資料集,合成資料需要的标注時間少,标注資料的品質高,但是合成圖像上訓練的模型難以泛化到真實世界資料,主要是合成資料與真實資料之間的域偏差導緻的
- 無監督域适應就是用于解決上述的遷移問題,在 UDA 中,标注的合成資料是源域,無标注的真實資料是目标域資料。UDA 的整體思想在于利用無标簽的目标域圖像幫助減少兩個域之間的差異
- 最近,受到半監督學習的啟發,基于 UDA 的半監督方法被引入用于對齊不同域之間的特征分布,這些半監督學習方法在分類任務和語義分割任務中都取得了不錯的性能,熵最小化是其中的鼓勵非歧義聚類類簇指派的方法,也是其中的最受歡迎的半監督學習方法,ADVENT 使用熵最小化算法用于語義分割中的 UDA,但是其結果和現有的 SOTA 算法仍有一定的性能水準
- 通過分析熵最小化算法的梯度,本文發現對于目标樣本中的更大的梯度來說往往會有更高的預測,如果在自監督過程中利用這個假設,則預測高機率的樣本通常是更精确的,而預測精度較高的區域則通常比低精度的樣本訓練更充足,是以,上最小化方法使得樣本中容易遷移的樣本受到更多的關注,使得難以遷移的樣本訓練不足,這個問題可以用術語機率分布不平衡描述。更容易遷移的類别通常有較高的預測機率。導緻梯度比難以遷移的樣本大,一個簡單的解決政策就是将預測機率 P 用 P s c a l e d = ( 1 − 2 γ ) P + γ P_{scaled}=(1-2\gamma)P+\gamma Pscaled=(1−2γ)P+γ 替換,其中的 γ \gamma γ 是尺度比例,最大梯度可以據此進行調節,但是,這個方法引入了超參數,這是訓練比較難以設定的
- 本文中提出新的損失,即最大平方損失,解決機率分布不均衡的問題, 由于最大平方損失梯度是線性增長的,是以,可以組織高置信區域産生過度的梯度,同時,本文也說明了,優化本文 的損失函數等價于優化皮爾遜卡方散度,最大化散度可以實作源域和目标域的類别級的分布對齊
- 此外,本文注意到無标簽資料域中還存在類别不平衡問題,由于目标資料域不存在标注,本文提出圖像及的權重因子,主要基于圖像中不同類别的百分比,另外,本文利用多級别的輸出提高網絡性能,利用弱監督學習的思想生成自産生的指導用于訓練低級特征
- 主要貢獻:(1)發現 UDA 的熵最小化方法中存在的機率分布不均衡問題,通過分析熵的梯度,進而提出最大平方損失,以線性增長的梯度平衡高置信類别中的梯度;(2)解決無标簽資料中的類别不平衡問題,引入圖像級權重因子,比起傳統的類别權重因子,更适合 UDA 任務;(3)方法在多種 UDA 設定中獲得 SOTA 性能,方法不需要額外的結構或者判别器,不想自訓練方法,本文不需要額外的計算僞标簽的過程
- 相關工作
- 語義分割:DNN 典型網絡、合成資料方法
- UDA:MMD
- 用于語義分割的 UDA:CyCADA、CycleGAN
- 自監督方法
- 方法
- UDA 概覽
- 源域資料 D S = { ( x s , y s } \mathcal D_S=\{(x_s,y_s\} DS={(xs,ys} 和目标域資料 D T = { x t } \mathcal D_T=\{x_t\} DT={xt} 通常的語義分割 UDA 中的目标函數為 L ( x s , x t ) = L C E ( p s , y s ) + λ T L T ( x t ) \mathcal L(x_s,x_t)=\mathcal L_{CE}(p_s,y_s)+\lambda_T\mathcal L_T(x_t) L(xs,xt)=LCE(ps,ys)+λTLT(xt),其中 L C E ( p s , y s ) = − 1 N ∑ n = 1 N ∑ c = 1 C y s n , c log p s n , c \mathcal L_{CE}(p_s,y_s)=-\frac 1N \sum_{n=1}^N\sum_{c=1}^Cy_s^{n,c}\log p_s^{n,c} LCE(ps,ys)=−N1∑n=1N∑c=1Cysn,clogpsn,c, p s n , c p_s^{n,c} psn,c 表示樣本 x s x_s xs 的 n 點被預測為類 c 的機率
- 熵最小化:最小化熵算法, L T ( x t ) = ∑ n = 1 N ∑ c = 1 C p t n , c log p t n , c \mathcal L_T(x_t)=\sum_{n=1}^N\sum_{c=1}^Cp_t^{n,c}\log p_t^{n,c} LT(xt)=∑n=1N∑c=1Cptn,clogptn,c 為了簡單化,不妨考慮二分類問題,此時可以将熵和梯度重寫為 H ( p ∣ x t ) = − p log p − ( 1 − p ) log ( 1 − p ) H(p|x_t)=-p\log p -(1-p)\log (1-p) H(p∣xt)=−plogp−(1−p)log(1−p) , d H d p = ∣ log p − log ( 1 − p ) ∣ \frac {dH}{dp}=|\log p-\log(1-p)| dpdH=∣logp−log(1−p)∣ 則将梯度繪制出來之後可以觀察到高機率的點比均值點大得多,是以,熵最小化之後的關鍵原理在于目标域樣本的訓練是高機率區域指導的,這些區域理論上也應當是更加精确的
- 最大平方損失
- 機率不均衡問題:不同類之間的機率分布變化很多,高精度的類别通常也有較高的預測機率,但是,高機率點的梯度增長近似為 ∣ log p ∣ ( p → 0 ) |\log p|(p \to 0) ∣logp∣(p→0) 可能趨近于無窮大,是以導緻簡單的類别可能産生比困難類别大許多的梯度值,為了解決這個問題,定義最大平方損失 L T ( x t ) = − 1 2 N ∑ n = 1 N ∑ c = 1 C ( p t n , c ) 2 \mathcal L_T(x_t)=-\frac{1}{2N} \sum_{n=1}^N\sum_{c=1}^C(p_t^{n,c})^2 LT(xt)=−2N1∑n=1N∑c=1C(ptn,c)2
- 最大平方損失的好處:對于二分類問題,最大平方損失和梯度函數可以寫為 M S ( p ∣ x t ) = − p 2 − ( 1 − p ) 2 MS(p|x_t)=-p^2-(1-p)^2 MS(p∣xt)=−p2−(1−p)2, ∣ d M S d p ∣ = ∣ 4 p − 2 ∣ |\frac{d MS}{dp}|=|4p-2| ∣dpdMS∣=∣4p−2∣ 是以,最大平方損失的梯度是線性增長的,比起熵最小化方法來說梯度更為均衡
- f-散度 視角:目标部分損失 L T ( x t ) \mathcal L_T(x_t) LT(xt) 可以看作是模型預測分布 p n , c p^{n,c} pn,c 和一緻分布 U = 1 C \mathcal U=\frac1C U=C1 之間的距離,最小化這個距離可以減少目标樣本的歧義,幫助類别之間可分性增強。機率論中使用 f 散度衡量不同分布之間的差異 D f ( p ∥ q ) = ∑ c q ( c ) f ( p ( c ) q ( c ) ) D_f(p\|q)=\sum_c q(c)f(\frac{p(c)}{q(c)}) Df(p∥q)=∑cq(c)f(q(c)p(c)) ,考慮皮爾遜卡方散度 f ( t ) = t 2 − 1 f(t)=t^2-1 f(t)=t2−1 則, D X 2 ( p n , c ∥ U ) = C ∑ c ( p n , c ) 2 − 1 D_{\mathcal X^2}(p^{n,c}\|\mathcal U)=C\sum_c(p^{n,c})^2-1 DX2(pn,c∥U)=C∑c(pn,c)2−1
- 圖像級的權重因子
- 高精度的類别通常是标簽圖中的更多像素,導緻預測品質的不均衡,正常方法在于将不同類别的數量進行平衡,主要使用權重因子 α c \alpha_c αc 通常設定為類别機率的倒數,但是在 UDA 任務中沒有類别标簽用于計算分類的頻率,同時将目标類别的統計資訊替換不能保證在目标域和源域有相同的類别頻率
- 不适用整個資料域的頻率,計算每個目标圖像,如果 c ∗ = a r g m a x c p n , c c^*=argmax_c p^{n,c} c∗=argmaxcpn,c , m m , c ∗ = 1 m^{m,c^*}=1 mm,c∗=1 ,否則 為 0,将和除以 N 得到目标圖像的平均損失,基于類别數量 N c N^c Nc 計算平均損失,由于預測不精确,在兩者之間的插值更為穩定,是以 L T ( x t ) = − ∑ n = 1 N ∑ c = 1 C 1 2 ( N c ) α × N 1 − α ( p t n , c ) 2 \mathcal L_T(x_t)=- \sum_{n=1}^N\sum_{c=1}^C\frac{1}{2(N^c)^\alpha\times N^{1-\alpha}}(p_t^{n,c})^2 LT(xt)=−∑n=1N∑c=1C2(Nc)α×N1−α1(ptn,c)2
- 多級别的自産的 UDA 指導
- 提取 ResNet 中的 conv4 層的特征,加上 ASPP 子產品作為低級輸出,将目标函數拓展為 L T ( x t ) = L T f i n a l ( x t ) + λ l o w L T l o w ( x t ) \mathcal L_T(x_t)=\mathcal L_T^{final}(x_t)+\lambda_{low}\mathcal L_T^{low}(x_t) LT(xt)=LTfinal(xt)+λlowLTlow(xt)
- 是以,采用弱監督學習中的自産生的指導學習,首先将輸出 P e n s P_{ens} Pens 進行內建,在不同級别的輸出做平均,得到 P f i n a l , P l o w P_{final},P_{low} Pfinal,Plow 之後進行內建,之後可以得到自産生的指導 當 c ∗ = a r g m a x c p e n s n , c , p f i n a l n , c ∗ > δ c^*= \mathtt{argmax}_c p_{ens}^{n,c}, p_{final}^{n,c^*}>\delta c∗=argmaxcpensn,c,pfinaln,c∗>δ 或者 p l o w n , c ∗ > δ p_{low}^{n,c^*}>\delta plown,c∗>δ,則 y t ‾ n , c ∗ = 1 \overline{y_t}^{n,c^*}=1 ytn,c∗=1 否則為 0, δ \delta δ 設定不影響實驗結果,0.95 是本文的設定值
- 是以,最終的指導 L T l o w ( x t ) = L C E ( p l o w , y t ‾ n , c ∗ ) \mathcal L_T^{low}(x_t)=\mathcal L_{CE}(p_{low},\overline{y_t}^{n,c^*}) LTlow(xt)=LCE(plow,ytn,c∗)
- UDA 概覽