凯文•斯拉文:算法塑造世界_the making of a fly-程序员宅基地

技术标签: 算法  programming  algorithm  

The Making of a Fly,这是一本1992年出版的学术书籍,受研究者喜欢。201148日,一家书商对其的售价为170万美元,另一家书商标价220万美元。如果那时你买了他,说不定还捡到便宜了,因为此后书价一直在涨,418日涨到直到23,698,655.94美元。当然,这还不包括3.99美元的运输费!


这本书研究苍蝇遗传学,晦涩难懂,但何以高达2370万美元?故事并非杜撰,而是加利福尼亚大学伯克利分校的进化生物学家迈克尔·艾森真切遇到的事儿。


事情真相却是,天价源于算法“价格战”。两家书商都是用算法给图书定价,第一家书商利用算法将价格设定为另一家的0.9983倍,第二家算法则始终让价格保持为第一家的1.270589倍,高价则是因不受监管的算法相互“攀比”导致的。


TEDGlobal2011中,算法专家凯文·斯拉文(Kevin Slavin)提起这个故事,并向观众展示了算法控制的图景。


他指出,我们正生活在算法设计的世界,并日益为算法所控制。它正悄然无息地进入生活,塑造着世界;斯拉文提醒,人类正在编写着自己都无法理解的甚至不受控制的代码。若算法出错,影响将会非常大。


“算法正直接迅速地改变着我们的生活方式”


算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,代表着用系统的方法描述解决问题的策略机制。斯拉文把算法称之为计算机用于决策的数学。这是由人类从世界中提炼出的某种事物,但事实上它现在正转变为开始塑造世界的事物。


“它塑造着我们周围和内心的世界,甚至可以说它已经具有了真理的敏感性。”斯拉文说。


读者朋友会不会觉得有些抽象?我们先看看生活中的算法。


有一种新式电梯,在你进入电梯之前,你要按下你所要去的楼层的按钮,它使用的是装箱算法,让每个人能够进入想进的电梯。例如想去10楼的人进入二号电梯,想去三层的人进入五号电梯。


或者,它们就在你的屋子里。例如有两种不同的清洁机器人就是两种算法。

机器人对清洁的含义有着非常不同的理解。如果你让它慢下来,在上面放上灯光,你就能够看到其中的差异。“是不是有点像卧室里的秘密建筑师?”斯拉文形象地比喻,建筑本身在某种程度上就服从算法优化的想法,这并不牵强。


《算法改变生活》一文中把算法映射到鲜活的生活场景中,将算法对于生活的影响更直观地表现出来。你会发现,许多看似复杂的算法正在以非常直接的方式迅速改变着我们的生活方式。


例如令互联网搜索更加高效的基本算法“超链分析算法”;使用网上银行完成支付时帮助我们完成一系列安全检测动作的安全哈希算法;以及我们在做路线规划时,用迪杰斯特拉算法来寻找最短路径,这也是一个计算机领域图搜索计算的一个经典算法。


“算法正在形成改变我们文化的物理学”


如果你喜欢看美剧,就会知道前段时间很火的纸牌屋以及围绕其“大数据分析应用”的铺天盖地的新闻。《Netflix是如何用大数据捧火《纸牌屋》的》一文指出,Netflix曾花 1 亿美元买下版权,请来 David Fincher 和老戏骨 Kevin Spacey,首次进军原创剧集就一炮而红,在美国及 40 多个国家成为最热门的在线剧集。


作为世界上最大的在线影片租恁服务商,Netflix 几乎比所有人都清楚大家喜欢看什么。它知道用户喜欢 Fincher(社交网络、七宗罪的导演),Spacey 主演的片子表现不错,英剧版《纸牌屋》很受欢迎,这三点让其愿意在《纸牌屋》上赌一把,分析认为,它的成功得益于 Netflix 海量的用户数据积累和分析。


且不论纸牌屋的成功是否真的来源于大数据分析,还是只是将大数据应用作为宣传的噱头,Netflix的确在海量用户数据积累和分析上努力优化着算法。


他们开始用的是Cinematch,后来又尝试了一些其他的,例如Dinosaur PlanetGravity,现在则使用Pragmatic Chaos,它试图把握住你,这样就能推荐你可能想看的电影。但斯拉文认为,这非常非常困难,如同Netflix的所有算法,算法最后只能决定60%最终被租用的电影。


但如果在这些电影制作之前对它们进行评价呢?


英国名叫Epagogix的数据分析公司就在做着这样的事情。来自英国的数据科学家开发出了一套针对电影剧本的语义分析算法“神经网络”,可对新的剧本进行分析消化,并预测其未来的票房情况。


你可以向他们提供你的剧本,它会将电影的剧本、情节、明星、拍摄场地等各种要素集合在一起,使用其自行研制出的算法预测电影票房收入,并量化地告诉你“这是个三千万美元票房的电影或是个两亿美元票房的电影。”


算法无法完全准确。但正如该公司首席执行官尼克·米尼表示:“拍摄电影的原因很多,我们的算法只是帮助人们更好地做决定,何乐而不为呢?”


不过,“重点在于,上述种种例子并不是谷歌,也不是信息,不是金融统计,而是文化,算法正在形成改变我们文化的物理学。”斯拉文说。


换句话说,算法正在塑造着我们所观察和感知到世界,它甚至改变着我们获取信息的方式。


“如果这些算法某天崩溃了?”


这让算法看起来具有无尽的用途,但我们是否曾经想过,算法控制的世界并非那么真切?控制本身也会受观察过程所影响。


谷歌流感趋势曾被认为是大数据应用的典范,但后来也批判为“大数据的傲慢”。实际上,算法结果会被各种因素左右。量子基金的乔治索罗斯提出过“自反性”概念,认为社会系统的参与者是有思想的,那么在这样的环境中,不仅观察,就连思想和信念都会影响到研究的对象,从而影响得出的结论。


更为严重的是,“如果这些算法,某天崩溃了出错了,我们怎么知道,那会是什么样子?”斯拉文提出了令人深省的警惕。这样的“无解”已经出现在股票市场中,算法失误曾导致美国华尔街股市崩盘。


201056日,整个市场的百分之九消失了五分钟,这被称为“245的瞬间崩溃”。突然之间百分之九的市值消失了,直到今天大家对发生了什么还不能达成一致,因为并没人下命令,没人要这么做。


那天,大家对所发生的事情束手无策,只能看着面前的屏幕上的数字和一个红色按钮上面写着“停。”事情就是这样,这就是我们正在编写的东西,甚至自己都读不懂。我们正在把一些事情变得难以理解,并已经对这个自己创造的世界中正在发生的事情失去理解能力。


“我们正在慢慢失去对自己创造的世界的理解和掌控。”斯拉文警告称。


微妙之间掘金


人类可以针对电梯设计出一种机器语言,可以控制其停在特定楼层,那么对于算法的控制可以做到什么程度?


回到华尔街。华尔街的算法依赖于高于一切的特质——速度,其运行时间以毫秒和微妙计算。何为微秒?想象一下,点击一下鼠标要花50万微秒的时间。如果你是一个华尔街的算法,落后5微秒,你就是失败者。


为达到快速我们都做了什么?


“微秒之间的掘金达人”曾用芝加哥和纽约之间光纤电缆的铺设为例解释了这种“代价”。


芝加哥一直都是期货合约交易的中心,期货合约是一种允许你将来某一特定时间以给定价格买卖某种商品(如玉米或猪肉)的协议。某些芝加哥交易所还允许人们以期货的形式买卖公司股票,这些公司的股票通常在纽交所上市交易。当然这些期货合约的价格与股票价格有着紧密的联系。


现在假设有一支股票的价格在纽交所(或者说在新泽西马瓦郊区的服务器中)发生了变化。可以肯定的是,芝加哥相关的期货合约的价格也将相应变化。但价格变化不会立即发生:通过连接两大金融中心的光纤电缆很长,股票价格变化报告需要7微秒或更长的时间才能到达芝加哥


20106月,美国公司SpreadNetworks准备采用最短路径,在纽约市和芝加哥市之间铺设一条825英里光纤传输信道,其最终目的是将股票交易加快3微秒。该工程需要在山区爆破,造价不菲。


凯文·斯拉文表示:“我们正在用炸药和岩石锯打穿美国,让算法能早3微秒完成交易,所有的一切都是为了一个前所未有的通讯系统。”另外,一条连接加拿大新斯科舍省和英国索默塞的光纤连接已被建立起来,以满足股票交易员的需要,在60毫秒内在伦敦和纽约之间发送股票数据。


“你想一想,我们正在用炸药和岩石锯穿过美国,只是为了一个算法能快三微秒完成交易,为了一个没人会知道的通信框架,这有点命运天定论。”斯拉文说,有意思的不是钱,而是钱所激发的东西,我们实际是在用算法的效率改造地球本身。


斯拉文最后提到算法与自然的关系值得深思。

看看这张演讲开始就提到的照片,它由艺术家迈克尔·纳贾尔在阿根廷拍摄。经过数字化重塑后,你会发现所有山峰的轮廓遵循道琼斯指数的变化,其中的深沟险壑就是2008年的金融危机。


仔细回想,山峰的轮廓是不是与算法异常时的结果非常类似?风景不正是因人与自然之间的怪异协作产生的吗?或许这不是艺术或隐喻,而是预言,算法就是自然映射或者说,它就是自然。

谢谢大家!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/miller_lover/article/details/40536539

智能推荐

linux 路由跟踪表满错误 nf_conntrack: table full, dropping packet 原理解决方法_nf_conntrack:table full-程序员宅基地

文章浏览阅读5.2k次。netfilter/conntrack 相关内核参数往往是用 Linux 服务器的互联网小公司业务量上去之后遇到的第 3 个“新手怪”。(第 1 位:进程可用的 FD 不足,第 2 位:IP 临时端口不足 + TIME_WAIT 状态的连接过多导致无法建立新连接)很多人以为 Linux 经过这么多年优化,默认参数应该“足够好”,其实不是。默认参数面向“通用”服务器,不适用于连接数和访问量比较多..._nf_conntrack:table full

linux下gcc编译优化选项的大体操作是怎么样的?_linux gcc 性能优化 编译参数调优-程序员宅基地

文章浏览阅读1.3k次。起因: 目前项目使用nios IDE作为开发平台,其使用的编译器为gcc的交叉编译器。在设定编译条件时,在debug模式下生成的程序正常,但是在release模式下会出现LCD显示的开端显示不全,缺少一个字节或字的状况。为了了解具体为什么造成该问题,对两种模式下的配置做了对比,编译器皆为nios2-elf-gcc交叉编译器,debug模式编译器参数为:-DALT_DEBUG -O0 ..._linux gcc 性能优化 编译参数调优

各种免费好用的api,含天气查询、IP查询、物流查询等-程序员宅基地

文章浏览阅读706次,点赞7次,收藏9次。各种免费好用的api,含天气查询、IP查询、物流查询等

Qt工作笔记-Windows上界面滑动效果_qt 界面滑动-程序员宅基地

文章浏览阅读5.5k次,点赞7次,收藏20次。运行截图如下:源码如下:widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACEclass QMouseEvent;class QPropertyAnimation;QT_END_NAMESPACEnamespace Ui {class Widget;..._qt 界面滑动

Qt工作笔记-使用Qt中QProcess与iostream中system调用外部进程_qt system-程序员宅基地

文章浏览阅读5.8k次,点赞9次,收藏22次。目录 基础概念演示 基础概念Qt中的QProcess类可以调用外部程序!同时iostream有个函数system也可以调用外部程序!这个system也是Windows,Linux上通用的 演示如下代码!这是一个外部程序,是用vs2012写的#include <fstream>#include <iostream>usin..._qt system

python︱matplotlib使用(读入、显示、写出、opencv混用、格式转换...)_<matplotlib.image.axesimage object at 0x7f1d27d0c2-程序员宅基地

文章浏览阅读1.3w次,点赞2次,收藏18次。opencv和matplotlib是比较常用的图像分析模块。在Ipython里面,opencv不能直接显示出来,所以有些时候会借助matplotlib来显示。%matplotlib inline .1、matplotlib的读入与显示import matplotlib.pyplot as plt import numpy as np from PIL import ..._

随便推点

关于java的equals和hashcode方法_java使用equals肯定会先调用hashcode吗-程序员宅基地

文章浏览阅读993次。大牛的博客http://blog.csdn.net/lifetragedy, 里面有一系列面试题. 本篇就写关于equals和hashcode的.首先,我们提出问题.1.equals和hashcode有没有什么样的规范呢?2.Object类的equals和hashcode方法是什么样的?3.什么情况下需要重写equals和hashcode方法?重写equals的话必须重写hashc_java使用equals肯定会先调用hashcode吗

快排递归非递归python_用Python递归思考-程序员宅基地

文章浏览阅读611次。快排递归非递归pythonOf all ideas I have introduced to children, recursion stands out as the one idea that is particularly able to evoke an excited response.Seymour Papert, Mindstorms 在我介绍给孩子们的所有想法中,递归特别引人注目...

MATLAB函数句柄(@),feval与内连函数(inline)_f=inline(a)内联函数-程序员宅基地

文章浏览阅读5.3k次,点赞5次,收藏9次。转载地址:http://www.cnblogs.com/begtostudy/archive/2012/06/27/2565920.htmlMATLAB函数句柄函数句柄(Function handle)是MATLAB的一种数据类型。包含了函数的路径、函数名、类型以及可能存在的重载方法;引入函数句柄是为了使feval及借助于它的泛函指令工作更可靠;使“函数调用”像“变_f=inline(a)内联函数

Android资源代码 源码 整理 Github开源项目下载地址_com.github.chenglei1986:datepicker:-snapshot aar依赖-程序员宅基地

文章浏览阅读5.4k次。第一部分 个性化控件(View)主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar、TextView、ScrollView、TimeView、TipView、FlipView、ColorPickView、GraphView、UI Style等等。一、L_com.github.chenglei1986:datepicker:-snapshot aar依赖下载

解决Cannot find module ‘element-ui‘_cannot find module './plugins/element.js' at webpa-程序员宅基地

文章浏览阅读3.6k次。**报错:Cannot find module ‘element-ui’**解决办法:步骤1.npm install element-ui --save步骤2.在main.js中import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI);芜湖!!_cannot find module './plugins/element.js' at webpackmissingmodule

S5P4418开发板 A9四核开发板 推荐 最新产品_cortex a9开发板推荐-程序员宅基地

文章浏览阅读565次。推荐理由:1、三星中国S5P4418开发系统国内唯一旗舰商;2、全球绝对独家发布,独家支持3G/4G电话和短信功能;支持休眠唤醒;3、真正的A9四核高端开发板; 4、严格意义上的企业产品级开发板; 5、强悍、稳定的硬件设计和军工级别的质量;6、免费送WIFI蓝牙二合一模块和超级电池盒 2015年5月10号,经过润尔信息(原广州华天正)技术研发团队历时_cortex a9开发板推荐