在使用迁移学习之前,有两点需要特别注意的地方:
- 你的数据的尺寸大小
- 你的数据和预训练好网络结构数据(典型的比如说是ImageNet)的相似程度
关注上面的问题可以帮助我们确定何种数据迁移策略。我们以表格的形式来展示一下。
相似数据 | 不同数据 | |
---|---|---|
小数据 | 使用全连接进行特征提取+分类 | 使用高层卷积特征提取+分类 |
大数据 | 可以尝试微调网络 也可以尝试从头训练自己的网络 |
微调网络可能有效果也可能没有效果 可以尝试从头训练自己的网络 |
原始样本数据是小数据并且和要迁移模型数据相似
因为数据较小,所以很有可能没有办法从头获取CNN特征而不发生过拟合,微调网络也有可能会遇到这样的问题。
原始数据和预训练模型的数据很像,用来进行特征提取通常是一个不错的办法。然后使用一个简单的机器学习分类器对这些特征进行分类。通常建议可以从更深的网络结构中(更高的层)提取特征,因为这些特征更丰富,更能代表中原始数据中学到的模式。
原始样本数据是大数据并且和要迁移模型的数据相似
对于大数据,微调网络通常不会发生过拟合现象。你也可以尝试自己从头训练一个模型(至少这个想法值得做实验尝试一下)。因为原始样本数据和要迁移模型数据十分相似,那么迁移的预训练模型可能已经有了足够好的特征,因此使用微调网络会很不错。
原始样本是小数据并且和要迁移模型数据不同
这是最糟糕的一种情况。
为了防止过拟合,我们不可能从新训