SpotTune: Transfer Learning through Adaptive Fine-tuning
Guo, Yunhui, et al. “Spottune: transfer learning through adaptive fine-tuning.” Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019. citations:344
解决什么问题
利用深度神经网络进行迁移学习的典型方法是使用目标任务的数据对源任务预训练的模型进行微调
提出什么方法
提出了一种自适应微调方法,称为SpotTune,它为目标任务找到每个instance的最佳微调策略。给定来自目标任务的图像,策略网络用于决定样本是经过finetune层还是pretrain层。
效果如何
在Visual Decathlon datasets,SpotTune方法效果最好。
还存在什么问题
整体模型变成原模型的两倍多大,多了policy network的计算量。
名词解释
Dynamic Routing:通过某种决策方法在NN里选择用哪些layer哪些不用,来改进精度。
背景
finetune有这些方式:
- pretrain网络做初始模型,用target training data更新网络里的所有参数,但是当训练数据少、模型参数多时,很容易过拟合。
- pretrain网络做初始模型,前几层freeze,只更新后面几层参数,但是具体要freeze到第几层,要手调试出来,不够高效。(不清楚将微调限制在最后的连续层是否是最好的选择,因为集合效应ensemble effect 削弱了早期或中间层应该与普通的低级或中级特征共享的假设)
Transfer Learning 前人工作:
- [Yosinski ](J. Yosinski, J. Clune, Y. Bengio, and H. Lipson. How transferable are features in deep neural networks? In NeurIPS, 2014. 1, 2, 5) 分析了底层、中间层、顶层的迁移特征哪个最有影响。但尚不清楚他们的结论是否适用于现在的多路结构,如残差网络或DenseNets。
- [Yang](Z. Yang, B. Dhingra, K. He, W. W. Cohen, R. Salakhutdinov, Y. LeCun, et al. Glomo: Unsupervisedly learned relational graphs as transferable representations. arXiv preprint arXiv:1806.05662, 2018. 2) 提出将关系图作为可迁移特征,而不是用一元特征。
- [Li ](X. Li, Y. Grandvalet, and F. Davoine. Explicit inductive bias for transfer learning with convolutional networks. In ICML, 2018. 2, 6) 研究了几种明确提高微调模型与原始预训练模型相似度的正则化方案。
本文提出一种决策方法,决定对于每个样本来说,哪些层要freeze、哪些层要更新。不同样本freeze和更新的层不同。称为input-dependent fine-tuning。

样本输入网络,策略从从神经网络输出参数化的离散分布中采样,它决定预训练模型的哪些层应该微调或将其参数冻结。
因为这些决策函数是离散的,不可微的,因此用Gumbel Softmax sampling approach来训练策略网络。
本文还提出了:We also propose a global variant of our approach that constrains all the input examples to fine-tune the same set of k layers which can be distributed anywhere in the network. This variant results in fewer parameters in the final model as the corresponding set of pre-trained layers can be discarded.
Feature Sharing Across Tasks.
Dynamic Routing
本文方法用的conditional computation methods。前人提出的dynamic routing方法有:
- Bengio et al. [2] used sparse activation policies to selectively execute neural network units on a per-example basis
- Shazeer et al. [43] introduced a Sparsely-Gated Mixture-of-Experts layer, where a trainable gating network determines a sparse combination of sub-networks (experts) to use for each example.
- Wu, Nagarajan et al. proposed BlockDrop [49], a method that uses reinforcement learning to dynamically select which layers of a Residual Network to execute, exploiting the fact that ResNets are resilient to layer dropping [47]
- Veit and Belongie [46] investigated the same idea using Gumbel Softmax [18] for on-the-fly selection of residual blocks.
[Veit and Belongie](A. Veit and S. Belongie. Convolutional networks with adaptive inference graphs. In ECCV, 2018. 3) 提出用Gumbel Softmax 实时选择用哪个residual block,本文的dynamic routing也是基于Gumbel trick,但不是通过丢掉一些层来改进精度,是通过froze或finetune一些层来改进精度的。
SpotTune Overview
以残差网络结构为例,预训练模型是resnet网络结构,则第 $l$ 层的residual block表示为:
$$
x_l=F_l(x_{l-1})+x_{l-1}
$$
freeze住这里的$F_l$,额外添加一个结构一样的$\hat F_l$(这里以$F_l$参数作为初始化,参数可更新),于是第 $l$ 层的输出表示为:
$$
x_l=I_l(x)\hat F_l(x_{l-1})+(1-I_l(x))F_l(x_{l-1})+x_{l-1}
$$
其中,$I_l(x)$是一个二进制随机变量,作用是policy,表示在当前输入下,是否应该冻结或微调residual block。(要不然经过固定参数,要不然经过更新参数)
$I_l(x)$ 从freeze或finetune这两个输出类的离散分布中采样。因为是离散的,不可微,难以通过反向传播进行优化。有一些方法允许通过离散节点进行反向传播。本文用的Gumbel Softmax sampling approach来规避这个问题。
Gumbel-Max trick 用来抽取样本,从一个分类分布中抽取,这个分类分布是一个参数化后的分布,写成 ${\alpha_1,\alpha_2,…,\alpha_z}$ ,每个$\alpha_z$ 是标量,$z$ 是分类数目。对于本文这个任务,是要选择freeze或finetune,因此 $z=2$,每个residual block后都有 $\alpha_1$ 和 $\alpha_2$ ,
整个模型结构如下图:
可以看到,其实是两个一模一样的网络结构并联的,一个是freeze网络,一个是finetune网络,要选择走哪一个网络,选择的方法通过一个额外的policy network,样本输入给policy network,policy network输出通过gumbel-softmax samples,找二分类的argmax,选择是freeze或finetune。
反向传播时,对于gumbel-softmax samples方法用softmax反向传播。

如果随机变量 $G = - \log(- \log(U))$,$U$从均匀分布 $U\sim Unif[0,1]$ 中采样,则称其具有标准Gumbel 分布。
从标准Gumbel分布 $Gumbel(0,1)$ 中抽$z$个样本 $G_i,…,G_z$;
离散样本表示为:
$$
X = \arg \max_i[\log \alpha_i + G_i]
$$
式子里argmax操作不可微,所以不用argmax,用softmax(平滑、离散变连续)
$$
Y_i=\frac{\exp \left(\left(\log \alpha_i+G_i\right) / \tau\right)}{\sum_{j=1}^z \exp \left(\left(\log \alpha_j+G_j\right) / \tau\right)} \quad \text { for } i=1, . ., z
$$
温度系数$\tau$ 接近0时,接近离散分布(one-hot vector)
前向传播时,先从标准gumbel分布中采样,得到样本G,然后根据上式得到输出X,就就是决策网络的输出。这里每层的$\alpha$ 和G不同,但是每层的输入都是一样的就是input feature。
后向传播时,用的是softmax近似离散argmax操作,公式4的偏导作为离散的偏导来反向传播。
Compact Global Policy Variant
每层都做policy network计算量较大,本文提了一种在resnet block结构上的简化policy network计算量的方法。
模型结构堆叠了很多个结构相同的resnet block,对于每个resnet block来说,记录里面使用finetune block的比例(训练数据集是target数据集时),引入限制loss:
$$
l_k=\left(\left(\sum_{l=1}^L v_l\right)-k\right)^2
$$
其中 $v_l$ 是比例。也就是说,finetune的比例之和与需要finetune的block数目k越接近越好。
增加另一个loss:
$$
l_e=\sum_{l=1}^L-v_l \log v_l .
$$
The additional loss $l_e$ pushes $v_l$ to be exactly 0 or 1, so that a global policy can be obtained for all the images.
最终loss:
$$
l=l_c+\lambda_1 l_k+\lambda_2 l_e
$$