人类的视觉系统是世界奇迹之一。 考虑下面的手写数字序列:
大多数人毫不费力地将这些数字识别为504192.这种缓解是欺骗性的。 在我们大脑的每个半球中,人类都有一个主要的视觉皮层,也被称为V1,含有1.4亿个神经元,它们之间有数以百亿计的联系。 然而,人类视觉不仅涉及V1,而且包括V2,V3,V4和V5在内的整个视觉皮质系列 - 逐渐进行更复杂的图像处理。 我们的头脑中有一台超级计算机,根据数亿年的演变进行调整,并且非常适合了解视觉世界。 识别手写数字并不容易。 相反,我们人类是惊人的,非常擅长理解我们的眼睛向我们展示的东西。 但几乎所有这些工作都是在无意识中完成的。 所以我们通常不会意识到我们的视觉系统解决问题有多艰难。
如果您尝试编写计算机程序来识别上述数字,则视觉模式识别的难度就会变得明显。 当我们自己做这件事似乎很容易突然变得非常困难。 关于我们如何识别形状的简单直觉 - “一个9在顶部有一个循环,而在右下方有一个垂直的冲程” - 结果并不是那么简单,以便在算法上表达。 当你试图精确地制定这样的规则时,你很快会迷失在例外和警告以及特殊情况之中。 它似乎无望。
神经网络以不同的方式解决问题。 这个想法是采取大量的手写数字,称为训练示例,
然后开发一个可以从这些培训例子中学习的系统。换句话说,神经网络使用这些例子来自动推断识别手写数字的规则。此外,通过增加训练示例的数量,网络可以了解更多关于手写的内容,从而提高其准确性。所以,虽然我只显示了上面的100个训练数字,但也许我们可以使用数千甚至数百万或数十亿个训练示例来构建更好的手写识别器。
在本章中,我们将编写一个计算机程序,实现一个学习识别手写数字的神经网络。该程序只有74行,并且不使用特殊的神经网络库。但是这个简短的程序能够以超过96%的精度识别数字,无需人工干预。此外,在后面的章节中,我们将开发可以将准确度提高到99%以上的想法。事实上,最好的商业神经网络现在非常好,银行用它来处理支票,并由邮局来识别地址。
我们专注于手写识别,因为它对于一般学习神经网络来说是一个很好的原型问题。作为原型,它迎来了一个甜蜜点:它很具有挑战性 - 识别手写数字并不是一件容易的事情 - 但它并不是一个非常复杂的解决方案或者巨大的计算能力。此外,这是开发更深入学习等更先进技术的好方法。因此,在整本书中,我们会一再回顾手写识别的问题。在本书后面,我们将讨论这些想法如何应用于计算机视觉中的其他问题,以及语音,自然语言处理和其他领域。
当然,如果本章的要点只是编写一个识别手写数字的电脑程序,那么本章将会更短!但一路上,我们将开发许多关于神经网络的关键思想,包括两种重要类型的人工神经元(感知器和S形神经元)和神经网络的标准学习算法,称为随机梯度下降。在整个过程中,我重点解释为什么事情按照他们的方式完成,并且建立你的神经网络直觉。这需要比如果我刚刚介绍发生的事情的基本机制更长的讨论,但它是值得的,以便您获得更深的理解。在收益中,到本章结束时,我们将有助于理解深度学习是什么,为什么它很重要。
- 大小: 7.3 KB
- 大小: 29.7 KB
分享到:
相关推荐
(完整)基于BP神经网络的手写数字识别实验报告.docx(完整)基于BP神经网络的手写数字识别实验报告.docx(完整)基于BP神经网络的手写数字识别实验报告.docx(完整)基于BP神经网络的手写数字识别实验报告.docx(完整)基于BP...
BP神经网络实现手写数字识别matlab实现
BP神经网络实现手写数字输入识别python 代码可以在下面链接中下载: https://gitee.com/cloud_maple/python_machine_learning.git 训练集和测试集都可以在下面链接中下载: 链接:...
Python实现神经网络算法识别手写数字集 Python实现神经网络算法识别手写数字集 Python实现神经网络算法识别手写数字集 Python实现神经网络算法识别手写数字集 Python实现神经网络算法识别手写数字集 Python实现神经...
基于BP神经网络的手写数字识别实验报告.pdf
基于BP神经网络的手写数字识别实验报告和matlab仿真源码。
本基于BP神经网络和卷积神经网络对手写数字识别进行研究,使用10000张已标注的大小为28*28的手写数字图片进行训练和测试,从所有图片中随机选出9000张作为训练样本对网络进行训练,另外1000张作为测试样本用于测试...
基于matlab的卷积神经网络实现手写数字识别
该程序使用Python实现BP神经网络mnist手写数字识别。压缩包中给出训练好的权重以及偏移量的mat文件,在程序运行后输入mnist文件夹中图片路径的后缀就可以进行预测,如:4/mnist_test_4.png。压缩包给出训练集的mat...
基于卷积神经网络的手写数字识别,工具使用Google的人工智能TensorFlow库,识别准确率高,代码使用python3.0以上版本
可以用于课程设计、毕业设计、学习参考、完整的代码、 以MNIST手写数据集划分训练集和验证集,将自己手写拍照上传的数字图片作为测试样本,训练卷积神经网络分类器识别0-9的手写数字。
基于BP神经网络和sklearn的digit数据集编写的手写数字识别demo。带有GUI手写画板,同时还可以根据需要保存手写数字的数据。
【手写数字识别】基于BP神经网络手写数字识别系统含Matlab源码
利用numpy完成手写数字数据集的识别,完成多分类问题,搭建神经网络,并且完成模型的训练以及性能评估,可视化数据 用到的知识 sklearn 数据集的提取分割 yaml配置文件使用 numpy实现各个神经层 参数初值选择 ...
基于卷积神经网络的手写数字识别算法研究,张荣磊,刘学,根据串行方式实现卷积神经网络的局限性,提出了基于MapReduce的卷积神经网络识别算法,使其在手写数字识别的准确率和速度上取得更好
纯手写卷积神经网络,未使用任何神经网络框架,使用numpy纯手写卷积神经网络,研究此代码可充分搞懂卷积神经网络原理,本人也是通过此代码亲自走过来的。代码简单。 适用人群:适用于有意愿彻底搞懂卷积神经网络底层...
利用MATLAB实现的手写数字识别
利用jjupyter notebook来进行基于神经网络的手写数字识别,资源内有完整的代码及相关解释。 利用jupyter notebook来进行基于神经网络的手写数字识别,资源内有完整的代码及相关解释。 利用jjupyter notebook来进行...
深度学习基于Matlab神经网络的手写数字识别系统源代码。在一张图像上面手写了很多手写数字。利用鼠标进行框定你所要识别的数字区域。裁剪灰度化处理,二值化处理。提取数字特征。利用神经网络的方法进行识别。带有...
使用74行python代码实现简单的手写数字识别神经网络。 输出值为10000个测试样本中识别正确的图像数量。