微信扫一扫打赏支持

迁移学习 (Transfer Learning)是什么(总结)

迁移学习 (Transfer Learning)是什么(总结)

一、总结

一句话总结:

【踩在巨人的肩膀上】:迁移学习就是一层层网络中每个节点的权重从一个训练好的网络迁移到一个全新的网络里,而不是从头开始,为每特定的个任务训练一个神经网络。

举图像识别中最常见的例子,训练一个神经网络。来识别不同的品种的猫,你若是从头开始训练,你需要百万级的带标注数据,海量的显卡资源。而若是使用迁移学习,你可以使用Google发布的Inception或VGG16这样成熟的物品分类的网络,只训练最后的softmax层,你只需要几千张图片,使用普通的CPU就能完成,而且模型的准确性不差。

 

1、迁移学习使用初衷?

降低资源,比如显卡、比如训练时间、比如大量训练数据


使用深度学习去处理实际生活中遇到的问题,例如图像和语音的识别时,需要消耗大量的资源,比如显卡、比如训练时间。而迁移可以改变这一切,显著的降低深度学习所需的硬件资源。
举图像识别中最常见的例子,训练一个神经网络。来识别不同的品种的猫,你若是从头开始训练,你需要百万级的带标注数据,海量的显卡资源。而若是使用迁移学习,你可以使用Google发布的Inception或VGG16这样成熟的物品分类的网络,只训练最后的softmax层,你只需要几千张图片,使用普通的CPU就能完成,而且模型的准确性不差。

 

2、迁移学习直观例子?

你是太子,若是从头学习治理好国家的知识,肯定是来不及的。你要做的是找你的皇帝老爸,问问他正在做了什么,而他也希望能将他脑子的知识一股脑的转移到你脑中。这正是迁移学习。


让我们通过一个直观的例子来说明什么是迁移学习。
假设你穿越到了古代,成为了太子,为了治理好国家,你需要知道的实在太多了。
若是从头学起,肯定是来不及的。你要做的是找你的皇帝老爸,问问他正在做了什么,而他也希望能将他脑子的知识一股脑的转移到你脑中。这正是迁移学习。
即将一个领域的已经成熟的知识应用到其他的场景中。

 

3、迁移学习使用注意?

使用迁徙学习时要注意,本来预训练的神经网络,要和当前的任务差距不大,不然迁徙学习的效果会很差。


使用迁徙学习时要注意,本来预训练的神经网络,要和当前的任务差距不大,不然迁徙学习的效果会很差。例如如果你要训练一个神经网络来识别肺部X光片中是否包含肿瘤,那么使用VGG16的网络就不如使用一个已训练好的判断脑部是否包含肿瘤的神经网络。后者与当前的任务有相似的场景,很多底层的神经员可以做相同的事,而用来识别日常生活中照片的网络,则难以从X光片中提取有效的特征。

 

4、迁移学习中如何对节点进行微调?

逐层对网络中每个节点的权重进行微调

另一种迁移学习的方法是对整个网络进行微调,假设你已训练好了识别猫品种的神经网络,你的网络能对50种猫按品种进行分类。接下来你想对网络进行升级,让其能够识别100种猫,这时你不应该只训练网络的最后一层,而应该逐层对网络中每个节点的权重进行微调。显然,只训练最后几层,是迁移学习最简单的1.0版,而对节点权重进行微调(fine turing),就是更难的2.0版,通过将其他层的权重固定,只训练一层这样的逐层训练,可以更好的完成上述任务。

 

5、借鉴网络结构的迁移学习?

即不是使用已训练好的网络的权重,而是使用相同的网络结构,例如多少层,每层多少节点这样的信息,然后使用随机生成的权重作为训练的起点。


另一种迁移学习的方式是借用网络的结构,即不是使用已训练好的网络的权重,而是使用相同的网络结构,例如多少层,每层多少节点这样的信息,然后使用随机生成的权重作为训练的起点。例如你要训练世界上第一个识别fMRI图像的神经网络,你就可以借鉴识别X光图片的神经网络。

 

 

 

二、迁移学习 (Transfer Learning)是什么

转自或参考:什么是迁移学习 (Transfer Learning)?这个领域历史发展前景如何?
https://blog.csdn.net/u010159842/article/details/79202107

 

 

 

 

 
posted @ 2020-08-19 23:27  范仁义  阅读(1672)  评论(0编辑  收藏  举报