元学习和机器学习的对比

Source

引言

本篇博客是李宏毅老师元学习课程的笔记。
在这里插入图片描述
在这里插入图片描述
深度学习大部分时间在调参数。在业界通常有很多计算资源供我们进行调参,在学界我们通常靠心灵感应来设置一组好的超参数。

机器学习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

元学习

什么是元学习

在这里插入图片描述
Meta Learning被称作元学习,和机器学习一样遵循那三个步骤,不同于Machine Learning的目标是让机器能够学习,Meta Learning则是要让机器学会如何去学习

元学习的流程

学习学习函数

在这里插入图片描述
训练资料是多个训练任务数据和它们对应的学习
以梯度下降算法为优化算法的网络为例,它的流程可以简述为:设计一个网络架构->给参数初始化->读入训练数据批次->计算梯度->基于梯度更新参数->进入下一轮训练->……。对于每一个具体的任务来说,它的全部算法流程就构成了一个 F ϕ F_{\phi} Fϕ。其中 ϕ \phi ϕ就是我们要学习的可学习的参数(通常包括网络结构、初始参数、学习率…)。

评价学习函数好坏

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 机器学习用训练资料计算损失函数
  • 元学习用训练任务的测试资料计算损失函数

迭代优化

在这里插入图片描述
当我们无法计算梯度的时候,我们可以采用强化学习和进化算法

整体框架

在这里插入图片描述
在这里插入图片描述
元训练:
分为内层和外层优化,外层用于学算法参数,内层用于学模型参数,内层是给出 w w w学出 θ ∗ \theta^* θ,把 θ ∗ \theta^* θ拿到查询集中,验证学的怎么样,如果不好,说明 w w w不好,通过loss去更新 w ∗ w^* w,不断迭代。
元测试:
已经学到最好的算法后,在测试集的支撑集上去学一个模型,最终, θ ∗ \theta^* θ就是测试模型。

元学习和机器学习的对比

定义的区别

在这里插入图片描述

  • 机器学习的定义表述为:根据资料找一个函数 f f f的能力
  • Meta Learning的定义表述为:根据资料找一个找一个函数 f f f的函数 F F F 的能力

数据集划分的区别

在这里插入图片描述

  • 机器学习:训练资料用于一个任务
  • 元学习:训练资料被分为多个训练任务,每个训练任务包含一个支持集和一个查询集

在这里插入图片描述

在这里插入图片描述

损失函数的区别

在这里插入图片描述
在这里插入图片描述

两者之间的共通之处

在这里插入图片描述

  • 训练任务上的过拟合(训练集上的过拟合)
  • 更多的训练任务可以改善性能(更多的训练数据可以改善性能)
  • 任务增强(数据增强)
  • 学习学习算法时也会有超参数(学习算法时有超参数)
  • 验证任务(验证集)

总结

本篇博客主要介绍了元学习的基本概念、元学习的建模流程以及元学习和机器学习的对比。
元学习将数据以任务的形式进行划分,将数据集分为很多个任务。而这些任务在类别上又可以分为训练任务测试任务。每个任务自身可以分为支持集查询集
元学习不是学习一个函数,而是学习一个学习函数。
以分类任务为例:通过训练任务中的支持集进行训练得到一个学习函数,通过学习得到一个分类器,通过训练任务的查询集进行测试,计算预测值和标签的损失函数,以最小化目标函数进行优化,训练得到学习函数。测试任务的支持集用来根据学习函数训练分类器,测试任务的支持集用来进行测试。