Source-Target Similarity Modeling
2010 Cao 提出了单源数据的transfer covariance function,本文将其称作$TC_{\text{SS}}$,基于此的迁移学习方法就叫做$\text{GP} -
TC_{\text{SS}}$。本文针对的是多源问题,就是$TC_{\text{MS}}$,直观上,可以对每个源都按照$TC_{\text{SS}}$去构造,但是本文证明直接利用是不可行的。本文提出了Stacking的方法。
- 直接多源
定义多源回归迁移的域$\mathcal{D = S} \cup \mathcal{T}$,其中$\mathcal{S
=}\left\{ \mathcal{S}_{\mathcal{i}}:1 \leq i \leq N
\right\}$是多个源域,所有的源数据和少量目标数据是有标签的。定义源域$\mathcal{S}_{\mathcal{i}}$的样本输入和标签分别为:$X^{\left(
\mathcal{S}_{\mathcal{i}} \right)} \in R^{n_{\mathcal{S}_{\mathcal{i}}}} \times
d$,$\mathbf{y}^{\left( \mathcal{S}_{\mathcal{i}} \right)} \in
\mathbb{R}^{n_{\mathcal{S}_{\mathcal{i}}} \times
d}$,目标数据由标签数据和未标签数据组成,$X^{\left( \mathcal{T} \right)} =
\left\{ X^{\left( \mathcal{T}_{l} \right)},X^{\left( \mathcal{T}_{u} \right)}
\right\}$,其中$\mathbf{X}^{\left( \mathcal{T}_{l} \right)} \in
\mathbb{R}^{n_{\mathcal{T}_{l}} \times d}$是标签数据矩阵,$\mathbf{X}^{\left(
\mathcal{T}_{u} \right)} \in \mathbb{R}^{n_{\mathcal{T}_{u}} \times
d}$,标签数据的标签向量为$\mathbf{y}^{\left( \mathcal{T}_{l} \right)} \in
\mathbb{R}^{n_{\mathcal{T}_{l}}}$。目的是预测$X^{\left( \mathcal{T}_{u}
\right)}$的标签。
先定义核函数:
因此核矩阵$\mathbf{K}_{*}$为Gram矩阵,如下。注意$\lambda_{i}$每个源数据是不一样的。
于是文章证明若保证$\mathbf{K}_{*}$为PSD矩阵,则所有的$\lambda_{i}$必须相等,这就相当于一个核函数是不能做到描述不同源的相似性的,这部分证明过程就不跟了。
泛化误差:If the GP prior is correctly specified, the generalization error at a point is also the posterior variance at such point.就说是,泛化误差就是那点的预测方差。
- Conventional Transfer Stacking $\mathbf{T}\mathbf{C}_{\mathbf{\text{SS}}}\mathbf{\text{Stack}}$
根据多个源,训练多个$\text{GP} -
TC_{\text{SS}}$,然后加权,权重根据最小化目标数据上的最小二乘误差计算。
总结这个方法的问题有:(1)
由于每个模型是单独训练的,因此源域之间的独立性没有体现出来。(2)
$\lambda_{i}$和$\omega_{i}$都是影响域之间相似度的量,但是这里却是分开训练的,比如,如果一个模型训练$\lambda_{i}$的时候已经断定相似性很低了,那么$\omega_{i}$也就应该很低,所以应该以某种形式把两个方法参数建立关联。
- Improved Transfer Stacking $\mathbf{T}\mathbf{C}_{\mathbf{\text{MS}}}\mathbf{\text{Stack}}$
改进的Stacking方法如下:
$Z$是标准化系数,为了权重之和为一。$g\left( \lambda_{i}
\right)$是任意单调性函数,可以使得模型的相似性和权重一致。这样也减少了权重参数求解工作量。在这个框架下,所有$\lambda_{i}$可以共同求解了,于是解决了上述GAP1·,
本文给出了$g\left( \lambda_{i}
\right)$的一种建议形式,因为这种形式有人研究过。
至此,优化问题可以定义为:
实验部分介绍了,最终用共轭梯度法求解的。
- 偏导分析
外部函数采用如下先优化训练, 再预测。其中目标超参数为 $hyps=\left[k 1, k 2, \mu, b, \sigma_{\mathcal{S}}^{2}, \sigma_{\mathcal{T}}^{2}\right]$, 前两个为核参数,中间两个为相似度系数,后面两个为源互目标的噪声方差。
- 输入: $hyps=\left[k_1, k_2, \mu, b, \sigma_{\mathcal{S}}^{2}, \sigma_{\mathcal{T}}^{2}\right]$, $\mathbf{X}^{\mathcal{S}},\mathbf{X}^{\mathcal{T}},\mathbf{y}^{\mathcal{S}},\mathbf{y}^{\mathcal{T}},\mathbf{x}_{\mathbf{*}}$,模型总数量为$n_m$,核参数为$k_1, k_2$
- 计算输出$\mathbf{M} \in \mathbb{R}^{n_{s} \times n_{m}}$以及偏导${\mathbf{D}}\in\mathbb{R}^{n_s\times n_m\times6}$
- 计算权重$flambda$:$\left|\lambda_{i}\right| = \alpha \ln \left(\frac{1}{2} e^{\frac{\lambda_{i}}{\alpha}}+\frac{1}{2} e^{-\frac{\lambda_{i}}{\alpha}}\right),\lambda_{i}=2\left(1/\left(1+\mu_{i}\right)\right)^{b_{i}}-1,\alpha=0.01$
- 根据输出和权重,求$\mathbf{MSE}$
对$k_1, k_2$的偏导为$\frac{\partial E}{\partial k}=-\frac{1}{2} \sum_{j=1}^{n_{T_{l}}}\left(y_{j}-f^{*}\left(\mathbf{x}_{j}\right)\right) \sum_{i=1}^{N}\left(g\left(\lambda_{i}\right) / Z\right) \frac{\partial f_{i j}}{\partial k_{1}}$,令其中$r=y_j^ -f^\ast\left(\mathbf{x}_j^ \right)$,因此误差偏导与子函数偏导的关系为两层求和
本文所用核函数为:$k\left(\mathbf{x},\mathbf{x}^\prime\right)=\left(sf\right)^2\times\exp{\left(-\frac{1}{2}\left(\mathbf{x}-\mathbf{x}^\prime\right)^\top\mathbf{P}^{-1}\left(\mathbf{x}-\mathbf{x}^\prime\right)\right)}$,其中$\mathbf{P}=ell^2$,超参数定义为$k_1, k_2=\log(ell), \log(sf)$, matlab中的这个核函数covSEiso直接可以直接返回两个超参数的偏导数分别$d(k_1)$,$d(k_2)$, AT-GP的输出均值为$m\left( \mathbf{x}_{\mathbf{*}} \right) =\mathbf{k}_{\mathbf{x}}{\tilde{\mathbf{C}}}^{- 1}\mathbf{y},$ 那么:
请注意其中用到矩阵逆求导公式如下:
因此子GP对核参数的求导代码为
1 | dh(h) = dk*alpha0 - alpha1*dC*alpha0; |