当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1

栏目: 数据库 · 发布时间: 5年前

内容简介:曾经的存在主义与结构主义的争论,在量子世界中似乎用概率和大量抽样完成了和解 — David 9上世纪60年代哲学界有一场关于究竟是什么塑造了一个人也许难以确定。而对于

曾经的存在主义与结构主义的争论,在量子世界中似乎用概率和大量抽样完成了和解 — David 9

上世纪60年代哲学界有一场关于 存在主义结构主义 的争论: 存在主义 认为一个人的发展是由“ 自由意识 ”和欲望主导的; 结构主义 认为占主导的其实是社会中的经济、政治、伦理、宗教等 结构性因素 ,人只是巨大结构中的一部分。

究竟是什么塑造了一个人也许难以确定。而对于 量子世界 ,一个 qubit(量子比特)的状态 ,不仅受到量子系统的磁场影响,qubit本身也有自身状态的 变化概率和扰动 。我们一会儿可以看到,量子系统的输出,即那个qubit的 最终观测状态 ,是用概率和 大量抽样 判定的:

当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1

在细讲 QNN前(量子神经网络其实是一个量子系统) ,David 9 有必要介绍一下 量子计算 本身的一些基础知识 。

首先,量子计算与传统计算机的不同,可从 qubit (量子比特)说起,我们知道与电子计算机非 “0”“1”相比 ,qubit的状态可能 同时介于“0”和“1”之间

当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1

即所谓的“ 薛定谔的猫 ”的 叠加态(superposition):

\(\frac{1} {\sqrt{2}}\)(|0>+|1>)(在量子物理中符号 |x> 表示状态x)

你们可能会问David,为什么状态系数是 1/\(\sqrt{2}\) ? 这是量子物理中的一个约定(规范化),即 平方和等于1

α^2+β^2=1

其中 αβ 就是状态的 系数 ,是不是让你联想到圆形几何 ?

是的,在量子物理中可以把qubit想象成粒子球体(叠加或非叠加态):

当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1
来自: How Does a Quantum Computer Work? youtube教学视频

三维世界中qubit的自旋状态非常灵活,可以 上自旋(|0>) ,可以 下自旋(|1>) ,可以像地球一样 斜着自旋

当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1
来自:http://www.dudamath.com/earthOrbit.html

当然也可以 叠加态自旋(\(\frac{1} {\sqrt{2}}\)(|0>+|1>) )

有了这么多种 qubit 状态,从根本上导致量子计算的信息量级比传统计算机大的多。

传统的 2个bit位 的计算机只能编码4种状态: 00 , 01 , 10 , 11 ,因为它只有2个位的自由度,所以 n个bit位能编码的信息只有2^n (即\(2^n\))

而如果一个量子计算机有 2个qubit ,传统计算机的 00, 01, 10, 11这些状态就可以同时出现这4个状态本身变为4个自由度

当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1
来自: How Does a Quantum Computer Work? youtube教学视频

这就 导致它能编码2^4=16种状态 ,即我们需要同时确定 00, 01, 10, 11 四个状态各自的出现概率,才能得到这个系统状态的联合概率。所以 n个qubit能编码的信息有2^(2^n) (即\(2^{2^n}\))

这样的计算量级,使得 2018年google的 72个 qubit量子计算机 就可以称霸业界。感兴趣可以计算一下2^(2^72) (即 \(2^{2^{72}}\) )是一个多么庞大的数字。但是要保持稳定的量子系统,需要苛刻环境和极低的温度(-273摄氏度非常接近绝对零度):

当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1
来自: https://ai.googleblog.com/2019/01/looking-back-at-googles-research.html?m=1

有了以上这些基本知识,跟着David 9再在来看 Google的这篇QNN设计的论文 ,就能更好理解量子计算是如何与 深度学习(神经网络 )结合的了。

首先看基本QNN架构:

当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1
来自: https://arxiv.org/pdf/1802.06002.pdf

输入输出和一般的神经网络(深度学习)相似。唯一区别是QNN的 输入|ψ, 1>是n+1位qubit的状态 (这个状态是 事先根据输入样本编码准备 的,其中n是样本,1是输出qubit的占位)。而输出是经过一系列 U(θ) 变换最终得到的一个qubit在三维中 Y轴 的观察 Yn+1

当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1

为了容错并得到可靠输出, Yn+1 需要经过 多次观测得到0或1的输出“label” (当然,一个qubit状态很少正好上自旋,而是一个求约的概率估计)

接下来看 U(θ) U LL ) 这些计算操作是什么?其中 θ  即传统神经网络中的待训练的参数(神经网络中的 权重 ) 。而对于 U (即上图中的一个个 小方块 ),和传统计算机的计算门( “与或” 门, “或”“否” 门)类似,量子计算中,常用的是线性操作的 unitary归一门(unitary operations) 。可以把他想象成一个线性矩阵,它有一个很好的性质: 通过unitary转换之后,两组qubit状态的内积值不变

即如果两组状态的内积用 <Φ|Ψ> 表示,即:

当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1

那么:

当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1

即经过 转换后,内积值不变。(其中 U+ 号表示 U 矩阵的 共轭矩阵

内积值不变不仅可以帮助我们之前提到的归一化约定: α^2+β^2=1 。而且当我们在QNN中对于 θ  求梯度更新时,梯度不会太大, 天然地防止了传统神经网络中的“梯度爆炸” 问题。事实上,QNN的loss函数和一般的神经网络类似:

当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1

其中z是样本编码, l(z) 是真实样本的label,

当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1

是预测并观测的样本label。

这样, QNN通过不断对最后一个qubit的 Yn+1 的观测,与真实样本label比较,得到一个修正值,修正神经网络中的 θ 参数,并且根据 θ 参数调整每个unitary归一门操作 ,不断进行迭代并更新每个unitary归一门 ,直到QNN每次预测的 Yn+1 与真实样本的label一致。

另外,传统深度学习的成功更多地是 归功于引入非线性的激活函数(Tanh, ReLu, softmax) , 那么量子神经网络 QNN 如何引入 非线性 的呢 ?其实答案在架构图中就可以找到:

当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1

如上图,每一层 U 门(unitary变换)的输入,都是由上一层 U 门通过不同连接组合连接的,这里的不同组合就是 非线性 的(虽然 U 门本身是线性的)。

最后,值得注意的是,对于整个量子神经网络的容错文章也做了探讨和考虑,在U门操作中加入了奇偶校验和 reed-muller编码 (一种比海明码高效的校验避编码)。具体David就不展开了。

对于文章不合理以及解释不当的地方希望大家积极指出。愿在新的一年Dvaid可以和大家继续探索量子计算世界,特别是结合机器学习与深度学习的领域,以及一些实际的量子计算项目与代码。

新年快乐 !!!

参考文献:

  1. Classification with Quantum Neural Networks on Near Term Processors
  2. https://www.quantiki.org/wiki/basic-concepts-quantum-computation
  3. https://github.com/adamisntdead/QuSimPy
  4. https://ai.googleblog.com/search/label/Quantum%20AI
  5. https://github.com/quantumlib/Cirq
  6. intriganod的量子计算youtube教学视频
  7. How Does a Quantum Computer Work? youtube教学视频
  8. 量子的unitary变换讲解视频
  9. https://www.slideshare.net/ProjectStudent/error-checking-and-correction-parity-bit-majority-voting-check-digit
  10. https://baike.baidu.com/item/reed-muller/407684
  11. https://en.wikipedia.org/wiki/Pauli_matrices

本文采用 署名 – 非商业性使用 – 禁止演绎 3.0 中国大陆许可协议 进行许可。著作权属于“David 9的博客”原创,如需转载,请联系微信: david9ml,或邮箱:yanchao727@gmail.com

或直接扫二维码:

当量子计算遇上神经网络与深度学习,QNN初探( Quantum Neural Networks),David 9的量子计算系列#1

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

如何构建敏捷项目管理团队

如何构建敏捷项目管理团队

丽萨·阿金斯 / 徐蓓蓓、白云峰、刘江华 / 电子工业出版社 / 2012-6 / 49.00元

《敏捷项目管理系列丛书•PMI-ACPSM考试指定教材•如何构建敏捷项目管理团队:ScrumMaster、敏捷教练与项目经理的实用指南》结合作者的亲身经历告诉读者如何建立一个高性能的敏捷项目管理团队,以及最终成为一名优秀的敏捷教练。作者将敏捷教练定义为导师、协助者、老师、问题解决者、冲突领航员、协作指挥者,正是这种不同角色之间的细微区别才使敏捷教练的工作富有深度。《敏捷项目管理系列丛书•PMI-A......一起来看看 《如何构建敏捷项目管理团队》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

html转js在线工具
html转js在线工具

html转js在线工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具