深度学习主要强调特征,强化学习主要强调反馈,迁移学习主要强调适应。
之前已经介绍过,人工智能的机器学习算法有五大类。详情请参考相关文章。今天我们将重点讨论第六类——迁移学习。^_^
传统的机器学习是种瓜得瓜,而迁移学习可以举一反三,互惠互利。
人工智能的竞争,从算法模型的研发竞争,到数据和数据质量的竞争,这些成功的模型和算法主要是由监督学习驱动的,监督学习对数据极度饥渴,需要海量数据(大数据)的支持才能达到应用的精准要求。人工智能的发展趋向于在不需要海量数据的情况下满足应用的精准需求,因此“小数据学习”正在成为新的热点。以迁移学习和强化学习为代表的小数据学习技术更能体现人工智能的未来。有专家表示,在监督学习之后,迁移学习将引领机器学习技术商业化的下一波浪潮。
迁移学习的概念自1995年在NIPS5研讨会上提出以来,一直受到学术界的广泛关注。迁移学习的定义过于宽泛,相关研究中已经出现了很多专门的术语,如学会学习、终身学习、多任务学习、元学习、归纳迁移、知识迁移、情境敏感学习等等。其中,迁移学习与多任务学习的关系最为密切。多任务学习可以同时学习许多不同的任务,并从中发现隐藏的共同特征,以帮助单个任务的学习。
什么是迁移学习?迁移学习TL(Transfer Learning)就是将训练好的模型参数迁移到新的模型中,帮助新的模型训练。考虑到大部分数据或任务是相关的,我们可以通过迁移学习,将学习到的模型参数以某种方式与新模型共享,从而加快和优化模型的学习效率。
迁移学习的基本动机:迁移学习的基本动机是试图将从一个问题中获得的知识应用到另一个不同但相关的问题中。比如一个精通c++语言编程的程序员,可以很快学会并掌握JAVA语言。在某种程度上,机器学习中的迁移学习与心理学上的“学习能力的迁移”有关。在人类进化中,这种能力的转移和学习是非常重要的。比如人类学会骑自行车后骑摩托车容易,人类学会打羽毛球后学打网球容易得多。人类可以将过去的知识和经验应用于不同的新场景,因此具有一种适应能力。
迁移学习的主要类别的方法:1)案例加权法:以某种方式计算来自源领域的训练样本的权重,以确定每个样本在训练过程中的重要性。
2)共同特征学习法:通过几个共同特征在源领域和目标领域之间传递有用的知识。
迁移学习的重要性:1)从数据上看,数据为王,计算是核心,但是数据不够或者收集数据比较费时,数据标注比较困难,用数据训练模型比较繁琐。机器学习怎么做?迁移学习适合小数据场景;
2)从模型上看:云端融合的模型应用广泛,需要对设备、环境、用户做具体的适配。个性化模型的适配非常复杂,需要不同的方式来处理用户隐私。迁移学习适合个性化。
3)从应用角度:机器学习应用中的冷启动问题,推荐系统没有初始用户数据,因此无法准确推荐。迁移学习可以解决冷启动问题。
迁移学习可以减少对校准数据的依赖,通过与已有数据模型的迁移,更好地完成机器学习任务。
迁移学习的实现方法:1)基于样本的迁移学习:在数据集(源域)中找到与目标域相似的数据,将这些数据相乘,匹配目标域中的数据。其特点是:不同的例子需要加权;需要用数据进行训练。一般来说,对样本进行加权,越重要的样本被赋予越大的权重。
2)基于特征的迁移学习:通过观察源域图像和目标域图像之间的共同特征,然后利用观察到的共同特征在不同层次的特征之间自动迁移。在特征空间中迁移时,一般需要将源域和目标域的特征投影到同一个特征空间中。
3)基于模型的迁移学习:使用数千万张图像训练一个图像识别系统。当你遇到一个新的图像场,你不需要找几千万个图像来训练。你可以把原来的图像识别系统迁移到一个新的领域,这样你在新的领域只需要几万张图像就可以得到同样的效果。模型迁移的一个好处就是可以区分,也就是可以和深度学习结合,可以区分不同层次的迁移程度,那些相似度较高的层次更容易被迁移。
4)关系迁移学习:利用源域学习逻辑关系网络,然后应用到目标域。比如社交网络,社交网络之间的迁移。
迁移学习工具:NanoNets是一个简单方便的基于云的迁移学习工具,它包含一组预训练模型,每个模型都有数百万个训练好的参数。用户可以上传自己的数据或通过互联网进行搜索。NanoNets会根据要解决的问题自动选择最佳的预训练模型,并基于该模型构建一个NanoNets,并使其适应用户的数据。NanoNets和预训练模型的关系如下图所示。
迁移学习发展:1)结构和内容分离:当面对一个机器学习问题,想找到不同问题之间的共性时,那么问题的结构和内容是可以分离的。虽然这种分离并不容易,但是一旦完成,系统就有非常强的举一反三的能力。
2)多层次特征学习:把问题分成不同的层次,有些层次会更容易帮助机器学习的迁移。有了这种分层迁移学习,不同层次有不同的迁移能力,于是就有了对不同层次迁移能力的定量估计。当我们需要处理新的任务时,可以固定一些区域或者一些层次,用小数据训练其他区域,这样就达到了迁移学习的效果。
3)多步及传递性学习:从旧的领域到新的领域,从一个数据多的领域到一个数据少的领域,这叫单步迁移。很多场景需要分阶段进行多步导电迁移,可以构建一个深度网络,这个网络中间层可以兼顾目标和原域。如果有一些中间字段,那么它们可以一步一步地连接原始字段和目标字段。您可以定义两个目标函数。当两个目标函数一起工作时,一个优化最终目标,另一个选择样本。通过这种迭代,原始域中的数据将从多步迁移到目标域。
4)学习如何迁移:给定任何一个迁移学习问题,系统都能在过去尝试过的所有算法中自动找到最合适的算法,可以基于特征、多层网络、样本或某种混合。或者总结经验,训练一个新的算法。这个算法的老师就是这些机器学习算法,文章,经验,数据。所以,学会迁移就像学会学习一样,是学习的最高境界,也就是学习方法的习得。
5)迁移学习作为元学习:迁移学习本身作为一种元学习方法被赋予不同的学习方法。假设过去有一个机器学习的问题或者模型,现在只要给它盖上迁移学习的盖子,它就可以变成迁移学习的模型。
6)数据生成迁移学习:对于生成式对抗网络,图灵测试外面的裁判是学生,里面的机器也是学生。两个人的目的是在对抗中共同成长,双方不断刺激对方形成对抗(共同学习特征)。小数据可以生成大量的仿真数据,通过仿真数据判断真假,刺激生成模型的生长。通过小数据可以产生更多的数据,在新的领域可以实现迁移学习的目的。
近年来,迁移学习技术在机器学习和数据挖掘领域得到了深入研究。
结论:
随着近年来机器学习的热潮,迁移学习已经成为目前最热门的研究方向。机器学习未来的发展是基于小数据、个性化、可靠性,也就是迁移学习。迁移学习体现了人类特有的类比能力,是一种“举一反三”的发散思维。迁移学习已经广泛应用于各种人工智能机器学习应用场景。
标签:数据机器学习