MRN:使用多线性关系网络进行多任务学习.
在大规模数据集上训练的深度网络能够学习可转移的特征,并进一步学习多个任务。由于学习到的特征会沿着网络层数从共享特征逐渐过渡到任务特定的特征,因此多任务学习的一个基本问题是如何提高特征在多个任务特定层中的可转移性。
本文提出了一种多线性关系网络(Multilinear Relationship Network,MRN),通过为多任务特定层的参数张量引入张量正态先验来发现任务之间的相关性。通过联合学习可转移的特征和任务与特征之间的多线性关系,MRN能够同时缓解特征层的负迁移和分类层的欠迁移。实验表明,MRN在三个多任务学习数据集上都取得不错的表现。
1. 多线性关系网络 Multilinear Relationship Network
给定$T$个任务\(\{\mathcal{X}_t,\mathcal{Y}_t\}_{t=1}^T\),MRN通过联合学习可转移特征和自适应任务关系,以有效且稳健地连接不同的任务。
MRN模型结构如图所示。卷积层conv1-5和全连接层fc6学习可转移的特征,其参数在不同任务上共享;全连接层fc7,8在不同的任务上独立,其参数通过张量正态先验建模,以学习特征、类别与任务之间的多线性关系。
若记任务特定层\(l \in \mathcal{L}\)中的参数张量为\(\mathcal{W}\),第$t$个任务具有$N_t$训练数据,则网络参数的最大后验估计为:
\[\begin{aligned} p(\mathcal{W} |\mathcal{X},\mathcal{Y}) & \varpropto p(\mathcal{W}) \cdot p(\mathcal{Y} |\mathcal{X},\mathcal{W}) \\ & = \prod_{l \in \mathcal{L}} p(\mathcal{W}^l) \cdot \prod_{t=1}^{T} \prod_{n=1}^{N_t} p(y_n^t | x_n^t,\mathcal{W}^l) \end{aligned}\]上式中\(p(\mathcal{Y}\) $|$ \(\mathcal{X},\mathcal{W})\)采用神经网络建模;而先验部分\(p(\mathcal{W})\)旨在建模参数张量之间的多线性关系,使用张量正态分布建模该参数张量的先验值:
\[p(\mathcal{W}^l) = \mathcal{TN}_{D_1^l\times D_2^l \times T}(O,\Sigma_1^l,\Sigma_2^l,\Sigma_3^l)\]其中协方差矩阵\(\Sigma_1^l \in \Bbb{R}^{D_1^l\times D_1^l},\Sigma_2^l \in \Bbb{R}^{D_2^l\times D_2^l}\)描述特征之间的关系,\(\Sigma_3^l \in \Bbb{R}^{L\times L}\)描述任务之间的关系。
在损失函数中引入张量正态先验 (tensor normal piror):
\[\begin{aligned} \mathop{\min}_{f_t|_{t=1}^T,\Sigma_k^l|_{k=1}^{3}} & \sum_{t=1}^T\sum_{n=1}^{N_t} J(f_t(x_n^t),y_n^t) \\&+ \frac{1}{2} \sum_{l \in \mathcal{L}} \begin{pmatrix} \text{vec}(\mathcal{W}^l)^T(\Sigma_{1:3}^l)^{-1} \text{vec}(\mathcal{W}^l) -\sum_{k=1}^K \frac{D^l}{D^L_k} \ln (|\Sigma_{k}^l|) \end{pmatrix} \end{aligned}\]上述问题是联合非凸(jointly non-convex)的优化问题,因此采用对变量逐个更新的方法,在更新一个变量时,其余变量保持不变。
对于参数张量\(\mathcal{W}\),其梯度为:
\[\frac{\partial O(x_n^t,y_n^t)}{\partial W^{t,l}} = \frac{\partial J(f_t(x_n^t),y_n^t)}{\partial W^{t,l}} + [(\Sigma_{1:3}^l)^{-1} \text{vec}(\mathcal{W}^l)]_{\cdot \cdot t}\]协方差矩阵更新如下:
\[\Sigma_1^l = \frac{1}{D_2^lT}(\mathcal{W}^l)_{(1)}(\Sigma_3^l \otimes \Sigma_2^l)^{-1} (\mathcal{W}^l)_{(1)}^T + \epsilon I_{D_1^l} \\ \Sigma_2^l = \frac{1}{D_1^lT}(\mathcal{W}^l)_{(2)}(\Sigma_3^l \otimes \Sigma_1^l)^{-1} (\mathcal{W}^l)_{(2)}^T + \epsilon I_{D_2^l} \\ \Sigma_3^l = \frac{1}{D_1^lD_2^l}(\mathcal{W}^l)_{(3)}(\Sigma_2^l \otimes \Sigma_1^l)^{-1} (\mathcal{W}^l)_{(3)}^T + \epsilon I_{T}\]由于Kronecker积的维数爆炸的问题,上述更新方程在计算上是不可行的;使用Kronecker乘积规则:
\[(A \otimes B)^{-1} = A^{-1} \otimes B^{-1} \\ (B^T \times A) \text{vec}(X) = \text{vec}(AXB)\]则协方差矩阵的更新方程变为(以\(\Sigma_3^l\)为例):
\[\begin{aligned} (\Sigma_3^l)_{ij} &= \frac{1}{D_1^lD_2^l}(\mathcal{W}^l)_{(3),i\cdot}(\Sigma_2^l \otimes \Sigma_1^l)^{-1} (\mathcal{W}^l)_{(3),j\cdot}^T + \epsilon I_{ij} \\ &= \frac{1}{D_1^lD_2^l}(\mathcal{W}^l)_{(3),i\cdot} \text{vec}((\Sigma_1^l)^{-1} \mathcal{W}^l_{\cdot \cdot j} (\Sigma_2^l)^{-1}) + \epsilon I_{ij} \end{aligned}\]2. 实验分析
作者分别在三组数据集(Office-Caltech、Office-Home、ImageCLEF-DA)上进行实验,将MRN与单任务学习(STL)、多任务特征学习(MTFL)、多任务关系学习(MTRL)、鲁棒多任务学习(RMTL)和带张量因子分解的深度多任务学习(DMTL-TF)进行比较,以验证学习可转移特征和多线性任务关系的有效性。实验结果如下:
作者可视化MTRL和MRN学习到的任务协方差的Hinton图,结果表明MRN成功地捕捉先验任务关系,并增强了不同任务之间的任务相关性,使得多任务学习具有更强的可转移性。所有任务在MRN中都是正相关(绿色)的,这意味着所有任务可以更好地相互增强。而在MTRL中,一些任务仍然是负相关(红色)的,出现负迁移现象。
此外作者还可视化DMTL-TF和MRN的特征t-SNE嵌入。与DMTL-TF的特征相比,MRN特征在不同类别中具有更好的区分性,即具有较小的类内方差和较大的类间裕度;数据点在不同任务之间也更好地对齐,即不同任务的嵌入具有重叠,这意味着不同的任务能够有效地相互增强。这进一步验证了通过多线性关系学习,MRN可以为学习到更多可转移特征。