fine-tune和transfer learning是两个相似的概念,但是并不完全相同,两个都是利用训练过的模型来解决现在的问题,但是也有一些差异。
fine-tune(微调)
fine-tune意思是对以前已经训练过的模型(例如,可能已经用一些数据进行了训练)已经学习到了一些信息,然后继续训练该模型(例如:可能在不同的数据集上继续进行训练),核心思想就是用已经训练的模型的参数作为新模型的初始化参数。与在训练的最后阶段称为微调概念是不相同的。
transfer learning(迁移学习)
迁移学习,顾名思义就是将已有的模型应用到其他的问题上,主要的场景是从解决一个问题上学习到的特性(或者在某一个数据集上训练出的模型),应用到一个新的、类似的问题或者在某种程度三相关联的问题上。比如,我们训练了一个模型来识别狗,该模型学习到的特征可能对识别一只猫是很有用的。
迁移学习主要步骤:
- 从已经训练的模型中提取所需的layers
- 冻结(freeze)这些层,防止在后面的训练中破坏他们中包含的信息
- 在冻结层的顶部添加一些新的、可训练的层。这些层用来将学习如何将旧的特性转化为对新数据集的预测
- 在新数据集上面进行训练
最后,可选的一步,对模型进行微调(fine-tune),解冻之前获取的整个模型或在部分模型,然后在新数据集上以非常小的学习率重新训练,使预训练的特征适应新的数据集,
reinforcement learning(强化学习)
强化学习是机器学习的一个领域,强调基于当前环境该作出什么样的行为,以取得最大化的预期收益。基于agent和环境的交互实现agent的学习过程,agent通过行为改变环境,环境返回奖励和状态。例如在游戏领域,一架飞机作为agent飞的越远得到的奖励就越多,在某一环境下如果agent作出的决定能够继续往前飞则得到正向的奖励,如果撞到障碍物则得到负向奖励。
水平有限,有错误请多指正。
针对迁移学习和fine-tune可以参考:
https://keras.io/guides/transfer_learning/
https://www.jianshu.com/p/445a49c09769
https://blog.csdn.net/u013841196/article/details/80919857