程序是如何运行的(9)终结篇-让计算机“思考”

程序是如何运行的(9)终结篇--让计算机“思考”

1.作为“工具”的程序和为了“思考”的程序

程序就如同是由计算机执行的各种指令罗列起来的文字。计算机内部的CPU,通过对该文字的内容进行解析和运行,来控制连接到计算机的各种外围设备。具体来说,控制就是指CPU和各种外部设备之间配合进行数据的输入输出处理。

程序的使用目的大体可以分为两类。一类是作为工具来使用的程序。例如记事本、Microsoft Office系列等,大家将其作为工具来使用。

另外一个使用目的是用程序来代替执行人类的思考过程。例如,微计算机控制的电饭煲,会根据米和谁的分量来自动调整好火力的大小及加热时间,进而焖出好吃的免费。当然,大家只要控制好火的大小及加热时间,也可以做出好吃的免费。不过,这件事由计算机代替执行力。这种情况就可以说是借助程序,使计算机有了“思考”功能。

2.用程序来表示人类的思考方式

接下来,我们用C语言制作《猜拳游戏》,来尝试这种思考方式。大家通常是一边说“石头剪刀布”一边猜拳。不过,小孩子的话,在说“石头剪刀布”的时候,他并不会思考接下来是出石头、剪刀还是布,而是在说“布”的同时直接决定。这就是一种没有任何测量的随意的思考方式。该思考过程用程序来表示的话,就如下图所示。

3.用程序来表示人类的思考习惯

即使是成年人,可能偶尔也会随意决定出什么。不过,并不是所有人都是如此。例如“小A同学喜欢出石头”,像这样,出拳习惯是因人而异的。习惯也是人类的思考方式。而如果要用程序来表示人类的习惯,就需要对习惯进行定量表现。虽然这里提到了定量,但大家不要想的太复杂。出石头的概率是50%,出剪刀的概率是30%,出布的概率是20%,像这样用数值来表示的方式,就是定量的意思。

这样,具有某种习惯的猜拳游戏就完成了。多次猜拳后,就会发现“这个计算机有出石头的习惯”。不过,真正的计算机并不具有习惯。这里只是运行了具有习惯的程序而已。

4.人工智能

人类的日常判断通常是根据直觉和经验做出的。直觉并不仅仅是简单的任意思考,通常还带有一些个人的思维习惯。如果增加经验(记忆)元素的话,想必就可以作成更接近人类思考的程序了。

请大家考虑一些猜拳游戏中是如何用到经验的。经过多次猜拳后,我们可能就会得到类似于“小B同学在出石头后出剪刀的概率比较高”这样的经验。基于这一经验,我们就可以应用以下策略,即“刚才小B同学出了一个石头,接下来应该会出剪刀,因此计算机出石头的话就赢了”。

程序运行后,就会发现计算机变强了,因为计算机有了“记忆”。

不过,除此之外,人类还有一个思考方式。思考方式是思考方法的节奏。人类大脑中有类似于“石头、石头、布、剪刀”或“剪刀、石头、石头、布”这种具有节奏感的短语,人类会在此基础上做出判断,这就是思考的方式。

人类会在不知不觉中按照自己的思考方式出拳,但连续输掉多次后也会变换一些方式。我们设定连续输2次就改变思考方式。在时赢时输的情况下,则按照节奏以同一种方式出拳。

运行该程序后,大家可能就会察觉到“该计算机有自己的出拳方式”。这可能是最接近人类的思考方式。

最近AI人工智能(AI,Artificial Intelligence)这个词非常火爆。人工智能是用计算机来实现人类智能的尝试。从计算机诞生之初的20世纪50年代开始,关于人工智能的研究就层出不穷,到现在已经有了大量成功。刚才介绍的《猜拳游戏》,虽然只是涉及了一点皮毛,但也可以说是人工智能。

不过,计算机本身并不智能,它只是运行了表现人类思考方式的程序而已。也就是说,开发程序的程序员,赋予了计算机这些智能。程序只是将人类的想法在计算机上进行了重现。想到这些,是不是感觉很愉悦呢。

至此,“程序是如何运行的”系列文章全部完结,接下来我们将正式开启C语言之旅。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180725G06WQ900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券