文章目录
如图所示:
- 训练阶段,有标注的源域图片,未标注的辅助域图片,以及相关元数据(生产年份,拍摄角度).
源域(2014,侧前方)、辅助域([2009-2014],[侧后/前/侧/后/侧前]); - 测试阶段,给定未知目标域的元数据(2014, 后方),我们可以预测出目标模型的参数。
- 该预测模型可以进一步改进,同时接收不断到来的目标域数据。
注意:参考4.1,这里的一个域可以是“生产年份是2014年、拍摄角度是侧前方的4种车的图片”。每个域都包含4类车的图片,不同在于元数据,也就是生产年份和拍摄角度。
自适应图:统一PDA和CDA
定义 | 源域 | 目标域 | 辅助域 |
---|---|---|---|
domain adaptation | 标注数据 | 无标注数据 | - |
predictive domain adaptation | 标注数据 | - | 无标注数据 |
continuous domain adaptation | 标注数据 | 无标注数据 (流式) | - |
我们可以把predictive domain adaptation, PDA和continuous domain adaptation, CDA分别理解成零样本和增量场景下的域适应问题。
请描述一下source, target和 auxiliary的关系?
答:s和t属于一个标签空间,但t不必属于s。a是没有标注的源域。
元数据在训练阶段以及测试阶段如何使用?
答:元数据是作为源域和目标域的先验知识来使用的。构建图时,用元数据计算边的权重。
摘要
论文定义了域适应的一种场景,预测域适应 PDA。该场景下,源域有标注数据和元数据,辅助域有未标注数据和元数据,目标域有元数据。系统需要从源域和辅助域泛化到目标域。。
问题来了?
什么是辅助域?在PDA中有多个源域,有标注数据的是源域,只有未标注数据的是辅助域。
样本的元数据是什么?答:能表示域特定信息,如图片时间戳、相机姿势等。在数据集Comprehensive Cars中,指的是拍摄角度和车的生产年份。
从图1来看。通过源域、辅助域的元数据可以构建一个图。这些图代表了一些先验信息,使得在测试阶段给定目标域的元数据,可以构建模型,并对目标域有很好的预测。
总体流程包含训练和测试两个阶段:
- 训练阶段:源域有标注样本及其元数据,辅助域有未标注样本及其元数据。
- 测试阶段:目标域有元数据,在“增量情况下”目标域有未标注数据,没有元数据。
1. Introduction 引言
域适应的本质问题是什么?
域适应要解决的是源域和目标域分布不匹配的问题。分布差异源自光照变化、视角变化等变化导致的在视觉数据(图像、视频)中的外观变化。视觉数据中的外观变化产生了域漂移问题,也就是说模型的判别准则是和视觉变化是有莫大关系。域适应的目标就是要克服这些视觉变化,提取域不变的特征,让模型能够更好的识别目标域的样本。其实,抽象一点来说,就是需要模型能够提取更高层的语义信息、减少对底层信息的依赖,适应不同视觉变化下的目标。也就是学习所谓的,域不变表示,domain invariant representation。
PDA的动机是什么?
域适应解决的是源域和目标域分布不匹配的问题,目的是为目标域训练一个精准的预测模型。在无监督域适应中,目标域只有无标注的数据。但是,在实际当中,并不是所有的目标域都能收集到无标注数据。所以,为了更实际的情况,我们旨在得到能够泛化到新的之前没有见过的目标域。
DA -> unsupervised DA -> predictive DA (PDA)
predictIve DA类似于ZSL。两者的情况都是目标域没有任何图像数据。
- ZSL中有GZSL,那么PDA是否对源域样本也进行测试?
- 辅助域的图是如何构建的?
答:图是建立在源域、辅助域的元数据和样本上,这些图描述了域之间的依赖关系。其中,节点表示一个域;边表示域之间的关系。
2. Related Work 相关工作
1. 无监督深度域适应
无
监
督
深
度
域
适
应
{
对
齐
策
略
:
学
习
域
不
变
表
示
对齐网络
对
抗
策
略
:
学
习
域
不
知
表
示
GAN-based
{
生
成
像
目
标
域
的
源
域
样
本
生
成
像
源
域
的
目
标
域
样
本
无监督深度域适应 \begin{cases} 对齐策略:学习域不变表示& \text{对齐网络}\\ 对抗策略:学习域不知表示& \text{ GAN-based$ \begin{cases} 生成像目标域的源域样本\\ 生成像源域的目标域样本 \end{cases}$} \end{cases}
无监督深度域适应⎩⎪⎨⎪⎧对齐策略:学习域不变表示对抗策略:学习域不知表示对齐网络 GAN-based{生成像目标域的源域样本生成像源域的目标域样本
许多方法使用多个源域来解决DA问题,即multi-source DA。本文的方法,也使用了多源,但是只有一个源有标注数据。
2. 无目标域数据的域适应
对于没有目标域数据的域适应,一般有两种策略,一种是利用不断到来的目标域数据,一种是利用描述可能的未来的目标域的辅助信息。
第一种,也就是continuous or online DA,即在线DA。
第二种,PDA。
其他相近概念,zero-shot domain adaptation, domain generalization。不同的是,在zero-shot DA中,会用到域无关的双域配对数据;在domain generalization中会用到多个源域的数据,但是辅助域数据是有标注的,而在PDA中辅助集数据是没有标注的。
3. Method 方法
3.1 Problem Formulation 问题定义
目标域为 T \mathcal{T} T,元数据 m t m_t mt;已知域为 K \mathcal{K} K,元数据 m k m_k mk。 T \mathcal{T} T和 K \mathcal{K} K来自同一个标签集合 Y \mathcal{Y} Y,但是 T \mathcal{T} T不需要属于 K \mathcal{K} K。【在标准的DA中 T ∈ K \mathcal{T} \in \mathcal{K} T∈K】。 K \mathcal{K} K可以分成一个标注源域和多个未标注辅助域,即 S S S和 N N N。
pipeline:
- 用给定的已知域元数据,关联 K \mathcal{K} K 中的每个域;
- 从可用数据中,构建 K \mathcal{K} K 中每个域特定的模型;
- 利用目标域和 K \mathcal{K} K 中的域之间的连接,从各自的元数据中推断得到的,来回归 T \mathcal{T} T 的模型。
3.2 AdaGraph: Graph-based Predictive DA
为了给每个域提取一个模型,本文利用了DA领域最新的技术,使用域特定的
D
A
B
N
DA_{BN}
DABN层[20, 4]。源域有了模型和图之后,预测没有样本的新域的模型只需两步:
(i) 在图中实例化一个节点
(ii) 利用图连接,从附近的点传播参数。
附近的点,选几个?
答:所有或者阈值筛选。
Connecting domains through a graph
元素定义:
域空间
D
\mathcal{D}
D,
元数据空间
M
\mathcal{M}
M,
模型参数空间
Θ
\Theta
Θ。
在PDA场景下,已知域集合, K = { k 1 , ⋯ , k n } ⊂ D \mathcal{K} = \{k_1, \cdots, k_n\} \subset \mathcal{D} K={k1,⋯,kn}⊂D,
关系定义:
-
双射: ϕ : D ↦ M \color{blue} \phi: \mathcal{D} \mapsto \mathcal{M} ϕ:D↦M,关联域和元数据。
-
边的权重 ω : E → R \color{blue} \mathcal{\omega: E} \rightarrow \mathbb{R} ω:E→R
ω ( v 1 , v 2 ) = e − d ( ϕ ( v 1 ) , ϕ ( v 2 ) ) , (1) \omega(v_1, v_2) = e^{-d(\phi(v_1), \phi(v_2))}, \tag{1} ω(v1,v2)=e−d(ϕ(v1),ϕ(v2)),(1) 其中, d : M 2 → R \mathcal{d: M^2 \rightarrow} \mathbb{R} d:M2→R是M上定义的一个距离函数。 -
双射: ψ : K ↦ Θ \color{blue} \psi: \mathcal{K} \mapsto \mathcal{\Theta} ψ:K↦Θ,关联域和域特定参数。
由以上关系可以得到:
- 给定一个目标域的元数据 m m m,那么对应的域,不存在于 K \mathcal{K} K中,即 ϕ − 1 ( m ) ∉ K \phi^{-1}(m) \notin \mathcal{K} ϕ−1(m)∈/K。
- 给定一个源域的元数据 m ∈ M m \in \mathcal{M} m∈M,我们可以通过映射 ψ ∘ ϕ − 1 ( m ) \psi \circ \phi^{-1}(m) ψ∘ϕ−1(m) 恢复出一组参数,前提是 ϕ − 1 ( m ) ∈ K \phi^{-1}(m) \in \mathcal{K} ϕ−1(m)∈K。
为了处理未知的元数据,我们引入了“虚拟节点”的概念。虚拟节点 v ~ ∈ V \tilde v \in \mathcal{V} v~∈V,相关的元数据是 m ~ \tilde{m} m~,即 m ~ = ϕ ( v ~ ) \tilde{m} = \phi(\tilde{v}) m~=ϕ(v~)。
图的构建过程:
G
=
(
V
,
E
)
\mathcal{G = (V, E)}
G=(V,E), 其中,
V
⊂
D
\mathcal{V \subset D}
V⊂D,
E
⊆
V
×
V
\mathcal{E \subseteq V \times V}
E⊆V×V。
T
∈
D
\mathcal{T \in D}
T∈D,
ϕ
(
T
)
=
m
T
\phi(\mathcal{T}) = m_{\mathcal{T}}
ϕ(T)=mT。因为目标域没有数据,所以没有目标域特定的模型参数。我们通过域关系图来估计目标域
T
\mathcal{T}
T 的参数。扩展新边,目标域和所有或者部分
v
∈
V
v \in \mathcal{V}
v∈V(例如,我们可以关联所有满足关系
ω
(
T
,
v
)
>
τ
\omega(\mathcal{T}, v) > \tau
ω(T,v)>τ的
v
v
v)。扩展图
G
′
=
(
V
∪
{
T
}
,
E
′
)
\mathcal{G' = (V \cup \{T\}, E')}
G′=(V∪{T},E′)可以用来估计目标域
T
\mathcal{T}
T的参数,通过传播附近域的模型参数。形式化表示如下:
θ ^ T = ψ ( T ) = ∑ ( T , v ) ∈ E ′ ω ( T , v ) ψ ( v ) ∑ ( T , v ) ∈ E ′ ω ( T , v ) \hat\theta_{\mathcal{T}} = \psi(\mathcal{T}) = \frac{\sum_{(\mathcal {T}, v)\in \mathcal E'} \omega(\mathcal {T}, v)\psi(v)}{\sum_{(\mathcal {T}, v) \in \mathcal E'} \omega(\mathcal {T}, v)} θ^T=ψ(T)=∑(T,v)∈E′ω(T,v)∑(T,v)∈E′ω(T,v)ψ(v)
- 图的节点只包已知域, V = K \mathcal{V = K} V=K.
- 构建图的边,计算已知域之间的边的权重 ω \omega ω
- 给定目标域的元数据 m ~ \tilde m m~,通过映射得到目标域模型的参数。
如果目标域没有元数据,我们可以利用源源到来的数据流。首先定义图像 x ∈ X x \in \mathcal{X} x∈X的条件概率 p ( v ∣ x ) p(v|x) p(v∣x)来得到域 v ∈ V v \in \mathcal{V} v∈V:
θ ^ x = ∑ v ∈ V p ( v ∣ x ) ⋅ ψ ( v ) (3) \hat \theta_x = \sum_{v \in \mathcal{V}} p(v|x) \cdot \psi(v) \tag{3} θ^x=v∈V∑p(v∣x)⋅ψ(v)(3)
在实际中,条件概率 p ( v ∣ x ) p(v|x) p(v∣x)是从一个元数据分类器 f m f^m fm构建得到的,在可用数据上训练,提供了给定 x x x条件下 M \mathcal{M} M上的概率分布,这个概率分布可以转成 D \mathcal{D} D上的概率通过反向映射 ϕ − 1 \phi^{-1} ϕ−1。
Extracting node specific models.
standard BN
standard cross-entropy loss
GraphBN counterpart (GBN)
B
v
\mathcal{B}_v
Bv is the set of elements in the batch belonging to domain v
for the scale and bias parameters
include the graph within the optimization procedure
ν ∈ { β , γ } ν ∈ \{β, γ\} ν∈{β,γ}
4. Experiments 实验
元数据到底是什么?
在DA中,不同域的元数据就是指光照、拍摄角度、生产年份这些。
数据集
论文有三个数据集:Comprehensive Cars (CompCars), the Century of Portraits and the CarEvolution.
Comprehensive Cars: 136,726张图片,产自2004到2015年。论文选定了一个子集,24,151张图片,4种车型(MPV,SUV,sedan,hatchback),生产年份从2009年到2014年,5种视角(前方、侧前方、侧面、后方、侧后方)。把视角和生产年份作为独立的域,一共有5x6=30种域。其中,1个域作为源域,1个域作为目标域,剩下的28个域作为辅助域。元数据是二维向量, 车辆生产年份、拍照角度。
[
y
e
a
r
v
i
e
w
p
o
i
n
t
]
\left[ \begin{array}{ccc} year \\ view point \end{array} \right]
[yearviewpoint]
Century of Portraits:
元数据是三维向量,年代、南北方、东西。
[
d
e
c
a
d
e
l
a
t
i
t
u
d
e
e
a
s
t
−
w
e
s
t
p
o
s
i
t
i
o
n
]
\left[ \begin{array}{ccc} decade \\ latitude \\ east-west position \end{array} \right]
⎣⎡decadelatitudeeast−westposition⎦⎤
CarEvolution
车辆数据集,1972-2013年,1008张图片,3个生产商,每家2款车型,
该数据集用来测试在线DA的策略。其中,有三个汽车品牌的生产商:Mercedes、BMW和Volkswagen。1980年以前的车作为源域,余下的作为目标域。
5. Conclusions 总结
- PDA:第一个深度架构来解决PDA。利用元数据信息构建图,节点表示域,边表示两个域的相似度。然后,利用图实现DA,并设计了新的域对齐层。
- CDA:利用数据流的策略,来解决continuous DA。
- 未来工作:探索方法增量地更新图,自动推理域之间的关系(甚至不需要元数据)
6. 下载
7. 遗留问题
- [
μ
\mu
μ、
σ
\sigma
σ、
γ
\gamma
γ、
β
\beta
β] 的初始化?更新?是通过网络学习到的,还是使用图计算得到的?
答: γ \gamma γ和 β \beta β初始化为1和0。
后记
总是不明白网络是怎么训练的,所以还在看不懂代码的路上继续前行。愿你有人拥抱!