深度学习:原理简明教程18-深度学习:CNN其他问题
欢迎转载,作者: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非分类层的参数。
Fine-tunning:
除了最后的分类层,同时可以对最后1-n层 conv层进行参数学习,即共用前几层conv。因为前几层的是识别edge等信息更通用,后面组合结果可以微调。
什么时候会用迁移学习?
1)任务A和任务B有一样的输入
2)任务A的数据远多于任务B的数据
3)A的低层特征对学习任务B有帮助
多任务学习:multi-task learning
定义:
多个任务一起学习。
原因:
由于图像识别特征提取部分网络很可能可以复用,所以可以共享特征提取部分,多个分类层一起学习。
实例:
同时对图中两个对象进行分类。Stop指示牌和汽车。
做法:
和softmax不同,一个y有多个1,softmax只有一个1
注意:loss函数,对每个分量都用一个逻辑回归的loss函数
什么时候应用多任务学习:
1)低层特征可以被多个任务共享
2)多个任务数据很类似
3)能够训练一个足够大的网络适用于所有任务
1 D 和 3D convolution:
之前我们主要处理的都是2D的图像:
1D实例:心电图(以后再讲RNN也可以用1D conv替代RNN)
3D实例:医学图
实际上1D,2D,3D就是处理的对象维度和filter维度不同,思想都一样
留言