人人都能搞定的大模型原理 - 神经网络

101 天前
 dearzhzhao

最近“呕心沥血”撰写了一篇 AI 科普的文章,欢迎各位阅读并提出意见,一起交流成长!🙏 🙏


人工智能的发展起步于 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 消耗电力补充能量,而我们消耗食物来补充能量(奇奇怪怪的知识又增加了🤔)

原创声明,文章原创地址:人人都能搞定的大模型原理 - 神经网络

06 、留个思考题

假设我们现在需要训练的神经网络中有 10 亿个神经元,此时我们训练该神经元来识别一个狗/或者猫的动物。

每一个神经元都只需要负责识别很小的一块即可,比如有一部分神经元负责识别猫的脸型轮廓,有一部分神经元负责识别猫的眼睛,最终这部分识别结果会统一传递给下层另外一部分神经元,用来将识别后的猫的轮廓结果和眼睛的结果进行是否是猫的识别判断。

想象一下,在这么多 10 亿个神经元中,如果最终识别结果是错误的,那么如何精确定位到是哪一类神经元识别错误,最终导致整个识别结果是错误的呢?

我们可以以上述图片为例,上图中每一个 ⚪️ 都表示一个神经元,可以看到一个神经元的识别结果,会推送给下游的所有神经元当中,而下游的神经元在拿到上游神经元的输入后进行判断识别,然后再次输出给下游的所有神经元。

层层进行神经网络的执行后,直到最终负责输出的神经元根据上游的输入信息,输出一个最终结果。

此时最终的输出结果如果是一个错误的值,那么我们如何定位到中间是哪个神经元识别结果错误,从而导致最终识别结果错误的呢?

我们只有在最终结果识别错误后定位到是哪些神经元导致的结果异常,才能让这部分神经元单独调整识别的权重,从而提高最终识别结果的正确率。

如何做到呢?大家可以思考一下。但是不用急着给答案,因为这个答案非常难,难到一度影响整个神经网络的进程延缓多年。

想象一下,一群世界上顶级的人类优质(男/女)性,因为这个问题迟迟没有突破从而延缓了 AI 的进程多年,就知道这是一个什么级别的问题了。

当然,我也将在下篇文章中揭晓问题的答案,并科普相关的知识。感兴趣的读者别忘了文章下方关注我们的公众号,更多精彩内容等着你呦!

原创声明,文章原创地址:人人都能搞定的大模型原理 - 神经网络

07 、结语

AI 发展历程(图片来源:智源研究院)

AI 的发展从 1950 年的提出,到如今的成就,其实也才发展短短几十年。

对于大众来说,我们对 AI 领域的使用是随着国内互联网的发展,在近 20 年才开始普及。

最初的应用主要是基于 NLP 技术的聊天机器人和客服机器人,这个也是博主近几年所从事的领域。(以前大家还总吐槽机器人很傻,现在却变成了 AI 即将取代人类,舆论的变化真快啊,哈哈)

随后,中英文翻译、语音识别、人脸识别等技术取得了突破,这些突破在我们日常生活中的应用也非常广泛,比如语音助手、智能翻译设备、人脸识别支付系统等。

但以前的这些技术突破大多都还仅限于特定领域内,模型的应用范围相对狭窄,比如翻译机器人训练完成后只能做翻译,客服机器人只能在特定的语境中才能给你准确的回复。

然而,随着 OpenAI ChatGPT 等大型语言模型的突破,则向人们展示了一种新的发展路线,通过大规模的模型预训练,可以涌现出广泛的智能应用,一个模型就能实现聊天、翻译、数学问题解答、代码编程、写作辅导,甚至情感咨询等等能力。

这种集多功能于一体,像人类一样智能的 AI 模型,为 AI 未来的发展提供了新的技术方向同时,也给人类带来了新的焦虑:

说好的 AI 帮人类扫地、洗碗,人类去写诗、画画的!怎么现在变成了 AI 都去写诗和画画了,我们人类却还在扫地、洗碗 😂

博主第一次看到这段网上的调侃时,也觉得非常的好笑,但细细想来你就会发现,“人机共生” 几乎是人类发展的必然。

现在哪个年轻人出门不带手机?谁工作不用电脑?手机、电脑不就是机器吗。

我们已经不知不觉中和这些机器共同生活了几十年,人类的生活水平非但没有降低,反而生活的便利性还大大提高了许多。

电脑最开始的普及在取代了一些重复性高的职业同时,也为软件行业的兴起提供了新的助力,那些熟悉计算机运行规则的软件工程师,善于利用计算机来洞察人类需求的产品经理,以及善于运用计算机软件来提高效率的职场白领,都在电脑普及后获得了新的提升。

所以新的 AI 技术诞生,必然也会经历这样一个过程,与其担心现在,不如押注未来。人机共生一定是未来的必然趋势,个人价值很大程度上或许来自于和智能机器的默契配合。

只有深入了解 AI 原理,才能更好地驾驭 AI ,让我们一起学习 AI ,携手同行,更好地迎接智能时代的到来吧!

原创声明,文章原创地址:人人都能搞定的大模型原理 - 神经网络

关注我们,不错过每一次知识的碰撞 🔔

喜欢这篇文章的话,就请点点关注、点赞、在看,并转发给更多的朋友吧!

2501 次点击
所在节点    程序员
11 条回复
maokg
101 天前
很赞
dearzhzhao
101 天前
@maokg 谢谢!
Granado
101 天前
虽然谢谢,但是我是极个别人
yb2313
101 天前
现在才是刚刚起步吧, 十年之后再看看 ai 吧, 看看现在的担忧都是多余的, ai 伤害人类, 可能要等 15 年我才能看到那个时代的曙光吧, 从古至今一直在伤害人类的就是统治阶级, 可以说他们已经和普通人是两个物种了, 我们, 是被饲养的资源
dearzhzhao
101 天前
@yb2313 你这个理解其实没有毛病的。AI 只是工具,从古至今都是人类统治人类,高层迷惑低层,低层干活。
dearzhzhao
101 天前
为毛大家都在点收藏,怎么不关注一下公众号 😭 🥹
yb2313
101 天前
@dearzhzhao #6 还是 rss 订阅好用,公众号老是有广告
yb2313
101 天前
@dearzhzhao #5 期待 ai 涌现逻辑推理的那天, 天下苦人类久矣
darksword21
100 天前
写的真不错,有个 rss 就好了。。。。
dearzhzhao
98 天前
🥹 我被封号了,说是什么评论区违禁词!两天呐,两天!过了两天后我才能重新回来看到兄弟们!哭泣啊!
dearzhzhao
2 天前
莫名其妙被封,害

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1064512

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX