holymoses 2018-02-05
编译 | AI科技大本营(rgznai100)
参与 | shawn
编辑 | 明明
90年代初,当卫奇塔州立大学(Wichita State University)的物理学教授Elizabeth Behrman开始结合量子物理学和人工智能(主要是当时备受争议的神经网络技术)时,大多数人认为这两门学科就像油和水一样,根本没办法结合。“当时我连发表论文都很困难。神经网络学术期刊问我‘量子力学是什么’,而物理学期刊则会问‘神经网络是什么玩意’。”她回忆道。
如今,这两门学科的结合似乎再自然不过了。神经网络和其他机器学习系统成为了21世纪影响最大的技术。这些系统不仅在一些大部分人不擅长的任务(例如:围棋和数据挖掘)上打败了人类,而且还在大脑的某些本职工作(例如:面部识别、语言翻译)上超越了人类。这些系统的实现依赖于庞大的计算能力,因此科技公司要寻找的计算机不仅要更大,而且还要更先进。
在经历了数十年的研究后,量子计算机现在的计算能力已经超越了其他所有计算机。人们常认为,量子计算机的杀手级应用可以对大数进行因数分解——这对现代加密技术至关重要。但是实现这一点至少还要再等十年。不过,当前基本的量子处理器已经可以满足机器学习的计算需求。量子计算机在一个步骤之内可以处理大量的数据,找出传统计算机无法识别出的微妙模式,在遇到不完整或不确定数据时也不会卡住。“量子计算和机器学习固有的统计学性质之间存在着一种天然的结合。” Rigetti Computing的物理学家Johannes Otterbach表示。(Rigetti Computin是一家位于加州伯克利的量子计算机公司。)
如果有什么不同的话,那就是当前的趋势已经走向另一极端。谷歌、微软、IBM等科技巨头正在往量子机器学习上猛砸钱,多伦多大学还成立了一个量子机器学习创业孵化器。“‘机器学习’现在正成为一个潮词。在 ‘机器学习’加上‘量子’,它就变成了一个超级潮词。”莫斯科斯科尔科沃科技学院(Skolkovo Institute of Science and Technology)的量子物理学家Jacob Biamonte称。
然而,“量子”一词在此处没有任何意义。你可能能会认为量子机器学习系统应该很强大,但是这种系统实际上却像是患有某种闭锁综合症。量子机器学习系统处理的是量子态,而不是人类可以理解的数据,量子态和数据的相互转换会使系统原有的优势消失。就像是,iPhone X原本的参数和性能都很强,但是如果网络信号太差的话,它就会和老式手机一样慢。在一些特殊情况中,物理学家可以克服输入输出障碍,但是这些情况是否存在于现实机器学习任务中?答案仍然是未知的。“我们现在还没有明确的答案。一直以来,人们往往对这些算法是否能提高计算速度并不关心。”德克萨斯州大学奥斯汀分校计算机科学家Scott Aaronson表示。
▌量子神经元
无论是传统神经网络,还是量子神经网络,它们的主要任务都是识别模式。受人类大脑的启发,神经网络由基本的计算单元(即“神经元”)构成。每个神经元都可以看作为是一个开关设备。一个神经元可以监测多个其他神经元的输出,就像是投票选举一样,如果足够多的神经元处于激活状态,这个神经元就会被激活。通常,神经元的排列呈层状。初始层(initial layer)导入输入(例如图像像素),中间层生成不同组合形式的输入(代表边、几何形状等结构),最后一层生成输出(对图像内容的高级描述)。
需要注意的是,神经元之间的连接需要经过反复试验进行调整,不是预先确定的。例如,给神经网络输入带有“小猫”或“小狗”标签的图像。网络会给每一张图像分配一个标签,检查是否匹配正确,如果不正确就调整神经元连接。刚开始时网络的预测是随机生成的,但是其准确度会越来越高;在经过10000个实例的训练之后,网络将能识别图像中的宠物。正规的神经网络可能拥有10亿个神经元连接,所有连接都需要进行调整。
传统计算机计算单元的所有连接都用庞大的数字矩阵表示,运行神经网络就是在计算矩阵代数。传统的方法是,用一个专门的芯片(例如:图像处理器)来完成这些矩阵运算。而在完成矩阵运算上,量子计算机是不可匹敌的。“量子计算机运算大型矩阵和向量的速度快很多。”麻省理工大学(MIT)物理学家、量子计算先驱Seth Lloyd称。
在进行运算时,量子计算机可以利用量子系统的指数属性。量子系统的大部分信息储存能力并不是靠单个数据单元——qubit(对应于传统计算机中的bit)实现的,而是靠这些qubit的共同属性实现的。两个qubit带有四个连接状态:开/开、关/关、开/关、关/开。每个连接状态都分配有一个特定的权重或“幅值”,代表一个神经元。三个qubit可以代表八个神经元。四个qubit可以代表16个神经元。机器的运算能力呈指数增长。实际上,整个系统处处都分布有神经元。当处理4个qubit的状态时,计算机一步可以处理16个数字,而传统的计算机只能一步只能处理一个。
Lloyd估计,60个qubit的计算机可以编码的数据量相当于人类一年生成的所有数据,300个qubit的计算机可以编码可观测宇宙中的传统信息内容。(IBM、英特尔和谷歌共同研发的量子计算机是当前最大的量子计算机,大约有50个qubit)。不过前提是假设每个幅值(amplitude)对应于一个传统的bit。Aaronson表示:事实上,幅值是连续的数值(复杂的数字)。为获得可信的试验准确度,可以储存15 bit的信息。
但是,量子计算机的信息储存能力并不能加快它的运算速度。如何能够使用qubit才是关键。2008年,Lloyd、MIT物理学家Aram Harrow和以色列巴伊兰大学(Bar-Ilan University)计算机科学家Avinatan Hassidim展示了如何用量子计算机完成矩阵求逆的关键代数运算。他们将整个运算分解为一系列可以在量子计算机上执行的逻辑运算。他们的算法适用于很多种机器学习算法。而且,需要完成的运算步骤少于因数分解一个大数所要完成的步骤。量子计算机可以在受到噪声影响前,迅速完成分类任务。“在完全通用且容错的量子计算机到来之前,量子计算可以提供量子优势。” IBM的 Thomas J. Watson 研究中心的Kristan Temme表示。
▌让系统本身解决问题
目前为止,我们只在4 qubit的计算机上实现了基于量子矩阵代数的机器学习。量子机器学习在实验上取得的大部分成功都采用了一种不同的方法:量子系统不只是模仿网络,它本身就是网络。每个qubit代表一个神经元。虽然这种方法无法让计算机利用指数属性所带来的优势,但是它可以让计算机利用量子物理学的其他特性。
位于温哥华附近的D-Wave Systems公司制造的量子处理器拥有2000个qubit,是目前最大的量子处理器。它和大多数人观念中的计算机不同:它的主要任务是寻找数据的内部一致性,而不是对输入数据执行一系列的运算,得出输出。每个qubit都是一个超导电回路,其作用相当于一个向上、向下或向上与向下(叠加)的小电磁体。让qubit通过磁力相互作用,这样就可以将它们“连”在一起。
D-Wave Systems公司制造的用于机器学习应用的处理器
在运行系统时,必须先施加一个水平的磁场,这个磁场可以将qubit预置为向上和向下的均等叠加——等同于空白状态。输入数据的方法有好几种。在某些情况中,你可以将某一层qubit固定在预期的输入值;不过多数情况下,应将输入导入到qubit的相互作用的范围内。然后让qubit相互作用。某些qubit朝同一方向排列,某些qubit朝相反方向排列,在水平磁场的作用下,它们会翻转到它们选择的方向。通过这样做,这些qubit可以触发其他qubit进行翻转。由于很多qubit都没对准方向,刚开始时会发生很多翻转。等到翻转停止后,你可以关闭水平磁场,将qubit锁定在固定位置。此时,qubit处于朝上和朝下的叠加状态,这种状态可以确保输出与输入相对应。
关键在于,Qubit最终的排列方式很难预测出来。通过完成自然出现的任务,系统可以解决普通计算机难以解决的问题。“我们不需要使用算法。这种系统与常规的编程完全不同。系统本身可以解决问题。” 东京工业大学的物理学家Hidetoshi Nishimori解释道。D-Wave计算机的工作原理就是由Hidetoshi Nishimori提出的。
qubit的翻转是由量子隧穿效应(quantum tunneling)驱动的。这种效应是一种自然趋势,量子系统必须要选出最佳配置,不能退而求其次。你可以构建一个工作原理相似的传统网络,采用随机晃动,而不是通过隧穿效应来让bit翻转。在某些任务中,这样的网络表现更好。但是有趣的是,在处理机器学习中出现的问题时,量子网络实现最佳结果的速度似乎更快。
D-Wave计算机也有缺陷。在当前的配置下,D-Wave计算机的噪声非常大,它只能执行有限的操作。而机器学习算法本质上是具有容噪能力的,它们可以理解混乱的现实环境,在干扰性背景中从区分小猫和小狗。“神经网络对噪声有很强的鲁棒性。” Behrman称。
Hartmut Neven是谷歌的一名计算机科学家,他开创了增强现实技术,是谷歌Google Glass项目的联合创始人。后来,他领导一个团队开始研究量子信息处理。2009年,这个团队证明了一台初期的D-Wave 计算机可以很好地完成一个机器学习任务。他们将这台计算机用作为一个单层神经网络,在20000张街景图数据库中将图像分类为两个类别:“汽车”和“非汽车”(请记住:这台D-Wave计算机与2018年上线的50-qubit系统属于完全不同的机型。)。Neven的团队结合使用D-Wave 计算机与传统的计算机,他们分析了图像的各种统计参数(quantities),然后计算这些参数对图像中汽车的敏感度——通常不是很敏感,但至少比抛硬币(猜正反面)要好。这些参数的某些组合可以准确地识别出汽车,但是无法识别出具体车型——这是神经网络的任务。
这个团队为每个参数都分配了一个qubit。如果qubit的值稳定在1,则将相应的参数标记为有用;如果qubit的值稳定在0,则不用标记。Qubit的磁力相互作用可以编码问题的要求,例如:只包含区分作用最强的参数,以确保参数的最终选择尽可能简单明了。试验的结论是,D-Wave计算机可以识别出汽车。
去年,加州理工学院粒子物理学家Maria Spiropulu和南加州大学物理学家Daniel Lidar领导的一个团队将算法应用到粒子物理学问题中:将质子碰撞分类为“希格斯玻色子(Higgs boson)”和“非希格斯玻色子”。这个团队将研究对象选择为生成质子的碰撞,他们使用基本的粒子理论来预测哪些粒子属性可能会表征希格斯粒子的短暂存在,例如:超出动量的某些阈值。他们考虑了8种粒子属性和28种属性组合,一共是36种候选信号然后让南加州大学的新型量子计算机找出最佳选择。该计算机识别出16个有用的变量,3个最佳变量。该量子计算机在执行准确的分类任务时比标准流程所需的数据量要少。“在训练集较小的条件下,量子计算方法的准确度要比高能物理学中的传统方法高。”Lidar表示。
加州理工学院物理学家Maria Spiropulu使用量子机器学习寻找希格斯玻色子。
去年12月,Rigetti 证明了一种使用通用19 qubits量子计算机自动分类对象的方法。大致上,研究人员向计算机输入了一系列的城市名称以及它们之间的距离,然后让计算机将这些城市分类为两个地理区域。这个问题的困难之处在于,一座城市属于哪个地理区域取决于系统对其他城市的分类,因此必须一下子解决整个系统。
Rigetti的团队为每个城市分配了一个qubit,表明这个城市属于哪个类别。通过qubit之间的相互作用(在Rigetti的系统中,这种相互作用是电作用力,而不是磁作用力),每一对qubit都尽量要选取相反的值——这样做可以将它们的能量降到最小。显然,对于任何qubit数超过2个的系统而言,某些qubit对只能被分配到相同的类别中。靠近的城市更容易被分配到同一类别中,因为相比距离较远的城市,邻近城市被分配到同一类别中的能量损耗要小。
为了将系统的能量降至最低,Rigetti的团队采用了一种在某些方面类似于D-Wave量子退火的方法。他们先将qubit预置为所有可能簇分配(cluster assignment)的叠加状态。然后让qubit进行短暂的相互作用,使qubit偏向于假设相同或相反的值。接着他们应用了一种模拟水平磁场的机制,在qubit倾斜时使它们可以翻转,以使系统更接近于最低能量状态。最后,他们重复执行了这个两步骤流程——相互作用与翻转,直到系统的能量降至最低,这样城市就被分类为两个不同的区域。
这些分类任务是有用的,但很直接。机器学习的尖端是生成模型,这种模型不仅可以识别小猫小狗,还可以生成新的原始模型——从来不存在的动物,但它们和真实动物一样可爱。这种模型甚至还可以自己分辨“小猫”和“小狗”的类别,或者修复缺少尾巴或爪子的图像。“在机器学习中,这些方法非常强大且有用,但是应用起来十分困难。” D-Wave的首席科学家Mohammad Amin表示。量子计算如果能被应用到生成式模型中,一定会大受欢迎。
D-Wave和其他研究团队已经开始着手解决这个难题。训练生成式模型,也就是调整qubit之间的(磁或电)相互作用,以使网络能复制某些实例数据。为了实现这一点,我们可以结合使用神经网络和普通的计算机。神经网络负责困难的任务——理解选定的相互作用对最终的网络配置有什么意义,然后计算机使用这个信息来调整qubit之间的相互作用。去年,NASA量子人工智能实验室(NASA’s Quantum Artificial Intelligence Lab)的研究人员Alejandro Perdomo-Ortiz和他的团队在一篇论文中,用一个D-Wave系统处理手写数字的图像。结果,该系统识别出10个类别,并为0至9这10个数字各分配了一个类别,而且还生成了自己的手写体数字。
▌量子计算机的瓶颈
令人失望的是,如果你无法将数据载入到处理器中,你的处理器再强大也无济于事。在矩阵代数算法中,一个简单的运算就可以处理一个由16个数字构成的矩阵,但是载入这个矩阵却需要进行16个运算。“人们完全没有重视量子态制备——将传统的数据载入到量子状态中我认为这一步是最重要的一步。”量子计算初创公司Xanadu的研究人员Maria Schuld表示。她是最早获得量子机器学习博士学位的人员之一。当我们把机器学习系统布置到实体机器中时,常常陷入两难的境地:如何将一个问题嵌入到qubit网络中;让qubit以正确的方式相互作用。
当载入数据之后,你需要将数据存储起来,并确保量子系统在与数据相互交互时不影响正在进行的计算。Lloyd和他的团队提出了一个使用光子的量子RAM,但是目前还没有超传导qubit或囚禁离子(trapped ions)的类似装置——用在先进量子计算机中的技术。“除了构建量子计算机本身之外,这是一个额外的技术难题。从我和一些实验主义者的谈话中,我发现他们对待这些难题的态度是畏惧的。因为他们不知道如果开始构建这样的量子计算机。” Aaronson表示。
最后还有一个问题:如何导出数据?这意味着检测计算机的量子状态,一次检测不仅只能一次返回一个随机抽取的数字,而且还会使整个状态崩溃,在你还没来得及收回数据之前,其他的数据就已被清除。你只能再次一遍又一遍地执行算法,以收回所有信息。
不过并不是没有希望。在某些问题中,你可以利用量子干涉(quantum interference)。也就是说,你可以设计运算过程,使错误的答案自行消除,并巩固正确的答案。这样,当检测量子状态时,计算机就会给出你想要的数值,而不是随机数值。但是只有少数算法(例如蛮力搜索算法brute-force search)可以很好地利用量子干涉,而且速度是适中的。
在某些任务中,研究人员发现了输入和输出数据的快捷方法。2015年,Lloyd、加拿大滑铁卢大学的Silvano Garnerone和南加州大学的Paolo Zanardi证明了:在某些类别的统计分析中,不需要输入或存储整个数据集。同样,当几个关键数值就可以满足需求时,不需要读取所有数据。例如,科技公司根据庞大的消费者习惯数据,利用机器学习来矩阵为用户建议节目或者商品。“Netflix或亚马逊(Amazon)并不需要获取到处生成的矩阵,它们要做的只是为用户生成建议。” Aaronson称。
所有这些引出了这样一个问题:如果量子计算机只在某些特殊任务中表现优秀,传统的计算机是否也能胜任这些任务?这是量子计算领域的一个还未解决的大问题。毕竟普通的计算机也十分强大。处理大型数据集的常用方法——随机采用,在本质上与量子计算机十分类似,即:无论系统内部进行何种运算,最终返回的结果都是随机的。Schuld称:“我研究出来的很多算法常常让我感到‘它们太棒了,我们这下可以提升运算速度了’。不过我为了好玩又编写了一个在传统计算机上运行的抽样算法,我发现用抽样算法也可以实现相同的效果。”
如果回顾量子机器学习目前为止的成果,你会发现它们都带有星号。以D-Wave计算机为例:当分类汽车图像和希格斯粒子时,D-Wave计算机的速度并不比传统的计算机快。“我们在这篇论文中没有谈到的一个问题是量子加速。” Google DeepMind团队的计算机科学家Alex Mott表示。他曾经是Higgs研究团队的一员。矩阵代数方法(例如Harrow-Hassidim-Lloyd算法)只有在矩阵为稀疏矩阵(多数元素为零)时才会实现量子加速。“在机器学习中稀疏数据集是否真的有趣?从没有人问过这个问题。” Schuld表示。
▌量子智能
话说回来,现有的方法偶尔有什么进展,科技公司们就会感到十分高兴。“我们看到的这些优势都不算大;它们虽然不是指数性的,但是至少是二次的”微软研究院(Microsoft Research)的量子计算研究院Nathan Wiebe称。“如果量子计算机足够大、足够快,我们就可以彻底改变机器学习的许多领域。”在应用这些系统的过程中,计算机科学家可以解决一些理论性难题——这些系统是否在本质上更快,原因是什么。
Schuld还看到了量子计算在软件方面的创新空间。机器学习不仅仅是计算问题,而且还是很多问题交缠在一起,每个问题都有自己特殊的结构。“人们编写的算法被从使机器学习变得有趣和美丽的事物中移除。这就是为什么我开始探索其他方法和思考的原因:如果有了量子计算机(小型的),它可以运行什么机器学习模型?也许这样的模型还没有发明出来。” Schuld说。如果物理学家想要让机器学习专家刮目相看,除了构建现有模型的量子版模型外,他们要探索别的突破。
许多神经科学家现在认为人类思维的结构反映了身体的要求,实际上机器学习系统也囊括万千。这些系统所处理的图像、语言和大多数其他数据都来自于真实世界,这些数据反映了世界的种种特征。同样,量子机器学习系统也是包罗万象的,它所反映的世界要远远大于我们的世界。毫无疑问,量子机器学习系统将在处理量子数据上大放光彩。当数据不是图像,而是物理学或化学实验的产物时,量子计算机将会大显神通。如果解决了数据输入问题,传统的计算机就将会被完全淘汰。
第一批量子机器学习系统可以为后来的系统的设计提供帮助,这就形成了一个很好的自我参考循环。“我们可以使用这样系统来构建量子计算机。在某些调试任务中,这是我们唯一的方法。” Wiebe说。也许这些系统甚至可以纠正我们的错误。且不谈人类大脑是否是量子计算机——这是一个备受争议的问题,大脑有时候的行为让人感觉它就是量子计算机。众所周知,人类的行为离不开情境;现有的选择决定了我们的偏好,这其实和我们的逻辑相悖。从这个角度看,我们确实像是量子粒子。“人类问问题的方式以及对顺序的重视,都是量子数据集中非常典型的特性。” Perdomo-Ortiz说。这样看来,量子机器学习系统可以帮助我们研究人类认知偏见。
神经网络和量子处理器有一个共同点:那就是它们竟然能实现。训练神经网络绝不是想当然能做到的,过去几十年间,大多数人都对是否能做到持质疑态度。同样,量子物理学是否能被用在计算上也不好说,因为我们对量子物理学独特的能力还知之甚少。但是神经网络和量子处理器都已实现,虽然并不是总能实现,但是还是超出了我们的预期。考虑到这一点,量子物理学和神经网络的结合也很可能会在未来大放异彩。
作者 | George Musser
原文链接
https://www.quantamagazine.org/job-one-for-quantum-computers-boost-artificial-intelligence-20180129/