首页 > 其他分享 >Meta-Learning

Meta-Learning

时间:2022-09-27 15:59:50浏览次数:37  
标签:phi 训练 学习 Meta Learning theta 我们

Meta Learning

调参占据了深度学习实验的大部分时间。在工业界,我们有足够的算力,我们可以使用多张GPU用于调参,但是在学术界,具有的算力是及其有限的,所以就需要是用其他方法调参,那就是元学习 -- "学习如何学习"

Introduction

Review

回顾我们以前的机器学习模型算法,我们的定义了model,loss function,optimization,通过使用优化算法去最小化损失函数去优化我们的模型参数

\[loss: \quad L(\theta) = \sum^K_{k=1}e_k \\ \theta^* = arg \operatorname{min} L(\theta) \\ f_{\theta} \rightarrow f_{\theta^*} \]

元学习和普通的机器学习一样,我们也要定义一个函数,这个函数输出是一个函数,也就是说它的输出是我们的模型。那么这个函数要学习的其实就是我们的超参数(模型架构,学习率,初始化参数),我们定义这个函数是\(F_{\phi}\),\(\phi\)就是我们可学习的元件,我们可以把\(F_{\phi}\)看作我们的学习算法。

Meta-Learning

元学习也是一个需要迭代学习的过程,那么我们依旧需要定义我们的损失函数去评价我们的\(F_{\phi}\)的好坏。在外面的元学习中,我们的训练材料是我们的训练任务。

上图是元学习的一个训练episode,通过我们的\(F_{\phi}\),我们在每一个任务中,通过训练出一个函数\(f_{\theta^*}\),并且计算最终这个已经由学习算法训练好的模型的任务损失。最后把所有任务的损失相加得到我们的最终损失。

\[L(\phi) = \sum_{n=1}^N l^n \]

在每一个任务的内循环(也就是训练\(f_{\theta}\))的过程中,我们的损失函数是用在训练集的数据,但是在最终计算\(F_{\phi}\)的损失时,我们的训练数据是使用测试集的数据。

那么我们如何训练我们的\(F_{\phi}\),其实和一般的机器学习训练一样,我们要最小化我们的损失函数\(L(\phi)\),也就是\(\phi^*=arg \operatorname{min}\limits_{\phi}L(\phi)\)。使用优化算法如梯度下降去优化\(\phi\),当你能计算\(\frac {\partial L(\phi)} {\partial \phi}\);但是由于我们的\(\phi\)通常是很复杂的,并且是无法计算的,如我们的模型的架构,但是我们可以Learning from experience,也就是使用强化学习算法。

我们已经说完了元学习的基本过程,值得一提的是元学习也叫cross-task training,也就是跨任务学习

我们定义内循环和外循环,内循环训练\(f_{\theta}\),外循环训练\(F_{\phi}\)

Issue

元学习和传统的机器学习一样,也具有类似的问题,如下:

  • 过拟合在训练的任务上,也就说在训练的任务中,\(F_{\phi}\)能输出性能较好的模型,但是在测试的任务中,输出的\(f_{\theta^*}\)性能明显低于训练任务
  • 要获得更多的训练任务去训练\(F_{\phi}\)
  • 任务强化,类似于 data argumentation
  • 元学习也有一系列超参数要调,但是元学习模型如果能训练出来,就能训练出一系列模型用于task
  • development task

All things can be meta

Learning to Initialize

  • MAML (Model-Agnostic Meta-Learning)
  • Reptile

\[\hat{\phi}=arg \operatorname{min}L(\phi) \]

上面的\(\phi\)就是我们的network架构,由于我们无法通过求导的梯度下降算法去解这一个问题,但是我们可以使用强化学习硬做,也就是把network架构作为我们强化学习agent的参数。除此之外,我们也可以用演化算法,把结构可微分等方法去解决这个问题。

Data Augumentation

让模型学会去做数据增强,以上有相关的文献

Sampling Rewaigting

可图可知,就是把每一个数据都添加一个权重的方法

Application

Few-shot Image Classification

数据集中每一个类别只有几张图片,模型需要通过学习这几张图片去学习一个类别。我们定义 "N ways K shot classification" 意思为在每一个任务中,我们有N个类别,每一个类别有K张例子。

  • Omniglot

标签:phi,训练,学习,Meta,Learning,theta,我们
From: https://www.cnblogs.com/ykzhou/p/16734812.html

相关文章