迁移学习-入门

迁移学习 Transer Learning

  • 前面的层,表层特征 (可表征); 后面的层深层特征(不可表征)
  • 通过判别器,迫使真实和虚假的很像
CNN
CNN
判别器
fake
Tensor
integral Tensor
real
Tensor
  • 从生成式对抗网络发展而来

迁移:从源域进行学习 – 放到目标域进行使用

  • 为什么要迁移?

源域和目标域之间的交叉部分!commom features

自适应:传统损失函数、特征自适应、模型自适应

  1. 基于误差
  2. 基于对抗
  3. 基于重构(Cycle GAN)
  • BYOL 自监督模型

Fine-tuning

source_train_data
fine-tuning
target_train_data
Source
Model
Target
E
  • 目标域一般数据量小,网络容易过拟合

所以,ft就是源域训练好的模型,放在目标域中微调就行了
注意:目标域也要训练!

防止过拟合:前面几层和后面几层固定不动,只调中间的层

那一层应该fine-tuning 呢?

  • 调是什么意思: 把那层的权重手动调节,然后固定住(不进行反向传播更新),其他层反向传播更新

语音:调后面几层
NLP:前面几层

  • 源域有标签、目标域没有标签咋办?(目标域是训练集无标签、测试集有标签)
  1. DDC

    • 源域m个样本 ,目标域 n个标签 分别算MMD(最大平均差异),看像不像
    • 效果不行
  2. DAN

  3. RTN : 残差迁移网络

    • 进入目标域,前面几个层挨得比较近
    • 根据目标域的不同的任务,有不同的分支,分类的分支加入残差
  4. RE-Gard 梯度反转

    • input – CNN – feature - > 分类强调全连接网络
    • 放到目标域,效果不好
    • 解决方法:加一个域判别器,源域的特征对应-域1,目标域对应的特征对应-域0
    • 用一个网络,加一个域判别的分支,两个分支互相对抗
    • 梯度反转层
    • 最终目的是:让分类器分不清特征是来自源域还是目标域
  5. MADA

    • 问题:源域3个类,目标域2个类,MMD太简单,效果不好
    • 加判别器:目标域的类别数 = 域判别器数
    • 目标域的标签不知道怎么分类?
      • 在源域的分类器中先预先判别一下,不仅要域对齐,现在还要类对齐

零样本学习

猜你喜欢

转载自blog.csdn.net/RandyHan/article/details/130347083