首页
学习
活动
专区
工具
TVP
发布

教程:使用迁移学习来解决图像问题!

点击上方关注,AllinAI中国作者:PedroMarcelino本文将教你如何使用迁移学习来解决图像分类问题。使用Keras及其预训练模型的实际示例用于演示目的。

ChrisRied在Unsplash上的代码之美深度学习(LeCun等,2015)正在迅速成为人工智能应用的关键工具。例如,在计算机视觉、自然语言处理和语音识别等领域,深度学习已经产生了显著的成果。因此,人们对深度学习的兴趣越来越大。深度学习擅长的问题之一是图像分类(Rawat&Wang2017)。图像分类的目标是根据一组可能的类别对特定图片进行分类。

图1.基于卷积神经网络(CNN)模型的体系结构这些深度学习模型的一个重要方面是,它们可以自动学习分层特征表示。这意味着第一层计算的特征是通用的,可以在不同的问题域中重用,而最后一层计算的特征是特定的,取决于所选的数据集和任务。根据Yosinski等人的说法,"如果第一层特征是通用的,最后一层特征是特定的,那么在网络的某个地方必须有从通用特征到特定特征的过渡。

图2微调策略与策略3不同,策略1和策略2要求你在卷积部分中使用学习率。学习率是一个超参数,可以控制你调整网络权重的程度。当你使用基于卷积神经网络(CNN)的预训练模型时,使用较小的学习率是明智的,因为高学习率会增加丢失先前知识的风险。假设预训练模型训练有素,这是一个公平的假设,保持较小的学习率将确保你不会过早和过多地扭曲卷积神经网络(CNN)权重。

图3和图4尺寸相似矩阵(左)和用于微调预训练模型的决策图(右)。5.深度卷积神经网络之上的分类器如前所述,基于预训练卷积神经网络的传递学习方法产生的图像分类模型通常由两部分组成:(1)卷积基,执行特征提取。(2)分类器,它根据卷积基数提取的特征对输入图像进行分类。因为在本节中我们关注分类器部分,所以必须首先说明可以遵循不同的方法来构建分类器。一些最受欢迎的做法是:(1)完全连接的层。

代码1.为Dogsvs.Cats创建一个较小的数据集。

6.2.从卷积基础中提取特征卷积基数将用于提取特征。这些功能将提供我们想要训练的分类器,以便我们可以识别图像是否有狗或猫。Chollet(2017)提供的代码再次进行了改编。代码2显示了使用的代码。

代码2从卷积基础中提取特征

6.3分类6.3.1完全连接的层我们提出的第一个解决方案基于完全连接的层。该分类器添加了一堆完全连接的层,这些层由从卷积基础中提取的特征提供。为了简单和快速,我们将使用Chollet(2018)提出的解决方案稍作修改。特别是,我们将使用Adam优化器而不是RMSProp。代码3显示了使用的代码,而图5和6显示了学习曲线。

代码3完全连接的层解决方案

图5完全连接层解决方案的准确性

图6完全连接的层解决方案的丢失结果简要说明:(1)验证准确度约为0.85,考虑到数据集的大小,这个结果令人鼓舞。(2)这个模型过度拟合。训练和验证曲线之间存在很大差距。(3)由于我们已经使用了dropout,应该增加数据集的大小以改善结果。6.3.2。全局平均池化这种情况与前一种情况的区别在于,我们将添加一个全局平均池化层,并将其输出馈送到S形激活层,而不是添加一堆完全连接的层。

代码4全局平均池化解决方案

图7全局平均池化解决方案的准确性

图8全局平均池化解决方案的丢失结果简要说明:(1)验证准确性类似于完全连接的层解决方案产生的验证精度。(2)该模型没有像前一种情况那样过度拟合。(3)当模型停止训练时,损失函数仍在减少。可以通过增加时期数来改进模型。6.3.3线性支持向量机在这种情况下,我们将在卷积基础提取的特征上训练线性支持向量机(SVM)分类器。为了训练这种分类器,传统的机器学习方法更可取。

代码6线性SVM解决方案

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181028A12BLZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券