
大多数人毫不费力地将这些数字识别为504192.这很容易就是欺骗性的。在我们大脑的每个半球,人类有一个主要的视觉皮层,也被称为V1,包含1.4亿个神经元,它们之间有数千亿的连接。然而,人类视觉不仅涉及到V1,而且整个系列的视觉皮肤--V2,V3,V4和V5 - 都在逐渐进行更复杂的图像处理。我们的头脑是超级计算机,通过数亿年的发展进行调整,并且非常适合了解视觉世界。识别手写数字并不容易。相反,我们的人类是非常愚蠢的,非常有意义地说明了我们的眼睛对我们的看法。但几乎所有这些工作都是无意识地完成的。所以我们通常不会理解视觉系统解决问题的难度。
如果您尝试编写一个计算机程序以识别上述数字,则视觉模式识别的难度变得明显。当我们这样做时,似乎很容易突然变得非常困难。关于我们如何识别形状的简单直观 - “9在顶部有一个循环,右下方有一个垂直行程” - 结果表现得不算简单。当你试图使这样的规则精确时,你很快就会迷失在例外和注意事项和特殊情况之中。似乎没有希望
神经网络以不同的方式解决问题。这个想法是采取大量的手写数字,称为培训示例,

然后开发一个可以从这些培训实例中学习的系统。换句话说,神经网络使用示例来自动推断用于识别手写数字的规则。此外,通过增加训练示例的数量,网络可以更多地了解手写,从而提高其准确性。所以我上面只显示了100个训练数字,也许我们可以通过使用数千甚至数百万或数十亿的培训实例来构建一个更好的手写识别器。
在本章中,我们将编写一个实现神经网络的计算机程序,该神经网络学习识别手写数字。该程序只有74线长,不使用特殊的神经网络库。但这个简短的程序可以识别96%以上的数字,无需人为干预。此外,在后面的章节中,我们将开发可以将准确度提高到99%以上的想法。事实上,最好的商业神经网络现在很好,它们被银行用来处理支票,也可以由邮局来识别地址。
我们专注于手写识别,因为它是一个很好的原型问题,用于一般学习神经网络。作为一个原型,它是一个很棒的地方:它是具有挑战性的 - 识别手写数字并不是很小的专长 - 但是并不困难,需要一个非常复杂的解决方案,或巨大的计算能力。此外,它是开发更先进技术的好方法,如深度学习。所以在整本书中,我们将重复回到手写识别问题。在本书的后面,我们将讨论如何将这些想法应用于计算机视觉中的其他问题,以及语音,自然语言处理和其他领域中的其他问题。
当然,如果本章的内容只是写一个计算机程序来识别手写数字,那么这一章将会更短!但是,一直以来,我们将开发许多关于神经网络的关键思想,包括两种重要类型的人造神经元(感知器和S形神经元),以及称为随机梯度下降的神经网络的标准学习算法。在整个过程中,我将重点解释为什么事情按照自己的方式完成,以及建立神经网络直觉。这需要比如果我刚刚介绍发生了什么的基本机制的更多的讨论,但是值得你深入了解一下。在收益之中,在本章结尾,我们将能够明白什么深入学习,
感知
什么是神经网络?要开始,我将解释一种称为感知器的人造神经元。感知是 开发 由科学家在20世纪50年代和60年代 弗兰克·罗斯布拉特,灵感来自早期的 工作 由沃伦·麦卡洛克和 瓦尔特·皮茨。今天,使用其他人造神经元的模型更为常见 - 在本书中,在神经网络的现代工作中,使用的主要神经元模型称为S形模型 神经元。我们很快就会到Sigmoid神经元。但是要了解为什么Sigmoid神经元被定义为他们的方式,值得花时间先了解感知器。
那么感知器怎么工作?感知器需要几个二进制输入 ,并产生单个二进制输出: X1,x2,...

这是基本的数学模型。你可以考虑感知器的一个方法是它是通过加重证据来做出决定的一种设备。让我举个例子。这不是一个非常现实的例子,但很容易理解,我们很快就会得到更逼真的例子。假设周末来了,你们听说你城里会有一个奶酪节。你喜欢奶酪,正在试图决定是否去参加节日。你可以通过衡量三个因素来作出你的决定:
- 天气好吗
- 你的男朋友或女朋友想陪你吗?
- 节日在公共交通附近吗?(你没有车)
w ^1= 6 w ^2= 2 w ^3= 2 w ^1 五 1 0
3
显然,感知器不是人类决策的完整模型!但是,这个例子说明了感知器如何衡量不同类型的证据来做出决定。似乎似乎合理的是,一个复杂的感知器网络可能会做出相当微妙的决定:

顺便说一下,当我定义感知器时,我说感知器只有一个输出。感知器上方的网络看起来像有多个输出。实际上,它们仍然是单一输出。多个输出箭头仅仅是指示感知器的输出被用作几个其他感知器的输入的有用方式。绘制单独的输出线然后分裂不那么笨重。
ΣĴw ^ĴXĴ> 阈值 ΣĴw ^ĴXĴ w ^ ⋅ X ≡ ΣĴw ^ĴXĴ w ^ X b ≡ - 门槛
AND
OR
NAND
- 2
3

NAND
NAND
NAND
NAND
NAND
x1
x2
x1⊕x2
1
x1
x2
1
x1x2

NAND
门,两个输入,每个输入的重量
,总体偏差为3。这是结果网络。请注意,我已经将感知器移动到右下角 的一点,只是为了更容易在图上绘制箭头:
−2
3
NAND




加法器示例演示了如何使用感知器网络来模拟包含许多NAND
门的电路。由于NAND
门是通用的计算,因此感知器也是通用的计算。
感知器的计算普遍性同时令人放心和令人失望。这是令人放心的,因为它告诉我们感知器网络可以像任何其他计算设备一样强大。但这也令人失望,因为它似乎似乎感知器只是一种新型的NAND
门。这几乎不是大消息!
但是,情况比这个观点好。事实证明,我们可以设计可以自动调整人造神经元网络的权重和偏差的学习算法。这种调整发生在对外部刺激的反应中,没有程序员的直接干预。这些学习算法使我们能够以与常规逻辑门完全不同的方式使用人造神经元。NAND
我们的神经网络不是明确地布置电路和其他门,而是可以简单地学习解决问题,有时甚至难以直接设计常规电路的问题。