图像分类比赛中,你可以用如下方案举一反三.doc
《图像分类比赛中,你可以用如下方案举一反三.doc》由会员分享,可在线阅读,更多相关《图像分类比赛中,你可以用如下方案举一反三.doc(8页珍藏版)》请在三一文库上搜索。
1、图像分类比赛中,你可以用如下方案举一反三众所周知,Kaggle 是一个进行预测建模及数据分析的竞赛平台。在这个平台上,统计学家和数据科学家竞相构建最佳的模型,这些模型被用于预测、描述公司和用户上传的数据集。这种众包的方式之所以被广为接受,是因为对于同一个预测建模任务来说,可能存在无数种解决策略,但是想要事先知道哪种技术或分析方法是最有效的几乎不可能。1任务概述你能分清杂草和农作物幼苗吗?如果我们能高效地区分农作物幼苗和杂草,那么就可以提升农作物的产量,更好地管理环境中的杂草。Aarhus 大学信号处理研究小组与南丹麦大学合作,发布了一个用于该任务的数据包,其中包括处于不同生长阶段的 12 个物
2、种(共计 960 种植物)的图像。12植物样本之一:繁缕样本这个公开的数据库由注释的 RGB 图像组成,其物理分辨率大约为每毫米 10 像素。为了对使用该数据库得到的分类结果进行标准化评估,组织者提供了基于 F1 值的对比基准,你可以通过如下链接获得这个数据集:https:/vision.eng.au.dk/plant-seedlings-dataset/。13下图是一个表示了该数据集中 12 类植物的样本:图片来源:https:/vision.eng.au.dk/plant-seedlings-dataset/下面为大家介绍这一图像分类任务,该任务可以分为五个步骤第一步:在大多数机器学习任务
3、中,我们首先要做的(也是最重要的任务)就是在使用算法之前分析数据集。这一步骤之所以重要,是因为它能够让我们对数据集的复杂度有深入的了解,这最终将有助于算法的设计。图像和类别的分布情况如下:正如文中所提到的,该数据集共包含 4750 张从属于 12 个类别的植物图片。然而,如上图所示,这种分布是不均匀的,各种类别的植物分布从最多 654 张图像到最少 221 张图像。很显然数据是不平衡的,我们需要对数据进行平衡处理,以便获得最佳的分类效果。本文将在第三步中讨论这个问题。每个类的图像分布为了更好地理解数据,对图像进行可视化处理十分重要。因此,我们将每类植物的示例图片展示了出来,以便看到图像之间的差
4、异。上面这些图片看上去实在太像了,以至于我们不能直接看出什么信息。因此,我决定使用 t 分布随机邻域嵌入(https:/lvdmaaten.github.io/tsne/)可视化技术来查看图片的分布。t 分布随机邻域嵌入(tSNE)是一种特别适合对高维数据集进行可视化的降维技术。这种技术可以通过Barnes-Hut近似算法来实现,这使得它能够被应用于大型的真实数据集。14数据集的t-SNE可视化结果仔细观察之后,我们几乎看不出类别之间的区别。因此,知道仅仅是人类难以区分这个数据,还是机器学习模型也很难区分这个数据很重要。所以,我们将为此做一个基本的对比基准。训练集和验证集在开始建立模型的对比基
5、准前,我们需要将数据划分为训练数据集和验证数据集。在原始测试集上测试模型之前,验证集起到了测试数据集的作用。所以,一个模型基本上是在训练数据集上进行训练,在验证集上进行测试,随着时间的推移,模型在验证集上的性能将会提升。一旦我们对验证集上的测试结果感到满意,我们就可以在真实的测试集上应用该模型。通过这种方式,可以看出模型是否在验证集上发生欠拟合或过拟合现象,这可以帮助我们更好地拟合模型。我们将包含 4750 张图片的数据集的 80% 作为训练集,另外 20% 作为验证集。训练集和验证集的划分第二步:当获得了训练集和验证集之后,我们将开始使用数据集的对比基准。正如所见,这是一个分类问题:给定测试
6、集,我们需要将图片归类到 12 个类别中的某一类。我们将使用卷积神经网络(CNN)来完成这项任务。如果你是一位初学者,需要对深度学习术语有更深的了解,请访问如下博客:https:/medium/shridhar743/a-beginners-guide-to-deep-learning-5ee814cf7706事实上,有许多方法可以创建卷积神经网络(CNN)模型,我们将使用 Keras 深度学习程序库来实现第一个对比基准。我们还将使用 Keras 中提供的预训练好的模型,这些模型已经利用 ImageNet 数据集训练过,我们将对其进行调优以满足任务需求。从头开始训练一个卷积神经网络(CNN)的
7、效率相当低下,我们将利用在包含 1000 类图像的 ImageNet 上预训练好的卷积神经网络(CNN)的权重,然后通过将某些层保持为冻结状态,再将一些层解冻并进行训练,从而进行调优。这是因为,最上面的层学习到简单的基本特征,而我们不需要对其进行训练,可以直接将它们应用到我们的任务中。需要注意的一点是,我们要检查数据集是否与 ImageNet 类似,以及我们的数据集规模有多大。这两个特征将决定我们如何进行调优。如果你想了解更多的细节,请参阅 Andrej Karpathy 的博客(https:/medium/karpathy)。在植物幼苗检测比赛的环境下,数据集规模很小,但是与 ImageNe
8、t 有些相似之处。因此,我们可以首先直接使用 ImageNet 的权重,仅仅在对比基准的基础上添加一个能够对 12 个类进行分类的最终输出层。接着,我们将逐渐解冻一些模型底部的层,并仅仅对这些解冻的层进行训练。由于 Keras 库提供了大量预训练好的模型,我们采用 Keras 为对比基准进行初始化。具体而言,我们将使用 ResNet50 和 InceptionResNetV2 这两个模型。很重要的是,我们需要用一个简单模型和一个非常高端的模型对数据集进行基准测试,以便发现给定模型是否产生了欠拟合和过拟合。Keras 库提供的在 ImageNet 上预训练好的模型图片来源:https:/kera
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 分类 比赛 可以 如下 方案 举一反三
链接地址:https://www.31doc.com/p-3407843.html