当前位置:   article > 正文

【深度学习图像识别课程】keras实现CNN系列:(7)迁移学习的原理和应用_机器学习、迁移学习和cnn

机器学习、迁移学习和cnn
目录

一、迁移学习的基本思路、原理和示例

1、基本思路

2、简单原理

3、皮肤癌示例

二、迁移学习的具体实施

2.1 迁移学习的应用条件

2.2 迁移学习应用的4种场景

1、小数据集,相似数据

2、小数据集,不同的数据

3、大型数据集,相似数据

4、大型数据集,不同的数据

 

一、迁移学习的基本思路、原理和示例

1、基本思路

可以使用在ImageNet中实验过的CNN运用到实际应用中。

2、简单原理

最后的层会比较具体化,有小鸟,就会有检测小鸟的过滤器;有轮子,就会有检测轮子的过滤器。

 

那么,我们保留前面的层,仅添加新的层并训练即可。当然,你的训练集较小,并且与ImageNet越相似,则效果越好。

 

3、迁移学习示例:诊断皮肤癌

斯坦福大学团队,利用迁移学习方法,开发了诊断皮肤癌的CNN。

利用在ImageNet上训练好的Inception。

(1)

(2)

(3)

训练时,除了最后添加的层,其他层的参数都采用已经训练好的参数做为初始值,并在训练中不断优化参数。

这种“具有不同的最后分类层级,并且细调网络参数的方法”对于数据集很大,且与ImageNet相差很大,效果很好。

 

二、迁移学习的具体实施

2.1、迁移学习的应用条件

迁移学习取决于以下两个条件:

  • 新数据集的大小
  • 新数据集与原始数据集的相似程度

使用迁移学习的方法将各不相同。有以下四大主要情形:

  1. 新数据集很小,新数据与原始数据相似
  2. 新数据集很小,新数据不同于原始训练数据
  3. 新数据集很大,新数据与原始训练数据相似
  4. 新数据集很大,新数据不同于原始训练数据

演示网络包含:3个卷积层和3个完全连接层。

第一层检测边缘;第二层检测形状;第三层检测更高级的特征。

2.2 迁移学习应用的4种场景

1、小数据集,相似数据

 

  • 删除神经网络的最后层级
  • 添加一个新的完全连接层,与新数据集中的类别数量相匹配
  • 随机化设置新的完全连接层的权重;冻结预先训练过的网络中的所有权重
  • 训练该网络以更新新连接层的权重

为了防止过拟合,保留原来网络层的权重不变。由于数据集相似,因此,更高级别的特征也相似,则包含高级别特征检测的层也保留。

 

2、小数据集,不同的数据

 

  • 将靠近网络开头的大部分预先训练过的层级删掉
  • 向剩下的预先训练过的层级添加新的完全连接层,并与新数据集的类别数量相匹配
  • 随机化设置新的完全连接层的权重;冻结预先训练过的网络中的所有权重
  • 训练该网络以更新新连接层的权重

由于数据集比较小,保留原来层的参数,用来防止过拟合。另外,数据集不同,因此更高级的特征不同,则不用保留更高级的层。

 

3、大型数据库,相似数据

 

  • 删掉最后的完全连接层,并替换成与新数据集中的类别数量相匹配的层级
  • 随机地初始化新的完全连接层的权重
  • 使用预先训练过的权重初始化剩下的权重
  • 重新训练整个神经网络

大数据集时,过拟合问题不严重,因此可以重新训练权重。因为数据集类似,则更高级特征也类似,因此整个网络都可以用。

 

4、大型数据库,不同的数据

 

  • 删掉最后的完全连接层,并替换成与新数据集中的类别数量相匹配的层级
  • 使用随机初始化的权重重新训练网络
  • 或者,你可以采用和“大型相似数据”情形的同一策略

可以随机初始化权重训练,也可以把之前的权重做为初值进行训练,加快训练速度。

 

参考:

1、论文How transferable are features in deep neuralnetworks?:系统地分析了预先训练过的 CNN 中的特征的可迁移性

2、论文Dermatologist-level classification of skin cancer with deep neural networks:Sebastian Thrun 的癌症检测 CNN 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/532119?site
推荐阅读
相关标签
  

闽ICP备14008679号