学习范式
迁移学习(transfer learning)
/ TRANS-fer LER-ning /
一个已经会弹钢琴的人,上手管风琴会比纯新手快得多——多年练就的识谱、节奏和手指控制都能带过去。迁移学习就给了机器同样的「起跑优势」:你不必为每个新任务都从零训练一个模型,而是拿一个已经在某个相关的大任务上学过东西的模型,把它改造来对付你那个较小的任务。
实践中,你从一个在巨型数据集上预训练过的模型起步——比方说数百万张通用图片,或一大堆文本。它学到的东西多半是通用的:图像里的边缘和纹理,文本里的语法和词义。你把这些保留下来,只重新训练最后几层,或者对整个模型轻轻一推,让它在你自己那份不大的数据上学。这一步叫做微调。因为模型已经懂得基础,它要在你那项具体任务上变得拿手,所需的数据和算力都少得多。
迁移学习是现代机器学习里最有用的点子之一,也正因为它,一支小团队才能用几百个例子就训出一个不错的分类器。要诚实地提个醒:它只在原任务与你的任务足够相关、借来的知识真能用得上时才奏效。把一个在照片上训练的模型迁到医学影像,也许有帮助——也可能把某些误导它的假设一并带过去。两个领域离得越远,迁移就越弱,有时甚至帮倒忙。
一家初创公司想区分健康与染病的葡萄叶,手头却只有800张照片。从零训练一个网络会严重过拟合。于是他们拿来一个在数百万张日常图片上预训练过的网络,冻住它前面的层,只在那800张叶片上重新训练最后的分类器。效果不错——预训练的那些层早就懂得边缘、形状和纹理了。
复用通用知识,只微调任务相关的那一部分。
源任务与目标任务越相关,迁移帮助越大;领域差异极大时,它可能把错误的假设一并迁过去,反而有害——即「负迁移」。决定它划不划算的是相关性,而非单看模型大小。
又称
另见