我一直对量子计算感兴趣,并为5和14量子位的IBM Q Experience量子计算机编写程序。 今天,我将讨论量子计算征服世界之后可用于机器学习的技术。 科学家的破坏者日期:将来,您将无法启动模型并离开喝半天的咖啡。 量子计算机立即单击机器学习任务,“模型学习”之类的借口不再起作用。 不仅要推出一个模型,而且至少要发布一百万个模型。

许多人听说,借助量子计算机,网络犯罪分子可以闯入现代加密系统。 不同于经典计算机(RSA和类似的密码算法是阻止黑客入侵的经典计算机),量子计算机可以在几分钟内找到简单的因素。 这意味着黑客拦截的信息迟早会被解密。
当然,其中一些应用程序使量子计算机望而却步。 在本文中,我们将重点放在积极方面,并考虑什么量子计算将能够为诸如机器学习之类的领域提供一个新的领域。
什么是量子机器学习及其与传统的区别
在包括用于机器学习的现代计算机中,使用经典位执行计算。 在最近变得流行并且正在积极开发的量子计算机中,使用了一种特殊的位-量子位或缩写的量子位。
对于经典位,有两种状态-0和1,而对于qubit,两种状态的无限数量的组合是可能的-这就是所谓的叠加。 如果来自著名思维实验的薛定ding猫在被打开之前是同时生还死的,那么在被测量之前,量子位可以重叠,即等于零且同时等于一。
如果使用几个量子位,则可能状态的数量呈指数增长:对于两个叠加的量子位,状态数为四个:
对于三个量子位,已经有八个状态:
这些状态无法直接测量,但可以控制。 在这种情况下,量子电路同时处于几种状态的概率不同,可以用于并行计算。
具有qubit值的因子称为振幅-这些是复数。 如果我们计算振幅模量并将其平方,则可以得出状态的概率。 如预期的那样,所有量子位状态组合的概率之和最终应等于1。

作为量子位不同状态的示例,可以给出电子自旋或光子的极化,但是其他选择也是可能的。 最主要的是,也可以在其中观察到量子效应。 因此,几乎任何粒子都可以是量子位:电子,光子,离子等。
质点如何同时处于两个状态?为什么在测量量子位时关于状态之一的信息完全丢失? 最常见的是两种解释:
哥本哈根的解释声称,在物理学之前,解释粒子的位置是没有意义的,因为物理学是一门基于精确测量的科学,因此不应解释那些无法观察到的现象。 因此,如果我们接受哥本哈根的解释,我们可以得出结论,在物理微观层面上没有客观的现实。
一些科学家坚持
多世界的解释 ,根据这种
解释 ,存在无限数量的平行宇宙,并且在这些宇宙的某些部分中,粒子可以采取零状态,而在其余部分则可以采取单一状态。 可以在David Deutsch的书《现实的结构》中找到有关多世界解释的最详细描述和哲学依据。
在任何情况下,无论您偏爱哪种解释,我们都可以假设在测量量子位时,波动函数会崩溃(也就是说,它不再像波动一样表现出来并表现出粒子的性质),而量子位采用一种状态,然后实际上已经成为经典。
通常,经典位是量子位的子集,因此经典计算机科学可以被视为量子计算科学的子集。 如上所述,测量后的任何量子位都变为经典位,但是,稍后可以将其转换为叠加状态。
为了仍然至少获得有关qubit叠加的一些信息,可以使用一个相当简单的生活技巧:多次创建相同的叠加(使用相同的运算符对qubit进行操作)并每次测量qubit。 根据在测量期间获得的零和一的分布,人们可能会发现一个概率的概念,即找出量子位态的振幅模可以近似等于什么。
量子机器学习有什么好处
叠加计算的优势是什么? 如果在常规计算机上运行多线程程序时,每个线程都需要一个逻辑处理器,那么在量子计算机中,线程数量会随着电路中qubit数量的增加呈指数增长。
例如,如果对于一台常规计算机中的1024个流,您需要相同数量的逻辑处理器,那么在一个量子计算机中,它仅需10个。确实,您只能间接使用这些流,也就是说,您将无法直接监视它们的工作。
您还必须了解,量子计算机使用的算法与经典计算机上“计算机科学”部分中研究的算法不同。 当然,如果不先更改经典算法,就无法将经典算法转移到量子计算机。 而且,原始算法不太可能会留下重要的东西。 最有可能的是,它将被彻底更改,以便仅保留一个一般的想法(如果有的话)。
机器学习也可以这样说。 对于量子计算机,已经存在经典机器学习算法的类似物(例如,Random Forest,KNN,神经网络)。 但是,首先,它们以不同的方式实现,其次,迟早会出现完全利用量子计算优势的全新算法。
大数据和人工智能领域的所有专家都知道科学家必须等待很长时间才能学习模型的情况。
当然,有简单的模型(例如线性回归)可以在几秒钟内对小数据进行训练,但是对于更复杂的模型(例如神经网络),训练可以持续几分钟到几周。 为了整理出此类模型的几种变体,需要非常耐心。
还有一些模型,即使是最耐心的科学家日期也将拒绝使用。 特别是具有大量权重的模型,或者需要详尽搜索以成倍增长的组合数量的模型。 量子计算机的使用适合于此类任务,这可以将计算时间从几年减少到几分钟。
为什么人工智能需要加速算法
在过去的两三年中,计算机视觉技术得到了飞速发展,并且在过去的一年中,在自然语言处理方面已经发明了很多。
在这种情况下,复杂模型的训练会持续很长时间。 但是,如果我们假设具有相同甚至更高复杂度的模型所花费的时间要少一个数量级,则可以检验假设并更快地检验模型。
因此,这些领域的进展将以更快的速度进行:我们每天都可以听到这样的消息,而不是每月一个或两个重要发现。 量子计算进展中的双指数增长可以导致机器学习的进展速度相同。
量子计算机制
光子,电子,离子或某些其他粒子可以充当量子位。 如果这是电子,则可以测量其自旋(适当的角动量),从而获得0或1。在狄拉克(Dirac)表示法中,这些状态表示为:
量子位的状态也可以使用向量来表达。 这是等于0的量子位的状态向量:
这是一个等于1的量子位向量:
Hadamard运算符在量子计算中起着重要作用:
一种获得叠加的方法是将Hadamard运算符应用于处于两个基本状态之一的qubit。 在这种情况下,当测量后获得0或1的概率相等时,我们将获得一个qubit状态。 如果qubit的初始状态为零,将以这种方式获得叠加:
但是,如果初始状态为单个,则会出现这样的叠加:
使用量子位的另一个常见选择是使用量子纠缠-两个量子位之间的这种互连,即使将它们分开很长的距离,它们也显示出100%的相关性。 在直接相关中,如果测量后的一个量子位处于某个状态,则另一个量子位将获得完全相同的状态。 在具有反比关系的情况下,量子位在测量后呈现相反的状态。
量子计算和量子机器学习的可能性是什么?
所有想要节省时间的专家都可以使用量子计算进行机器学习。 快速傅里叶变换,找到逆矩阵,在量子计算机上计算特征值和矩阵向量之类的操作都以指数加速度发生。
当然,不是很耗资源的工作(例如,数据可视化)可以继续在常规计算机上完成,但是可以将机器学习算法或至少可以使用qubit加速的那些部分提供给量子计算机。
困扰专家的问题之一:如何在量子计算中处理数据? 想象一下这样一种情况,我们有一张图像(为了使其更容易使用,请使其为黑白),然后将其提交给量子神经网络的输入。 图像的大小为256 x 256像素-这是图像识别的标准尺寸。
为了将这张图片表示为数字,我们使用64位浮点数对每个像素进行编码(实际上,一个8位整数就足够了,但是实际上,在应用到神经网络的输入之前会缩放具有像素值的矩阵,因此矩阵中填充了32位或64位数字)。 这样的图像可以用65536个数字的矩阵形式表示,该矩阵重512 KB(神经网络接收未压缩的图像作为输入),即需要4194304位。
如果使用qubit对图像进行编码,则其数量将大大减少:我们会将n个qubit转换为叠加,并且每个像素的值可以表示为每种可能状态的幅度。 此类状态的数量为n次的2。 为了找到n,我们找到像素数的二进制对数。
如您所见,操作非常简单,因此您甚至不必编写公式。 结果,数字n变为16。这就是编码此图像所需的量子比特数,即比使用经典比特时少262144倍。
如果我们有66个量子位,然后将它们转换为叠加,则可以以4K格式编码超过一万亿个彩色图像。
因此,量子编码允许人们实现信息的对数压缩。 因此,当处理这样的数据时,机器学习方法的加速可以是指数级的。
专门的编程语言和库
如今,许多编程语言都有用于量子计算的库。 这些库中的一些仅与量子计算的仿真一起使用,但是许多库支持包括量子云在内的真实量子计算机作为后端。
如果直接使用qubit进行操作,则类似于在经典计算机上编写低级汇编程序代码。 奇怪的是,用于在量子计算机上进行计算编程的这些“低级”编程语言之一是Python。
该语言的一种库
-Qiskit-在模拟器和量子后端上均可使用,并且还允许在较低级别上对qubit执行操作。 对于更高级别的编程,可以使用
PennyLane (一个用于量子机器学习的库)来方便。 该库的存储库提供了机器学习算法(包括量子神经网络)的实现示例。
量子计算的前景
2019年1月,第一台商用量子计算机发布了-IBM Q System One。 现在,对于量子计算,研究人员和商业公司都可以使用云系统。
每个人都可以在
IBM Q Experience云平台上运行其量子算法,并且创建量子方案甚至不需要了解编程语言,因为除了输入命令之外,您还可以使用称为Circuit Composer的图形界面。
在2019年9月,非官方的信息似乎表明,谷歌已经通过解决量子计算机上的一个问题而获得了量子优势,而这甚至是功能最强大的超级计算机所没有的速度。 即使这个消息为时过早,这些报道也表明量子优势已经接近。
几家IT巨头正在立即寻找量子计算机的最佳解决方案。 一些研究人员预测,类似于摩尔定律的定律将适用于量子计算机。
的确,与传统计算机不同,其开发速度很可能不是普通的单指数而是双倍,因此从事量子计算的程序员将不得不在不久的将来创建大量程序。
至于我目前正在从事的广告和营销领域,应用的机器学习模型必须进行彻底的转换。 在传统计算机上可以使用的软件在速度和质量上都将远低于将来的模型。
最新技术将为目标受众的扫描过程带来不少改变。 由量子计算机驱动的难以捉摸的机器人将在社交网络的开放空间上耕作,抓住观众口味和情绪的最小变化。 谁知道,也许只能通过向计算机表达有关其目标的普遍愿望来发起广告活动。