什么是算法
算法无处不在,他们驰骋于股票市场,决定你是否能负担得起房贷或者未来为你开车。它们可以听话的在互联网上搜索,将精心挑选的广告加入到你正在浏览的页面上,并且能够决定给你看哪一个网店的价格。当优步和Waymo(谷歌无人车公司)告诉你,它们也会成为法律纠纷的对象时,这引起了人们对于监管的忧虑(上个月一批有识之士呼吁,禁止在格斗机器人上运行杀人算法)。PageRank(网页排名)—这个强化谷歌搜索结果的算法使得谷歌赚得盆满钵满。在算法上组织好的" 过滤气泡"可能会影响一个国家的选举。但是到底什么是算法?到底是什么使得它们如此的强大?
算法实际上就是用笨办法来做聪明事。这其实就是一系列明确的步骤,执行这些步骤基本不需要动脑,但是如果按照这些步骤机械地,准确地走下来,你会得到还不错的结果。举个大家都熟悉的例子—长除和竖式加法。如果你按照步骤来,肯定能够得到正确的答案。所以每年都能听到中学生对于学习井字棋数学算法的感到厌倦。不加思考是关键所在。每一步都应当足够简单并且尽量避免有歧义。菜谱和驾驶其实都是某种算法。但是像"把肉煮烂"或是"沿着这条路开几公里"等的指令过于的模糊,没有必要的解释没有办法很好的执行。
算法与电脑,代码紧密相关。但是并不必如此。一位英国的数学家,艾伦图灵,在如何用精确的数学来处理算法上做了很多先驱性的工作。他曾经发表过一篇相当复杂的下棋算法的文章。他用和朋友的比赛中测试了他的算法。走每一步他都会看自己的算法,并且严格的按照它的指令来下。但是当图灵的对手投降后,人们
普遍的发现,这些重复的,无脑的工作是无趣和令人沮丧的(其中包含了太多的算术和记录工作,据报道走每一步都要花上半小时)。但是计算机却很擅长处理这些重复工作。例如"将两个数字加起来","判断哪一个数字大"或者"将答案储存在某个位置"。事实上,计算机只会做这些事情。
出于这个原因,计算机允许人们建立并且执行复杂的算法结构。结果就像乐高积木一样,堆起来足够多的简单的命令就可以让你做出复杂的,有趣的东西。每一个电脑程序,从谷歌浏览器到游戏使命召唤,或是气象模型,不外乎是一大堆算法的高速执行。反过来,一些最先进的算法完全不是由人类来写的,而是别的算法。机器学习就是一个时髦的人工智能技术,它可用来教计算机做人类想做的事。例如语音识别或者是人脸识别,这是我们人类不能用明确的算法来表达的行为。所以机器学习算法为其他计算机做了翻译的工作。它吸收了大量的与所要解决问题相关的素材,例如语言,人脸图片等。人们在这些素材上加上标签。然后机器学习就会产生另一个能够很好的完成识别工作的算法。无脑其实并不阻碍智能。
来源:[https://www.economist.com/blogs/economist-explains/2017/08/economist-explains-24]