迁移学习理解

迁移学习,即将一个领域已经成熟的只是应用到其他的场景中去。
用神经网络的词语来表述,就是一层层网络中每个节点的权重从一个训练好的网络迁移到一个全新的网络里,而不是从头开始,为每特定的个任务训练一个神经网络。这样做的好处,可以从下面的例子中体现,假设你已经有了一个可以高精确度分辨猫和狗的深度神经网络,你之后想训练一个能够分别不同品种的狗的图片模型,你需要做的不是从头训练那些用来分辨直线,锐角的神经网络的前几层,而是利用训练好的网络,提取初级特征,之后只训练最后几层神经元,让其可以分辨狗的品种。
一种迁移学习的方法是对整个网络进行微调,假设你已训练好了识别猫品种的神经网络,你的网络能对50种猫按品种进行分类。接下来你想对网络进行升级,让其能够识别100种猫,这时你不应该只训练网络的最后一层,而应该逐层对网络中每个节点的权重进行微调。显然,只训练最后几层,是迁移学习最简单的1.0版,而对节点权重进行微调(fine turing),就是更难的2.0版,通过将其他层的权重固定,只训练一层这样的逐层训练,可以更好的完成上述任务。
另一种迁移学习的方式是借用网络的结构,即不是使用已训练好的网络的权重,而是使用相同的网络结构,例如多少层,每层多少节点这样的信息,然后使用随机生成的权重作为训练的起点。例如你要训练世界上第一个识别fMRI图像的神经网络,你就可以借鉴识别X光图片的神经网络。

如果有一天我们淹没在茫茫人海中庸碌一生,那一定是我们没有努力活得丰盛
原文地址:https://www.cnblogs.com/yeran/p/10451767.html