# 7. 元学习

## 7.1 元学习的主要概念 \*\*\*

* 场景：小样本、多任务（快速学习、快速适应）
* 元训练：多个不同但相关的任务
* LFE（从经验中学习）vs. LTL（学会学习）
  * 任务集合，$$\hat y=f(x,\mathcal D\_{train};\Theta)$$，所有任务的损失，学习相似任务之间的共性，泛化小样本任务
* 理论原理：对假设空间做剪枝，缩小假设空间

## 7.2 元学习的主要方法 \*\*\*\*

* 两大类
  * 参数空间层面，将参数划分为：**通用元参数** + 特定任务相关的参数
  * 不同任务共同遵循的 **约束条件**，这些约束条件不能通过参数方式表达
* 划分参数空间的方法
  * 元参数定义在函数中：$$f(\cdot;\theta\_t,\Theta)$$
    * 递归式分解（共享底层特征 / 适应不同域的输入）
    * 分段式分解（子目标基函数）
  * 元参数定义在规则和程序中
  * 元参数定义在控制函数中
* 学习约束条件的方法
  * 学习从真实数据到仿真数据的变换规则
  * 学习目标函数的斜率 / 梯度约束
  * 学习内部表征的约束
* 其他维度
  * 学习多个任务的顺序：增量模式（内存优势、在线学习），并列模式
  * 任务间的优先级：没有优先级，相似性权重
  * 任务间共享数据的情况：输入相同 目标不同，输入不同 目标相同
  * 在参数搜索步骤中的位置：
  * 性能评估针对的任务范围：针对所有任务，针对指定任务

## 7.3 元学习的数据集准备（K次N分类） \*\*\*

* 外层（元层）：train, valid, test（互不相交）
* 内层（基层）：train, test
* 任务层面的泛化

## 7.4 元学习的两个简单模型 \*\*\*\*

* NN + KNN：数据集，混合分类元训练，KNN 预测分类（embedding）
  * **非参数方法**：避免灾难性忘却，快速吸收和利用（更适合 one-shot）
* fine tune：数据集，混合分类元训练，fine tune 后预测分类
  * **参数方法** 缺点：梯度下降较慢，灾难性忘却

## 7.5 基于度量学习的元学习模型 \*\*\*\*\*

* 度量学习 + 注意力机制
  * **外部记忆** $$\mathcal D\_{train}$$，软注意力机制（类似加权平均）访问机制
  * 缺点：外部记忆大小 $$\propto$$ 支持集样本数，复杂度高

## 7.6 基于神经图灵机的元学习模型 \*\*\*\*\*

> 神经图灵机（Neural Turing Machine），记忆网络（Memory Network）

* 带读/写操作的 **记忆模块**，在元学习中的作用
  * 快速学习、快速适应（编码+绑定 / 检索）
  * 减少灾难性忘却的影响
* 构造基于 神经图灵机（NTM） 和 RNN 的元学习模型
  * **慢层面**：元学习，反映任务之间的共性
  * **快层面**：快速 加载 / 获取，不是参数学习的优化过程

## 7.7 基于学习优化器的元学习模型 \*\*\*\*\*

* 学习目标：学习出一个好的优化器，替代基于梯度的优化算法
* 基于 LSTM 的可学习优化器

## 7.8 基于学习初始点的元学习模型 \*\*\*\*\*

* 学习目标：学习一个好的初始点（公共初始点、单个任务最优点）
* 元目标：优化公共初始点，使得每个任务做一步梯度下降，损失之和最小
* 优点：适用于一切基于梯度下降的学习系统
