伪文艺程序员的“迁移学习”啃读(C)
本文对ICML 2018杨强老师团队的一篇文章《Transfer Learning via Learning To Transfer》进行梳理总结。
先回顾一下迁移学习的主要思想来源:人本身具有迁移知识的能力,比如羽毛球运动员可以更好更快地掌握网球的技巧,因此我们希望机器也具有这种迁移的能力,将以往训练模型学习到的知识在新的领域加以应用。
那么这篇文章的出发点又是什么呢?比如我们现在需要在羽毛球运动员、游泳健将和教授这三人中选择一位来从事网球运动,我们会选谁呢?当然,根据历史经验,我们会选择羽毛球运动员。注意这里的历史经验,可能是下面的一些历史观察:
羽毛球运动员 转职 网球运动员 适应时间 3个月
游泳健将 转职 网球运动员 适应时间 6个月
教授 转职 网球运动员 适应时间 12个月
可以看出,通过历史的“转职”数据,可以在新的“转职”场景下加以应用,比如选择羽毛球运动员来从事网球运动,可能需要的时间成本会小很多。迁移就类似于“转职”,要选择最合适的东西迁移。
本文就是通过历史的迁移信息,包括迁移的数据、迁移的东西等来拟合迁移的效果提升,从而在新的迁移任务到来时,直接优化最优的迁移内容,使得性能提升最大。
这篇文章提供了一种算法L2T来决定迁移过程中怎样迁移(How)以及迁移什么(What)的问题。迁移学习里面还有一个重要的问题就是什么时候迁移(When),这个问题这篇工作并没有涉及。
这篇文章提出了L2T的学习框架,和迁移学习(Transfer Learning)、多任务学习(Multi-Task Learning)、终生学习(Life-Long Learning)有一定的关联和区别,用下面的图来解释:
迁移学习指的是在Task1上训练,然后到Task2上测试,主要目的是提升Task2的性能,并且只局限于当前这一组迁移任务
多任务学习是在 N 个任务上同时学习,训练和测试都在这 N 个任务上,目的是为了提升这 N 个任务的性能
终生学习是指的任务是在线源源不断地过来的,可以抽象为学习了 N 个任务之后,要在第 N + 1个任务上提升性能
而L2T则是根据历史的迁移任务,Task1->Task2,Task3->Task4等等迁移信息,目的是为了提升Task 2N+1到Task 2N+2的性能
可以看出,如果L2T不使用历史的迁移任务的信息,那么只从Task 2N+1到Task 2N+2的过程是Transfer Learning要做的事情,此时由于没有任何信息,所以只能将所有迁移算法和各种参数跑一遍进行试错调优,需要大量的计算资源和时间成本;但是,有了历史的迁移信息之后,就有一些经验知识了,针对不同的数据选择合适的迁移内容(What to transfer)。
上面大概就是文章的出发点,下面来看具体操作过程。具体过程分为两个阶段,分别对应了上图的训练和测试阶段:
Stage A : Learning transfering skills from previous transfer learning experiences.
Stage B : Applying those skills to infer what and how to transfer for a future pair of source and target domains.
然后文章的架构示意图为:
可以看出,L2T分为训练和测试两个部分。在训练的时候,保存以往的迁移轨迹,记为三元组信息 ,其中第一部分 指的是Source Domain和Target Domain的数据信息, ;第二部分指的是算法(How and What to transfer),这篇文章选择的算法都是基于Feature进行迁移的,所以用特征变换矩阵 来代替 ;第三部分 表示的是使用Source Domain迁移之后相较于不迁移的性能提升程度。
训练过程就是要建立一个 的映射 ,这样当一组新的迁移任务 到来时,就可以优化 ,使得 的值最大,即使得迁移带来的性能提升最大。而优化 的过程就是决定如何迁移(How)、迁移什么(What)的过程。
下面看训练过程,训练过程是给定历史迁移任务的数据,即 个三元组 ,优化目标为:
上述式子可能有点复杂,可以慢慢分析。
首先上述优化目标的主要目的是通过 来拟合 ,式子的 是Huber损失,让 逼近 。其中 ,下面就看这个式子的具体含义,首先可以肯定的是这个值和迁移性能大概是成反比对应的。
文章指出,迁移性能的提升大小和两方面因素有关系:1. Source Domain和Target Domain的距离;2. 目标域的可判别性。如果SD和TD的距离越小,目标域的可判别性越大,那么迁移性能可能的提升空间就会很大。所以可以把上面的 分解为三部分:
三部分分别是两个域的距离,目标域的可判别性和偏置。下面分别来看一下这些个是如何参数化的。
第一项,两个域之间的距离,使用MMD(Maximum Mean Discrepancy)度量,公式为:
其中 是希尔伯特空间的映射,有 。根据之前的假设,迁移什么(What)是通过特征变换矩阵 定义的,即默认Source Domain和Target Domain经过这一矩阵变换得到的数据是在同一子空间(Common Latent Space)的,因此计算这个子空间里面的MMD距离便得到:
如果经过 变换后,SD和TD在共同子空间的MMD距离非常小的话,那么潜在的迁移性能提升会比较大。但是上述的计算需要选择一个合适的核函数 ,文章为了避免这个问题选择了多核的技巧,即 ,每个核函数 可以计算得到上面的一个距离 ,那么最后得到的距离就是:
这就是 的第一部分,第二部分则是计算两个域之间两两样本距离的方差,这部分比较复杂,公式比较多,直接截图如下,下面主要是介绍了 是如何计算出来的:
总之,两个Domain在子空间的距离一定程度上会影响迁移的性能。
此外,目标域本身的可判别性则一定程度上也会影响迁移的性能,判别性越高,可迁移性越强。可判别性的衡量指标是:原空间距离接近的样本映射到子空间的距离依旧比较小;距离大的仍然很大。因此定义下面的指标:
其中:
那么相应地对于 个核函数有:
至此可以优化求解得到上面的各个参数 ,那么在测试过程,优化:
具体优化过程可以对上述公式展开得到和 有关的式子,还可以加入正则化项 ,使用共轭梯度下降算法(Conjugate Gradient Descent)优化求解。
得到 之后,就得到了投影矩阵,因此可以将SD和TD的数据都投影到同一子空间,即完成分布对齐(迁移)的过程。
最后,文章的实验过程就不展示了。总结一下本文,本文应该是一篇开创性的工作,利用了以往的迁移经验来指导后续的迁移任务,文章读起来不难理解,主要是想法很好。
注:文中图片来自于如下论文
《Ying Wei, Yu Zhang, Junzhou Huang, Qiang Yang: Transfer Learning via Learning to Transfer. ICML 2018: 5072-5081》
作者:李新春
————————
计算机软件新技术国家重点实验室
伪文艺程序员
既可提刀立码,行遍天下
又可调参炼丹,卧于隆中
- 点赞
- 收藏
- 关注作者
评论(0)