迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。
迁移学习准确的定义为:
给定由特征空间X和边缘概率分布P(X)组成的源域(source domain)$D_s$和学习任务$T_s$,和同样由特征空间和边缘概率分布组成的目标域(target domain)$D_t$和学习任务$T_t$,迁移学习的目的在于利用$D_s$和$T_s$中的知识来帮助学习在目标域$D_t$的目标函数$f_T(·)$的过程,注意$D_s$与$D_t$不相等、$T_s$与$T_t$不相等。
由下图可以看出迁移学习和传统机器学习的区别,在传统机器学习的学习过程中,我们试图单独学习每一个学习任务,即生成多个学习系统;而在迁移学习中,我们试图将在前几个任务上学到的知识转移到目前的学习任务上,从而将其结合起来。
[图片来源:Pan, S. J., & Yang, Q. (2010). A survey on transfer learning. IEEE Transactions on Knowledge and Data Engineering, 22(10), 1345–1359.]
迁移学习在深度学习上的应用有两种策略,但目前这两种策略的命名还没有统一。一种策略是微调(finetuning)——其中包括使用基础数据集上的预训练网络以及在目标数据集中训练所有层;另一种则是冻结与训练(freeze and train)——其中包括冻结除最后一层的所有层(权重不更新)并训练最后一层。当然迁移学习并不仅仅局限于深度学习,但目前在深度学习上的应用确实很多。
[描述来源:Soria E.; Martin J.; Magdalena R.; Martinez M.; Serrano A.(2009). Handbook of Research on Machine Learning Applications. IGI Global. ]
[描述来源: Pan, S. J., & Yang, Q. (2010). A survey on transfer learning. IEEE Transactions on Knowledge and Data Engineering, 22(10), 1345–1359.]
发展历史
描述
最早在机器学习领域引用迁移(transfer)这个词的是Lorien Pratt,他在1993年制定了基于可区分性转移(DBT)算法。但在一段时间内,有关迁移学习的研究的名字各不相同,有learning to learn, knowledge transfer, inductive transfer, multi-task learning等等。1997年,机器学习(Machine Learning)杂志发表了一篇专门讨论转移学习的专题,到1998年,迁移学习已经成为了比较完整的学习领域,包括多任务学习(multi-task learning),以及对其理论基础的更正式分析。
2005年,Do和Andrew Ng探讨了在文本分类中应用迁移学习的方法,2007年Mihalkova等学者开发了用于马尔可夫逻辑网络(Markov Logic Networks)的转移学习算法。同年,Niculescu-Mizil等学者讨论了迁移学习在贝叶斯网络中的应用。2012年Lorien Pratt和Sebastian Thrun出版了Learning to Learn,对迁移学习的发展进行了回顾。
在深度学习大行其道的今天,由于神经网络的训练越来越费时,同时其需要的数据集大小也不是在所有情况下都能满足的,因此使用已经训练好的神经网络进行其他任务变得越来越流行,迁移学习也变得越来越重要。2016年Andrew Ng在 NIPS 2016大会上提出迁移学习是机器学习获得商业上的成功的下一个动力。
主要事件
1993 | Lorien Pratt在机器学习领域引用迁移这个词 | Pratt L. Y. (1993).Discriminability-based transfer between neural networks.NIPS Conference: Advances in Neural Information Processing Systems 5.pp. 204–211. |
1997 | 机器学习(Machine Learning)杂志发表了一篇专门讨论转移学习的专题 | Pratt L. Y.; Thrun S. (1997).Machine Learning - Special Issue on Inductive Transfer. Springer. |
2005 | Do和Andrew Y. Ng探讨了在文本分类中应用迁移学习的方法 | Do, Chuong B.; Andrew Y. Ng.(2005). Transfer learning for text classification. NIPS*2005 Online Papers. |
2007 | Mihalkova等学者开发了用于马尔可夫逻辑网络(Markov Logic Networks)的转移学习算法 | Mihalkova L.; Huynh T.; Mooney R. J. (2007),Mapping and Revising Markov Logic Networks for Transfer.Learning Proceedings of the 22nd AAAI Conference on Artificial Intelligence (AAAI-2007).pp. 608–614, |
2007 | Niculescu-Mizil等学者讨论了迁移学习在贝叶斯网络中的应用 | Niculescu-Mizil, A.; Caruana R. (2007), Inductive Transfer for Bayesian Network Structure Learning. Proceedings of the Eleventh International Conference on Artificial Intelligence and Statistics (AISTATS 2007). |
发展分析
瓶颈
目前关于迁移学习的研究方兴未艾,因此与其说是瓶颈,以下提到的几点更算是目前迁移学习应用中的难点。其一,如何在现有的训练好的模型中选择合适当前任务的模型;其二,如何确定还需要多少数据来训练模型;其三,预训练应该在什么时候停止;其四,当出现新的数据或更好的算法,如何更新预训练模型。
未来发展方向
有关神经网络的迁移学习是一个热点,上文提到的几个难点,以及强化学习的迁移学习等都有很多相关研究。
Contributor: Yuanyuan Li