返回介绍

第5章 目标识别与分类

发布于 2024-02-05 23:12:36 字数 1631 浏览 0 评论 0 收藏 0

到这里,想必读者对TensorFlow及其最佳实践已有了一些基本了解。在构建具备目标识别与分类功能的模型时,将遵循那些实践原则,同时也需要对前4章所涵盖的基础知识进行拓展,介绍一些术语、技术和计算机视觉的基础知识。由于在各项挑战中的优异表现,本章所介绍的那些运用于模型训练中的技术已被广泛采用。

ImageNet,这个包含图像标注信息的数据库见证了近年来计算机视觉和深度学习的日益流行。ImageNet网站每年都会举办一场大规模视觉识别挑战赛(英文缩写为ILSVRC),要求参与者基于ImageNet所提供的数据库构建能够完成目标的自动检测和分类任务的系统。在2012年,有一个名为SuperVision的参赛团队提交了一个富有创造性的神经网络架构的解决方案。在以往的ILSVRC提交结果中并不乏具备创新性的解决方案,但SuperVision在图像分类任务中表现出的空前准确性使其异常出众。SuperVision为计算机视觉的准确率建立了全新的标准,并激发了人们对一种名为卷积神经网络的深度学习技术的极大兴趣。

人们给予卷积神经网络(CNN)的关注一直在持续得到加强。这类网络结构主要用于计算机视觉相关任务,但处理对象并不局限于图像。CNN可用于能够表示为张量(各个分量与其相关的分量有序排列在一个多维网格中)的任意类型的数据。微软研究院于2014年公开了一篇利用CNN进行语音识别的文章,其中输入张量为一个按录音时间顺序排列的声音频率的单行网格。对于图像,张量中的分量为依据图像的宽和高的次序排列在一个网格中的像素。

本章将重点介绍如何在TensorFlow中利用CNN处理图像。目标是利用TensorFlow基于ImageNet数据库的一个子集构建一个用于图像分类的CNN模型。训练CNN模型需要使用TensorFlow处理图像,并理解卷积神经网络的使用方法。本章的绝大部分篇幅都将结合TensorFlow介绍计算机视觉中的重要概念。

本章中用于训练CNN模型的数据集Stanford抯Dogs Dataset是ImageNet的一个子集。从其名称可以看出,该数据集中包含了不同品种的狗的图像以及图像中所出现的狗的品种标签。所构建的模型的目标是当给定一幅图像时,它能够精确地预测其中包含的狗的品种。

当将上图中的某一幅送入模型时,模型的输出应为标签“Siberian Husky”。仅利用这些示例图像无法公正地对该模型的准确率进行评价,因为它们都来自训练集。为找到一个能够度量模型准确率的公正指标,需要使用大量不曾在训练集中出现的图像,并用它们创建一个独立的测试集。

这里之所以要强调图像的公正性,是因为它是将数据集划分为独立的测试集、训练集和验证集的重要考虑因素。在处理输入时,必须要做的一件事是用数据中的大部分来训练一个网络。这种划分使得对模型进行盲测成为可能。如果用参与过训练的图像对模型进行测试,则很可能会得到一个与训练图像过分精确匹配的模型,而使其无法对新的输入产生令人满意的预测结果。测试集的用途是了解模型对不曾出现在训练集中的数据表现如何。随着训练时间的延长和迭代次数的增加,虽然为提升准确率所做的调整有可能导致这样的后果:模型在测试集上的表现越来越好,但面对真实数据时性能却较差。一种比较好的方式是利用一个交叉验证集检查最终的模型,以对模型的准确率做出更为客观的估计。对于图像数据,最好是在进行预处理(如对比度调整或裁剪)时对原始数据集进行划分,并保证对各个划分应用完全相同的输入流水线。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文