程序员老公和包子的故事:从死板到智慧的AI

释放双眼,带上耳机,听听看~!
了解人工智能程序如何从死板的指令代码变成智慧的黑盒,通过神经网络实现自动思考的原理。探讨程序员老公和包子故事中的智慧背后的技术原理。

我正在参加「掘金·启航计划」

本文源于一条评论。

程序员老公和包子的故事:从死板到智慧的AI

我之前写了一篇文章《我可能要给鼓吹AI的那些人,浇盆凉水了》。

文章的中心思想是这样的:

1、没有否定AI的发展、作用以及未来。在某些领域中,它确实给工作和生活,带来了多面的影响,比如让有些商家省钱,让有些人员失业。

2、未谈半点商业相关的东西。仅从个人视角,以三个故事,讲述国内的中小企业在实际应用的落地上,会面临一些关于算力和数据的窘境。

3、介绍了除GPT以外,其他的中小型的开源模型。另外,现在依然处于弱人工智能时代。这次AI逆袭,更多是运算财力和数据量带来的质变。

我不是在唱衰啊,只是提醒大家,理智对待,量力而为。

其中,有个网友就提了上面那个问题。鉴于图片模糊,我把文本贴在下方,他评论说:

看你这么专业,我问个问题。ChatGPT火了之后,一直有讨论AI会思考的问题。我不明白的是,计算机程序的底层算法,就是顺序执行、判断执行、循环执行三种。任何程序都是人工一行一行写的代码,依照指令执行一遍,怎么会产生智慧呢?

我想上面这个问题,不用再进一步解释了。他提的问题,质量确实很高。因为大家也都会好奇,程序是死板的代名词,是人类编的指令,它只会按照设定的代码,一步一步地去执行。它怎么能产生智慧呢?

甚至还有一个笑话,将程序的死板刻画得冰天雪地。

说一个老婆给程序员老公打电话:“亲爱的,今天不做饭了。你下班后,买六个包子。如果看到卖西瓜的,买一个”。
当晚,程序员就捧着一个包子回家了。
老婆很生气地质问他:“你怎么就买了一个包子?”
老公回答说:“因为我看到卖西瓜的了”

这个笑话可能得解释一下。没有三五年的编程经验,可能看不懂。

我特意按照剧情,写了一段代码。程序执行后,结果还真是一个包子。

程序员老公和包子的故事:从死板到智慧的AI

当然,这只是个笑话。采用了夸张的手法,为得是表现程序很笨,不会联系语境,不懂变通。

然而,现在的人工智能语言大模型,却显得比人类更聪明。它们不但上知天文,下知地理,中通人和。而且还会逻辑,懂推理,精通算术。你都猜不出来它什么不会!

这就奇怪了。这套程序是谁编的呢?复杂不复杂?

下面我就尝试解释一下。如果解释不好,还请大家指正或者补充。

先声明一点,我解释的层面很浅,甚至到不了皮毛,也就是到秋衣那一层。虽然不权威,但绝对通俗。你看完了,就精通算法了——这不可能。顶多就是听完了,点点头说“哦,原来是这样”。

白盒与黑盒

白盒与黑盒,同白猫、黑猫不是一回事。

白盒也叫透明盒。

程序员老公和包子的故事:从死板到智慧的AI

就是说它的逻辑是透明的,你可以了解得一清二楚。它也可能会极其复杂,但是每一个步骤,都不会超出你的预期。即便是几十个齿轮相互关联,修表的工匠也能理出其中的前因后果。这很像大家普遍认知中那个死板的指令代码。

还有一种盒子叫黑盒,它与白盒正好相反。

程序员老公和包子的故事:从死板到智慧的AI

你不知黑盒是怎么运作的。

但是,你可以使用它。你们之间有输入和输出关系。你说一句,它回一句。你付个钱,它给你展示效果。究竟它是怎么想的,它遇到卖西瓜的会买几个包子,这些我们不知道。就像我们问机器人问题,它每次回答都有些差别。

人工智能的程序就是黑盒,它相比于传统的白盒代码,它执行的具体逻辑,我们是不知道的。甚至连它的作者,写代码的程序员也不知道。

此时,有一个新问题就产生了:既然程序员都不知道它是怎么判断的,那这代码是怎么写的?又是怎么让它工作的呢?

神经网络

人工智能技术大多是采用神经网络实现的。

“神经网络”这个概念,最早是由冯·诺依曼在1948年提出来的。冯·诺依曼研究人脑结构与计算机存储的区别,提出了用存储计算模拟人类的神经元,从而实现计算机“自动思考”。但是,当时白盒的指令程序,发展很好,很挣钱。于是,老冯就放弃了神经网络。

再往后,科学家们也一直研究神经网络。但总是热一阵儿,冷一阵儿。反正也研究不明白,机器也不快,同时也不挣钱。直到近几年,它突然火了。

那么,神经网络的原理到底如何呢?

它既然模仿的是人类神经元,那我们不妨先了解神经元是什么东西。

程序员老公和包子的故事:从死板到智慧的AI

通俗了说,神经元就是好多个爪爪最终汇成了一个爪。这有点像八爪鱼。

程序员老公和包子的故事:从死板到智慧的AI

八爪鱼摸啤酒瓶,摸半天,几个爪爪获得数据,传给大脑。八爪鱼结合尺寸、形状和材质,得出结论,原来是摸了个啤酒瓶。摸麻将也是,有时候一个爪儿一绕,小吸盘一靠,这是一个八筒。

这种结构有一个作用,那就是通过多个输入,最终产生一个输出。这就像你去相亲,通过对方的相貌、经济、性格等多个输入,最终你会产生他是否值得交往,这样一个结果输出。

当这些小八爪多了之后,一个八爪的头又作为顶级的小触手,相互勾连,层层传递,就形成了我们的神经网络。

程序员老公和包子的故事:从死板到智慧的AI

计算机所模拟的,就是这类结构。这并不难理解,可以搞成一个数学模型。

程序员老公和包子的故事:从死板到智慧的AI

训练和学习

我是从2018年开始了解神经网络的。我的女儿是2020年出生的。我感觉人工智能的训练和学习过程,很像一个小婴儿的成长。于是,我就一直观察女儿学习和认知的过程。

我拿了张卡片,教她认识小动物。

程序员老公和包子的故事:从死板到智慧的AI

我告诉她,这是一张狗。她记下了,哦,长这模样的就叫狗。

后来,我带她出门,在小区遇到遛狗的美女。女儿指着草丛中撒尿的小狗喊道:狗狗!

有点奇怪。我陷入了思考,我教过她认识卡片上的狗。但是草丛里的那条狗,她是第一次见,她也能分辨得出来。这说明,她肯定是找到了狗身上的某些特征。具体是哪些特征呢?她可能是胡乱猜的,比如舌头或者鼻子。

是的,人工智能的神经网络,一开始的机制也是乱猜。

就比如说,有一堆零件,里面有合格品也有次品。我们想让人工智能去学会区分。因此,我们得先提供了一批样品,作为训练数据。这里面有合格的,也有不合格的。然后把它们交给程序去学习。

程序员老公和包子的故事:从死板到智慧的AI

算法程序怎么去学习呢?其实就是计算,从已知的输入去计算结果的输出。

假设我们知道这些零件的误差尺寸,也知道它们是否合格。然后,程序员就建立一个数学模型,告诉它需要关注什么地方。比如写一个公式:结果=参数1×误差尺寸+参数2。

也就是让它找到一条线,这条线是合格品和次品的分界线。

这里有一个上帝视角的问题。因为我标好了,而且还做成了图像,所以你一眼就知道线应该在哪里。但是,计算机面对的是一组组混乱的数据。

因此,它首先就无脑地随便画一条线。然后说这就是那条分界线。结果,把训练数据带进去一算,不对,这条线猜错了。然后,它再随机画一条线,说这条线就是分界线,然后再算。因为它的试错机会很多,一秒可以运算上万次,所以最终它总能找对答案。

在寻找答案的过程中,不断调整的就是公式中的“参数1”和“参数2”。

程序员老公和包子的故事:从死板到智慧的AI

我们看整个过程,程序员并没有写关于逻辑判断的语句。他们只是搭建了几层神经网络,然后指定了一个“结果=参数1×误差尺寸+参数2”的公式。其中起关键作用的“参数1”和“参数2”,程序员也不知道具体的数值是多少。他通过框架和模型,先随机胡乱猜测一个,然后通过大量样本数据进行矫正。猜不对就再换一个。最终会找到适合多数训练数据的参数。

这个找的参数的过程,依靠的就是算法,一般都有成熟的开源框架,大家都可以使用。

到这里,不知我是否已经讲得明白了,人工智能通过神经网络,开局是个脑残,但是借助于高频次的计算,再利用数据的喂养进行不断矫正,最终实现了自发的智慧。

这一点也是和传统的指令程序,差别最大的地方。

实现质的飞越

后来,我又给女儿看了一张照片。

程序员老公和包子的故事:从死板到智慧的AI

我问她,这个图片是什么?

她回答说:是狗!

我说不对,这个叫“狮子”!她仔细看了看,点了点头,记下了这个模样的动物叫狮子。

我猜测她的神经元内应该是又建立了很多新的突触,就像是人工智能的神经网络又更新了参数。

程序员老公和包子的故事:从死板到智慧的AI

其实,从这里我们也看到。只有见得多,才会认识的多。不管是人,还是人工智能。所以,缺少数据的喂养,就像是婴儿缺少教育,如果到八岁还只见过狗,没见过猫,那发展多少年智力都高不了。这也是很多人工智能客服不智能的一个重要原因。

可以想象,那些对话机器人在训练时,也是给计算机喂数据,一问一答。

问题是“你吃了吗?”,答案是“吃过了!”。

算法模型很鸡贼,只给问题,让计算机自己随机出答案。计算机就胡乱输出,给出成千上万甚至上亿条答案,这里面有“天气不错”、“电影好看”,当然也包括“吃过了!”。

这就是有网友评论说,给猴子一台电脑,他能从键盘上只字不差地打出一部《莎士比亚全集》。前提是要有足够长的时间。这个概率比你期期中彩票还要低。但这在计算机的超级计算能力下,一些概率问题,可以靠增加次数解决。

最后,模型给出答案,它说“吃过了!”是标准答案。并让计算机记下来,当你猜到是“吃过了!”时,你内部的随机值是怎样的,发生了什么。你要存储下来,下次还有用。

计算机的算力是很强大的,记录这种随机值,就分配了百万亿个参数。它会从不同的维度去记录,甚至包括当时猜到“吃过了!”时,我的GPU温度是多少度。尽管这项数据和问题没有关系,但是架不住企业有设备,存就完了,万一有用呢!

而数据也是海量的,全球的对话数据它都有,人类历史上出现过的对话,都会作为训练数据。你不要认为你问的问题很刁钻,放眼全球,像你一样的人,还有很多。

最后,人工智能看遍了世间所有能找到的资料。它有的是算力,因此它的计算速度非常快。很早之前它就叫“电脑”,现在更了不起,叫“超级电脑”。

它能计算,因此会把数据进行拆分和关联。

比如关于森林的知识,它可以从文本中拆分出“树木”、“气候”、“温度”等词汇。关于家具的知识,它可以拆分出“钉子”、“材料”、“风格”等元素。

当我们问“多买家具会发生什么时?”。它可能会回答“可能会造成森林减少,进而影响气候”。

为什么这么回答?人类的资料中并没有这类训练数据啊?但是,它脑子快,脑容量大。它从家具关联到了木材,从木材关联到了森林,从森林关联到了气候……

程序员老公和包子的故事:从死板到智慧的AI

具体它会回答什么?又是谁和谁进行的关联?这一切,人类已经无法通过逻辑去判断了。因为就算是万亿个if、else分支,我们也理不清楚了。更何况实际的神经网络结构要更复杂。而我们尚且连自己的大脑都还没有研究明白。

以上举的例子比较落后,仅仅为了从理论层面,去解释计算机出现了非人类可知的结果。

我是掘金TF男孩,一个爱侃大山的IT男。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

苯丙酮尿症的症状及发病机制详解

2023-11-22 17:43:14

AI教程

传统制造业在疫情后时代的机遇

2023-11-22 17:58:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索