迁移学习定义:
潜移学习就是利用数据、任务或模型之间的相似性,将在旧的领域学习或训练好的模型,应用于新的领域这样一个过程。两个任务的输入属于同一性质:要么是图像、要么同时语音或其他。
使用情况:
1、当拥有海量的数据资源时,可以不需要使用迁移学习,机器学习很容易从海量数据中学习到鲁棒性很强的模型。但通常情况下,我们需要研究的领域可以获得数据极为优先,在少量的训练样本上精度极高,但是繁华效果极差。
2、训练成本,很少从头开始训练一整个深度卷积网络,从头开始训练一个卷积网络通常需要较长时间且依赖于强大的GPU计算资源。
方法:
常见方法微调即fine tuning,Pre-trained预训练模型,fine tuning微调后的模型
1、调整参数不需要过多调整
2、调整模型结构微微调整
过程:
举例假设有两个任务任务A和任务B,任务A拥有海量的数据资源且已经训练好,但并不是目标任务,任务B是目标任务。而B任务假设是某个具体场景如250个类别的食物识别,那么该怎么做:
1、建立起自己的网络,在A的基础上,修改最后的输出结构,并加载A的模型参数
2、根据数据大小调整
如果B任务数据量小,那么可以选择将A模型的所有层进行freeze(可以通过Tensortrainable=false参数来实现),而剩下的输出层部分可以选择调整参数训练。
如果B任务的数据量大,那么可以将A中一半或是大部分的层进行freeze&#x