Meta-learning就是教会它怎么学!
大家以为AI都是很牛,但其实就是在调参,在工业界怎么样子调参呢? 使用1000GPUs,而学业界只有一张! 我们知道Machine learning可以学出来,那么hyperparameters是不是能学出来呢?
我们回顾一下Machine Learing!其实就是三个步骤:
这里,我们定义了函数f(θ\thetaθ),我们需要找到那个使得L(θ\thetaθ)最小的θ∗\theta^*θ∗! 同时使用fθ∗f_{\theta^*}fθ∗成为最终的模型训练!
What is Meta Learning?
我们原来都是设置模型,并且调参从而得到我们最后的函数!
那么我们是不是能让机器来学习这个模型,学习合适的参数呢?
Meta-learning - Step 1
在学习算法中什么是可以学习的?
Meta learning – Step 2
Define loss function for learning algorithm FϕF_\phiFϕ
怎么定义L(ϕ)L(\phi)L(ϕ)?
我们会分为multi tasks,同一个F不同的任务,最终取所有损失之和! 这里需要注意,我们是在测试阶段进行损失的计算的! 这是和一般的机器学习很大的不同之处!

Meta learning – Step 3
不管使用什么方法,我们也是找到最合适的θ\thetaθ


把问题想象成Training tasks 和 Testing tasks!
Few-shot是目标,Meta是手段!
MeatLearning vs ML
Goal

Training Data
在Meta Learning里面,我们只有Training tasks的划分,每个训练任务中我们有Train和Test集! 但是这听起来有点绕口,所以就Train set称为了Support set, 而Test set称为Query set!

Task
在ML中只有一个任务,一个任务中训练集和测试集!
但是在Meta Learning中,却是Training Tasks,多个Task,取各个任务的loss,并求和!

这里我们可以量一个Testing Task称为一个episode!

Loss

每个任务都需要计算损失,这个计算量是很大的!
这里我们将Across-task Learning叫做Outer Loop;
而Within-task则称为Inner Loop!

Same

Meta-Learning也是需要有超参数的,但是这里的超参数理想情况下是一劳永逸,可以用在任何形式上!
Devlopment task: 是用来当工具的,比如学习率我们不知道是不是可行,那么就需要用在Development task来操作的!