笔者按 :机器学习正在走向基于“语义”的可解释模型的新时代。迁移学习很有可能接过监督学习今天的辉煌,显著提升模型的可解释性和适应性:不仅在有着大数据的领域性能优异,还能迁移到只有小数据的新领域中表现出色。
CCAI主办方提供了Slides的下载链接。报告分四个主要部分,而本文主要总结和评述前三部分。
1. 迁移学习的优势
2. 深度迁移学习解决方案
3. 三种迁移学习的范式
4. 迁移学习应用案例
报告归纳了三个关键词:小数据、可靠性和个性化,我所归纳的优势就一个词——“适应性”。
1. 适应小数据:迁移学习能够将大数据所训练的学习器迁移到只有小数据的领域。将“大数据帮助小数据”落地。
是不是很熟悉?其实Dr.Fei Sha的报告也同样关注了“小数据学习”的问题,而采用的具体实现手段不同,后者采用的是多任务学习、领域适应和零样本学习。
2. 提升可靠性:迁移学习所训练的模型具有适应性,可以迁移到多个领域而不产生显著的性能下降。
3. 满足个性化:其实也是适应性的体现。例如,每个人的个性化样本可能是小数据,但是在大数据训练出的迁移学习模型基础上,就能很好满足个性化的需求。
既然迁移学习这么好,最有可能接过“监督学习”的接力棒,带动下一轮的机器学习热潮。当然,监督学习还会继续发掘新的领域,而非监督学习和强化学习当然也不甘示弱。
那么,在给出解决方案之前,首先得明确问题:迁移学习的难点是什么?
报告给出的回答是:找出不变量。
什么是不变量呢?
1. 首先,在下面第一张图中给出了个在不同条件下驾驶汽车的例子,无论是驾驶员还是自动驾驶仪,都需要寻找出在不同条件下“驾驶汽车”的共性知识(即不变量),从而快速适应新的条件。
2. 如果推广到一般情况,下面第二张图描述了迁移学习中不变量或者共性知识(Knowledge)的地位,它是源领域和目标领域学习模型(Model)之间建立迁移的桥梁。
接下来,杨强博士介绍了他对不变量的理解和建模,从而引出了他们研究组所提出的”深度学习+迁移学习”的解决方案。
杨强博士认为:迁移学习本质是知识迁移,后者可以转化为参数迁移,而这个参数可以是(深度)神经网络中的权值。
参考DAN(Deep Adaptation Network)[ICML 2015] ,较早些的深度迁移学习工作得出了三条主要结论,并如下图所示。具体的量化分析采用的是最大平均差异Maximum Mean Discrepancy(MMD)。
1. 冻结浅层(Frozen Shallow-Layer):多个领域共享浅层权值,认为浅层权值是具有强适应性的共性知识。
2. 区分深层(Distinguish Deep-Layer for Different Domains):认为深层权值代表了领域知识,因此要把多个领域之间的距离刻画出来。
3. 微调中层(Fine-tune Intermediate-Layer):介于浅层共性知识和深层领域知识之间,通过微调权值以满足对应领域的需求。
在回顾了一系列关于深度迁移模型的量化分析先驱工作后,报告给出对量化迁移学习损失的更深入思考
如果采用普遍适用的损失(Loss)来进行量化,在目标领域的迁移学习所产生的损失可以分解为两部分:源领域分类损失(source domain classification loss)和领域间距离损失(domain distance loss) 。源领域分类损失的量化是传统问题,而领域间距离损失是新问题,对这个问题的理解不仅决定了对迁移学习本质的认识,也决定了迁移学习量化分析的思路,得出不同的迁移学习范式。报告总结了现有工作对领域间距离损失的三种主要理解和对应的范式,如下图所示:
1. 差异损失(discrepancy loss)和基于差异的范式:直接度量和最小化两个领域之间的差异。
2. 对抗损失(adversarial loss)和基于对抗的范式:基于对抗目标(adversarial objective),构建共同的特征空间,设计领域鉴别器(domain discriminator)。
3. 重建损失(reconstruction loss)和基于共享的范式:结合非监督学习和监督学习,建立介于源领域和目标领域之间的共享领域(Intermediate domain),后者作为中介一样承载着知识迁移。
接下来这一节,分别介绍上面三种迁移学习的范式。注:笔者没有按照报告的顺序。
基于差异的范式要回答三个问题:
1. 度量的对象是什么?边缘分布、联合分布等等。
2. 度量的指标是什么?MDD、多核MMD(MK-MMD)、联合分布差异(JDD)等等。
3. 在深度神经网络中何处调节参数?其中某一层或者某些层。
随后报告给出了在计算机视觉、自然语言处理中的迁移学习和多模态迁移学习的案例,并强调了正则化的重要性,具体可参见[Slides]的22-25页。
这个范式基于生成对抗网络(GAN)设计迁移学习(具体参见这儿)。其基本思想是设计和训练两套学习器:生成器G和分类器D,基于G生成新的样本,基于D分辨生成样本的质量,通过G和D之间的博弈交互提升G和D的性能。笔者将报告中的两种思路凝练为:基于领域正逆映射和共性特征提取的思路。
报告以CycleGAN为代表[ICCV 2017]描述了第一种思路:
1. 跨领域的特征空间和映射:将源领域到目标领域的映射建模为生成器G,同时对应一个逆向映射F。
2. 构建对抗目标:在目标领域设计和训练分类器,用于检测从源领域到目标领域的迁移学习损失。CycleGAN的有意思之处是还设计从目标领域到源领域的反向迁移和分类器。如果从目标领域逆向迁移回源领域后,生成的样本仍能达到较好的效果,那就说明迁移的效果很好。
4. 迁移学习损失度量:包括了正向映射和逆向映射产生的对抗损失(adversarial loss),以及环路一致性损失(cycle-consistency loss)。具体流程如下图所示。
报告以对抗领域适应(Adversarial domain adaptation)为代表[JMLR 2016]描述了第二种思路:
1. 双支路对抗架构:第一条支路包括了特征提取器(feature extractor)和标签预测器(label predictor),构成了一个标准的前馈结构。第二条支路共享了第一条支路的特征提取器,通过一个梯度反向层(gradient reversal layer)接入一个领域分类器(domain classifier),因此其关键是在反向BP训练时,梯度被乘以一个负的常数,从而引入了对抗。
2. 对抗训练效应:如果不加入梯度反向层,双支路架构就是个标准的多功能网络,同时降低标签预测和领域分类的损失。但是因为架构中加入了对抗用的梯度反相器,训练结果是“即使两个领域有差别,双支路对抗网络在特征提取器的输出是几乎相同的”。于是,特征提取器(feature extractor) 输出的是与领域无关的不变量。
关于基于共享的范式,杨强博士对自己实验室的工作[KDD 2015]作了较为详细的介绍,笔者补充了[ECCV 2016]
基本架构如下图所示,包括了输入输出定义,以及中间领域选择和知识迁移两个步骤,具体请参见[KDD 2015]。
1. 输入:源领域、目标领域和候选的中间领域
2. 输出:目标领域的预测结果
3. 中间领域选择:中间领域的候选和选择策略与问题相关。例如,源领域是图像数据,目标领域是文本数据,那么候选中间领域可能是文本的、图像的以及两者混杂的领域。一种可能做法就是在Flickr爬取部分标记图片作为中间领域,帮助源领域到目标领域的迁移。
4. 知识迁移:与源领域和目标领域相比,所选择的中间领域仍然存在分布偏移(distribution shift),因此,[KDD 2015]提出了一种可操作的非负矩阵分解方法,可以实现特征聚类(feature clustering)和标签传递(label propagation)。通过这种方法可以消除中间领域的分布偏移,并建立从源领域特征到目标领域输出之间的传递关系。
[KDD 2015]中的共享可以认为是从中间领域的共享数据出发,挖掘源领域到目标领域的迁移关系,最终获得合适的参数质量。对比之下,[ECCV 2017]中的共享可以认为是直接从中间领域的共享参数出发,挖掘迁移关系,基于重构数据提升共享参数质量,如下图所示。
架构中包括了两条支路:其中一条是基于监督学习的标签预测,另一条是基于非监督学习的数据重构,而两条支路共享参数。虽然这个双支路架构与双支路对抗架构很像,但是有根本的差别,前者基于共享的思想,后者基于对抗的思想。
报告内容很丰富,这里简要回顾所介绍了三种度量损失(Loss)思想和对应的迁移学习范式:基于差异的范式,基于对抗的范式和基于共享的范式。如果要用更为简单的语言,去理解上述三种范式中多个领域关系的解读,或许分别可以称为“异中求同”、“同中求异”和…..“找些中介”。
第四部分介绍了杨强博士的学生所做的数个应用案例:
1. 大额消费金融和跨领域舆情分析
2. 互联网汽车分类
CCAI公众文已经进行了详细阐述,另外详见Slides 的36-45页,请移步予以参考并查阅杨强博士的具体论文。
[ICML 2015] Learning transferable features with deep adaptation networks
[KDD 2015] Transitive Transfer Learning
[JMLR 2016] Domain-adversarial training of neural networks
[ECCV 2016] Deep reconstruction-classification networks for unsupervised domain adaptation
[ICCV 2017] Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks