机器学习||李宏毅课程笔记15元学习(Meta Learning)
一、什么是“元学习”?

- “学习算法”也可以看做一个函数F,它的输入是训练数据,输出是model
- 一般的ML中,F是人想出来的(hand-crafted)
- Meta Learning 自动学习“学习算法”F
二、三个步骤寻找Learning Algorithm
概念明确:
训练数据→训练任务(训练任务里的训练数据+测试数据)
测试数据→测试任务(包含训练数据+测试数据)
Step 1: What is learnable in a learning algorithm?(明确要被学的东西)
在model中:weight bias
让机器自己学习⇒learnable components\(\phi\)
- 网络架构
- 初始参数
- 学习率
- ……
根据学习内容不同,将元学习的具体方法进行分类
Step 2:Define loss function for learning algorithm \(F_\phi\)(定义损失函数)
训练资料
很多“任务”,每个任务中有训练集和测试集

定义损失函数
-
使用学到的学习算法\(F_\phi\),利用某个任务的训练数据进行训练,得到模型\(f_{\theta^{1*}}\)
![image]()
- 模型\(f_{\theta^{1*}}\)性能越好时,说明学习算法\(F_\theta\)越好,此时损失函数\(L(\theta)\)越小。
- 反之亦然
-
评估训练得到的模型\(f_{\theta^{1*}}\)的性能
![image]()
- 使用对应任务的“测试数据”(带label)对训练得到的模型\(f_{\theta^{1*}}\)进行测试,计算“预测结果”与Ground Truth之间的Cross Entropy
![image]()
- 将各个测试数据得到的结果求和得到\(l^1\)即模型的损失,用来衡量模型\(f_{\theta^{1*}}\)的性能,借以衡量学习算法\(F_\theta\)的优劣
- \(l^1\)越小,\(f_{\theta^{1*}}\)性能越好,说明学习算法\(F_\theta\)越好
- 反之,\(l^1\)越大,\(f_{\theta^{1*}}\)性能越差,说明学习算法\(F_\theta\)越差
- 使用对应任务的“测试数据”(带label)对训练得到的模型\(f_{\theta^{1*}}\)进行测试,计算“预测结果”与Ground Truth之间的Cross Entropy
-
继续使用“同类别”的“其他任务”对学习算法进行测试
![image]()
如,同样是“二分类”任务,第二个任务的分类内容是bike 与 car,第一个任务的内容是 apple 与 orange
- 对于任务二,继续训练出对应的分类器模型\(f_{\theta^{2*}}\),
- 计算\(l^2\),说明Learning Algorithm 在任务二上的表现。
-
将该“学习算法”在所有的“学习任务”上的损失求和,得到total loss\(L(\phi)\)
Step 3:Optimazation

- 已经定义出学习算法\(F_\phi\)的损失函数\(L(\phi)\)
- 若\(\frac{\partial L(\phi)}{\partial \phi}\)可导,则可以使用梯度下降法
- 若不可导,则使用RL,进化算法硬train
- 最终可以得到“学习而得的”学习算法
三、What is learnable in a learning algorithm?——分类
模型初始值(Learning to Initialize)——MAML

Optimizer(learning rate, momentum)

optimizer中的参数也可以学习得到
- 学习率
- 动量
- ……
Network Architecture Search (NAS)

Data Augmentation
让机器自动学会数据增强。

Sample Reweightnig——Give different samples different weights
对于很接近边界的样本,
- 应该看做“噪声”,并给予较小的权重?
- 应该看做“边界”,给予较大的权重?
让机器根据data特性自动决定权重大小。
Beyond Gradient Descent
让机器输入数据,直接输出模型⇒发明了新的学习算法(learning algorithm)!
Lrearning to compare
- 目前,episode中不再分“训练”和“测试”两个阶段,先根据训练任务训练learning algorithm、再输出模型,利用模型得到最终结果
- learning to compare:不再有显式的分界,而是直接输入训练数据和测试数据,学出learning+classification,输出测试的结果





浙公网安备 33010602011771号