视觉任务之间是否有关系,或者它们是否无关?例如,曲面法线(surface normals)可以简化估算图像的深度吗?直觉积极回答这些问题,暗示在视觉任务中存在某种结构。了解这种结构具有显著的价值;它是迁移学习的基本概念,并提供了一种识别任务冗余的方法,以便例如在相关任务之间无缝地重用监督或在一个系统中解决许多任务而不会增加复杂性。我们提出了一种完全计算的方法来构建视觉任务空间的结构。这是通过在潜在空间中的二十六个2D,2.5D,3D和语义任务的字典中查找(一阶和更高阶)迁移学习依赖性来完成的。该产品是用于任务迁移学习的计算分类地图。我们研究了这种结构的后果,例如:非平凡的关系,并利用它们来减少对标签数据的需求。例如,我们表明,解决一组10个任务所需的标记数据点总数可以减少大约 2 3 \frac 23 32(与独立训练相比),同时保持性能几乎相同。我们提供了一套用于计算和探测这种分类结构的工具,包括用户可以用来为其用例设计有效监督策略的求解器。
感兴趣与否 | 是否能从零开始学习 | |
---|---|---|
T \ S \mathcal{T} \backslash \mathcal{S} T\S | 感兴趣 | 不能从零开始学习 |
S \ T \mathcal{S} \backslash \mathcal{T} S\T | 不感兴趣 | 能从零开始学习 |
T ∩ S \mathcal{T} \cap \mathcal{S} T∩S | 感兴趣 | 能从零开始学习 |
S − T ∩ S \mathcal{S}-\mathcal{T} \cap \mathcal{S} S−T∩S | 不能直接解决但是可以被选择提高目标域的性能 | |
T − T ∩ S \mathcal{T}-\mathcal{T} \cap \mathcal{S} T−T∩S | 我们想解决但是不能训练的 |
约600座建筑物的400万幅室内场景图像数据集; 每个图像都有一个每个任务的注释.
对源域中每一个任务都训练一个全监督的Task-Specific 网络。
如上图所示,对于一个起始任务 s ∈ S s\in\mathcal{S} s∈S 和一个目标任务 t ∈ T t\in\mathcal{T} t∈T ,它们的数据集是一样的。然后我们将以 s s s 的representation作为输入来学习 t t t 。我们将freeze任务 s s s 的 encoder 参数,并基于encoder的输出 (representations) 学习一个浅层神经网络 read out function。严谨来讲,如果我们用 E s E_s Es 表示 s s s 的encoder, f t f_t ft 表示 t t t 的标注, L t L_t Lt 表示 t t t 的loss函数, I ∈ D I\in \mathcal{D} I∈D 来表示图片和迁移训练集, D s ↔ t D_{s \leftrightarrow t} Ds↔t 表示要迁移学习的浅层神经网络, θ s ↔ t \theta_{s \leftrightarrow t} θs↔t表示网络参数,学习目标为:
D s ↔ t : = a r g min θ E I ∈ D [ L t ( D θ ( E s ( I ) ) , f t ( I ) ) ] D_{s \leftrightarrow t}:=arg\min_{\theta} \mathbb{E}_{I \in \mathcal{D}} \bigg[L_t \bigg(D_{\theta}(E_s(I)),f_t(I) \bigg )\bigg] Ds↔t:=argθminEI∈D[Lt(Dθ(Es(I)),ft(I))]这里目标域的数据是由标签的,因为这里只是为了计算两个任务的关联性. D s ↔ t D_{s \leftrightarrow t} Ds↔t是为了计算关联矩阵的.
为了迁移成功,源域的隐含表示(representation)必须包含:1. 能解决目标问题的信息 ;2. 可达到的信息.所以为了 一高度可达到性为条件来衡量迁移效果,需要用浅层网络.
上述迁移代表了任务之间一对一的关联,我们称其为一阶关联。几个任务之间可能具有互补性,结合几个起始任务的representations会对解决目标任务起到帮助。因此,我们也研究了任务之间多对一的关联,我们称其为高阶关联。在这种情况下,我们将几个起始任务的representation结合起来当作目标任务的输入,其余细节跟上段类似。
因为高阶的任务组合数量太大,我们基于一阶表现选择了一部分的组合进行迁移学习。对于小于五阶的高阶,我们根据一阶的表现,将前五的所有组合作为输入。对于n>5阶,我们选择结合一阶表现前n的起始任务作为输入。多个源域任务能包含对目标任务有用的互补信息。所以文章采用高阶迁移。它和一阶迁移类似,但是输入时包含多种表示(representation).
迁移函数 D : P ( S ) → T D: \mathscr{P}(\mathcal{S}) \rightarrow \mathcal{T} D:P(S)→T ,其中 P \mathscr{P} P是幂集算子.
k k k阶迁移有 ∣ T ∣ × ( ∣ S ∣ k ) \vert \mathcal{T} \vert \times \begin{pmatrix} \vert \mathcal{S} \vert \\ k \end{pmatrix} ∣T∣×(∣S∣k) 个迁移任务要计算。太多了所以这里采用beam search(集束搜索算法).
针对一个目标域,计算阶数 ≤ 5 \le 5 ≤5的迁移任务,我们选择5个最好的源域,并且包含它们所有的 k k k阶迁移联合。对于 k ≥ 5 k \ge 5 k≥5,令 beam size=1,然后计算top k 源域。
这一步的目标为用一个 affinity matrix 量化任务之间的关联。虽然从上步习得的迁移网络中我们获得了许多的loss值 L s → t L_{s\rightarrow t} Ls→t,但因这些loss值来自于不同的loss 函数,它们的值域有很大差别。如果我们把这些loss值直接放入一个矩阵(上图左,纵轴为目标任务、横轴为起始任务),那么这个矩阵内的值及其不均匀,并不能有效反应任务之间的关联。同时,简单的线性规范化也并不能解决问题,因为任务的loss值和表现并不构成线性关系(0.01的 l 2 l_2 l2 loss并不代表其表现两倍好于0.02的loss)。由此,我们采用Ordinal Normalization(基于序数的规范化)来将loss值转换为关联度。该方法基于运筹学中的 AHP (Analytic Hierarchy Process)。概括来讲,affinity matrix中的第 ( i , j ) (i,j) (i,j) 个值为利用第 i i i 个起始任务迁移后,其网络有多大的几率表现好于用第 j j j 个网络(我们在下文称其为 i i i对于 j j j的胜率)。
对于每个目标任务 t t t ,我们构建pairwise tournament 矩阵 W t W_t Wt ,其纵轴和横轴均对应所有的起始任务及我们计算过的高阶组合。给定一个测试集 D t e s t D_{test} Dtest , W t W_t Wt 的 ( i , j ) (i,j) (i,j) 项为 s i s_i si 在 D t e s t D_{test} Dtest 的所有图片输入中有多大的几率表现好于 s j s_j sj (有几成 I ∈ D t e s t I \in D_{test} I∈Dtest 会使 L t ( D s i → t ( I ) ) < L t ( D s j → t ( I ) ) L_t(D_{s_i \rightarrow t}(I)) < L_t(D_{s_j \rightarrow t}(I)) Lt(Dsi→t(I))<Lt(Dsj→t(I)) )。在将 W t W_t Wt的值clip到 [ 0.001 , 0.999 ] [0.001,0.999] [0.001,0.999],计算 W t ′ = W t / W t T W'_t = W_t / W_t^T Wt′=Wt/WtT , W t ′ W'_t Wt′ 的 ( i , j ) (i,j) (i,j) 项 w i , j ′ w'_{i,j} wi,j′ 现在代表着 s i s_i si 表现好于 s j s_j sj 几倍。这样:
w i , j ′ = E I ∈ D t e s t [ D s i → t ( I ) > D s j → t ( I ) ] E I ∈ D t e s t [ D s i → t ( I ) < D s j → t ( I ) ] w_{i,j}'=\frac{\mathbb{E}_{I\in \mathcal{D}_{test}}[D_{s_i \rightarrow t}(I)>D_{s_j \rightarrow t}(I)]}{\mathbb{E}_{I\in \mathcal{D}_{test}}[D_{s_i \rightarrow t}(I)<D_{s_j \rightarrow t}(I)]} wi,j′=EI∈Dtest[Dsi→t(I)<Dsj→t(I)]EI∈Dtest[Dsi→t(I)>Dsj→t(I)]
计算 W t ′ W_t' Wt′的第 i i i个特征向量作为 s i s_i si到 t t t的传递性.我们将所有的 W t ′ W_t' Wt′的特征向量堆到一起,则构成了最终的关联矩阵 P P P,其中 ∀ t ∈ T \forall t \in \mathcal{T} ∀t∈T.
这一阶段我们要发明一种全局策略使得它能够最大化所有任务集体的性能,并且最小化所使用的监督信息.这里任务被表示为节点,迁移被表示为边。我们将使用BIP( Boolean Integer Programming)找到最优的子图,即点和边,使它满足源域的节点不超过监督预算.
参考文献1
参考文献2
论文下载地址