人类的视觉系统是世界奇迹之一。 考虑下面的手写数字序列:
大多数人毫不费力地将这些数字识别为504192.这种缓解是欺骗性的。 在我们大脑的每个半球中,人类都有一个主要的视觉皮层,也被称为V1,含有1.4亿个神经元,它们之间有数以百亿计的联系。 然而,人类视觉不仅涉及V1,而且包括V2,V3,V4和V5在内的整个视觉皮质系列 - 逐渐进行更复杂的图像处理。 我们的头脑中有一台超级计算机,根据数亿年的演变进行调整,并且非常适合了解视觉世界。 识别手写数字并不容易。 相反,我们人类是惊人的,非常擅长理解我们的眼睛向我们展示的东西。 但几乎所有这些工作都是在无意识中完成的。 所以我们通常不会意识到我们的视觉系统解决问题有多艰难。
如果您尝试编写计算机程序来识别上述数字,则视觉模式识别的难度就会变得明显。 当我们自己做这件事似乎很容易突然变得非常困难。 关于我们如何识别形状的简单直觉 - “一个9在顶部有一个循环,而在右下方有一个垂直的冲程” - 结果并不是那么简单,以便在算法上表达。 当你试图精确地制定这样的规则时,你很快会迷失在例外和警告以及特殊情况之中。 它似乎无望。
神经网络以不同的方式解决问题。 这个想法是采取大量的手写数字,称为训练示例,
然后开发一个可以从这些培训例子中学习的系统。换句话说,神经网络使用这些例子来自动推断识别手写数字的规则。此外,通过增加训练示例的数量,网络可以了解更多关于手写的内容,从而提高其准确性。所以,虽然我只显示了上面的100个训练数字,但也许我们可以使用数千甚至数百万或数十亿个训练示例来构建更好的手写识别器。
在本章中,我们将编写一个计算机程序,实现一个学习识别手写数字的神经网络。该程序只有74行,并且不使用特殊的神经网络库。但是这个简短的程序能够以超过96%的精度识别数字,无需人工干预。此外,在后面的章节中,我们将开发可以将准确度提高到99%以上的想法。事实上,最好的商业神经网络现在非常好,银行用它来处理支票,并由邮局来识别地址。
我们专注于手写识别,因为它对于一般学习神经网络来说是一个很好的原型问题。作为原型,它迎来了一个甜蜜点:它很具有挑战性 - 识别手写数字并不是一件容易的事情 - 但它并不是一个非常复杂的解决方案或者巨大的计算能力。此外,这是开发更深入学习等更先进技术的好方法。因此,在整本书中,我们会一再回顾手写识别的问题。在本书后面,我们将讨论这些想法如何应用于计算机视觉中的其他问题,以及语音,自然语言处理和其他领域。
当然,如果本章的要点只是编写一个识别手写数字的电脑程序,那么本章将会更短!但一路上,我们将开发许多关于神经网络的关键思想,包括两种重要类型的人工神经元(感知器和S形神经元)和神经网络的标准学习算法,称为随机梯度下降。在整个过程中,我重点解释为什么事情按照他们的方式完成,并且建立你的神经网络直觉。这需要比如果我刚刚介绍发生的事情的基本机制更长的讨论,但它是值得的,以便您获得更深的理解。在收益中,到本章结束时,我们将有助于理解深度学习是什么,为什么它很重要。

- 大小: 7.3 KB

- 大小: 29.7 KB
分享到:
相关推荐
该数据集由美国国家标准与技术研究院(NIST)的特别数据库3(Special Database 3)和特别数据库1(Special Database 1)合并而成,包含了大量的手写数字图片,旨在为学术界和工业界提供一个基准测试的标准数据集。...
本项目实现了不依赖任何特定框架,如TensorFlow、PyTorch等,从零开始编写全连接神经网络,对MNIST手写数字数据集进行识别。这样的实现方式有助于理解神经网络的工作原理,并能灵活地调整网络结构和激活函数。 全...
通过使用三层神经网络来实现手写数字识别任务,不仅可以帮助我们理解神经网络的工作机制,还能够加深我们对深度学习算法应用的认识。这不仅是一个理论学习的过程,更是一个实践操作的锻炼。通过对Python代码的编写和...
在当今人工智能技术蓬勃发展的大背景下,机器学习作为人工智能的一个重要分支,...通过学习和实践本项目,不仅可以掌握卷积神经网络在手写数字识别中的应用,也能够对整个机器学习领域有一个全面的认识和深入的理解。
在本项目中,我们将结合TensorFlow和OpenCV,使用MNIST数据集来训练一个卷积神经网络模型,最终目标是能够准确识别手写数字。首先,需要了解MNIST数据集的基本结构,它由60000张训练图像和10000张测试图像组成,每张...
1. 数据采集:首先需要一个包含大量手写数字的训练集,这些数据可以来自真实的手写样本或者模拟生成。 2. 预处理:对收集的图像进行预处理,如二值化、降噪、尺寸归一化等,以便于后续的特征提取。 3. 特征提取:...
《基于人工神经网络的MATLAB手写数字识别系统》 MATLAB是一款强大的数学计算软件,广泛应用于科研和工程领域。本文将深入探讨如何利用MATLAB和人工神经网络(Artificial Neural Networks, ANN)构建一个手写数字...
使用卷积神经网络进行手写数字识别的研究中,通常还会涉及到一些重要的概念和方法,比如数据增强、过拟合和欠拟合的处理、超参数的调整以及模型的训练策略等。数据增强可以增加训练数据的多样性,提高模型的泛化能力...
本案例采用 MNIST 数据集对 sklearn 常用的分类算法进行训练,然后用训练后的模型来识别自己手写的数据。本文采用 sklearn 里面最常用的分类 算法: RandomForestClassifier、 KNeighborsClassifier、 SVC、 ...
`main.py`文件通常包含了整个程序的入口,它调用`beiyesi.py`中的函数来加载数据集(如MNIST,这是一个常用的手写数字数据库),执行预处理,训练分类器,然后进行预测和性能评估。可能还会包含可视化部分,用来展示...
这些数据来自于著名的MNIST数据集,该数据集包含了成千上万的手写数字图片,每张图片被转换成了一个包含784个像素值的向量。对于训练数据,程序需要从中学习到这些特征,并构建一个能够准确识别数字的神经网络模型。...
文章内容:第一章用文字与极简的数学式阐述神经网络的工作原理与关键点,第二章逐步搭建完整的神经网络,以MNIST手写数据集为例,完善神经网络代码,进行训练与传递的实际演示。 ----------------------------------...
MNIST数据集是机器学习领域广泛使用的数据集之一,它包含了成千上万个手写数字的灰度图像及对应的标签。这些图像数据已经被预处理成统一的大小,并且进行了归一化处理,非常适合用于训练和测试手写数字识别模型。在...
为了实现手写数字识别,我们可以使用神经网络,特别是多层感知机(Multilayer Perceptron,MLP)来识别数据集DBRHD的手写数字。 MLP结构 MLP的输入层为图片矩阵展开的1*1024个神经元。MLP的输出层为“one-hot ...
它包含着大量的手写数字图像,供开发者用来训练和测试各种算法和模型。这个数据集的规模相对较小,因此对于绝大多数人来说,无论是数据的下载还是训练过程,都不会对电脑性能提出过高的要求。这使得mnist成为了理想...
为了训练,我们需要一个预先标注的手写数字数据库,例如MNIST数据集,它包含大量手写数字的样本。 4. **分类与测试**:训练完成后,我们可以使用test函数或predict函数对新的手写数字图像进行预测。分类器会根据...
对于手写数字识别,我们还可以尝试其他机器学习算法,如支持向量机(SVM)、决策树或神经网络,通过比较它们的性能来选择最佳模型。MATLAB提供了丰富的工具箱,方便我们进行这些实验。 总结来说,这个项目涉及了...
本项目将介绍如何使用PyTorch实现手写数字识别,特别针对MNIST数据集进行解析,并提供了详细注释的源码。 MNIST数据集是深度学习入门的经典案例,由Yann LeCun等人维护,包含60,000个训练样本和10,000个测试样本的...
BP 神经网络的工作原理是:首先, BP 神经网络对手写数字进行训练,然后通过反向传播算法对神经网络进行调整,最后,使用训练好的神经网络对手写数字进行识别。 三、手写数字识别的实现过程 手写数字识别的实现...