下载此文档

对比图像分类五大方法:KNN、SVM、BPNN、CNN和迁移学习.doc


文档分类:医学/心理学 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
对比图像分类五大方法:KNN、SVM、BPNN、CNN和迁移学习
编者按:选自Medium机器之心编译参与:蒋思源、黄小天、吴攀
图像分类是人工智能领域的基本研究主题之一,研究者也已经开发了大量用于图像分类的算法。近日,Shiyu Mou 在 Medium 上发表了一篇文章,对五种用于图像分类的方法(KNN、SVM、BP 神经网络、CNN 和迁移学习)进行了实验比较,该研究的相关数据集和代码也已经被发布在了 GitHub 上。
项目地址:
图像分类,顾名思义,就是为输入图像打上固定类别的标签。这是计算机视觉领域的核心问题之一。尽管听起来很简单,但图像分类有大量不同的实际应用。
传统方式:特征描述和检测也许对一些样本任务有好处,但实际情况要复杂得多。因此,我们并没有通过代码的形式直接指出每一类型的外观(visual appearance),而是使用机器学习——为计算机提供每一类的诸多实例,接着开发学习算法观察这些实例,并学习每一类的外观。
然而,图像分类如此复杂,以至于其处理经常用到深度学习模型,比如 CNN(卷积神经网络)。我们已经知道,我们在课堂上学习的不少算法(如 KNN、SVM)通常很擅长数据挖掘;但是对于图像分类,它们却不是最佳选择。
因此,我们将对课堂中学到的以及 CNN 和迁移学习等算法做一个对比。
目标
我们的目标是:
1. 把 KNN、SVM、BP 神经网络与业界处理图像识别问题的算法——CNN 和迁移学习——进行对比。2. 获得深度学习经验。3. 通过 TensorFlow 探索机器学习框架。
系统设计 & 实现细节
算法与工具
本项目使用的 5 个方法是 KNN、SVM、BP 神经网络、CNN 和迁移学习。
全项目可分为 3 类方法:
第一类方法:使用 KNN、SVM、BP 神经网络这些课堂算法。这些算法强大易实现。我们主要使用 sklearn 实现这些算法。第二类方法:尽管传统的多层感知器模型已成功应用于图像识别,但由于其节点之间的全连接性,它们遭遇了维度的难题,从而不能很好地扩展到更高分辨率的图像。因此我们使用深度学习框架 TensorFlow 打造了一个 CNN。第三个方法:重新训练一个被称作 Inception V3 的预训练深度神经网络的最后一层,同样由 TensorFlow 提供。Inception V3 是为 ImageNet 大型视觉识别挑战赛训练的,使用了 2012 年的数据。这是计算机视觉的常规任务,其中模型试图把全部图像分为 1000 个类别,比如斑马、达尔阿提亚人和洗碗机。为了再训练这一预训练网络,我们要保证自己的数据集没有被预训练。
实现
第一类方法:预处理数据集,并使用 sklearn 实现 KNN、SVM、BP 神经网络。
首先,我们使用 OpenCV 包定义了 2 个不同的预处理函数:第一个是图像到特征向量,它可以重调图像大小,并把图像转化为行像素列表;第二个是提取颜色直方图,即使用 从 HSV 颜色空间提取 3D 颜色直方图,并平化(flatten)结果。
接着,建构若干个我们需要解析的参数。由于想要同时测试整个数据集和带不同数量标签的子数据集的精确度,我们构建了一个作为参数的数据集并解析进我们的程序。我们同样构建了用于 k-NN 方法的邻元素数作为解析参数。
之后,我们开始提取数据集中的每一图像特征,并将其放入数组。我们使用 读取每一图像,通过从图像名称中提取字符串来拆分标签。在我们的数据集中,我们使用相同格式——类别标签. ——设置名称,因此我们可以轻易提取每张图像的分类标签。接着我们使用这两个函数提取 2 种特征并附加到数组 rawImages,而之前提取的标签附加到数组标签。
下一步是使用从 sklearn 包导入的函数 train_test_split 拆分数据集。这个集具有后缀 RI,RL 是 rawImages 和标签对的拆分结果,另一个是特征和标签对的拆分结果。我们使用 85% 的数据集作为训练集,余下的 15% 作为测试集。
最后,我们应用 KNN、SVM、BP 神经网络函数评估数据。对于 KNN 我们使用 KNeighborsClassifier,对于 SVM 我们使用 SVC,对于 BP 神经网络我们使用 MLPClassifier。
第二类方法:使用 TensorFlow 构建 CNN。TensorFlow 的全部目的在于使你打造一张计算图(使用 Python 等语言),接着在 C++ 中执行该

对比图像分类五大方法:KNN、SVM、BPNN、CNN和迁移学习 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人好用的文档
  • 文件大小20 KB
  • 时间2021-11-16