相关文章推荐
温文尔雅的大白菜  ·  2024元旦健走·  8 月前    · 
玩足球的炒粉  ·  拉祜族·  1 年前    · 
热情的硬币  ·  什么是消费者行为·  1 年前    · 
不开心的盒饭  ·  PPT - §1-1 ...·  1 年前    · 

又来做小样本问题了,别问,问就是我也不知道,方向换来换去的。我看过 Life long learning,深度学习的聚类,大规模图划分(我只是感觉这几年算法岗很内卷,泡沫化严重。不管什么专业的,都可以来搞计算机或智能,门槛低但要求高,甚至跨专业来的还认为撕代码没用,这个行业一言难尽。

前言

Machine learning 中,我们的目标是定义一个神经网络,训练数据并获取输出,且希望输出的准确率很高,这可以简化为 $f(\text{data})=\hat{y}$,如下图所示:

而在 meta learning 中,则是让机器学会如何学习。假设现在有多个任务,第一个任务是猫狗分类,第二个任务是数字识别,以此类推就不一一举例了。meta learning 的目标就是让网络基于过去的任务获取学习技巧,并能快速应用到其他任务中。比如:分类中,知道猫和狗纹理不一样后,能快速学习出数字 1 和数字 3 不一样。(每一个任务都有一个模型,希望未来基于已有经验能学的更快更好)。在通俗一点,你学过 C++,那么再去学 java 就很快,有经验在那。

meta learning 的目标就是寻找一个 $F$,使得$F(\text{data})=f$,生成的 $f$ 是完成任务,$F$ 就表示其学习能力。

如上图所示,灰白背景为整个 $F$,生成的结果为 $f$。其中:参数初始化、网络结构设计和参数的更新方法是 $F$ 可以学习的。最后得到每个任务的参数 $\theta$。比如 $\theta^1$ 用于第一个任务,$\theta^2$ 用于第二个任务。

评价

那么如何评价 $F$ 的好坏呢?或者说,$F$ 的损失函数该如何写?这里采用简单的任务损失求和的形式来表示:

\begin{equation}
L(F)=\sum_{i=1}^n l^n
\end{equation}

其中 $l^n$ 为第 $n$ 个任务的损失。(你可以自由发挥加点正则什么的),找到一个最好的 $F^{*}$,使得 $F^*=\arg\min_FL(F)$。

训练与测试数据