06 常识
我们所做的许多常识性事情和常识性推理,要比吸引更多关注、获得令人敬仰的专业技能复杂得多。你所“看到”的并不完全来自视觉,还来自这些视觉引发的其他知识。常识性知识的主体,即人类需要在文明世界中相处下去会涉及的许多问题,如我们所说的常识性问题,目标是什么以及它们是如何实现的,我们平常是如何通过类比来推理,以及我们如何猜测哪一项知识等,可能与我们的决策方式相关联。
挣钱的方法就是,股价下跌时买入股票,等到股价上涨时再把它卖掉。
如果股价没有上涨,就不要买股票。
第一台计算机问世后不久,它犯的错误就成了世人的笑柄。编程过程中最小的错误也能酿成大错,如清除客户的账户数据、开出数额奇怪的账单或使计算机陷入一直犯相同错误的状态中。[45]这种令人抓狂的缺乏常识的现象,使很多用户认为计算机永远也不可能变得智能。
如今,计算机的表现更好了。一些程序在下棋方面甚至胜过了人类;其他程序则可以检测出心脏病;还有一些程序可以识别人脸图像,组装工厂里的汽车,甚至可以开船和驾驶飞机。但到目前为止,却还没有机器能够铺床、读书或照顾婴儿。
是什么阻碍了计算机完成大多数人都能胜任的事情?
难道计算机需要更多存储空间和更快的速度,变得更复杂吗?难道计算机建立在错误的基础上吗?难道因为只会使用0和1的事实造成了它们的诸多局限?难道因为计算机缺乏人类固有的魔法属性?本章认为,以上所有问题都不是计算机效率低的原因;恰恰相反,这些局限性来自程序员落后的编程方式。
所有的现代程序都不具备常识性知识。每个现代程序本身包含的知识只能解决某些特殊的问题。本章的第一部分主要讨论人们拥有大量的知识以及使用这些知识时所必备的技能。例如,如果有人说用“绳子”系紧包裹,那你肯定能理解这种“显而易见”的事实,但计算机却一点儿也不明白。
● 你可以用绳子拉而不是推东西。
● 如果把绳子拽得太紧,它会断。
● 在用绳子系紧包裹前,必须装满包裹。
● 要松一松绳子,以免它缠住或打结。
现代程序并没有明确的目标。如今,我们仅仅让程序完成事情,而不告诉它们为什么需要完成这些事情。因此,这些程序也无法辨别自己是否达成了用户的预期目标、完成的质量以及花费的成本如何。本章后文将讨论这些目标的本质和计算机完成目标的方法。
● 外面下雨时,人们喜欢待在室内。(人们不喜欢被雨淋湿)
● 人们不喜欢被打断。(人们喜欢被倾听)
● 在吵闹的环境里听不清楚别人说话。(人们想要听听别人的看法)
● 没有人知道你在想什么。(人们尊重隐私)
所有的现代程序都不够智能。程序缺乏本身需要的知识或无法使用自带的方法时,便会自行停止运行,但人类依然会寻找其他方法来继续完成目标。本章最后将讨论人们在毫无头绪时使用的一些方法,例如,通过类比法。
● 以前经历过这样的情景吗?
● 这个问题和哪一个问题很相似?
● 我是怎样解决这个问题的?
● 我可以使用这些方法解决这个问题吗?
正是由于缺乏这种能力,计算机才会一旦出现故障就停止运行,而不是寻找更好的方法。为什么它们不能从经验中学习?那正是因为计算机缺乏常识!
在日常生活中,我们根本意识不到人类使用的程序是多么复杂。本章将讨论的是:我们所做的许多常识性事情,要比吸引更多关注、获得令人敬仰的专业技能复杂得多。
本书评论