一.背景
在之前用深度神经网络进行参数训练时,我们每次的训练都是从头开始的,随机地初始化网络。在网络层数不深的时候,训练时间可以接受,但随着现在网络构越来越复杂,网络层数越来越深,少则几十层,多者上百层甚至上千层,如果任然每次都从头开始训练,时间的开销则会非常大。例如ImageNet网络的训练常常需要几个星期的时间,而对于普通的研究者而言,这是不可接受的。
迁移学习的本质是利用将一个问题上训练的所得,用于改进在另一个问题的效果。举例说明,就是把其他人在某个大数据集上训练好的网络模型(参数)运用到到自己的问题上来,这样就可以避免重复的初始化及参数训练。
二.相关术语:精调,预训练
1.精调(fine-tuning):利用下载好的网络模型,用我们的数据集继续训练,称为精调。
- 精调的省时性。精调可以使得网络能够从一个良好的初始点开始学习,使得网络的训练时间大大节省,特别是在我们的数据集和网络模型训练数据集相似的情况下。
- 精调的普适性。深度学习是一个特征不断学习进化的过程,来自于深度神经网络所提取的特征具有共通性,例如卷积神经网络的前几层用于边缘特征提取,中间几层用于部分特征提取,后面几层才是完整的特征,而物体的边缘特征具有共通性。
- 精调可以降低过拟合。原因是我们下载的网络模型的训练集往往比我们自己的数据集大许多倍,用较少的训练集再去训练,拟合效果更符合期望。
精调举例:由于深度神经网络可以从数据中学习较好的特征,所以可以和机器学习相结合,例如用深度神经网络学习到的特征用到线性模型或SVM模型中;另外还可以去掉网络的最后一层,即改变输出,用于其他任务。
2.预训练(pre-training):即使训练的数据很充分,我们还可以先使用其他的数据进行训练,以改善过拟合,同时也会提高性能。这称为预训练。