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_\phi Fϕ
怎么定义
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来操作的!