当前学界最火热当非深度学习莫属,然而深度学习往往需要大量数据才能work,这跟人的学习方式还是有很大的区别——人类具有具一反三,推理学习的能力。目前人工智能的水平离人类的水准还是有相当长的一段距离。
其实,由于深度网络强大的学习特征的能力,很多过去的学习范式都陆续与深度学习结合起来,很大得推动了对应领域的发展。比如Bayesian Deep Learning, Reinforcement Learning。这是两个个人非常看好的方向。
这里引用杨强教授的一页ppt:机器学习的昨天,今天,明天
很多人都在质疑深度学习还能火多久,个人看来,深度学习还存在很多未解决的问题,很多方向都还只是刚刚开始。
好,言归正传,所谓迁移学习,或者领域适应,一般就是要将从源领域【Source Domain】学习到的东西应用到目标领域【Target Domain】上去。源领域和目标领域之间往往有gap/domain discrepancy【源领域的数据和目标领域的数据遵循不同的分布】。
迁移什么,怎么迁移,什么时候能迁移,这是迁移学习要解决的主要问题。目前大多数论文都关注在迁移什么和怎么迁移上面,然而什么时候才能进行迁移也是很关键的一点,要做工程上的验证【笔者也不知道这一步要怎么做,望有前辈不吝赐教】。
更为严重的是,如果迁移的“姿势”不对,则很有可能会产生负迁移【negative transfer】,也就是只用target domain做比加上source domain数据做更好。AFAIK,目前并没有很好的解决办法...
根据迁移的层次不同,可以分成以下几个类别:
1. Instance-based Transfer Learning
一般就是对样本进行加权,给比较重要的样本较大的权重
2. Feature-based Transfer Learning
在特征空间进行迁移,一般需要把源领域和目标领域的特征投影到同一个特征空间里进行
3. Model-based Transfer Learning
整个模型应用到目标领域去,比如目前常用的对预训练好的深度网络做微调。也可以叫做参数迁移吧
4. Relational Transfer Learning
关系的迁移,也是最近刚听到的概念,目前还没看过相关论文,暂不妄论。
根据源和目标领域是否相同、源和目标任务是否相同、以及源和目标领域是否有标注数据,又可以把迁移学习分成如下图所示:
一些前沿的迁移学习方向
Source-Free Transfer Learning
不知道是哪个源领域
Transitive Transfer Learning
传递性迁移学习,两个domain之间如果相隔得太远,那么我们就插入一些intermediate domains,一步步做迁移
Reinforcement Transfer Learning
怎么迁移智能体学习到的知识:比如我学会了一个游戏,那么我在另一个相似的游戏里面也是可以应用一些类似的策略的
关于迁移学习的综述,可以参考
A Survey on Transfer Learning_TKDE10
才疏学浅,所写恐难免有疏漏,望海涵指正!