机器学习笔记16(Transfer Learning)

Transfer Learning 迁移学习

1、什么是Transfer Learning 

2、如何实现Transfer Learning  

         1)source有label,target有label

                一、model fine-tuning(模型微调)

                    方法一:conservative training(保守训练)

                    方法二:layer transfer(层迁移)

                二、Multitask Learning(所任务学习)

          2)source有label,target无label  

                一、Domain-Adversial training (领域对抗训练)

      二、zero-shot-learning(零样本学习)

1、什么是迁移学习  

  迁移学习适用于:训练数据中,名词解释

  •  target data:和训练相关的数据,很少
  •  source data:和训练不直接相关的,很多 

  迁移学习两大任务:

  •  source data是相似的领域,要做不同的任务
  •     source data是不同的领域,要做相同的任务

  比如说,现在要做猫狗分类:

  •  source data是一些大象和老虎(动物领域),用训练大象老虎分类的模型去识别猫狗
  •     source data是一些卡通的猫和狗(不同领域),用卡通猫狗的训练模型去识别target data的猫狗

   

2、如何实现Transfer Learning 

               

 1)source有label,target有label
   一、model fine-tuning(模型微调)

      思想:用source data去训练好模型,再用target data微调模型

              

          方法一、conservative training(保守训练)

    如果你直接拿这些去train的话就坏掉了。你可以在training的时候加一些限制(正则化),让新的model跟旧的model不要差太多

         

  方法二、layer transfer(层迁移)

  把source data训练好的模型的其中几层直接copy,用target data 训练剩下没copy的层即可

     

  复制哪些层是有讲究的:

    语音识别中:一般迁移后几层,因为后几层可能做的是根据人的发音方式做识别;

    图像识别中:一般迁移前几层,因为前几层做的事情可能就是一些直线、曲线等通用图形。

     

   二、Multitask Learning(所任务学习)   

    多任务学习跟fine tuning不同是:在fine tuning里面我们care target domain做的好不好,那在多任务学习里面我们同时care target domain跟source domain做的好不好 

     

   2)source有label,target无label

      一、Domain-Adversial training (领域对抗训练)

      比如现在要做不同领域,相同任务的事情:

   思想:既然是不同领域,那么就减少不同领域的特征差异

     把一个neural network当做feature extract,neural network前面几层我们可以看做是抽feature,后面几层可以看做classification

     

             

    Domain-Adversial training网络结构:

    蓝色label predictor:做的事情是把class分类做的正确率越高越好,

    红色domain classifier:做的事情是想正确predict image是属于哪个domain。

    绿色feature extractor:想要做的事情是:要同时improve label predictor,同时想要minimize domain classifier accuracy

    

     二、zero-shot-learning(零样本学习)

   比如现在要做的事情是:用相同领域数据,做不同的任务:同样都是动物的图片,有猫和狗的有label的图片,要使得能识别草泥马的图片。

      思想:找到相同领域数据中更小的attribute(属性)

                解释:不直接识别动物的种类,将每种动物的 Attribute 属性总结,不同分类之间的属性不能完全相同,在辨别时只需要用 NN 辨别 input 具有那种 Attribute,然后与对比差距最小的就是结果。

   

                 

    具体如何训练

             将每种分类对应的特点通过某种变换在空间中对应为一个点,将 input 通过另一种 function 也对应为一个点,我们的目标是要让这两个点的距离越小越好。

    

                 

原文地址:https://www.cnblogs.com/Haozi-D17/p/13354609.html