Daily AI 20250514 (迁移学习与元学习)
参考资料:神经网络与深度学习
目录
- 迁移学习 (Transfer Learning)
- 归纳迁移学习
- 转导迁移学习
- 元学习 (Meta Learning)
- 基于优化器的元学习
- 模型无关的元学习(Model-AgnosticMeta-Learning,MAML)
迁移学习 (Transfer Learning)
对于一个缺乏标注数据的任务,如果有一个相关任务已经有了大量的训练数据,虽然这些训练数据的分布和目标任务不同,但是由于训练数据的规模比较大,假设可以从中学习某些可以泛化的知识,那么这些知识对目标任务会有一定的帮助.如何将相关任务的训练数据中的可泛化知识迁移到目标任务上,即迁移学习。
从统计学习的观点来看,一个机器学习任务 T \mathcal{T} T定义为在一个领域 D = ( X , Y , p ( x , y ) ) \mathcal{D}=(\mathcal{X}, \mathcal{Y}, p(\boldsymbol{x}, y)) D=(X,Y,p(x,y))上的条件概率 p ( y ∣ x ) p(y \mid \boldsymbol{x}) p(y∣x) 的建模问题.迁移学习旨在利用源领域(Source Domain) D S \mathcal{D}_S DS 中学到的知识来帮助目标领域(Target Domain) D T \mathcal{D}_T DT 上的学习任务。
归纳迁移学习
在归纳迁移学习中,源领域和目标领域有相同的输入空间 X S = X T {\mathcal{X}}_S={\mathcal{X}}_T XS=XT ,输出空间可以相同也可以不同,源任务和目标任务一般不相同 T S ≠ T T \mathcal{T}_S \neq \mathcal{T}_T TS=TT ,即 p S ( y ∣ x ) ≠ p_S(y \mid \boldsymbol{x}) \neq pS(y∣x)= p T ( y ∣ x ) p_T(y \mid \boldsymbol{x}) pT(y∣x) 。一般而言,归纳迁移学习要求源领域和目标领域是相关的,并且源领域 D S \mathcal{D}_S DS 有大量的训练样本,这些样本可以是有标注的样本,也可以是无标注样本.
(1) 当源领域只有大量无标注数据时,源任务可以转换为无监督学习任务,比如自编码和密度估计任务.在自然语言处理领域,由于语言相关任务的标注成本比较高,很多自然语言处理任务的标注数据都比较少,这导致了在这些自然语言处理任务上经常会受限于训练样本数量而无法充分发挥深度学习模型的能力.同时,由于我们可以低成本地获取大规模的无标注自然语言文本,因此一种自然的迁移学习方式是将大规模文本上的无监督学习(比如语言模型)中学到的知识迁移到一个新的目标任务上.从早期的预训练词向量(比如word2vec和GloVe等)到句子级表示(比如ELMO、OpenAI GPT 以及BERT等)都对自然语言处理任务有很大的促进作用.
(2) 当源领域有大量的标注数据时,可以直接将源领域上训练的模型迁移到目标领域上.比如在计算机视觉领域有大规模的图像分类数据集ImageNet.由于在ImageNet数据集上有很多预训练的图像分类模型,比如AlexNet、VGG和ResNet等,我们可以将这些预训练模型迁移到目标任务上.归纳迁移学习的方式主要有:
-基于特征的方式:将预训练模型的输出或者是中间隐藏层的输出作为特征直接加入到目标任务的学习模型中.目标任务的学习模型可以是一般的浅层分类器(比如支持向量机等)或一个新的神经网络模型。
-精调的方式:在目标任务上复用预训练模型的部分组件,并对其参数进行精调(Fine-Tuning)。
转导迁移学习
转导迁移学习是一种从样本到样本的迁移,转导迁移学习通常假设源领域有大量的标注数据,而目标领域没有(或只有少量)标注数据,但是有大量的无标注数据.目标领域的数据在训练阶段是可见的.
元学习 (Meta Learning)
希望有一套自动方法,根据不同任务来动态地选择合适的模型或动态地调整超参数。(Learning to Learn)
元学习的目的是从已有任务中学习一种学习方法或元知识,可以加速新任务的学习.从这个角度来说,元学习+分类似于归纳迁移学习,但元学习更侧重从多种不同(甚至是不相关)的任务中归纳出一种学习方法.
基于优化器的元学习
学习优化器g的过程可以看做一种元学习过程,其目标是找到一个适用于多个不同任务的优化器。在标准梯度下降中,每步迭代的目标是使得 L ( θ ) \mathcal{L}(\theta) L(θ)下降。在优化器的元学习中,希望在每步迭代的目标是 L ( θ ) \mathcal{L}(\theta) L(θ)最小,具体的目标函数为:
L ( ϕ ) = E f [ ∑ t = 1 T w t L ( θ t ) ] , θ t = θ t − 1 + g t , [ g t ; h t ] = LSTM ( ∇ L ( θ t − 1 ) , h t − 1 ; ϕ ) \begin{aligned} \mathcal{L}(\phi) & =\mathbb{E}_f\left[\sum_{t=1}^T w_t \mathcal{L}\left(\theta_t\right)\right], \\ \theta_t & =\theta_{t-1}+\boldsymbol{g}_t, \\ {\left[\boldsymbol{g}_t ; \boldsymbol{h}_t\right] } & =\operatorname{LSTM}\left(\nabla \mathcal{L}\left(\theta_{t-1}\right), \boldsymbol{h}_{t-1} ; \phi\right) \end{aligned} L(ϕ)θt[gt;ht]=Ef[t=1∑TwtL(θt)],=θt−1+gt,=LSTM(∇L(θt−1),ht−1;ϕ)
(用lstm网络学习更新所需的gradient)
模型无关的元学习(Model-AgnosticMeta-Learning,MAML)
是模型无关、任务无关的元学习算法,假设所有的任务都来自于一个任务空间,其分布为 p ( J ) p(\mathcal{J}) p(J)。旨在对这个任务空间的所有任务学习一个通用表示,这种表示可以经过梯度下降方法在一个特定的单任务上进行精调:
假设一个模型为 f θ f_\theta fθ ,如果我们让这个模型适应到一个新任务 J m \mathcal{J}_m Jm 上,通过一步或多步的梯度下降更新,学习到的任务适配参数 θ m ′ \theta_m^{'} θm′为:
θ m ′ = θ − α ∇ θ L J m ( f θ ) \theta_m^{\prime}=\theta-\alpha \nabla_\theta \mathcal{L}_{\mathcal{J}_m}\left(f_\theta\right) θm′=θ−α∇θLJm(fθ)
MAML的目标是学习一个参数𝜃使得其经过一个梯度迭代就可以在新任务上达到最好的性能,即
min θ ∑ J m ∼ p ( T ) L J m ( f θ m ′ ) = min θ ∑ J m ∼ p ( T ) L J m ( f ( θ − α ∇ θ L T m ( f θ ) ⏟ θ m ′ ) ) \min _\theta \sum_{\mathcal{J}_m \sim p(\mathcal{T})} \mathcal{L}_{\mathcal{J}_m}\left(f_{\theta_m^{\prime}}\right)=\min _\theta \sum_{\mathcal{J}_m \sim p(\mathcal{T})} \mathcal{L}_{\mathcal{J}_m}(f(\underbrace{\theta-\alpha \nabla_\theta \mathcal{L}_{\mathcal{T}_m}\left(f_\theta\right)}_{\theta_m^{\prime}})) θminJm∼p(T)∑LJm(fθm′)=θminJm∼p(T)∑LJm(f(θm′ θ−α∇θLTm(fθ)))
在所有任务上的元优化(Meta-Optimization)也采用梯度下降来进行优化,即
θ ← θ − β ∇ θ ∑ m = 1 M L J m ( f θ m ′ ) = θ − β ∑ m = 1 M ∇ θ L J m ( f θ m ) ( I − α ∇ θ 2 L J m ( f θ m ) ) \begin{aligned} \theta & \leftarrow \theta-\beta \nabla_\theta \sum_{m=1}^M \mathcal{L}_{\mathcal{J}_m}\left(f_{\theta_m^{\prime}}\right) \\ & =\theta-\beta \sum_{m=1}^M \nabla_\theta \mathcal{L}_{\mathcal{J}_m}\left(f_{\theta_m}\right)\left(I-\alpha \nabla_\theta^2 \mathcal{L}_{\mathcal{J}_m}\left(f_{\theta_m}\right)\right) \end{aligned} θ←θ−β∇θm=1∑MLJm(fθm′)=θ−βm=1∑M∇θLJm(fθm)(I−α∇θ2LJm(fθm))
其中 β \beta β 为元学习率, I I I 为单位阵.
第二步二阶梯度得到是由于:
∇ θ L T m ( f θ m ′ ) = ∇ θ L T m ( f θ − α ∇ θ L T m ( f θ ) ) \nabla_\theta \mathcal{L}_{\mathcal{T}_m}\left(f_{\theta_m}^{\prime}\right)=\nabla_\theta \mathcal{L}_{\mathcal{T}_m}\left(f_\theta-\alpha \nabla_\theta \mathcal{L}_{\mathcal{T}_m}\left(f_\theta\right)\right) ∇θLTm(fθm′)=∇θLTm(fθ−α∇θLTm(fθ))
对其做一阶泰勒展开得到:
≈ ∇ θ L T m ( f θ ) − α ∇ θ 2 L T m ( f θ ) ∇ θ L T m ( f θ ) = ∇ θ L T m ( f θ ) ( I − α ∇ θ 2 L T m ( f θ ) ) \approx \nabla_\theta \mathcal{L}_{\mathcal{T}_m}\left(f_\theta\right)-\alpha \nabla_\theta^2 \mathcal{L}_{\mathcal{T}_m}\left(f_\theta\right) \nabla_\theta \mathcal{L}_{\mathcal{T}_m}\left(f_\theta\right)=\nabla_\theta \mathcal{L}_{\mathcal{T}_m}\left(f_\theta\right)\left(I-\alpha \nabla_\theta^2 \mathcal{L}_{\mathcal{T}_m}\left(f_\theta\right)\right) ≈∇θLTm(fθ)−α∇θ2LTm(fθ)∇θLTm(fθ)=∇θLTm(fθ)(I−α∇θ2LTm(fθ))
(即MAML是一个嵌套优化问题,内层一步下降优化单个模型性能,外层实现一个更好的通用表示)