科学和医学
在科学方面,我们通过进行大规模的模拟来理解。例如在探索核聚变的反应过程中,我们就取得了一些不错的结果。研究人员可以应用一种形式化的研究方法,为物理系统创建一个假设,然后使用这个假设,并且不断的使用这个假设进行反应和模拟。如果我们得到的结果和实际不相符,则丢弃模型,并且重新开始。
当我们得到了一个强大的模型之后,我们就可以在物理模拟系统中进行很多实际实验中代价昂贵的测试了。如果P=NP,我们可以使用奥卡姆剃刀方法来创建假设,即找到与数据一致的最小电路。机器学习技术可以沿着这条技术路径前进,使假设的创建自动化。当我们给定数据之后,不论是通过模拟还是真正的实验得到数据,机器学习就可以创建模型来拟合这些数据,达到最佳的匹配。我们可以使用这些模型进行预测,然后就像之前那样测试这些预测。
虽然这些技术使我们能够找到可能遗漏的假设和模型,但是也有可能导致误报。人类通常会趋向于接受有95%置信度的假设(这意味着20个坏假设中只有一个能够通过检验)。机器学习和数据科学工具能够让我们生成假设,这些假设都有着脱离实际建模的风险。这就限制了它的工作范围,比如医学工作者就不能承担这些风险,他们的诊断中如果有这些问题,那会遭到很大的麻烦。生物系统也是一种极为复杂的结构。我们知道人类的DNA形成了复杂的编码,它描述了我们的身体是如何形成的,以及它们执行的功能。但是很可惜,我们目前对其工作原理知之甚少。
在2020年11月30日,谷歌旗下的DeepMind发布了AlphaFold,这是一种基于氨基酸序列预测蛋白质形状和结构的新算法。AlphaFold的预测几乎达到了实际实验构建氨基酸序列的和测量蛋白质形状相同的准确度。但是关于DeepMind是否真正“解决”了蛋白质折叠的问题,还存在一些争议,现在评估其影响还为时过早,但是从长远的角度来看,这可以为我们提供一种新的数字工具来研究蛋白质,来了解它们是如何互相作用,并且了解如何设计DNA来对抗疾病。
超越P和NP问题的思考:国际象棋
NP就像是一个迷宫一样,在任意大小的棋盘上各种操作。数独也是NP完全的问题,它需要从一些正方形中给定的数字设置中求解。但是,当我们问到谁从给定的初始设置中获胜时,我们是不是就没办法给出准确的回答了呢?即使我们有P=NP的前提,它也不一定会给我们一个完美的国际象棋的程序来解决问题,这就像需要设计一个程序,它保证能够让白棋走的这一步,逼迫黑棋走那一步,然后白棋再按照计划走这一步,使得黑棋…,最终是白棋获胜。人们无法单独在P=NP上完成所有这些白棋和黑棋的交替。像这样的游戏往往被称为PSPACE-hard,即很难计算、或使用合理数量的内存,并且在约定的时间之内求解完成的问题。根据规则的精确限制,国际象棋和围棋甚至可能更难。
这不意味着如果P=NP,你就不能得到一个好的国际象棋程序。事实上,在某种程度上,象棋的程序体积越大,其智能程度越高。我们可以找到一种有效的计算机程序,它可以击败所有尺寸稍小的其他程序。同时,即使没有P=NP,计算机在国际象棋和围棋方面也变得非常强大了。1997年,IBM的深蓝击败了当时的国际象棋世界冠军。
此外,机器学习为电脑游戏带来了巨大的进步。我们讨论一下声名大噪的AlphaZero,它是2017年DeepMind开发出来的人工智能程序。
AlphaZero使用了一种被称为蒙特卡洛树搜索MCTS的技术,这个技术为两个玩家随机移动以确定最佳的行动方案。AlphaZero使用深度学习来预测游戏位置的最佳分布,以优化使用MCTS的获胜机会。虽然AlphaZero不是第一个使用MCTS的工作,但是它没有任何内置的人工策略或者使用任何已有的游戏数据库。AlphaZero只学习了游戏的规则。这就让AlphaZero在国际象棋和围棋这两个运动中大放异彩,除了交替移动和固定大小的棋盘之外,这两个游戏在规则和目的上没有任何相似之处。DeepMind最近在MuZero上也有新动作。它甚至都没有得到完整的游戏规则,只得到了对棋盘位置的一些表示,和合法动作列表,以及对哪些位置是输是赢有了一些了解。也就是说,现在我们已经发展到了一个阶段,在这个阶段里,纯机器学习在国际象棋或者围棋这样的高复杂度的问题中都能轻松击败大多数的人类或者启发式算法。人类的先验知识只会画蛇添足、碍手碍脚。对于国际象棋和围棋这样的游戏,机器学习可以在P=NP无法满足的情况下取得成功。太不可思议了。
可解释的人工智能
许多机器学习算法似乎已经能够达到不错的效果,但是我们不知道其中的原因。如果我们仔细的去看语音翻译或者图像识别的神经网络内部参数,很难理解它为什么会做出这样的动作或者处理。有人可能会问了,它有这个能力就好,我们为什么要关心?以下是几个原因:信任、公平性、安全性、因果关系。
- 1. 信任:我们如何知道神经网络是否正常运行了?除了检查输入和输出之外,我们无法对其他中间的变量进行分析和理解。不同的应用程序具有不同的信任级别。如果Netflix推荐了一个很差的电影,那没什么问题,但是如果自动驾驶汽车推荐了一个让车撞墙的转弯操作,那事儿可就大了。
- 2. 公平性:很多应用程序都是在训练集上进行学习的,训练集中的数据可能不是完全公平或者说没有偏见的。如果不理解程序,那我们可能无法纠正其中的偏差和歧视。种族歧视可是一个严重的话题呦。
- 3. 安全性:如果我们使用机器学习来监控数据安全系统甚至安保系统,那么不可解释的机器学习模型可能无法让你知道他存在的漏洞是什么,尤其是当我们的对手具有适应性的时候。如果我们能够理解代码和网络的结构,就可以发现并且修复这些安全漏洞。当然,如果我们的敌人拥有代码,他们也有可能发现漏洞并针对其组织攻击。
- 4. 因果关系:目前来说,我们最多可以检查机器学习算法是否只与我们想要的输出类型相关。但是理解代码能够帮助我们理解数据中的因果关系,从而造出更好的科学理论和医学成果。
如果P=NP,我们能得到更好的计算机程序吗?如果你有一个解决NP完全问题的快速算法,你就可以用它来找到匹配旅行商问题的最短路径,但是你不会知道为什么这种方法有效。另一方面,我们都希望能够得到可解释的算法,因为能够深入了解其属性。在研讨会中,我们都在研究可解释的人工智能,比如ACM Fairness Accountability and Trust会议等。
- 失控的AI - 10/27/26
- 《纽约客》丨纪念9·11二十五周年 - 09/12/26
- 数学500年:新的黄金时代?(1) - 06/05/26
