人工智能的发展起步于 1950 年,期间经历了各种里程碑和变革,与此相关的神经网络技术也从最初的单层感知到复杂的层级和卷积神经网络一路创新和变革,不断推动人工智能领域的发展,直到 2022 年 ChatGPT 的问世,彻底引爆了大众的目光。
人工智能技术经历了漫长的迭代过程,无论如何变革都离不开最早的神经网络模型'感知机'的启蒙,作为人工智能领域的一个重要里程碑,本篇文章就聚焦于'感知机'的实现进行说明。
让我们从理解感知机开始,彻底搞懂到底什么是神经网络。
01、神经网络 - 感知机
神经网络技术是从神经科学中汲取灵感,并试图捕捉人类隐藏在所谓的'快速感知'背后的一些无意识的思考过程,如人脑自动识别人脸或识别语音等。
20 世纪 50 年代末,心理学家弗兰克·罗森布拉特受到人脑中神经元处理信息的方式的启发。一个神经元就是大脑中的一个细胞,它能够接收与之相连的其他神经元的电或化学输入信号。
简单来说,一个神经元把它从其他神经元接收到的所有输入信号加起来,如果达到某个特定的阈值水平,它就会被激活。
重要的是,一个给定的神经元与其他神经元的不同连接(突触)有不同的强度。当计算信号输入总和的时候,给定的神经元会给弱连接分配较少的权重,而将更多的权重分配给强连接的输入。
而对于计算机科学家来说,信息在神经元中的处理过程可以通过一个有多个输入和一个输出的计算机程序(感知机)进行模拟。
与神经元类似,感知机将其接收到的输入信号相加,如果得到的和等于或大于感知机的阈值,则感知机输出 1(被激活),否则感知机输出 0(未被激活)。
为了模拟神经元的不同连接强度,罗森布拉特建议给感知机的每个输入分配一个权重,在求和时,每个输入在加进总和之前都要先乘以其权重。
而感知机的阈值则是由程序员设置的一个数值,它也可以由感知机通过自身学习得到。
简而言之,感知机是一个根据加权输入的总和是否满足阈值来做出是或否(输出 1 或 0)的决策的简易程序。
在生活中,你可能会以下面这样的方式做出一些决定。例如,你会从一些朋友那里了解到他们有多喜欢某一部电影,但你相信其中几个朋友对于电影的品位比其他人更高,因此,你会给他们更高的权重。如果朋友喜爱程度的总量足够大的话(即大于某个无意识的阈值),你就会决定去看这部电影。
02、图片识别
受大脑神经元网络的启发,罗森布拉特提出可以应用感知机网络来执行视觉任务,例如人脸和物体识别。为了了解感知机网络是如何开展工作的,我们接下来将探索一个感知机如何执行特定的视觉任务,比如,识别手写数字。
我们将感知机设计为'8'探测器,也就是说,如果其输入是一幅数字 8 的图像,则输出 1;如果输入图像的内容是其他数字,则输出 0。
设计这样一个探测器需要我们先弄清楚如何将图像转换为一组数值输入,再确定感知机的权重分配和阈值,以使感知机能够产生正确的输出。
注:18×18 像素图像中的每个像素对应感知机的一个输入,该感知机共有 324(18×18)个输入。
上图展示了一个放大的手写数字 8,其中 X 轴有 18 个网络方块,Y 轴也有 18 个网络方块,所以一共有 18x18 共 324 个网络方块。
图中每个网格方块(像素)都有一个可以用数字表示的强度值——像素强度(pixel intensity)。在黑白图像中,纯白色方块的像素强度为 255;纯黑色方块的像素强度为 0;而灰色方块的像素强度介于其间。
该感知机具有 324(18×18)个输入,每个输入对应于网格中的一个像素强度,同时每个输入都有自己的权重。
那么我们如何为一个给定的任务准确地设定正确的权重和阈值呢?罗森布拉特再次给出了一个受大脑启发的答案:感知机应该通过自己的学习获得这些数值。
从行为心理学上来看,给老鼠和鸽子以正向和负向的强化可以用来训练它们执行任务。而感知机也应该在样本上进行类似的训练:在触发正确的行为时奖励,而在犯错时惩罚。如今,这种形式的条件计算在人工智能领域被称为监督学习(supervised learning)。
03、感知机学习算法
在训练时,给定学习系统一个样本,它就产生一个输出,然后在这时给它一个'监督信号',提示它此输出与正确的输出有多大偏离,然后,系统会根据这个信号来调整它的权重和阈值。
监督学习通常需要大量的正样本(例如,由不同的人书写的数字 8 的集合)和负样本(例如,其他手写的、不包括 8 的数字集合)。每个样本都由人来标记其类别——此处为'8'和'非 8'两个类别,这些标记将被用作监督信号。
用于训练系统的正负样本,被称为'训练集'(training set),剩余的样本集合,也就是'测试集'(test set),用于评估系统在接受训练后的表现性能,以观察系统在一般情况下,而不仅仅是在训练样本上回答的正确率。
计算机科学中最重要的一个术语就是算法,它指的是计算机为解决特定问题而采取的步骤的'配方'。罗森布拉特对人工智能的首要贡献是他对一个特定算法的设计,即感知机学习算法(perceptron-learning algorithm),感知机可以通过这一算法从样本中得到训练,来确定能够产生正确答案的权重和阈值。
最初,感知机的权重和阈值被设置为介于 -1 和 1 之间的随机数。在我们的案例中,第一个输入的权重可被设置为 0.2,第二个输入的权重被设置为 -0.6,而阈值则被设置为 0.7,使用随机数生成器可以轻松生成这些初始值。
接下来就可以开始训练了,首先将第一个训练样本输入感知机,此时,感知机还不知道正确的分类标记。感知机将每个输入乘以它的权重,并对所有结果求和,再将求得的和与阈值进行比较,然后输出 1 或 0,其中,输出 1 代表它的输入为 8,输出 0 代表它的输入不是 8。


