【第一章】感知机(Perceptrons)

感知机(Perceptrons)

神经网络是什么?首先,我将解释一种叫做感知机的人工神经元。感知机是在20世纪50年代和60年代由科学家Frank Rosenblatt开发的,受到了早期Warren McCulloch和Walter Pitts的工作的启发。如今,使用其他模型的人工神经元更为常见——在这本书中,以及在许多现代神经网络研究中,主要使用的神经元模型称为sigmoid神经元。我们不久将讨论sigmoid神经元。但是,为了理解sigmoid神经元,首先理解感知机是很有价值的。

那么感知机是如何工作的呢?感知机接收几个二进制输入,x1, x2, …,并产生一个二进制输出:
在这里插入图片描述
在所展示的例子中,感知机有三个输入,x1, x2, x3。一般来说,它可以有更多或更少的输入。Rosenblatt 提出了一个简单的规则来计算输出。他引入了权重 w1, w2, …,这些实数表示各自输入对输出的重要性。神经元的输出,0 或 1,由加权和 ∑jwjxj 是小于还是大于某个阈值来决定。就像权重一样,阈值是一个实数,是神经元的一个参数。用更精确的代数术语来表达:
在这里插入图片描述
这就是感知机工作方式的全部内容!

这是基本的数学模型。你可以将感知机看作是一个通过权衡现状来做出决策的设备。让我举个例子。这不是一个非常现实的例子,但它易于理解,我们很快就会得到更现实的例子。假设周末即将到来,你听说你所在的城市将有一个奶酪节。你喜欢奶酪,并且正在尝试决定是否去参加节日。你可能会通过权衡三个因素来做出决定:

天气是否好?
你的男朋友或女朋友是否想陪你去?
节日地点是否靠近公共交通?(假设你没有汽车)
我们可以通过相应的二进制变量 x1, x2 和 x3 来表示这三个因素。例如,如果天气好,我们有 x1=1,如果天气不好,就有 x1=0。类似地,如果你的男朋友或女朋友想去,那么 x2=1,如果不想去,那么 x2=0。对于 x3 和公共交通也是同样的道理。

现在,假设你非常喜欢奶酪,即使你的男朋友或女朋友对此不感兴趣,而且节日地点难以到达,你仍然乐意去参加。但也许你真的很讨厌糟糕的天气,如果天气不好,你绝不会去节日现场。你可以使用感知机来模拟这种决策过程。一种方法是为天气选择一个权重 w1=6,对于其他条件,选择 w2=2 和 w3=2。w1 的较大值表明天气对你来说非常重要,远比你的男朋友或女朋友是否加入你,或公共交通的便利性更为重要。最后,假设你为感知机选择了一个阈值 5。有了这些选择,感知机就实现了所需的决策模型,当天气好时输出 1,天气不好时输出 0。你的男朋友或女朋友是否愿意去,或者公共交通是否便利,对输出没有影响。

通过改变权重和阈值,我们可以得到不同的决策模型。例如,假设我们改为选择一个阈值 3。那么感知机将决定,只要天气好,或者节日地点靠近公共交通并且你的男朋友或女朋友愿意加入你,你就应该去节日现场。换句话说,它会是一个不同的决策模型。降低阈值意味着你更愿意去参加节日。

显然,感知机并不是人类决策制定的完整模型!但这个例子说明了感知机如何权衡不同类型的现状以做出决策。并且,一个复杂的感知机网络有可能做出相当合理的决策。

多层感知机(MLP)

在这里插入图片描述
在这个网络中,感知机的第一列——我们称之为感知机的第一层——通过权衡输入做出三个非常简单的决策。那第二层的感知机呢?每个感知机都通过权衡第一层决策的结果来做出决策。这样,第二层的感知机就可以在比第一层感知机更复杂、更抽象的水平上做出决策。第三层的感知机甚至可以做出更复杂的决策。通过这种方式,一个多层的感知机网络可以进行复杂的决策制定。

顺便说一下,当我定义感知机时,我说一个感知机只有一个输出。在上面的网络中,感知机看起来好像有多个输出。实际上,它们仍然是单一输出。多个输出箭头只是一种表示感知机的输出被用作多个其他感知机的输入的便捷方式。这比画一个单一的输出线,然后分裂它,要简洁得多。

让我们简化我们描述感知机的方式。条件 ∑jwjxj > threshold 比较繁琐,我们可以做两个符号变更来简化它。第一个变更是将 ∑jwjxj 写作点积 w⋅x≡∑jwjxj,其中 w 和 x 是向量,它们的组成部分分别是权重和输入。第二个变更是将阈值移动到不等式的另一侧,并用所谓的感知机偏置(bias) b≡−threshold 代替。使用偏置而不是阈值,感知机规则可以重写为:
在这里插入图片描述
你可以将偏置视为感知机输出 1 的难易程度。或者用更生物学的术语来说,偏置是感知机激活的难易程度的度量。对于偏置非常大的感知机来说,输出 1 非常容易。但如果偏置非常负,则感知机输出 1 很困难。显然,引入偏置只是我们描述感知机时的一个小改变,但我们稍后将看到,它导致了进一步的符号简化。因此,在教程的其余部分,我们不会使用阈值,我们将始终使用偏置。

我已经将感知机描述为一种权衡输入以做出决策的方法。感知机还可以用来计算我们通常认为是计算基础的基本逻辑功能,例如 AND、OR 和 NAND 函数。例如,假设我们有一个感知机,它有两个输入,每个输入的权重为 -2,总偏置为 3。这是我们的感知机:
在这里插入图片描述
那么我们看到,输入 00 产生输出 1,因为 (-2) * 0 + (-2) * 0 + 3 = 3 是正数。这里,我引入了 * 符号来明确表示乘法。类似的计算表明,输入 01 和 10 产生输出 1。但是输入 11 产生输出 0,因为 (-2) * 1 + (-2) * 1 + 3 = -1 是负数。因此我们的感知机实现了一个 NAND 门!
NAND 示例表明我们可以使用感知机来计算简单的逻辑功能。实际上,我们可以使用感知机网络来计算任何逻辑功能。原因是 NAND 门对计算是通用的,也就是说,我们可以使用 NAND 门构建任何计算。

备注:
逻辑门 NAND(非与门)是一种基本的逻辑门,它实现的是非(NOT)与(AND)的组合。在布尔逻辑中,NAND 门的输出仅在所有输入都为真(1)时为假(0),在任何其他输入组合下,输出都是真(1)。如果我们把输入值标记为 A 和 B,那么 NAND 门的输出可以用下表表示:
在这里插入图片描述
在数字电路和计算理论中,NAND 门非常重要,因为它可以单独用来构建任何其他逻辑门和复杂的逻辑电路。换言之,NAND 门是一种“通用”的逻辑门,因为你可以使用一组 NAND 门来实现 AND、OR、NOT 甚至 XOR 门。这意味着,给定足够数量的 NAND 门,你可以构建任何数字逻辑电路,这使得 NAND 门在实现复杂的计算系统中扮演了基础而关键的角色。

NAND 示例表明我们可以使用感知机来计算简单的逻辑功能。实际上,我们可以使用感知机网络来计算任何逻辑功能。原因是 NAND 门对计算是通用的,也就是说,我们可以仅使用 NAND 门来构建任何计算过程。例如,我们可以使用 NAND 门构建一个电路,用以计算两个位的和,x1 和 x2。这需要计算位和 x1⊕x2,以及一个进位位,当 x1 和 x2 都为 1 时,进位位设为 1,即进位位就是位积 x1x2:
在这里插入图片描述
为了获得等效的感知机网络,我们用两个输入的感知机替换所有 NAND 门,每个输入的权重为 -2,并且整体偏置为 3。这是得到的网络。注意,我稍微移动了对应于右下角 NAND 门的感知机,只是为了使图上的箭头更容易画:
在这里插入图片描述
这个感知机网络的一个显著特点是,最左边的感知机的输出被作为输入使用了两次,输入到最底部的感知机。当我定义感知机模型时,并没有说是否允许这种双重输出到同一位置。实际上,这并不重要。如果我们不想允许这种情况,那么可以简单地将两条线合并为一条,权重为 -4 而不是两条 -2 权重的连接。(如果你认为这不明显,你应该停下来证明给自己这是等效的。)有了这个变化,网络如下所示,所有未标记的权重等于 -2,所有偏置等于 3,标有 -4 权重的单个连接如标记所示:
在这里插入图片描述
到目前为止,我一直将 x1 和 x2 这样的输入画作漂浮在感知机网络左侧的变量。实际上,通常会绘制一个额外的感知机层——输入层——来编码输入:
在这里插入图片描述
这种表示输入感知机的符号,我们有一个输出,但没有输入,这根本不是真正的感知机,而是特殊的单元,它们被定义为输出所需的值
在这里插入图片描述
加法器示例演示了如何使用感知机网络来模拟包含许多 NAND 门的电路。而且,由于 NAND 门对计算是通用的,因此可以推断感知机对计算也是通用的。
感知机的计算通用性同时令人安心和失望。令人安心的是,它告诉我们感知机网络可以和任何其他计算设备一样强大。但它也令人失望,因为它使感知机看起来只是一种新型的 NAND 门。这几乎不是什么大新闻!

然而,实际情况比这种观点预示的要好。事实证明,我们可以设计学习算法,这些算法可以自动调整人工神经元网络的权重和偏置。这种调整是对外部刺激的反应,无需程序员的直接干预。这些学习算法使我们能够以一种与传统逻辑门截然不同的方式使用人工神经元。我们的神经网络不需要显式地布局 NAND 和其他门的电路,它们可以简单地学会解决问题,有时是直接设计传统电路极其困难的问题。

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值