3.4 失败的迁移:负迁移
我们都希望迁移学习能够顺利进行,得到满足要求的结果,这样皆大欢喜。然而,事情并不总是那么顺利。这就引入了迁移学习中的一个负面现象,也就是负迁移(Negative Transfer)。
用熟悉的成语来描述:如果说成功的迁移学习是“举一反三”“照猫画虎”,那么负迁移则是“东施效颦”。东施已经模仿西施捂着胸口皱着眉头了,为什么她还是那么丑?
要理解负迁移,首先要理解什么是迁移学习。迁移学习指的是利用数据和领域之间存在的相似性关系,把之前学习到的知识,应用于新的未知领域。迁移学习的核心问题是,找到两个领域的相似性。找到了这个相似性,就可以合理利用,从而很好地完成迁移学习任务。比如,之前会骑自行车,现在要学习骑摩托车,这种相似性指的就是自行车和摩托车之间的相似性以及骑车体验的相似性。这种相似性在我们看来是可以接受的。
所以,如果这个相似性找的不合理,也就是说,两个领域之间不存在相似性,或者基本不相似,那么,就会大大影响迁移学习的效果。还是拿骑自行车来说,你要用骑自行车的经验来学习开汽车,这显然是不太可能的。因为骑自行车和开汽车之间基本不存在相似性。所以,这个任务基本上无法完成。这时,我们可以说出现了负迁移。
所以,为什么东施和西施做了一样的动作,反而变得更丑了?因为东施和西施之间压根就不存在相似性。
通俗来说,负迁移指的是在源域上学习到的知识,对于目标域上的学习产生负面作用。也就是说,使用迁移学习比不用迁移学习取得的效果更差。负迁移的形式化定义如下。
定义5 用来表示目标域和源域使用迁移学习算法A产生的误差(Error),用ϕ来表示空集合,当下列条件满足时,发生负迁移:
其中A′表示另一算法,表示不经过迁移学习的误差。
产生负迁移的原因主要有:
• 数据问题:源域和目标域压根不相似,谈何迁移?
• 方法问题:源域和目标域是相似的,但由于迁移学习方法不够好,导致迁移失败。
负迁移给迁移学习的研究和应用带来了负面影响。在实际应用中,找到合理的相似性,并且选择或开发合理的迁移学习方法,能够避免负迁移现象。
随着研究的深入,已经有新的研究成果在逐渐克服负迁移的影响。杨强教授团队于2010年在AAAI大会上提出了Adaptive Transfer Learning的概念[Cao et al.,2010],并于2015年在KDD大会上提出了传递迁移学习(Transitive transfer learning)[Tan et al.,2015],又在2017年提出了远领域迁移学习(Distant domain transfer learning)[Tan et al.,2017],可以用在人脸数据上训练的模型来识别飞机。这些研究使得迁移学习可以在两个领域存在弱相似性的情况下进行,进一步扩展了迁移学习的边界。
我们用图3.3的“青蛙过河”游戏来解释传递迁移学习。在正常情况即河流不至于过宽时,青蛙可以直接跳跃到河流对岸;而异常情况即河流很宽、无法直接跳跃到河流对岸时,聪明机智的小青蛙可以利用河流中间一些大的叶子,巧妙地施展连环跳跃,最终成功到达对岸。类比迁移学习,河流两岸为源域和目标域,河流宽度即为两个领域的相似性,青蛙完成过河操作即为完成迁移学习。当河流不宽时,意味着两个领域相似性很大,此时可以正常地进行迁移;而当河流较宽时意味着两个领域相似性较小,此时无法通过一次迁移来完成迁移任务。因此,传递迁移学习就相当于寻找河流中这些有益的“支撑点”,从而更好地完成这种情况下的迁移学习。
图3.3 青蛙过河:负迁移与传递迁移学习
卡耐基·梅隆大学的研究团队对负迁移进行了理论分析并提出了对应的解决方案[Wang et al.,2019g]。来自华中科技大学的研究团队发表了一篇关于负迁移的综述文章[Zhang et al.,2020a],从负迁移的产生原因、解决方案、可能的应用等方面进行了详细的探讨。该成果指出,当源域数据质量过差、目标域数据质量过差、领域分布差异过大以及学习算法不够好的任意情况下,均有可能发生负迁移。由此出发,文章详细介绍了研究人员为了避免出现负迁移所做的努力,感兴趣的读者可以进一步关注。