迁移学习——入门简介

  最近在看迁移学习相关内容,转载一篇入门学习,主要是一些概念性质的东西。原文地址:迁移学习——入门简介

 

 

目录

一、简介

二、迁移学习常用概念

三、迁移学习的分类

按照学习方式分四类

按迁移情境分三类

按特征空间分两类

四、迁移学习热门研究领域

域适配问题 (domain adaptation)

迁移方法


一、简介

背景:现如今数据爆炸:

对机器学习模型来说要求快速构建,强泛化

对于数据来说,大部分数据没有标签

所以收集标签数据和从头开始构建一个模型都是代价高昂的,需要对模型和带有标签的数据进行重用

传统机器学习:假设数据服从相同分布,但我们希望针对不同分布的数据,快速构建模型,实现数据标记

迁移学习(transfer learning)通俗来讲,就是运用已有的知识来学习新的知识,核心是找到已有知识和新知识之间的相似性。在迁移学习中,我们已有的知识叫做源域(source domain),要学习的新知识叫目标域(target domain),源域和目标域不同但有一定关联,我们需要减小源域和目标域的分布差异,进行知识迁移,从而实现数据标定。

  • 源域目标域区别:一般目标域相对于源域,在数据分布、特征维度以及模型输出变化条件有不同,有机地利用源域中的知识来对目标域更好地建模。另外,在有目标域标定数据缺乏的情况下,迁移学习可以很好地利用相关领域有标定的数据完成数据的标定。
  • 负迁移:如果源域和目标域之间相似度不够,迁移结果并不会理想,出现所谓的负迁移情况。比如,一个人会骑自行车,就可以类比学电动车;但是如果类比着学开汽车,那就有点天方夜谭了。如何找到相似度尽可能高的源域和目标域,是整个迁移过程最重要的前提。
  • 迁移学习资料库https://github.com/jindongwan...
  • 为什么要进行迁移学习:

  •   数据的标签很难获取
       从头建立模型是复杂和耗时的

二、迁移学习常用概念

  • Domain (域):由数据特征和特征分布组成,是学习的主体
  • Source domain (源域):已有知识的域
  • Target domain (目标域):要进行学习的域
  • Task (任务):由目标函数和学习结果组成,是学习的结果,可理解为分类器
  • 迁移学习条件:给定源域和源域的任务,目标域和目标域的任务,目标:利用源域和源域任务学习目标域预测函数f(),限制条件:源域和目标域不同或源任务和目标任务不同
  • domain adaptation(领域自适应):有标签的源域和无标签的目标域共享一致的类别和特征,但分布不同
  • space coding(稀疏编码):给定一组输入数据向量 { x1,x2,...,xN },去学习一组基字典(dictionary of bases),将每个样本表示为一组基的线性组合,其中这组基较为完备,多于输出,而系数向量则大部分都为 0,所以称为「稀疏」。

  稀疏编码过程:
       1、训练(training):给定一系列的样本图片[x1, x 2, …],我们需要学习得到一组基[Φ1, Φ2, …],也就是字典,这需要不断迭代,目标函数表示为Min |I – O| + u*(|a1| + |a2| + … + |an |)I为输入,O为输出,其后为正则化。
           每次迭代分两步:
               a)固定字典Φ[k],然后调整a[k],使得上式,即目标函数最小(即解LASSO问题)。
               b)然后固定住a [k],调整Φ [k],使得上式,即目标函数最小(即解凸QP问题)。
           不断迭代,直至收敛。这样就可以得到一组可以良好表示这一系列x的基,也就是字典。
        2、编码(Coding):给定一个新的图片x,由上面得到的字典,通过解一个LASSO问题得到稀疏向量a。这个稀疏向量就是这个输入向量x的一个稀疏表达了。

三、迁移学习的分类

按照学习方式分四类

1、基于样本的迁移:通过对源域中有标记样本加权利用完成知识迁移,例如相似的样本就给高的权重

假设:源域中的一些数据和目标域会共享很多共同的特征
   方法:对源域进行样本重新加权,筛选出与目标域数据相似度高的数据,然后进行训练学习
   代表工作:
       • TrAdaBoost [Dai, ICML-07]
       • Kernel Mean Matching (KMM) [Smola, ICML-08]
       • Density ratio estimation [Sugiyama, NIPS-07]
   优点:
       • 方法较简单,实现容易
   缺点:
       • 权重选择与相似度度量依赖经验
       • 源域和目标域的数据分布往往不同

2、基于特征的迁移:通过将源域和目标域特征变换到相同的空间(或者将其中之一映射到另一个的空间中)并最小化源域和目标域的距离来完成知识迁移;目前使用最多也最易于上手完成

假设:源域和目标域仅仅有一些交叉特征
   方法:通过特征变换,将两个域的数据变换到同一特征空间,然后进行传统的机器学习
   代表工作:
       • Transfer component analysis (TCA) [Pan, TKDE-11]
       • Spectral Feature Alignment (SFA) [Pan, WWW-10]
       • Geodesic flow kernel (GFK) [Duan, CVPR-12]
       • Transfer kernel learning (TKL) [Long, TKDE-15]
   优点:
       • 大多数方法采用
       • 特征选择与变换可以取得好效果
   缺点:
       • 往往是一个优化问题,难求解
       • 容易发生过适配

3、基于模型的迁移:将源域和目标域的模型与样本结合起来调整模型的参数;一般来说使用于神经网络,使用较多

 假设:源域和目标域可以共享一些模型参数
   方法:由源域学习到的模型运用到目标域上,再根据目标域学习新的模型
   代表工作:
       • TransEMDT [Zhao, IJCAI-11]
       • TRCNN [Oquab, CVPR-14]
       • TaskTrAdaBoost [Yao, CVPR-10]
   优点:
       • 模型间存在相似性,可以被利用
   缺点:
       • 模型参数不易收敛

4、基于关系的迁移:通过在源域中学习概念之间的关系,然后将其类比到目标域中,完成知识的迁移。

 假设:如果两个域是相似的,那么它们会共享某种相似关系
   方法:利用源域学习逻辑关系网络,再应用于目标域上
   代表工作:
       • Predicate mapping and revising [Mihalkova, AAAI-07],
       • Second-order Markov Logic [Davis, ICML-09]

按迁移情境分三类

  1. 归纳式迁移 (inductive transfer learning):源域目标域学习任务不同但相关
  2. 直推式迁移(transductive transfer learning):源域目标域不同但相关,学习任务相同
  3. 无监督迁移(unsupervised transfer learning):源域目标域及任务均不同但相关,均没有标签

 

按特征空间分两类

  1. 同构迁移学习:特征维度相同分布不同
  2. 异构迁移学习:特征维度不同或特征本身就不同,如图片到文字

迁移学习分类

四、迁移学习热门研究领域

域适配问题 (domain adaptation)

有标签的源域和无标签的目标域共享相同的特征和类别,但是特征分布不同,如何利用源域标定目标域计算机视觉的一个重要问题

解决思路:

  • 数据分布角度:最小化概率分布距离————概率分布适配(distribution adaptation)

       边缘分布适配:目标域数据每类分布图形和源域的看起不一样
       条件分布适配:目标域数据每类分布图形和源域的看起大致一样,但类内分布不一样
       联合分布适配:目标域数据每类分布图形和源域的看起不一样,但类内分布也不一样
       方法:
           基础:大多数方法基于MMD距离进行优化求解
           效果:平衡(BDA)>联合(JDA)> 边缘(TCA)> 条件
       使用:数据整体差异大(相似度低),边缘分布更重要
             数据整体差异小(协方差漂移),条件分布更重要
       最新成果:深度学习+分布适配往往有更好的效果(DDC、DAN、JAN)
  • 特征选择角度:选择源域目标域公共特征,建立统一模型————特征选择法(feature selection)
  • 特征变换角度:把源域目标域变换到公共子空间内————子空间学习法(subspeace learning)

迁移方法

1、基于特征的迁移方法

(TCA)Transfer component analysis [Pan, TKDE-11]

迁移成分分析:将源域和目标域变换到相同空间,最小化它们的距离

TCA算法

 

 其中优化目标表示最小化源域目标域在高维空间的低维嵌入的距离,其后是正则化
       分布距离由MMD求出,当源域数据和目标域数据映射在一个高维完备的希尔伯克空间中,其分布可以用其平均值表示,
       TCA的扩展:
           ACA:最小化MMD,同时维持迁移过程中目标域的结构
           DTMKL:多核MMD,原来有一个k现在有多个k求解
           DDC:MMD加入神经网络(一层)
           DAN:MMD加入神经网络(三层)
           DME:先进行矩阵变换再映射
           CMD:不只一阶的MMD,k阶

 

  • joint distribution adaptation(JDA)

       直接继承于TCA,但是加入了条件分布适配
       联合分布的结果普遍优于单独适配边缘或条件分布
           JDA扩展:
               ARTL:分类器学习+联合分布适配
               VDA:加入类间距的类内距比值
               JGSA:加入类间距,类内距,标签适配(非深度学习效果最好)
               JAN:提出JMMD度量,在深度网络中进行联合分布适配
  • SCL(structural corresponding learning):

    寻找主特征并把源域和目标域对齐
  • Geodesic flow kernel[Duan, CVPR-12]

    利用流形学习,将数据映射到高维空间中,然后测量其距离,使得源域和目标域差异最大
  • Transfer kernel learning [Long, TKDE-15]

    在再生核希尔伯特空间中学习一个领域不变核矩阵,从而实现源域和目标域的适配
  • TransEMDT [Zhao, IJCAI-11]

    首先通过聚类得到初始的目标域决策树模型,然后迭代更新决策树的参数直到收敛为止

2、基于实例的迁移方法:

  • Kernel mean matching [Huang, NIPS-06]

    在再生希尔伯特空间中计算源域和目标域的协方差分布差异,然后用二次规划求解样本权重
  • Covariate Shift Adaptation [Sugiyama, JMLR-07]

    采用自然估计法估计源域和目标域的密度比例,然后进行实例权重的分配,最后迁移

3、基于模型的迁移方法:

  • (ASVM)Adaptive SVM [Yang et al, ACM Multimedia-07]

    使用SVM模型,在适配和原始模型之间学习“数据函数”,达到模型迁移效果
  • Multiple Convex Combination (MCC) [Schweikert, NIPS-09]

    对一些域适配的方法做集成学习
  • Domain Adaptation Machine (DAM) [Duan, TNNLS-12]

 

 

 

 

 

 

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第一部分  NoSQL入门 第1章  NoSQL的概念及适用范围 2 1.1  定义和介绍 3 1.1.1  背景与历史 3 1.1.2  大数据 5 1.1.3  可扩展性 7 1.1.4  MapReduce 8 1.2  面向列的有序存储 9 1.3  键/值存储 11 1.4  文档数据库 14 1.5  图形数据库 15 1.6  小结 16 第2章  NoSQL上手初体验 17 2.1  第一印象——两个简单的例子 17 2.1.1  简单的位置偏好数据集 17 2.1.2  存储汽车品牌和型号数据 22 2.2  使用多种语言 30 2.2.1  MongoDB驱动 30 2.2.2  初识Thrift 33 2.3  小结 34 第3章  NoSQL接口与交互 36 3.1  没了SQL还剩什么 36 3.1.1  存储和访问数据 37 3.1.2  MongoDB数据存储与访问 37 3.1.3  MongoDB数据查询 41 3.1.4  Redis数据存储与访问 43 3.1.5  Redis数据查询 47 3.1.6  HBase数据存储与访问 50 3.1.7  HBase数据查询 52 3.1.8  Apache Cassandra数据存储与访问 54 3.1.9  Apache Cassandra数据查询 55 3.2  NoSQL数据存储的语言绑定 56 3.2.1  Thrift 56 3.2.2  Java 56 3.2.3  Python 58 3.2.4  Ruby 59 3.2.5  PHP 59 3.3  小结 60 第二部分  NoSQL基础 第4章  理解存储架构 62 4.1  使用面向列的数据库 63 4.1.1  使用关系型数据库中的表格和列 63 4.1.2  列数据库对比RDBMS 65 4.1.3  列数据库当做键/值对的嵌套映射表 67 4.1.4  Webtable布局 70 4.2  HBase分布式存储架构 71 4.3  文档存储内部机制 73 4.3.1  用内存映射文件存储数据 74 4.3.2  MongoDB集合和索引使用指南 75 4.3.3  MongoDB的可靠性和耐久性 75 4.3.4  水平扩展 76 4.4  键/值存储Memcached和Redis 78 4.4.1  Memcached的内部结构 78 4.4.2  Redis的内部结构 79 4.5  最终一致性非关系型数据库 80 4.5.1  一致性哈希 81 4.5.2  对象版本 82 4.5.3  闲话协议和提示移交 83 4.6  小结 83 第5章  执行CRUD操作 84 5.1  创建记录 84 5.1.1  在以文档为中心的数据库中创建记录 85 5.1.2  面向列数据库的创建操作 91 5.1.3  键/值映射表的创建操作 93 5.2  访问数据 96 5.2.1  用MongoDB访问文档 96 5.2.2  用HBase访问数据 97 5.2.3  查询Redis 98 5.3  更新和删除数据 98 5.3.1  使用MongoDB、HBase和Redis更新及修改数据 98 5.3.2  有限原子性和事务完整性 99 5.4  小结 100 第6章  查询NoSQL存储 101 6.1  SQL与MongoDB查询功能的相似点 101 6.1.1  加载MovieLens数据 103 6.1.2  MongoDB中的MapReduce 108 6.2  访问HBase等面向列数据库中的数据 111 6.3  查询Redis数据存储 113 6.4  小结 116 第7章  修改数据存储及管理演进 117 7.1  修改文档数据库 117 7.1.1  弱schema的灵活性 120 7.1.2  MongoDB的数据导入与导出 121 7.2  面向列数据库中数据schema的演进 124 7.3  HBase数据导入与导出 125 7.4  键/值存储中的数据演变 126 7.5  小结 126 第8章  数据索引与排序 127 8.1  数据库索引的基本概念 127 8.2  MongoDB的索引与排序 128 8.3  MongoDB里创建和使用索引 131 8.3.1  组合与嵌套键 136 8.3.2  创建唯一索引和稀疏索引 138 8.3.3  基于关键字的搜索和多重键 139 8.4  CouchDB的索引与排序 140 8.5  Apache Cassandra的索引与排序 141 8.6  小结 143 第9章  事务和数据完整性的管理 144 9.1  RDBMS和ACID 144 9.2  分布式ACID系统 147 9.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值