迁移学习
先挖个坑,以后慢慢填,这个内容让我联想到前不久华为无线指标预测的项目。
引言
首先学术界的问题定义:有两个数据集,一个是大一些的数据集叫source,还有一个是小一些的数据集叫target,我们的目的是希望通过某种相似性,把source上的知识迁移到target上,能让target数据集上的模型更好。知识迁移的两种基本思路,一个是借数据,借数据的思想是说source上有一些数据可以适当转换一下拿过来和target上的数据一起训练;一个是借参数,借参数的思想是说source上训练出来的模型的参数可以改改给target用。其中instance-base和feature-base都是借数据的思想,而parameter-base是借参数的思想。
Instance Base和Feature Base的本质都是Target样本不够,需要借数据,适用场景为Model初始阶段, 只有Target自身样本的增加能显著带来auc提升,instance base/feature base才有可能有效果。 原因是借来的样本本身会带来一定的噪音,没有很完美的方案解决,因此学术界用instance/feature base解决的都是target上没有label的case,如果target上本身的数据的增加对auc都无帮助,那么带有噪音的数据就更不会有好的收益。
Parameter Base的本质是Source和Target在参数上有一定的相似性,因此即使样本足够,parameter base也可能会带来增益,原因是如果真的具有相似性,数据充分的source训练的参数更稳定,在此基础上针对target的数据做微调有助于提升target参数的稳定性。在source训练的时候,只训练“可迁移”的特征,也就是common-part的部分,在target上再把所有特征带进去训练,这样就能近似保证common-part一样,individual-part有一定的差异。具体框架可以是这样: 1、在source上训练出参数,由于source的数据多,所以这个参数variance会比较小,但是如果作为target上的参数,会带来一些bias2、因此我们在该参数的基础上,对target的数据再做一次训练,目标函数有两部分,第一部分为新参数在source上的拟合,第二部分为新参数在target上的loss及其约束。