算法正在创造一个没人能理解的代码世界


    这几年,以今日头条为代表的“算法分发”模式席卷全球互联网行业。而各界对算法的非议也渐渐浮现,有的认为它“计算不准”,有的认为它“恶意推荐”,甚至还出现了“算法技术应退出时代舞台”的论调。
    事实上,对科技公司来说,算法是一把双刃剑,一方面在驱动其业绩增长方面立下了汗马功劳,另一方面却“后患无穷”。以今日头条为例,该公司几乎完全凭借算法,快速超越了传统门户的人工编辑模式,优势极为明显;但在判断内容质量,发现传播风险方面,算法却还处于非常初级的阶段,不太能指望得上。
    总的来说,随着算法的发展,这个代码叠加的技术正逐渐创造一个没人能理解的世界......
    2018年3月18日,悲剧发生了,这也是科技人士所担心的。那天晚上,一辆Uber无人车在自动驾驶的状态下行驶,突然检测到前方有障碍物出现。一系列雷达和激光雷达传感器探测到的数据让机载算法开始计算,假设障碍物保持不动,车速稳定在43英里/小时,那现在二者的距离只需6秒。但是道路中的物体很少保持静止,于是更多的算法开始搜索可识别生物实体的数据库,以寻找一个模型来推出一个完美的解决方案。
    起初,计算机空白了几秒,随后决定与障碍物“碰面”希望它能自行离开。然而,到最后一秒,该车才清楚的知道,这是一位推着自行车的女士。在这种情况下,汽车想要绕过去,但因为禁止自行采取规避行动,计算机只能将控制权交还人类。遗憾的是,安全员正在开小差,悲剧就这样发生了:49岁的Elaine Herzberg在车祸中去世。这件事也给科技界的留下了两个值得反思的问题:这种算法造成的悲剧是不可避免的吗?我们应该如何应对这些事件?
    “在某些方面,我们失去了控制权。当程序进入代码,代码进入算法,然后算法开始创建新算法时,它会越来越不受人类控制,软件也就进入了一个没人能理解的代码世界。”是不是听起来很惊悚,事实也会如此。这句话出自Ellen Ullman之口,她是自20世纪70年代以来的一位杰出的专业程序员,也是为数不多的几位出版过关于编程的书的人。
    “人们可能会说,‘那Facebook呢?他们创造并使用算法,还会进行改进。’但这不是Facebook的运作方式。研究员设置算法,它们学习,改变和运行自己。Facebook定期介入,但他们真的无法控制这些算法,对特殊的算法而言,它们不仅仅是自主运行,还会调用数据库,进入深层操作系统,等等。”
    什么是算法?
    如今,很少有哪种技术会比算法更受欢迎,但算法究竟是什么呢?从根本上说,算法是一个小而简单的事情,即用于自动处理数据的规则。如果a发生了,那么执行b;如果没发生,那就执行c。这是经典计算的“if / then / else”逻辑。核心上,计算机程序是这类算法的捆绑,为它们投递处理数据。
    不过,近年来算法出现了一种很模棱两可的定义,指任何大型、复杂的决策软件系统,根据一组给定的标准(或“规则”),获取数据输入并快速评估。这彻底改变了医学、科学、交通、以及通信领域,让人们的生活在各个方面变得更好。
    直到2016年,我们对算法有了新的思考。像Facebook和谷歌这样的公司开始以客观的承诺为算法辩护,认为它可以通过数学分离和缺乏模糊情感来权衡一系列条件。基于此,这种算法决策扩展到了发放贷款、保释、福利、工作面试以及其他任何需要选择的事情上。
    现在的我们不再能接受这种对算法的“推销”。凯西·奥尼尔(Cathy O'Neil)在其著作《数学破坏武器》(Weapons of Math Destruction)中表示,对于人类的偏见,算法不仅会巩固还会放大,而不是消除。对此,她呼吁对任何能直接影响公众的系统进行“算法审计”(algorithmic audits),这是一个明智的想法,不过对科技行业不是一件好事,因为算法是他们的支撑,他们最不愿做的就是透明化。
    好消息是这场战斗正在进行中,坏消息是人们的注意力都集中在人工智能的遥远承诺和威胁上,几乎没人注意到我们进入了算法革命的新阶段。由奥尼尔和其他人所创造的算法是不透明但可预测的,我们将这些算法称为“dumb”,它们能根据人类定义的参数来完成工作。
    而结果的质量取决于编程的思想和技巧。其终极目的便是人工智能或AGI。一个智能机器将能够基于直觉(我们可能认为是经验和知识的积累)质疑自己的计算质量。谷歌DeepMind创建的AlphaGo就是一个很好的例子。事实上,在某些特定任务中,计算机已经远远优于人类,但要与人类的能力相比媲美,还需要时间。
    现实生活中的危险
    回到之前Uber无人车发生事故的原因。目前正在测试的自动驾驶汽车可能包括1亿行代码,并且鉴于没有程序员可以预测真实世界道路上的所有可能情况,他们必须学习并接收不断更新。我们如何避免在此代码环境中发生冲突,尤其是算法可能还需要保护自己免受黑客攻击的时候?
    二十年前,George Dyson在他的经典着作《电脑生命天演论》(Darwin Among the Machines)中预测了今天发生的大部分事情。他表示问题在于我们正在构建超出控制范围的系统。人们总是相信,如果一个系统是确定的(根据固定规则行动,这是一个算法的定义),它就是可预测的,并且预测也是可控的。实际上,这两个假设都是错误的。
    与以前的电子机械系统不同,新算法无法进行详尽的测试。除非我们拥有超级智能机器为我们做这件事,否则我们就是在铤而走险。因此,从目前的情况看,重点是机器学习。我们都知道,今年早些时候,Uber自动驾驶汽车出现了致死事故,因为算法在对行人分类时犹豫不决。这是由于编程不佳,算法培训不足还是拒绝接受技术的局限性造成的?真正的问题是我们可能永远不会知道答案。
    新南威尔士大学的人工智能教授Toby Walsh表示,“我们最终会完全放弃编写算法,因为未来机器能比以我们做得更好。从这个意义上说,软件工程可能是一个垂死的职业。它将被机器接管。”此外,他还指出,这会让人们学习编程变得更加重要,因为随着我们越来越疏离编程,就会越觉得它的影响超出了我们的能力。另外,伦理在科技领域来说,是最重要的。毕竟,哪里有选择,哪里就是道德所在的地方。
    相反的观点是,一旦程序出现问题,整个程序群体就可以被重写或更新,同一种情况就不会再发生了,而不像人类,重复错误的倾向可能更会误导机器。尽管如此,虽然从长远来看自动化应该更安全,但我们现有的侵权法体系需要重新定制,这需要有意或过失的证明。
    其实,上文描述的大多数问题,也都在寻找解决方案。从长远来看,会有更多的人猜测,考虑到我们越来越依赖的算法系统的规模,复杂性和相互依赖性,当前的编程方法已不再适用。对此,部分航空航天工业采用了一种较新的被称为“基于模型的编程”的方法,其中机器完成大部分编码工作并且能够随时进行测试。
    然而,基于模型的编程可能不是万能的灵丹妙药。它不仅使人类进一步远离这一过程,而且人类也无法从代码本身推断出极端行为,即使是在使用大型复杂系统构建的情况下也是如此。当我们等待技术上的答案来解决算法问题时,或许采用一些预防措施才是最重要的。
    文/人工智能观察