首先,我说一下自己看了几篇文章后的理解。
我觉得迁移学习的目的就是为了减少工作量,提高效率,避免做重复累赘的工作。
这就跟我们在实际项目迭代开发时一样,假如老板突然提了一个新的需求,要你重做一个系统,你不可能又重新开始设计,然后编码吧。。。 肯定得在之前做的系统上进行迭代开发,修修改改,然后提交给老板看。等测试系统上线之后,再根据不同的反馈进行代码调整。
迁移学习的目的也正是如此,如果两个模型之间有很多相似之处,那为什么不直接将这个模型的一些方法(例如:特征提取方法等)直接迁移过来呢,然后在此基础上再进行模型训练,测试。这必然会使工作量大大减少,使得开发人员能有更多的精力投入于怎么样将这个模型的准确度,泛化能力等提高。
迁移学习的实现方法有以下四种:
1.样本迁移(Instance-based Transfer Learning)
样本迁移即在数据集(源领域)中找到与目标领域相似的数据,把这个数据放大多倍,与目标领域的数据进行匹配。其特点是:需要对不同例子加权;需要用数据进行训练。一般就是对样本进行加权,给比较重要的样本较大的权重
2.特征迁移(Feature-based Transfer Learning)
特征迁移是通过观察源领域图像与目标域图像之间的共同特征,然后利用观察所得的共同特征在不同层级的特征间进行自动迁移。在特征空间进行迁移,一般需要把源领域和目标领域的特征投影到同一个特征空间里进行。
3.模型迁移