手写数字识别隶属于机器学习领域中的分类学习任务,Geoffrey Hinton将之称为“机器学习的果蝇”。本文旨在讨论搭建基于Jupyter Notebook环境的手写数字图像识别系统。首先, 本文讲述了JupyterLab的安装和使用方法;然后,本文讲述了手写数字图像的算法基础;接着,本文讨论了对MNIST数据集进行识别的项目搭建分析;最后提出了该系统的实践意义。
系统背景Python是一种解释型、面向对象、动态数据类型的高级程序语言。Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。像Perl语言一样,Python源代码同样遵循GPL,即GNU General Public License协议。Python的安装相当容易,并且在Linux和Mac的机器上都是包含Python语言的安装。
JupyterLab是一个基于web网页的,提供Jupyter notebook、代码和数据功能的交互式开发环境。它能够让你处理文档,以及以一种集灵活性、集成性和拓展性的方式处理诸如Jupyter notebook、文字编辑、终端和用户自定义模块。你能够在工作区间使用tab和spliter制作多个端对端的文档和工作流程。这些文档和工作流程相互协作,以致于交互计算,比如说,代码终端,基于Kernel的文档,笔记,和多样化的视图。
手写数字识别基于机器学习领域中的分类任务。而科技是第一生产力,信息技术作为科技领域的重要组成部分,得到了全球范围的重视和大力发展。以物联网技术为例,美国、欧盟、日本和韩国等发达国家对其都投入了大量的资金与技术研究力量[1],以实现各自的战略计划。
日新月异的信息技术变革了我们的生活方式和工作方式,给我们带来了便利,也给我们带来了挑战。物联网技术、云计算技术的兴起,伴随着大数据的涌现。对海量数据进行分析,挖掘其数据价值的需求被提到案上。
机器学习作为一门基于学习算法的、将数据转换为信息的学科,在信息技术的各大领域中均大有作为。从垃圾邮件检测且自动归入垃圾文件夹,到信件的手写邮政编码识别且信件地区归类,这些初级的应用都可体现机器学习在生活和工作中的价值。
机器学习算法有两大类,一是Supervised Learning Algorithms(监督学习算法),另一类是Unsupervised Learning Algorithms(非监督学习算法)。按照这种分类,机器学习算法的任务可相应地归为两类:一类是学习原有数据,以产生正确的预测数据;另一类是对数据集进行聚类分析。它们的应用可涉及至地震预测预报、恶性癌细胞预测、新闻信息相关类聚类、社交网络分析、计算机群组管理和天体学数据分类等。其前景应用相当地广泛和切实。
NIST,即National Institute of Standards and Technology,是收集手写数字数据MNIST的机构,M代表修改的,为更容易地与机器学习算法一起使用,MNST数据集是经过预处理的。如下图,
手写数字识别系统面临的问题有几类:数据预处理流程的规范性,数据容量的大小,手写数字识别的精度性,以及手写数字识别系统的稳定性和可拓展性。
一般而言,系统的开发有赖于系统的完整性,也尽管我们大多数认为能够存在一个系统如同一枚远离失败信息系统的“银d”,但基于现实基础,我们必须承认开发完全成功的信息系统的“银d”在大多数场景下是难以实现的。面对此类状况,本文的目的在于使用机器学习领域中神经网络算法提高手写数字识别系统的精度,并且开发具有完整性的信息系统,以提高项目的成功概率。手写数字识别系统的首要目标不是开发一个惊人的信息系统,而是为社会生产创造价值。对多数企业而言,分析开发一个出色的系统仅仅是达到其增加收益的目标工具。假使我们清楚地理解所开发的系统如何支持组织的目标和价值观,那么,顺其而然地当前业务连同其他信息系统就会对企业本身输出有价值的、有影响力的增长收益。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)