弗兰肯斯坦算法:致命的不可预测代码
2018年3月18日,是个让技术内部人士一直害怕的日子。那天晚上恰逢新月,月光黯淡没法儿给亚利桑那州坦佩市一条光线不足的四车道道路增加亮度,一辆特别改装的Uber沃尔沃XC90在前方检测到一个物体。作为现代淘金热的一部分,各方都在开发自动驾驶车辆。这辆SUV正处于自动驾驶状态,没有人类驾驶员的介入,行驶了19分钟。一系列雷达和发光激光雷达传感器允许机载算法进行计算,鉴于车辆稳定速度为43英里/小时,障碍物距离车辆有6秒时间,假设障碍物保持静止。但是道路中的障碍物很少保持静止,因此更多的算法爬过可识别的机械和生物实体的数据库,寻找可以识别符合这种行为的潜在障碍物。
起初计算机未找到;几秒钟后,它决定与另一辆车错车,期待它开走,不需要做特别的行动。直到最后一秒,才有了一个清晰的识别 —— 一个骑着自行车的女人,购物袋悬挂在车把上,以为沃尔沃会像普通车一样擦肩而过。由于禁止自行采取规避行动,计算机突然将控制权交还给人类驾驶员,但却未引起注意。至此,悲剧发生。这给更多科技界反思成员留下了两个令人不安的问题:这种算法悲剧是不可避免的吗?我们应该如何准备好应对这些事件?
“在某些方面,我们失去了控制权。当程序进入代码并且代码传递到算法中,然后算法开始创建新算法时,它会越来越远离人类控制。软件被发布到一个没有人能完全理解的代码世界中。”
如果这些话听起来有些耸人听闻,那么就是这样的,尤其是因为艾伦·乌曼,除了是自20世纪70年代以来一位杰出的专业程序员之外,还是少数几个探讨有关编码过程的人之一。
“人们说,‘好吧,Facebook也是如此,它创造和使用算法,它们可以改变它们。’但这不是它的运作方式。Facebook设置算法,它们学习、改变和运行自己。 Facebook定期介入它们的运行,但无法真正地控制它们。特别的程序不只是自己运行,而是调用库、深层操作系统等......”
什么是算法?
现在很少有学科像算法一样更经常或更热烈地讨论。但是算法是什么?实际上,自从20世纪90年代中期互联网的兴起以来,特别是搜索引擎,这种用法已经发生了有趣的变化。从根本上说,算法是一个小而简单的事情;用于自动处理数据的规则。如果发生了,按b运行;如果没有,按c运行。这是经典计算的“if / then / else”逻辑。如果用户声称18岁,允许他们进入网站;如果没有,输出“对不起,你必须18岁才能进入”。核心上,计算机程序是一捆捆这类算法。处理数据的方法。在微观层面上,没有比这更简单的了。如果计算机似乎表现出魔力,那是因为它们够快,而不是智能。
近年来出现了一种更加诡异和模棱两可的含义,“算法”一词被认为是指任何大型、复杂的决策软件系统;根据一组给定的标准(或“规则”),任何大量输入数据的方法,并快速评估它。这彻底改变了医学、科学、交通、通信领域,使人们更容易理解多年来一直占据主导地位的乌托邦计算观。算法使我们的生活以各种方式变得更好。
直到2016年,我们才开始对我们新的算法现实进行更细致的思考。如果我们倾向于用圣经术语的方式来讨论算法,作为独立的个体,有自己的生命,那是因为我们被鼓励以这种方式去思考它们。像Facebook和谷歌这样的公司已经凭借客观性的承诺出售算法并捍卫它,可以通过数学分离和缺乏模糊情感来权衡一系列条件。难怪这种算法决策已经扩展到授予贷款/保释/福利/大学名额/工作面试和几乎任何需要选择的东西。
我们不再温顺地接受此类算法的销售宣传。凯茜·奥尼尔曾是数学天才,离开华尔街教授,编写和运行优秀数学博客。她在2016年出版的《数学杀伤性武器》一书中,毫无疑问地证明,算法可以放大并巩固它们,远远不能消除人类的偏见。毕竟,软件是由绝大多数富裕的白人和亚洲男人编写的,而且它将不可避免地反映他们的假设。偏见不需要恶意造成伤害,与人类不同,我们不能轻易要求算法守门员解释其决定。奥尼尔呼吁对任何直接影响公众的系统进行“算法审计”,一个明智的想法是科技行业将为此全力以赴,因为算法是公司销售的;他们唯一承诺的就是透明度。
好消息是这场战斗正在进行中。坏消息是接下来会发生什么,看起来很古怪。如此多的注意力都集中在人工智能的遥远承诺和威胁上,几乎没有人注意到我们进入了算法革命的新阶段,毫无疑问,这同样令人烦恼和迷惑。
奥尼尔和其他人标记的算法是不透明的,但可预测:他们按照自己的编程去做。原则上熟练的程序员可以检查和挑战他们的结构。我们中的一些人梦想有公民军队来做这项工作。实现这一目标的立法似乎是不可避免的。
我们可能会将这些算法称为“傻瓜式”,因为它们根据人类定义的参数来完成工作。结果的质量取决于人类编程的思想和技巧。在光谱的另一端是遥远想象中的类似人类的人工智能或AGI。一个适当的智能机器将能够质疑自己计算的质量,基于像我们直觉(我们可能认为是经验和知识的广泛积累)一样的东西。为了更好地理解这一点,谷歌的DeepMind部门因创建一个能够掌握街机游戏的程序而受到称赞,一开始只是为了获得最高分。
这种技术被称为“强化学习”,因为计算机可以快速玩数百万个游戏,以便了解生成点的内容。有人称这种形式的能力为“狭隘的人工智能”,但在这里,“智能”这个词的使用方式就像Facebook使用“朋友”一样,意味着比现在更安全、更好理解。为什么?因为机器正在进行的操作没有背景,也无法做任何其他事情。也不完全是,至关重要的是,它能否将知识从一个游戏转移到另一个游戏(所谓的“转移学习”),这使得它不像幼儿,甚至墨鱼那样普遍聪明。在某些特定的任务中,计算机已经远远优于我们,但是它们要达到与我们一般能力相媲美的那一天,可能还有一段距离。
这是问题所在。在“傻瓜式”固定算法和真正的人工智能之间存在着我们已经住进有疑问的半成品房,几乎没有思考,没有辩论,更不用说有关目标、道德、安全、最佳实践的协议。如果我们周围的算法还不够聪明,意味着能够独立地说“计算/行动过程看起来不正确:我会再做一次”,它们仍然开始从自己的环境中学习。一旦算法学习,我们就不再知道它的规则和参数是什么。在这一点上,我们无法确定它将如何与其他算法、物理世界或我们互动。 “傻瓜式”固定算法原则上是可预测和可查询的,而这些算法则不然。经过一段时间,我们不再知道它们是什么:它们有可能变得不稳定。我们可能会把这些称为“弗兰肯斯坦算法”的诱惑,虽然玛丽·雪莱不可能做到这一点。
冲突的代码
这些算法本身并不新鲜。差不多五年前第一次遇到它们:一个人类制造的数字生态系统,分布在数十亿美元数据场中,像忍者一样蹲伏在黑匣子中 —— 这正是股票市场的样子。曾经有过实体交易大厅的地方,所有的行动都转移到了一个中央服务器上,灵活的、掠夺性的算法以食草性算法为食,通过欺骗诱使他们低卖高买。人类HFT交易员称这些大型、缓慢的参与者为“鲸鱼”,他们大多属于共同基金和养老基金,即公众。对于大多数高频交易所来说,鲸鱼现在是主要的利润来源。从本质上讲,这些算法试图互相超越;它们以光速进行无形的战斗,每秒放置和取消相同的命令10,000次,或猛烈砸向系统震撼整个市场,所有这些都超出了人类的监督或控制。
对这种不稳定的情况,没有人感到惊讶。 2010年出现了“闪电崩盘”,在此期间,市场在五分钟内进入自由落体状态,然后在另外五分钟内恢复正常,而没有明显的原因。芝加哥有一个名叫Eric Hunsader的人,掌握着惊人的编程技巧让他能够比监管机构更详细地看到市场数据,他表示,到2014年,“小型闪电崩盘”每周都在发生。即使他无法证明原因,但他和工作人员已经开始为他们所看到的一些“算法”命名。
乔治华盛顿大学物理学家尼尔·约翰逊对股市波动进行了研究。 “这很有意思。”他说,“我的意思是,人们多年来一直从蠕虫病毒等方面谈论计算机系统的生态学。但还是一个我们可以研究的真正的工作系统。更大的问题是我们不知道它是如何工作的,或它可能产生什么。对此的态度似乎是‘眼不见,心不烦’。”
他表示,一种新形式的算法正在向世界移动,它具有“重写自己代码的能力”,此时它就变成了“遗传算法”。如果是这样,算法就会在那里进行角逐,并在股票市场上进行调整。
“我认为这正是Facebook的问题所在。他们可以使用简单的算法在别人页面上的照片中识别我的脸,从我的个人资料中获取数据并将我们链接在一起。这是一个非常简单的具体算法。但问题是数十亿这样的算法在宏观层面上一起工作的影响是什么?你无法从微观规则预测人口层面的学习行为。所以Facebook会声称他们确切知道微观层面上发生了什么,他们可能是对的。但是在人口水平上会发生什么呢?这就是问题所在。”
奥尼尔说,她有意识地从《数学毁灭性武器》中排除了这种自适应形式的算法。在一个没有任何明确的复杂算法环境中,将责任分配给特定的代码段变得极其困难。这使得它们更容易被忽视或忽略,因为它们及其精确的效果更难以识别。
亚马逊上异常事件的轶事证据很多,来自各种困惑的卖家。一份来自2016年的学术论文,声称:“竞争性的算法定价软件以意想不到的方式相互作用,产生了不可预测的价格,以及一些算法被故意设计来实现价格操纵的案例。”问题是如何在混乱的算法环境中分配责任,在这种环境中,简单的原因和效果要么不适用,要么几乎不可能追踪。与金融一样,可否认性被纳入系统。
现实生活中的危险
如果安全受到威胁,这真的很重要。在没有明显原因而突然加速,一名司机跳车并被丰田凯美瑞杀死, NASA专家花了六个月的时间检查其操作系统中的数百万行代码,但没有找到司机家属相信的证据,但制造商坚决否认汽车会自动加速。只有当一对嵌入式软件专家花了20个月的时间挖掘代码时,他们才能证明实际情况,揭示了程序员所谓的“意大利面条式代码”的扭曲,充满了推挤和争斗的算法,产生了异常的,不可预测的输出。目前正在测试的自动驾驶汽车可能包含100米的代码行,并且鉴于没有程序员可以预测真实世界道路上的所有可能情况,他们必须学习并接受不断更新。我们如何避免在如此流畅的代码环境中发生冲突,尤其是算法可能还需要保护自己免受黑客攻击?
二十年前,乔治·戴森(George Dyson)在他的经典著作《计算机生命天演论》中预测了今天发生的事情。他表示,问题在于我们正在构建超出我们智力控制范围的系统。我们相信,如果一个系统是确定性的(根据固定规则行动,这是一个算法的定义),它是可预测的 - 并且可预测的就可以控制。这两个假设都是错误的。
“有个古老的规律称为阿什比定律,它说控制系统必须像它控制的系统一样复杂,而我们全速运行,有着巨大推动力去构建自动驾驶汽车,而自动驾驶汽车的软件必须拥有一个完整的模型,按照定义,我们几乎不能理解它。因为我们所理解的任何型号都会像碰到一辆消防车一样,而我们忘了放入消防车。”
与我们的旧机电系统不同,这些新算法也无法进行详尽的测试。除非我们拥有超级智能机器为我们做这件事,否则我们是在走钢丝。
因此,目前强调机器学习。我们现在知道,在亚利桑那州的一辆Uber无人汽车杀死行人,是由于算法在正确分类物体时举棋不定了。这是由于编程不佳,算法培训不足还是傲慢地拒绝理解我们的技术极限?真正的问题是我们可能永远不会知道。
寻找解决方案
对于这里描述的大多数问题,存在或者可以找到解决方案,但并非没有激励科技巨头将社会的健康与他们的底线相提并论。从长远来看,越来越严重的猜测是,鉴于我们越来越依赖算法系统的规模、复杂性和相互依赖性,当前的编程方法已不再适用于目的。联邦航空管理局在商业航空方面所采用的一种解决方案是,对所有程序的内容进行日志和评估,并对这些细节进行后续更新,以便提前了解算法的交互作用——但这在很大程度上是不切实际的。部分航空航天工业采用了一种相对较新的方法,称为基于模型的编程,在这种方法中,机器可以完成大部分的编码工作,并且能够在运行过程中进行测试。
然而,基于模型的编程可能不是灵丹妙药。它不仅推动人类进一步远离这一过程,而且物理学家约翰逊为国防部进行了一项研究,该研究发现“无法从代码本身推断出极端行为”,即使在使用大型复杂系统构建的情况下也是如此。
当我们等待技术上的答案来解决算法纠缠的问题时,我们可以采取一些预防措施。软件安全专家斯帕·福德建议让技术公司对其产品的行为负责,是否可以识别特定的恶意代码行 - 或者与之相关的疏忽证据。他指出,古老的计算机协会已经根据医学的希波克拉底誓言更新了其道德准则,指导计算专业人员不受伤害并考虑其工作的更广泛影响。
广告、内容合作请点这里:寻求合作
咨询·服务