学会像计算机一样思考——读《未来算法:下一个十年赢在计算思维》

2021-09-06 13:35:14 来源:上海证券报 作者:◎夏学杰

  

        《未来算法:下一个十年赢在计算思维》
  诸葛越 著
  中信出版集团
  2021年6月出版

  1993年圣迭哥州立大学的数学家弗诺·文奇在论文中写道:“在未来30年间,我们将有技术手段来创造超人的智慧。不久后,人类的时代将结束。”硅谷精神教父凯文·凯利曾说:“你未来的收益水平取决于你在多大程度上能与机器完美地配合工作。”计算机到底是人类的工具,还是人类的竞争对手?不管未来更趋向哪个方向,人们都应该深入了解计算机。知己知彼,方能百战不殆。《未来算法》就是一部讲解计算机是如何工作的科普著作。本书作者诸葛越是美国斯坦福大学计算机系博士,夸克星辰科技创始人兼CEO。诸葛越在《未来算法》中不仅介绍了有关“未来算法”的新知识,重点拆解了排序、分类、搜索、递归等几大基本的未来算法,还提出了“计算思维”这一新概念。作者认为,计算思维可以让你像计算机一样思考,学会了计算思维,不仅可以让你看透互联网世界和人工智能(AI)是怎么运作的,也让你学会了解决大规模复杂问题的方法,帮助你优化每日的生活和工作,解决人生的难题。

  分解问题是计算思维的核心

  计算思维是解决复杂问题的思维能力,而分解问题是计算思维的核心。我们生活在一个物理世界里,计算机生活在一个数字世界里。计算机并不像人一样理解真实的事物,我们需要把真实的世界转换成它能理解的语言来表达,然后在经过计算或操作后,它才能在真实世界中把结果展示出来。小到炒鸡蛋,大到短视频推荐和无人驾驶,这些事都是可以用分解问题的方法去拆解。

  诸葛越在书中指出,计算机解决问题,首先就要拆解。分解问题是把原问题分解成子问题,解子问题,再把子问题的解合成原问题的解。无论多么强大的计算机应用,背后都是把原问题分解成可以解的子问题,只是规模不同。

  解决问题离不开算法,算法是计算机用来解决问题的基本单元,即用一系列简单确定的操作来完成一项标准任务。因为计算机是一台机器,它不会猜想,也没有直觉或者感情,所以算法的操作必须是清楚、没有歧义、可以严格遵从的。算法的第一个重要特性是正确性,也就是它在任何情况下都必须正确。例如,我们如果用某个算法为孩子排队,那么不管是对1个孩子,10个孩子,还是100万个孩子,也不管他们开始是怎么站的,这个算法都要保证最终能够把所有的孩子排好。算法系统地解决一类问题,而不是解决某个特殊的问题。对同一个问题,往往有多个算法可以解。计算思维关心的是哪个解更快、更好,或者说效率更高。

  大数据与云计算

  作者在书中指出,算法离不开数据,大数据、云计算是未来数据和算法的方向。那么,到底什么是大数据和云计算呢?

  大数据这个计算机行业的术语因为媒体报道和传播的广度,已然被大众广泛了解。大数据是指无法在一定时间范围内,用常规软件工具进行捕捉、管理和处理的大量数据的集合,需要新处理模式对其进行处理后,才能成为具有更强的决策力、洞察发现力和流程优化能力的信息资产。数据如果被称为大数据,需要具备几个特点,例如大量、高速、多样。

  云计算的概念经常与大数据的概念同时出现,两者是相辅相成的关系。按照通俗理解,云计算就是把计算能力搬到“云端”,也就是通过互联网到达远程数据计算中心。大数据运用日趋成熟的云计算技术,就是从浩瀚的互联网信息海洋中获得有价值的信息,再进行信息归纳、检索、整合。例如,你观看了一个短视频,这时这个数据就通过网络传送到了云端,然后通过云计算的处理,短视频应用就知道下一个该推荐给你什么视频。

  当然云计算和云端只是一种形象化的表述,实际的计算发生在大型的数据中心。云计算可以被理解为把计算能力和计算资源整合起来,统一规划,这样信息量更大,计算能力更强。比如,导航软件之所以知道实时路况,是因为路上很多车都在移动,这些车里的手机实时地把路况信号反馈给导航软件的计算中心,集成后反映正确的路况。信用卡、支付App预警你的账号可能被盗用,是因为它们了解你日常的消费习惯、消费位置和场所,所以能发现不符合日常规律的反常行为。

  懂得计算机思维有什么用

  谷歌的围棋程序AlphaGo战胜李世石后,成为一再被提及的话题。计算机科学家吴军曾说过,在人看来,围棋是什么?是棋道,是文化。但是在计算机看来,围棋是一道数学题。人之所以把它称为棋道和文化,说得不客气一点,是人太“笨”,根本算不清楚这道题。

  AlphaGo团队一开始依然保留了常人的很多思维,比如学围棋时觉得就应该使用人类高手对弈的棋谱。但最终他们发现,那些人类的棋谱反而“教坏”了计算机。不使用人类对弈数据的AlphaGo的升级版AlphaGo Zero,反而比AlphaGo厉害得多。这就是思维方式的升级。

  由此可见,人类固有的思维并不总是对的,计算机的算法的确有其过人之处。作者认为,学习计算思维可以让人们像计算机一样思考,优化每日的生活和工作,解决人生的复杂问题,包括如何管理时间、如何分配资源、如何找工作或伴侣,以及如何理解和驾驭AI等。比如,分类思维方式就是计算机思维常用的一种方式。现代生活充满了焦虑,人们之所以焦虑,就是因为人们看不清未来会怎样,才会对它有所担忧。对此,作者在书中建议,读者可以用计算机的分类思维来解除焦虑。

  在斯蒂芬·柯维的《高效能人士的七个习惯》中,他写了两个人们思考的圈子:关注圈子和影响圈子。比如,我们可以关注自己的健康、职业、人际关系,我们关心环境保护、孩子的教育,我们也可以影响这些事,这些都属于我们的关注圈子和影响圈子。但是,如果我们关注的是别人的成功、隔壁家孩子的考分、经济是否下滑,那么这些事情我们基本上影响不了,它们仅属于关注圈子,不属于影响圈子,而这些往往就是造成人们焦虑的主要原因。你如果为此感到焦虑,作者建议可以试试下面的三步法。第一步,坐下来把你想到的所有的事情写下来,然后分类成“我能影响”和“我不能影响”的两类。仅仅这样的分类,就能让你看清楚自己是否花了太多的时间在担心不能影响的事情上。第二步,对“我能影响”的那些事,你可以积极主动地去改变,比如,改变自己对他人的态度。第三步,对“我不能影响”的那些事,你可以问自己:“我自己能做些什么?”比如,你担心经济下滑,那么你是否可以储蓄更多?把自己担心却不能影响的事,变成自己可以执行的行动,减少没有意义的焦虑。

  人类的位置在哪里

  在2004年的电影《我,机器人》中,男主角问一个机器人:“机器人能写交响乐吗?机器人能把画布变成一幅美丽的杰作吗?”机器人狡黠地答道:“你能吗?”言外之意,虽然机器人做不到,但人类又有几个能做到呢?

  然而,如果换做是十年后的现实世界,男主角的提问将会得到一个有力的回答:“能!”2012年7月,伦敦交响乐团演奏了一曲《通向深渊》。一位评论家称其“充满艺术感且令人愉悦”。而该曲就是由名为“伊阿摩斯”的一个运行音乐人工智能算法的计算机集群创作的。

  如今,人类对人工智能的探索、实践和商业化运用还在加速推进。毫无疑问,计算机解放了人类,它们不辞辛苦地承担了人类的体力劳动以及脑力劳动。但是,同时它又使人类陷入尴尬境地,忽然之间,人类不知道自己还能干什么了。对此,作者在书中提出了一连串令人深思的问题:我们需要约束技术,还是会被技术拯救?计算机不断地取代人类的烦琐工作,算法无所不能,计算的可扩展性带来的后果是只需要少数的人来做事就足够了,那么,这个现象是否会进一步拉开人和人之间的差距?被取代的人们是否能够获得新的技能,找到更好的工作?只拥有相对低端技能的人是否会成为“算法的奴隶”,每天在算法的指导下疲于奔命?当计算机不断地变得更加智能,更像人类,它们可能也会带上人类的偏见。技术并不公平,它也可能加剧贫富差距,它也会听从强者的指令。作为一个个体,我们在享受技术带来进步的同时,自己的位置在哪里?

  将来,人类的位置在哪里?当然,仅仅靠琢磨,还是不够的,还应该有所行动的。学习未来算法的目的也就在于此,人们不能仅仅满足于知道这个层面,更应知行合一,未雨绸缪,勇于实践。