未来是属于算法的-不是代码

上传人:第*** 文档编号:35098211 上传时间:2018-03-09 格式:DOCX 页数:4 大小:21.37KB
返回 下载 相关 举报
未来是属于算法的-不是代码_第1页
第1页 / 共4页
未来是属于算法的-不是代码_第2页
第2页 / 共4页
未来是属于算法的-不是代码_第3页
第3页 / 共4页
未来是属于算法的-不是代码_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《未来是属于算法的-不是代码》由会员分享,可在线阅读,更多相关《未来是属于算法的-不是代码(4页珍藏版)》请在金锄头文库上搜索。

1、北大青鸟中关村 未来是属于算法的,不是代码 大数据的时代已经来临。数据带来的狂潮就犹如又一次工业革命一样席卷着人类。在大数 据的时代,人类对世界的理解方法从有限具体向抽象过渡,这也就是为什么算法比代码更 加重要的原因。 说到大数据 如果把人类的历史压缩到一天,那么我们可以忽略之前的时间,直接从晚上 11 点 07 分开 始说起。这本该是安静的一天,但是就在这一天快结束的短短的时段里,突然产生出大量 的知识和信息,需要在人与人之间进行传播。你可以想象一下,之前,人类的知识和信息 的传播方式是通过口口相传,代代相传,由父到子,师授徒承的方式来进行的。而在某一 个时刻,人类社会所产生出的知识和信息的

2、体量已经达到了传统方式无法承载的地步。 我们需要某种方式来对如此规模的知识和信息进行存储和传播。以前,采用书写的方式记 录知识和信息,被认为是人类社会的重大技术革新。然而,柏拉图在斐德罗篇中写道: “苏格拉抵对采用书本进行知识传承的方法表示担忧,因为他认为书本并不能激发真正的 知识和智慧,正确的方法应该是口口相传。 ” 他的观点正好代表了知识和信息的有限传播方法。你和你认识的人通过说话进行直接交流, 那么在交流对话过程中就有正向和反向的观点产生。而一本书,则完全不同,这是一种抽 象的交流传播方法,因为读者和作者之间并没有直接的交流。书的作者不可能知道是谁, 多少人,在什么时候什么地点读了他们的

3、作品。书的作者也许可以根据读者们的情况对作 品进行一些优化调整,但是总的来说这还是一种抽象的知识传播和学习的方法。 大数据和等腰三角形 大数据时代产生的另外一项重要变革,就是我们会从简单计算向抽象计算过度。也就是形 成了定理、符号、算法等等被称之为数学的思想。人类历史上有记载的最早的计算始于公 元前 2500 年的美索不达米亚。当时美索不达米亚人需要算出一个装满的谷仓能够养活多 少人。 美索不达米亚人的问题是非常具体的。他们的计算问题是为了解决生活中的相应问题。这 种一个计算问题对应一个生活中具体问题的模式,就被称作是有限具体问题。这也是为什 么很多专家认为美索不达米亚人的计算并不是数学的起源

4、。这种有限具体的计算模式一直 持续了很久,直到公元前 500 年的古希腊。那时的毕达哥拉斯学派的学者们开始研究奇怪 的三角形的问题。比如:等腰三角形的边长是不是都是整数。 如果你采用有限具体的方法来解答这类问题,就要像毕达哥拉斯学派的学者们当时做的那 样,通过把具体的数字代入进去看情况是不是满足。不过,随着代入数字的数量越来越多, 复杂性的问题出现了。你究竟需要代入多少数据,才能最终证明这个命题是真还是假呢? (顺便说一下,这个命题是假的,不可能所有等腰三角形的边长都是整数。 )等腰三角形边北大青鸟中关村 长问题的不同之处在于,它是不具体的。因为这个命题没有限定三角形的面积,也没有限 定边长范

5、围。因此可能的情况是无穷多的。不过一旦你开始把理性思维应用到大量数字上, 那么就形成了数学思想。这也就是大数据的意思。毕达哥拉斯学派的思维方式将人类带向 了更接近抽象的数学本质,我们今天也在用符号、规则系统以及理性的思维来解决这类抽 象的问题。 也许你能在人类历史上找出更多关于大数据的例子,但是从本文的目的出发,我则要直接 跳到 20 世纪,来看看编码是如何兴起,以及如何在现代科技世界中扮演重要角色的。 编程的兴起 编码,或者叫编程(我们在这里认为这两个词是一个意思)首次出现在历史舞台,要追溯 到美国女海军少将 Grace Hooper 女士 1945 年在哈佛 Mark I 型计算机上工作的

6、那个年代。 在此之前,电脑(Computer)这个词,现在大家都这么叫,就是单纯的“计算机器” 。第 二次世界大战期间,发射火炮需要参照一个弹道表来计算弹道。弹道表上的数据,是用偏 微分方程代入上百个不同的参数因子算出来的,这些参数包括:距离,海拔,风速,温度, 湿度等等。顺便说一下, “电脑” (Computer )这个词,是军方用来形容那些战争期间操作 计算机器的女性操作员的。这些女性操作员以“电脑”而闻名。她们需要把计算卡插入计 算机器,然后摇动手柄解出方程。制作一张计算卡当时需要 170 个人月的工作量。 编程的出现,源于人们想找到一种更简单的方式来执行计算过程。如果我们能够为计算机

7、器设计一套指令,让硬件能够根据指令来执行操作,那么那些对机器的手工操作就可以淘 汰了。 这种方式听上去是不是很耳熟?美索不达米亚人采用泥板来进行计算,而编程则是 20 世纪 人类使用的“新泥板” 。尽管编程看上去比泥板要先进多了,但是本质上都是对具体问题进 行的有限计算。只是用编程的方式计算效率更高。编程淘汰了手动计算的方式,让人类有 能力去处理大量的数据。 算法 vs. 代码 算法:用一系列步骤来描述解决某种问题的思想,执行这些步骤后可以达到问题的正确性 条件和终结条件。算法是对计算的一种抽象描述,与具体的实现无关。 代码:计算机的一套指令集。在特定平台上使用特定的计算机语言对计算问题进行具

8、体实 现。 计算机提供的指令操作的方式让人类可以通过算法来实现复杂的计算。而算法本身却是远 在编程发明之前就存在的。穆斯林数学家 Al-Khawarizm 在公元 820 年就提出了一次和二次 方程的求根算法。而算法(Algorithm)这个词就是从 Al-Khawarizm 的名字的拉丁语译名 “Algoritmi”演变而来, “代数” (Algebra )这个词则是来自于阿拉伯语“al-jabr” ,这是 Al- Khawarizm 在解二次方程时所用的一个步骤的名称。算法要求其步骤或指令是有限的,可 实现的,而且能得到结果。正如我们所见,编程可以直接给计算机下指令。这种方式正好 对实现算

9、法非常有利,因为从本质上来说,编程就是让计算机按照一定的顺序执行不同的 指令。北大青鸟中关村 在大数据时代的早期,我们要处理的信息量大大增加。不过通过设计和应用,可以让我们 在编程方面取得优势,再加上“摩尔定律”带来的机器性能上的进步,让我们有能力处理 人类世界日益增长的数字化需求。但是用计算机解决有限具体问题的本质并没有变,因为 人类是通过写代码来告诉计算机硬件具体需要执行哪些操作。不管这些操作本身有多复杂, 但是终究还是来自于人类的指令。不过,算法已经展示出了巨大的潜力,或许能开创一个 全新的抽象时代。 算法的兴起 从下面这个角度,我们可以看到算法与编码的巨大不同:你可以用代码实现算法。并

10、且, 算法的不同实现方式会影响算法的性能。例如,使用 binary heap 来搜索序列中的最大或最 小元素就比较高效,用来排序则没那么高效。但是你会编程并不意味着你能设计算法,这 和你能唱歌不一定就能写歌是一个道理。 所有人都知道, “摩尔定律”预言的硬件性能的增长刺激了数字化经济的发展,但是很少有 人知道,在很多领域,算法带来的性能增长远比硬件来得更高。实际上,根据 2010 年的联 邦报告显示,算法在语音识别,自然语言处理,物流等方面都带来了显著的性能增长。 “尽管公众的理解程度并不高,但是仍然不能掩盖其卓越的效果在许多领域,算法的 进步带来的性能增长要远超 CPU 计算速度增长的贡献。

11、 ”节选自“致总统和国会的报 告:设计数字化未来” 抽象算法 我们在目前的这个时代需要处理的数据量,让我们必须放弃之前具体有限的思维方式。这 是大数据迫使我们这么做的。大数据迫使我们必须后退一步,这是抽象的一步,以便于我 们能够找到一种有效的方法,来处理当今时代汹涌泛滥的数据潮流。传统的做法是,你写 一段代码,通过特定的参数或模式来对数据库进行搜索。比如,你要搜索“客户数据库” , 找出在两周内购买 2 件以上物品,且支出超过 30 欧元的客户有哪些。你想给这类客户提供 一些建议。所以你提供一种模式去搜索这些用户的数据。但是,大数据的方式是正好相反 的,你需要通过大量的数据来找出模式是什么样的

12、。 试想一下。这里有海量的数据,人类无法从中直观地找出模式。这时你就必须再退一步。 这抽象的一步是为了让我们利用聚类,分类,机器学习等为基础的新方法(而不是具体的 程序代码) ,从数据中找出有用的模式。这一步的关键在于,要找出你我看不见的模式。就 像是光谱里的波长一样,人的肉眼是看不出来的,如果数据超过了一定的体量,那模式就 不再直观了。这种超过一定体量,我们无法直接看出模式的数据,就叫做大数据。 这抽象算法的一步会走得更远。它不仅能帮我们找出数据中隐藏的模式,甚至还能帮我们 写算法的代码。在 Pedro Domingos 写的“终极算法”这本书里,描述了一种“学习算法” , 通过机器学习的手

13、段,这种算法不但能够创造新的算法,而且还能写出我们需要的代码, 这样计算机就能“自己写代码了,就把人类从编码中解放出来。 ”为了达到这样的目的,我 们就必须对这些算法的工作原理有更好的了解,并通过改进这些算法,让它们能够更贴合 我们的需要。不然,我们就没法充分发挥这种抽象转变的巨大潜力。北大青鸟中关村 “工业革命把人类从手工劳动中解放出来,而信息革命将人类从脑力劳动中解放出来,但 是机器学习则是让计算机解放了自己。如果没有机器学习,程序员将成为革命进程的瓶颈; 有了它,进度就不成问题。 ”Pedro Domingos, “终极算法” 关于算法的思考 在从具体有限的计算向抽象计算过度的过程中,我

14、们还是需要各种各样的程序员的。不过 这不是问题的关键。我不是要说编程不重要,也不是说编程不会做出贡献了。我想表达的 观点是,我们需要开始对算法加以重视。算法并不仅仅是数学家需要关心,或者在学校里 面才会用的东西。其实我们在编程的时候,算法就在我们周围,只是大家觉得不需要知道 算法的实现或者原理罢了。目前,已经有人在致力于把更先进的技术(例如遗传算法)应 用到大数据上,从而探索在不同领域进行优化和改进的可能了。甚至有人对金属冷却的过 程进行建模,然后创建了效率更好的优化算法。 (这种算法叫做“退火法” ,这是一个从非 常规角度思考算法的好例子,感兴趣的可以了解一下。 ) 目前,编程已经被提高到了和读书、写字一样的地位,在新的数字化经济时代成为了一个 关键技能。这种热度反而掩盖了我们对算法的看法。算法逐渐成为我们生活的一部分:想 想那些网上电影推荐,新闻推荐,正是算法根据我们的行为归纳了我们的模式。我们需要 对算法加深理解,只有这样,我们才能更加深刻地理解我们的未来。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号