http://www.ai-start.com/dl2017/html/lesson3-week2.html#header-n125
2.7 迁移学习(Transfer learning)
迁移学习:把网络从任务甲中学的的知识(参数)用于任务乙。
举例:已经训练好一个识别猫和狗(任务甲)的网络,现在想做X射线扫描图分类(任务乙)
操作:
首先完全重新初始化最后一层,然后开始训练:
如果你的放射科数据集很小,你可能只需要重新训练最后一两层的权重,就是和并保持其他参数不变。
如果你有足够多的数据,你可以重新训练神经网络中剩下的所有层。
两个概念:之前的猫狗识别任务的训练叫做“预训练pre-training”, 后来放射科的训练叫做"微调(fine tuning)"
为什么这样有用呢?
不同任务,比如任务甲图像识别和任务乙放射科诊断,共享很多低层次特征,比如说边缘检测、曲线检测、阳性对象检测(positive objects)。 算法从一个任务中,可以了解不同图像的组成部分是怎样的,学到线条、点、曲线这些知识,也许对象的一小部分,这些知识有可能帮助你的另一个任务。
另一个例子:
语音处理。已经训练好小爱同学,那么hey siri只需修改最后一层即可。
迁移学习有用的场合: