迁移学习(Transfer Learning)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Shingle_/article/details/82354799

将从源数据集学到的知识迁移到目标数据集上

微调(fine tuning)

微调通过将模型部分权重初始化成在源数据集上预训练的模型权重,从而将模型在源数据集上学到的知识迁移到目标数据上。

  • 在源数据(例如 ImageNet)上训练一个神经网络 A。
  • 创建一个新的神经网络 B,它复制了 A 上除了输出层外的所有模型参数。我们假设这些模型参数含有源数据上学习到的知识,且这些知识同样适用于目标数据集。但最后的输出层跟源数据标注紧密相关,所以不被重用。
  • 为 B 添加一个输出大小为目标数据集类别数目(例如一百类椅子)的输出层,并将其权重初始化成随机值。
  • 在目标数据集(例如椅子数据集)上训练 B。我们将从头开始学习输出层,但其余层都是基于源数据上的模型参数进行微调。

这里写图片描述

微调的网络中的主要层的已经训练的足够好,所以一般采用比较小的学习率,防止过大的步长对训练好的层产生过多影响。

微调的模型因为初始值更好,在相同迭代周期下能够取得更好的结果。在很多情况下,微调的模型最终也会比非微调的模型取得更好的结果。

http://zh.gluon.ai/chapter_computer-vision/fine-tuning.html

猜你喜欢

转载自blog.csdn.net/Shingle_/article/details/82354799