近日,Google 宣布推出量子机器学习开源库 TensorFlow Quantum。
这一开源库集成了 Google 之前开源的量子计算框架 Cirq 和机器学习框架 TensorFlow。Cirq 提供了一个软件模拟器来运行量子算法,不要求开发者必须有一台真实的量子计算机。而 TensorFlow 是一个封装了底层深度学习模型的软件库。简言之,不管是 Cirq 还是 TensorFlow,都是为了降低新技术门槛而生。借助这些开源工具,开发者可以更快更省地打造量子计算或机器学习应用。
Google 现在把两者结合了起来,能让开发者利用经典或者量子数据,快速打造一个混合的量子-经典模型原型,以期推动量子计算和机器学习社区发现更能发挥量子优势的新算法。
虽然量子计算和机器学习都是技术热词,但分属完全不同的领域。两者为什么能结合在一起?量子计算能给机器学习带来什么?一切要从经典数据和量子数据的区别说起。
跳出 0 和 1 的局限
所谓经典数据和经典模型,都是相对于量子而言。现在流行的计算机被称为经典计算机,信息量的基本单位是比特,在二进制中取值不是 0 就是 1。
而遵循量子力学规律打造的计算机被称为量子计算机,信息量的基本单位是量子比特,在取值前处于不确定状态,即叠加态。也就是说,量子比特可以同时处于 “0” 和 “1” 的状态。
有人做过一个比喻:经典比特是 “开关”,只有开和关两个状态(0 和 1),而量子比特是 “旋钮”,就像收音机上调频的旋钮那样,有无穷多个状态。经典计算机通过操纵经典比特进行运算,而量子计算机是操纵量子比特,本质上就是去旋转它们。
量子叠加这种特性决定了在同样比特数量的情况下,量子比特能存储比经典比特更多的信息。
比如,把 1 个“0”和 1 个“1”放在一起,会有 4 个组合状态:00、01、10、11。2 个经典比特只能是其中 1 种状态,而 2 个量子比特可以同时包含这 4 个状态,并且每个状态都有一定的权重。
只有当人们去读取量子比特时,同时包含 4 个状态的量子比特才会变化为其中一个状态。正是由于这种叠加的特性,量子计算机具备了强大的并行计算能力。
(“薛定谔的猫” 就是解释量子叠加的一个思想实验)
除了叠加,量子还有个特性是“纠缠”。纠缠性可以让多个量子比特共享状态,创造出 “超级叠加” 的量子并行计算,计算能力随比特数增加呈指数级增长。
理论上,拥有 300 个量子比特的量子计算机,瞬间所能执行的并行计算次数比宇宙中的原子总数还多。
对于量子计算的并行性,微软 CEO Satya Nadella 在 2017 年微软 Ignite 大会上,用找迷宫出口来比喻解释:
为了找到迷宫的出口,经典计算机先开启一条搜索路径,遇到障碍物后会沿原路返回。之后再次探寻新路,直到遇障返回或找到了正确出口。虽然最终能找到一个结果,但这种方法相当耗时。
对比之下,量子计算机解锁了神奇的并行性。它们同时探寻玉米迷宫中的每一条路。因此,量子计算机可能指数级减少解决问题的步骤。
中国科学院院士潘建伟也曾说:“如果传统计算机的速度是‘自行车’,那么量子计算机的速度就是‘飞机’。”
这种远远超过经典计算机的计算性能,正是机器学习所需要的。众所周知,当下这次以机器学习方法为代表的人工智能浪潮,是算力、算法和数据相结合的结果。
如果机器学习任务无法快速计算完成,那么经济价值就无法得到体现。当前,企业和学界普遍采用 GPU 和 FPGA 等适合并行计算的通用芯片来实现加速,但这些方法依然是基于经典计算机。
速度远远超越经典计算机的量子计算机,自然而然和机器学习联系起来。
量子机器学习是如何实现的
早在 1995 年,美国路易斯安那州立大学 Kak 教授首先提出了“量子神经计算”的概念。而后,量子聚类、量子深度学习和量子向量机等算法相继被提出。2015 年,潘建伟教授团队在小型光量子计算机上,首次实现了量子机器学习算法 。
事实上,已有的量子机器学习算法主要可细分为 3 类。第一类,机器学习的整体计算依然采用经典计算机,但把比较复杂的计算转换成量子版本,用量子计算机来运行。
(图片来自《量子机器学习算法综述》
第二类是“寻找量子系统的力学效应、动力学特性与传统机器学习处理步骤的相似点,将物理过程应用于传统机器学习问题的求解,产生出新的机器学习算法”。第三类,则是借助机器学习力去研究量子系统。
目前,对量子机器学习的研究大多集中在第一类。在具体的执行层面上,要用量子计算机来运行经典机器学习复杂计算的部分,首先要把经典数据转换成量子数据。
然后把量子数据输入量子计算机,用量子算法计算完成后输出。由于输出的计算结果依然是量子叠加态的,所以最后还需要进行测量,把经典数据提取出来。
虽然量子计算的特性和机器学习非常契合,但整体而言量子机器学习还处于初级阶段。并且,不是所有的经典机器学习算法都可以用量子计算加速。
量子机器学习算法实用化的硬件条件也还没有成熟。据科技日报报道,在通用量子计算机建造成功之前,量子机器学习算法很难在实际应用中展现出其数据处理方面的强大能力。
这次开源 TensorFlow Quantum 的 Google,也是一直在打造自己的量子计算机。2019 年 10 月 23 日,Google 在 Nature 上刊登了关于 “实现量子优越性” 的论文 ,他们制造出了 53 个量子比特数的量子计算机,计算能力超经典超级计算机。同样的计算量,量子计算机用 200 秒就完成了,而目前最强的经典超级计算机,要花费 10000 年才能完成。
“量子优越性” 是指量子计算机可以完成经典计算机无法做到的事情。这个概念最早由加州理工学院理论物理教授 John Preskill 在 2012 年提出。
(Google CEO 桑德尔·皮蔡和量子计算机)
Google 用 53 个量子比特实现了“量子优越性”是一个里程碑式的事件,但离通用量子计算机的要求(通常认为需要 100 万个量子比特)还是很遥远。尽管如此,依然有越来越多学术机构和公司投入到了量子机器学习领域。并且,在一些具体的场景(如图像分类),量子机器学习也已经被证明了其可行性。
参考资料:
《量子机器学习算法综述》
当量子计算遇到机器学习会碰撞出什么火花
量子计算机可以增强人工智能吗?
漫谈量子信息技术:量子通信与量子计算