Transfer Learning.

在迁移学习中,称模型最初解决的问题领域为source domain,其中的数据集为source data;需要迁移解决的相关问题领域为target domain,其中的数据集为target data

通常source data数量大,而target data数量较少,两者的数据分布是不同的。

迁移学习的不同分类:

本文目录

  1. Fine-tuning
  2. Multitask Learning
  3. Domain Adaptation
  4. Zero-shot learning

⭐扩展阅读:

1. Fine-Tuning

模型微调(Fine-tuning)是指用source data训练模型,再用target data微调模型。

target data只有几个样本时,也叫one-shot learning

缺点:target data数量少,容易过拟合。

一些解决措施:

2. Multitask Learning

多任务学习(Multitask Learning)是指同时学习source domaintarget domain的任务,不同的任务可以共享一部分模型结构。

模型也可采用渐进神经网络(Progressive Neural Networks)结构,每次训练一个新的模型解决新的问题,也会用到之前训练好的模型结构:

3. Domain Adaptation

Domain Adaptation是指通过构造合适的特征提取模型,使得source domaintarget domain的特征在相同的特征空间中,再用这些特征解决下游任务。

本文主要讨论homogeneousDomain Adaptation问题,即原问题和目标问题属于同一类问题(以图像分类为例)。

常用方法:

  1. Discrepancy-based methods
  2. Adversarial-based methods
  3. Reconstruction-based methods

(1)Discrepancy-based methods

基于差异的方法是指,通过直接训练模型使得source domaintarget domain特征向量足够接近:

常用的方法包括:

  1. Deep Domain Confusion (MMD)
  2. Deep Adaptation Networks
  3. CORAL, CMD

Deep Domain Confusion

通过训练,减小source data的分类误差,以及source datatarget data的特征向量之间的差别:

特征向量的差距也称为Maximum Mean Discrepancy(MMD)

Deep Adaptation Networks

Deep Adaptation Networks在计算特征差别时,使用了多层特征:

CORAL, CMD

之前计算特征向量的差别使用的是一阶矩(绝对值),CORAL使用二阶矩,CMD使用高阶矩。

(2)Adversarial-based methods

基于对抗的方法是指,训练模型得到source domaintarget domain的特征向量,再训练一个domain classifier区分特征属于哪个domain,采用对抗的方法训练整个模型:

常用的方法包括:

  1. Simultaneous Deep Transfer Across Domains and Tasks
  2. DANN
  3. PixelDA

Simultaneous Deep Transfer Across Domains and Tasks

该模型的损失函数包括:

  1. Classification Loss:最终的分类损失;
  2. Domain Confusion Loss:交替训练,一方面希望训练一个好的domain分类器,另一方面希望特征骗过domain分类器;
  3. Label Correlation Loss:希望target domain的特征含有更多信息,采用引入温度T的soft分类。

DANN

模型包括三部分:

  1. feature extractor:目标是最大化label分类精度,最小化domain分类精度;
  2. label predictor:目标是最大化label分类精度
  3. domain classifier:目标是最大化domain分类精度。

模型在训练时,循环进行:

  1. source data中抽样,训练label predictordomain classifier
  2. target data中抽样,训练domain classifier
  3. domain classifier的梯度进行梯度反转(gradient reversal),更新feature extractor

PixelDA

PixelDA的想法是先训练GAN,喂入source data生成target data,再用source data和其对应生成的target data作为同一类训练分类器。

(3)Reconstruction-based methods

基于重构的方法是指,要求训练模型得到source domaintarget domain的特征向量足够接近,并且通过解码器能够恢复各自的图像:

常用的方法包括:

  1. Domain Separation Networks

Domain Separation Networks

模型训练两个私有的编码器和两个共享参数的编码器,Private encoder提取domain-specific特征;Shared encoder提取domain-invariant特征。

对于每个domain,将提取的两种特征结合起来通过解码器恢复图像;用domain-invariant特征解决下游任务。

4. Zero-shot Learning

下面以图像分类任务为例介绍Zero-shot Learning方法。

Attribute embedding

人为构造一系列属性attribute,将source data的每一个类别标记为一个属性向量:

属性向量生成可以用一个神经网络实现,即把数据$x_n$的类别标签$y_n$喂入网络得到属性向量$g(y_n)$。

zero loss

通过训练网络把source data转化成对应的属性向量,假设网络的预测结果为$f(x_n)$,对应的属性向量为$g(y_n)$,希望样本$x_n$经过网络得到的输出和其类别对应的属性向量为$g(y_n)$足够接近,和其余类别的属性向量相差很大,相差一个超参数$k$:

\[f(x_n)g(y_n) - \mathop{\max}_{m≠n} f(x_n)g(y_m) > k\]

由此定义zero loss

\[loss = max(0,k-f(x_n)g(y_n) + \mathop{\max}_{m≠n} f(x_n)g(y_m))\]

两个网络$f$和$g$可以一起训练:

\[f^*,g^* = \mathop{\arg \min}_{f,g} \sum_{n}^{} {max(0,k-f(x_n)g(y_n) + \mathop{\max}_{m≠n} f(x_n)g(y_m))}\]

训练好网络,进行迁移时,将没有标签的target data喂入网络得到其对应的属性向量,与已有类别的属性向量进行比较,按照最相近的结果进行分类。