首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链和大数据都无法离开的最基本的多样性算法

密布式算法

区块链和大数据的本源:算法与代码

算法:一系列用于描述一个问题解决方案的步骤,符合正确性和有限性的标准。是与具体实现相互独立的抽象计算步骤。

代码:一系列计算机指令。它们是计算的具体实现,使用一种特定的编程语言,运行在一个特定的平台上。

人们可以借助这种直接向计算机发送编码指令的方式来实现更为复杂的指令序列,并以算法的形式呈现出来。算法比编码的出现要早得多。穆斯林数学家 Al-Khawarizm 早在公元 820 年就对解决线性方程和二次方程式的算法进行了描述。算法一词来源于这位数学家的拉丁文名字“Algoritmi”,而“algebra”则来源于“al-jabr”,Al-Khawarizm 用它来解决二次方程式问题。算法由一系列有限的计算或指令组成,并产生一个结果。正如我们所知道的那样,代码是向计算机发出指令的一种方式,很适合用于实现算法。它们只不过是一系列按照一定次序执行的操作。

与早期的大数据时期一样,我们这个时代的信息量也在增长。根据摩尔定律,我们在编码的设计和使用方面所作的改进换来了性能的提升,从而能够应付不断增长的数字化需求。你可以继续编写代码从数据库查询相关的资源列表。这些操作的离散特征仍然被保留了下来,因为人们仍然在通过编写代码告诉硬件应该做哪些事情。就算操作变得越来越复杂,它仍然只是人类的编码指令。不过,算法已经开始展露头角,正在创造一个抽象的新时代。

算法的崛起

所以说,算法和代码之间有很大的不同。代码可以用来实现算法,而且代码的实现方式会影响到性能。例如,如果你要从一个序列里找出最大或最小的元素,那么二叉堆的性能相比其他的数据结构要好很多。不过,你已经没有必要通过编写代码来实现一个算法,就像没有必要通过听音乐来写歌一样。

虽然每个人都知道摩尔定律的魔力,驱动数字经济发展的性能改进遵循的就是摩尔定律,但鲜有人知道,在很多领域,算法所产生的性能改进已经超过了硬件所带来的性能提升。实际上,2010 年的一份官方报告表明,算法已经为很多领域带来了显著的性能提升,比如语音识别、神经语言处理和物流。

“更加令人感到吃惊但同时又令人难以理解的是,在很多领域,算法为性能带来的提升已经远远超过了处理器速度提升所带来的性能改进。”——面向总统和国会的报告:设计数字的未来

抽象算法

我们现在拥有大量的数据,这意味着我们不能再用离散的思维来思考问题。大数据促使我们转变思维。它促使我们向后退一步,去寻找能够处理数据洪流的方法。按照传统的方式,你可能会根据一些指定的模式或参数编写代码来查询数据。例如,你可能想从数据库中查找在过去两周买过 2 件商品并且支付超过 30 欧元的顾客,因为你想联系到这些顾客,并向他们推荐一些优惠活动。你使用这个模式来查找匹配的数据。不过大数据却正好相反,你先有了数据,然后查找可以匹配这些数据的模式。

想想看,有这么多的数据,但是我们却找不到匹配的模式,所以我们要回退一步。我们通过集群、分类、机器学习和其他新的支撑技术来寻找模式,而能够帮助我们做到这点的是算法,不是代码。要找到隐藏在暗处的模式,跨出这一步是必需的。与光谱一样,有一些波长的光线我们是看不到的,而超过一定数据量之后的模式我们也是看不到的,它就是大数据。

我们不仅可以从中搜索到模式,它还能够生成做这些事情所需要的代码。Pedro Domingos 在“The Master Algorithm”一书中描述了如何使用“学习者算法”来创建新的算法,这些算法可以反过来为我们编写我们所需要的代码,“通过机器学习,计算机可以自己编程,我们就可以解放了”。为了实现这个目标,我们需要更好地理解这些算法的原理,以及如何让它们与我们的需求相匹配。否则,我们就无法向抽象转变。

“工业的发展让手工劳动自动化,信息的发展让脑力劳动自动化,而机器学习则让它自己自动化。如果没有机器学习,程序员就会成为发展瓶颈。而有了机器学习,发展的速度就会加快。”——Pedro Domingos,“The Master Algorithm”

思考算法

不过,不管如何从离散转变成抽象,我们仍然需要程序员,但这不是重点。并不是说代码已经变得不重要了,也不是说代码就不会再带来任何改进。重点在于,我们要开始思考算法,这不仅仅是数学家或学者的事情。我们周边充斥着各种算法,以致于我们不需要知道如何编写代码来使用它们,或者理解它们。现在,有一些人通过新的算法对不同的领域进行优化和改进,他们使用了遗传编程(genetic programming)和大数据技术。人们甚至创造了更好的优化技术,他们观察金属的冷却过程,并通过算法对其进行建模(被称为模拟退火算法,这就是我们应该从算法角度开始考虑问题的一个最好的例子)。

编码作为新数字经济的关键技能,就像学习如何阅读一样,已经模糊了我们对算法的理解。算法正逐渐成为我们生活的组成部分,从电影推荐到新闻过滤和寻找合作伙伴。我们要更好地理解它们,这样才能更好地理解和掌控我们的未来。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券