人工智能的发展起步于1950年,期间经历了各种里程碑和变革,与此相关的神经网络技术也从最初的单层感知到复杂的层级和卷积神经网络一路创新和变革,不断推动人工智能领域的发展,直到 2022 年 ChatGPT 的问世,彻底引爆了大众的目光。
人工智能技术经历了漫长的迭代过程,无论如何变革都离不开最早的神经网络模型“感知机”的启蒙,作为人工智能领域的一个重要里程碑,本篇文章就聚焦于“感知机”的实现进行说明。
让我们从理解感知机开始,彻底搞懂到底什么是神经网络。
原创声明,文章原创地址:人人都能搞定的大模型原理 - 神经网络
01、神经网络 - 感知机
神经网络技术是从神经科学中汲取灵感,并试图捕捉人类隐藏在所谓的“快速感知”背后的一些无意识的思考过程,如人脑自动识别人脸或识别语音等。
20世纪50年代末,心理学家弗兰克·罗森布拉特受到人脑中神经元处理信息的方式的启发,一个神经元就是大脑中的一个细胞,它能够接收与之相连的其他神经元的电或化学输入信号。
简单的说,一个神经元把它从其他神经元接收到的所有输入信号加起来,如果达到某个特定的阈值水平,它就会被激活。
重要的是,一个给定的神经元与其他神经元的不同连接(突触)有不同的强度,当计算信号输入总和的时候,给定的神经元会给弱连接分配较少的权重,而将更多的权重分配给强连接的输入。
而对于计算机科学家来说,信息在神经元中的处理过程可以通过一个有多个输入和一个输出的计算机程序(感知机)进行模拟。
神经元和感知机之间的类比:大脑中的神经元(A)和一个简单的感知机(B)
图中(A)展示了一个神经元及其树突(为细胞带来输入信号的结构)、胞体和轴突(即输出通道);图中(B)则展示了一个简单的感知机结构。
与神经元类似,感知机将其接收到的输入信号相加,如果得到的和等于或大于感知机的阈值,则感知机输出1(被激活),否则感知机输出0(未被激活)。
为了模拟神经元的不同连接强度,罗森布拉特建议给感知机的每个输入分配一个权重,在求和时,每个输入在加进总和之前都要先乘以其权重。
而感知机的阈值则是由程序员设置的一个数值,它也可以由感知机通过自身学习得到。这个文章后面会再次进行说明。
简而言之,感知机是一个根据加权输入的总和是否满足阈值来做出是或否(输出1或0)的决策的简易程序。
而在生活中,你可能会以下面这样的方式做出一些决定。
例如,你会从一些朋友那里了解到他们有多喜欢某一部电影,但你相信其中几个朋友对于电影的品位比其他人更高,因此,你会给他们更高的权重。
如果朋友喜爱程度的总量足够大的话(即大于某个无意识的阈值),你就会决定去看这部电影。如果感知机有朋友的话,那么它就会以这种方式来决定是否看一部电影。
原创声明,文章原创地址:人人都能搞定的大模型原理 - 神经网络
02、图片识别
受大脑神经元网络的启发,罗森布拉特提出可以应用感知机网络来执行视觉任务,例如人脸和物体识别。为了了解感知机网络是如何开展工作的,我们接下来将探索一个感知机如何执行特定的视觉任务,比如,识别如下图所示的手写数字。
我们将感知机设计为“8”探测器,也就是说,如果其输入是一幅数字8的图像,则输出1;如果输入图像的内容是其他数字,则输出0。
设计这样一个探测器需要我们先弄清楚如何将图像转换为一组数值输入,再确定感知机的权重分配和阈值,以使感知机能够产生正确的输出(8为1,其他数字为0)
注:18×18像素图像中的每个像素对应感知机的一个输入,该感知机共有324(18×18)个输入
上图(A)展示了一个放大的手写数字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。
接下来,将感知机的输出和人类标记的正确答案(“8”或者“非8”)做比较。如果感知机给出的答案是正确的,则权重和阈值不会发生变化,但是如果感知机是错误的,其权重和阈值就会发生变化,以使感知机在这个训练样本上给出的答案更接近于正确答案。
此外,每个权重的变化量取决于与其相关的输入值,也就是说,对错误的“罪责”的分配取决于哪个输入的影响更大或更小。
在上图“8”的324个像素块中,纯黑色方块的像素强度为0影响较大,而纯白色方块的像素强度为255则不会有任何影响。
对此数学原理感兴趣的读者,可以查阅下面的计算细节:
从数学的角度看,感知机学习算法如下。对于每个权重wj:wj ← wj + η (t + y) xj,其中t表示正确的输出(1或0);对于给定的输入,y是感知机的实际输出;xj是与权重wj有关的输入;η是由程序员给出的学习速率,箭头表示更新。阈值通过创建一个附加的输入x0合并得到。x0为常数1,其相对应的权重w0=-threshold(阈值)。对于给定额外的输入和权重(称为偏差),只有在输入与权重的乘积,即输入向量与权重向量之间的点积大于或等于0时,感知机才会被触发。通常,输入值会被缩小或者应用其他变换以防止权重过大。
下一个训练将重复上述整个过程。感知机会将这个训练过程在所有的训练样本上运行很多遍,每一次出错时,感知机都会对权重和阈值稍做修改。
正如行为心理学家斯金纳在训练鸽子时所发现的:通过大量试验循序渐进地学习,其效果更好,如果在一次试验中,权重和阈值的改动过大,系统就可能以学到错误的东西告终。
例如,系统过度关注于8的上半部分和下半部分的大小总是完全相等的。在每个训练样本上进行多次重复训练之后,系统最终将获得一组能够在所有训练样本上都能得出正确答案的权重和阈值。此时,我们可以用测试样本对感知机进行评估,以观察它在未曾训练过的图像上的表现。
只需为系统提供足够多的训练样本,感知机的识别准确率就会越来越高,直到对正确“8”数字的正确识别率达到了一定程度以后,系统针对“8”数字的输入权重和阈值变化幅度将会越来越低,直到维持在一个相应的平衡数值当中。
此时我们就可以定义为这个系统已经训练完成,对“8”的识别率达到了百分之XX的精准识别。
原创声明,文章原创地址:人人都能搞定的大模型原理 - 神经网络
04、“亚符号”派
罗森布拉特在数学上证明了对于一个特定的任务类别,原则上只要感知机经过充分的训练,就能学会准确无误地执行这些任务。但由于感知机的“知识”由它所学到的权重和阈值这对数值组成,这意味着我们很难发现感知机在执行识别任务时使用的规则。
感知机的权重和阈值不代表特定的概念,这些数字也很难被转换成人类可以理解的含义。这一情况在当下具有上百万个权重的神经网络中变得更加复杂。
有人可能会将感知机和人脑做一个粗略的类比。如果我能打开你的大脑,并对其中上千亿个神经元中的一部分进行观察,我可能并不能清楚你的想法或者你做某个特定决定时所用的规则。
然而,人类的大脑已经产生了语言,它允许你使用符号(单词和短语)来向我传达你的想法,或者你做某件事的目的。
从这个意义上说,我们的神经刺激可以被认为是亚符号化的,而以它们为基础,我们的大脑不知何故却创造了符号。类比于大脑中的亚符号化的神经网络,感知机以及更复杂的模拟神经元网络,也被称作“亚符号”派。
这一派的支持者认为:若要实现人工智能,必须以类似于智能符号处理从大脑中涌现的方式,从类似于神经元的结构中涌现出来。
而仅仅是使用感知机这种单神经元结构还远远不够,能否在足够多的训练样本之下让机器学会语言和文字的翻译?如何让机器也可以走路,说话,识别人类?
于是乎层级神经网络,卷积神经网络,循环神经网络,深度信念网络等模型呼啸而来。
原创声明,文章原创地址:人人都能搞定的大模型原理 - 神经网络
05、什么是大模型?
了解感知器和单神经元的原理是为了后续更好的了解“基于深度神经网络机器学习”的基础。
我们经常所听到的大模型有几百亿几千亿的参数,这里的参数其实就是神经网络的输入权重和输出阈值的总和。
我们假定一个神经元有9个输入权重,和1个输出阈值,那么就可以说该神经元有10个参数。
当我们有100亿个这样的神经元时,此时就可以说我们的神经网络模型有1000亿个参数,也就是所谓的千亿级参数的大模型。
是不是贼啦简单?原来各种官方一直提到的百亿,千亿参数的大模型,原来是这个意思呢。
此处我们再做一点小小的延伸~
我们上述所提到的感知机(单神经元),通过一定的学习算法,可以将这个单神经元具备一定简单的智能效果,比如识别单个数字。
那么你想象一下,我们单个神经元通过一定的学习算法,可以出现简单的智能效果,此时如果有100亿个神经元呢?100亿个神经元合在一起所具备的智能效果,这将是一个多么强智能的效果存在。
每个神经元都只需要记住自己的一点点规则,可以具备识别出一个非常小的一个能力,此时将这个神经元的数量扩大到100亿,1000亿,这就会出现我们现在所经常听到的群体智能,即智能涌现!
“智能涌现”在自然界非常典型的案例就是蚂蚁,单只蚂蚁是非常简单的智能生物,但是一旦当一群蚂蚁聚集的时候,就会建造出非常复杂的蚁巢结构。(感兴趣的可以自行搜下)
而我们人脑呢?根据科学的统计是人脑中约有 1000 亿个神经元,这些庞大的神经元构成了非常复杂的神经网络,这也是人脑智能的基础。
所以知道为什么有时候明明也没运动,但是上班一天还是要吃很多食物了吗?因为你庞大神经元的运转也是需要消耗能量的呀。AI 消耗电力补充能量,而我们消耗食物来补充能量(奇奇怪怪的知识又增加了
标签:搞定,权重,阈值,感知机,神经网络,人人,输入,神经元 From: https://www.cnblogs.com/zh94/p/18355757