• 机器学习笔记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 也对应为一个点,我们的目标是要让这两个点的距离越小越好。

        

                     

  • 相关阅读:
    2019-9-2-一个好的程序员
    2019-9-2-一个好的程序员
    2018-2-13-wpf-GifBitmapDecoder-解析-gif-格式
    2018-2-13-wpf-GifBitmapDecoder-解析-gif-格式
    2019-5-31-SharpDx-进入全屏模式
    2019-5-31-SharpDx-进入全屏模式
    2019-8-31-dotnet-删除只读文件
    2019-8-31-dotnet-删除只读文件
    PHP mysqli_real_connect() 函数
    PHP mysqli_query() 函数
  • 原文地址:https://www.cnblogs.com/Haozi-D17/p/13354609.html
Copyright © 2020-2023  润新知