【李宏毅】元学习(Meta learning)的概念与步骤

【李宏毅】元学习(Meta learning)的概念与步骤

  • 1 概念
  • 2 元学习步骤
    • 2.1 定义一组学习算法
    • 2.2 评价一个学习算法 F F F 的好坏

只讲了元学习概念和步骤,简单做了解,稍微复杂一点的都没讲,更详细的笔记可以参考【学习笔记】元学习(Meta Learning)学习笔记,学习的是李宏毅老师的教程,可以参考从零开始,了解元学习,里面包含了代码实现。

1 概念

元学习就是一台机器学习如何去做学习,根据过去任务的经验变成了一个厉害的学习者。
具体的模型架构解释:
【李宏毅】元学习(Meta learning)的概念与步骤_第1张图片
首先,上图描述的是传统机器学习在做的事情——由人来设计一套学习算法,然后这个算法会输入一堆训练资料,通过长时间的训练得到算法里的参数,这堆参数拟合出一个函数 f ∗ f^* f,然后用测试资料来测试这个 f ∗ f^* f,如果效果达标就证明机器学到了该特定任务的实现函数。
而Meta Learning做的事情与上述描述不同的地方在于,将其中由人来设计学习方法的过程,改成了由机器来设计一套学习方法。
如上图所示,如果将原本机器学习中的训练资料记为 D t r a i n D_{train} Dtrain,那么在Meta Learning中的训练资料变为一堆 D t r a i n D_{train} Dtrain和一堆 f ∗ f^* f的组合,然后现在机器要求解的结果不再是 f ∗ f^* f,而是一个新的函数 F F F,这个决定在给定 D t r a i n D_{train} Dtrain的情况下 f ∗ f^* f的结果。
【李宏毅】元学习(Meta learning)的概念与步骤_第2张图片

  • 机器学习:定义一组函数集→定义损失函数来判断哪些函数比较好→找出最好的函数 f ∗ f^* f
  • 元学习:定义一组学习算法函数集→定义损失函数来判断哪些学习函数比较好→找出最好的学习函数 F F F

2 元学习步骤

2.1 定义一组学习算法

  • 先定义一个网络架构
  • 初始化参数 θ 0 \theta^0 θ0
    从某一个分布里面提取出数值来当作初始参数
  • 根据初始参数 θ 0 \theta^0 θ0 和训练资料 D t r a i n D_{train} Dtrain 计算梯度 g 0 g_0 g0
  • 用梯度 g 0 g_0 g0 更新初始参数 θ 0 \theta^0 θ0 得到 θ 1 \theta^1 θ1
    Update方法: θ 0 \theta^0 θ0- g 0 × g_0\times g0×学习率
  • 根据 θ 1 \theta^1 θ1 和训练资料 D t r a i n D_{train} Dtrain 计算梯度 g 1 g_1 g1
  • 重复梯度下降过程……
  • 最后得到参数 θ ^ \hat\theta θ^

以上的步骤可以看作是一个函数,输入是训练资料 D t r a i n D_{train} Dtrain,输出是参数 θ ^ \hat\theta θ^
【李宏毅】元学习(Meta learning)的概念与步骤_第3张图片
图中红色方框部分都是人工去设置的,不同的设置会导致不同的结果。
而元学习就是试图把人工设置的红色方框部分变成机器去设置,机器去学习,而不需要人。
比如说:参数初始化部分,我们不自己手动设置,而是让机器随便弄出一堆初始参数,这一堆初始参数就是这个学习算法函数集(Learning Algorithm)。

2.2 评价一个学习算法 F F F 的好坏

和机器学习类似,用 F F F 来学习一些 task,比如猫狗分类(task1),把训练数据集代进这个 F F F,学习出了一个训练结果 f 1 f^1 f1(是一个训练算法),然后用测试数据集代进训练算法 f 1 f^1 f1,得到 l 1 l^1 l1(测试结果不仅仅可以是分类任务中的分类损失,也可以定义为损失下降的速率等等,取决于我们希望F学习到什么样的算法效果)。
F F F 要学习一堆 task,在其它task上的过程:
【李宏毅】元学习(Meta learning)的概念与步骤_第4张图片
最后,函数 F F F 的损失函数就定义为所有Task上的损失的总和:
L ( F ) = ∑ n = 1 N l n L(F)=\sum^N_{n=1}l^n L(F)=n=1Nln
L ( F ) L(F) L(F) 越小, F F F 越好。所以最好的 F F F 就是:
在这里插入图片描述

因此,和机器学习不同:机器学习是有训练资料和测试资料;而元学习是有训练任务和测试任务(每一种任务里面都有训练资料和测试资料),如下图:
【李宏毅】元学习(Meta learning)的概念与步骤_第5张图片

元学习通常和小样本学习(Few-shot learning)放在一起讨论。
小样本学习:每一种类别只给很少的资料,比如只给一张猫的图一张狗的图。在小样本学习中,往往把 Task 里面的训练资料叫 Support set,测试资料叫做 Query set

通过上面的公式得到 F ∗ F^* F 以后,训练完毕,接下来测试:
把测试task里面的训练集代进 F ∗ F^* F 中,得到 f ∗ f^* f,然后把测试task里面的测试资料代进 f ∗ f^* f 中,得到 l l l,这个 l l l 就是整个方法的好坏。

你可能感兴趣的:(深度学习,学习,机器学习,人工智能,小样本学习,元学习)