tensorflow学习023——预训练网络(迁移学习)基础知识
基础知识
预训练网络是一个保存好的之前已在大型数据集(大规模图像分类任务)上训练好的卷积神经网络。如果这个原始数据集足够大且足够通用,那么预训练网络学到的特征的空间层次结构可以作为有效的提取视觉世界特征的模型。即使新问题和新任务与原始任务完全不同,学习到的特征在不同问题之间是可移植的,这也是深度学习与浅层学习方法的一个重要优势,使得深度学习对于小数据问题非常的有效。
Keras库中包含(在tensorflow中就是tf.keras模块)VGG16、VGG19、ResNet50、Inception v3、Xception等经典的模型架构。
ImageNet是一个手动标注好类别的图片数据库(为了机器视觉研究),目前已有22000个类别。当我们在深度学习和卷积神经网络的背景下听到”ImageNet”一词时,我们可能会提到ImageNet视觉识别比赛,称为ILSVRC。这个图片分类比赛是训练一个模型,能够将输入图片正确分类到1000个类别中的某个类别,训练集120万,验证集5万,测试集10万。这1000个图片类别是我们在日常生活中遇到的,例如狗、毛,各种家居物品,车辆类型等等。在图像分类方面,ImageNet比赛准确率已经作为计算机视觉分类算法的基准。自2012年以来,卷积神经网络和深度学习技术主导了这一比赛的排行榜。
VGG模型结构简单有效,前几层近使用33卷积核来增加网络深度,通过max pooling(最大池化)依次减少每层的神经元数量,最后三层分别是2个有4096个神经元的全连接层和一个softmax层,如图10-1和图10-2所示。conv3-64表示64个33的卷积核。
预训练网络是一个保存好的之前已在大型数据集(大规模图像分类任务)上训练好的卷积神经网络。如果这个原始数据集足够大且足够通用,那么预训练网络学到的特征的空间层次结构可以作为有效的提取视觉世界特征的模型。即使新问题和新任务与原始任务完全不同,学习到的特征在不同问题之间是可移植的,这也是深度学习与浅层学习方法的一个重要优势,使得深度学习对于小数据问题非常的有效。
Keras库中包含(在tensorflow中就是tf.keras模块)VGG16、VGG19、ResNet50、Inception v3、Xception等经典的模型架构。
ImageNet是一个手动标注好类别的图片数据库(为了机器视觉研究),目前已有22000个类别。当我们在深度学习和卷积神经网络的背景下听到”ImageNet”一词时,我们可能会提到ImageNet视觉识别比赛,称为ILSVRC。这个图片分类比赛是训练一个模型,能够将输入图片正确分类到1000个类别中的某个类别,训练集120万,验证集5万,测试集10万。这1000个图片类别是我们在日常生活中遇到的,例如狗、毛,各种家居物品,车辆类型等等。在图像分类方面,ImageNet比赛准确率已经作为计算机视觉分类算法的基准。自2012年以来,卷积神经网络和深度学习技术主导了这一比赛的排行榜。
VGG模型结构简单有效,前几层近使用33卷积核来增加网络深度,通过max pooling(最大池化)依次减少每层的神经元数量,最后三层分别是2个有4096个神经元的全连接层和一个softmax层,如图10-1和图10-2所示。conv3-64表示64个33的卷积核。
VGG有两个缺点:网络架构weight数量相当大,很消耗磁盘空间;训练非常慢。其中全连接节点的数量较多,再加上网络比较深,VGG16有533MB+,VGG19有574MB,这使得部署VGG比较耗时。
迁移学习网络架构
将训练好的网络的分类器去掉,使用其训练好的卷积基,加上自己的新分类器就可以了。我们需要的卷积基部分有效提取特征,然后使用自己的分类器,将提取的特征进行映射,也就是我们实际训练的是全连接层,训练映射部分。
作者:孙建钊
出处:http://www.cnblogs.com/sunjianzhao/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。