机器学习||李宏毅课程笔记15元学习(Meta Learning)

一、什么是“元学习”?

image

  • “学习算法”也可以看做一个函数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\)(定义损失函数)

训练资料

很多“任务”,每个任务中有训练集和测试集
image

定义损失函数

  1. 使用学到的学习算法\(F_\phi\),利用某个任务的训练数据进行训练,得到模型\(f_{\theta^{1*}}\)
    image

    • 模型\(f_{\theta^{1*}}\)性能越好时,说明学习算法\(F_\theta\)越好,此时损失函数\(L(\theta)\)越小。
    • 反之亦然
  2. 评估训练得到的模型\(f_{\theta^{1*}}\)性能
    image

    1. 使用对应任务的“测试数据”(带label)对训练得到的模型\(f_{\theta^{1*}}\)进行测试,计算“预测结果”与Ground Truth之间的Cross Entropy
      image
    2. 将各个测试数据得到的结果求和得到\(l^1\)即模型的损失,用来衡量模型\(f_{\theta^{1*}}\)性能,借以衡量学习算法\(F_\theta\)的优劣
      • \(l^1\)越小,\(f_{\theta^{1*}}\)性能越好,说明学习算法\(F_\theta\)越好
      • 反之,\(l^1\)越大,\(f_{\theta^{1*}}\)性能越差,说明学习算法\(F_\theta\)越差
  3. 继续使用“同类别”的“其他任务”对学习算法进行测试
    image

    如,同样是“二分类”任务,第二个任务的分类内容是bike 与 car,第一个任务的内容是 apple 与 orange

    1. 对于任务二,继续训练出对应的分类器模型\(f_{\theta^{2*}}\)
    2. 计算\(l^2\),说明Learning Algorithm 在任务二上的表现。
  4. 将该“学习算法”在所有的“学习任务”上的损失求和,得到total loss\(L(\phi)\)

Step 3:Optimazation

image

  • 已经定义出学习算法\(F_\phi\)的损失函数\(L(\phi)\)
    • \(\frac{\partial L(\phi)}{\partial \phi}\)可导,则可以使用梯度下降法
    • 若不可导,则使用RL,进化算法硬train
  • 最终可以得到“学习而得的”学习算法

三、What is learnable in a learning algorithm?——分类

模型初始值(Learning to Initialize)——MAML

image

Optimizer(learning rate, momentum)

image
optimizer中的参数也可以学习得到

  • 学习率
  • 动量
  • ……

Network Architecture Search (NAS)

image

Data Augmentation

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

Sample Reweightnig——Give different samples different weights

对于很接近边界的样本,

  • 应该看做“噪声”,并给予较小的权重?
  • 应该看做“边界”,给予较大的权重?
    让机器根据data特性自动决定权重大小。

Beyond Gradient Descent

让机器输入数据,直接输出模型⇒发明了新的学习算法(learning algorithm)!

Lrearning to compare

  • 目前,episode中不再分“训练”和“测试”两个阶段,先根据训练任务训练learning algorithm、再输出模型,利用模型得到最终结果
  • learning to compare:不再有显式的分界,而是直接输入训练数据和测试数据,学出learning+classification,输出测试的结果
posted @ 2024-11-06 19:49  章鱼哥爱吃芒果  阅读(500)  评论(0)    收藏  举报