内容纲要

欢迎转载,作者:Ling,注明出处:深度学习:原理简明教程18-深度学习:CNN其他问题

 

本文将探讨CNN剩下的其他几个问题

1)迁移学习:Transfer learning

  • Feature Extraction
  • Fine-tunning

2)多任务学习:multi-task learning

3)1 D 和 3D convolution

 

迁移学习:Transfer learning

定义:将A训练集训练的模型,应用于B集合

为什么可以通用?

因为CNN除了最后的全连接分类层,前面的conv和pooling主要作用是提取特征,在Computer Vision这个领域,往往可以复用提取特征部分(包括其参数),只需要重新训练分类层。

为什么要这么做?

因为复杂的CNN网络,训练需要样本较多,且训练时间比较长,所以复用可以节省时间。

分类:两种做法

Feature Extraction:

保留所有CONV和Pooling层,只训练最后的分类层,甚至修改最后分类层的结构。注意要frozen非分类层的参数。

 

dl_18_001

Fine-tunning:

除了最后的分类层,同时可以对最后1-n层 conv层进行参数学习,即共用前几层conv。因为前几层的是识别edge等信息更通用,后面组合结果可以微调。

dl_18_002

什么时候会用迁移学习?

1)任务A和任务B有一样的输入

2)任务A的数据远多于任务B的数据

3)A的低层特征对学习任务B有帮助

 

多任务学习:multi-task learning

定义:

多个任务一起学习。

原因:

由于图像识别特征提取部分网络很可能可以复用,所以可以共享特征提取部分,多个分类层一起学习。

实例:

dl_18_003

同时对图中两个对象进行分类。Stop指示牌和汽车。

做法:

dl_18_004

和softmax不同,一个y有多个1,softmax只有一个1

dl_18_005

注意:loss函数,对每个分量都用一个逻辑回归的loss函数

 

什么时候应用多任务学习:

1)低层特征可以被多个任务共享

2)多个任务数据很类似

3)能够训练一个足够大的网络适用于所有任务

 

1 D 和 3D convolution:

之前我们主要处理的都是2D的图像:

dl_18_006

1D实例:心电图(以后再讲RNN也可以用1D conv替代RNN)

dl_18_007

3D实例:医学图

dl_18_008

dl_18_009

实际上1D,2D,3D就是处理的对象维度和filter维度不同,思想都一样