内容简介:曾经的存在主义与结构主义的争论,在量子世界中似乎用概率和大量抽样完成了和解 — David 9上世纪60年代哲学界有一场关于究竟是什么塑造了一个人也许难以确定。而对于
曾经的存在主义与结构主义的争论,在量子世界中似乎用概率和大量抽样完成了和解 — David 9
上世纪60年代哲学界有一场关于 存在主义 与 结构主义 的争论: 存在主义 认为一个人的发展是由“ 自由意识 ”和欲望主导的; 结构主义 认为占主导的其实是社会中的经济、政治、伦理、宗教等 结构性因素 ,人只是巨大结构中的一部分。
究竟是什么塑造了一个人也许难以确定。而对于 量子世界 ,一个 qubit(量子比特)的状态 ,不仅受到量子系统的磁场影响,qubit本身也有自身状态的 变化概率和扰动 。我们一会儿可以看到,量子系统的输出,即那个qubit的 最终观测状态 ,是用概率和 大量抽样 判定的:
在细讲 QNN前(量子神经网络其实是一个量子系统) ,David 9 有必要介绍一下 量子计算 本身的一些基础知识 。
首先,量子计算与传统计算机的不同,可从 qubit (量子比特)说起,我们知道与电子计算机非 “0” 即 “1”相比 ,qubit的状态可能 同时介于“0”和“1”之间 :
即所谓的“ 薛定谔的猫 ”的 叠加态(superposition):
\(\frac{1} {\sqrt{2}}\)(|0>+|1>)(在量子物理中符号 |x> 表示状态x)
你们可能会问David,为什么状态系数是 1/\(\sqrt{2}\) ? 这是量子物理中的一个约定(规范化),即 平方和等于1 :
α^2+β^2=1
其中 α 和 β 就是状态的 系数 ,是不是让你联想到圆形几何 ?
是的,在量子物理中可以把qubit想象成粒子球体(叠加或非叠加态):
三维世界中qubit的自旋状态非常灵活,可以 上自旋(|0>) ,可以 下自旋(|1>) ,可以像地球一样 斜着自旋 :
当然也可以 叠加态自旋(\(\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个自由度 :
这就 导致它能编码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摄氏度非常接近绝对零度):
有了以上这些基本知识,跟着David 9再在来看 Google的这篇QNN设计的论文 ,就能更好理解量子计算是如何与 深度学习(神经网络 )结合的了。
首先看基本QNN架构:
输入输出和一般的神经网络(深度学习)相似。唯一区别是QNN的 输入|ψ, 1>是n+1位qubit的状态 (这个状态是 事先根据输入样本编码准备 的,其中n是样本,1是输出qubit的占位)。而输出是经过一系列 U(θ) 变换最终得到的一个qubit在三维中 Y轴 的观察 Yn+1 :
为了容错并得到可靠输出, Yn+1 需要经过 多次观测得到0或1的输出“label” (当然,一个qubit状态很少正好上自旋,而是一个求约的概率估计)
接下来看 U(θ) 和 U L (θ L ) 这些计算操作是什么?其中 θ 即传统神经网络中的待训练的参数(神经网络中的 权重 ) 。而对于 U (即上图中的一个个 小方块 ),和传统计算机的计算门( “与或” 门, “或” 门 “否” 门)类似,量子计算中,常用的是线性操作的 unitary归一门(unitary operations) 。可以把他想象成一个线性矩阵,它有一个很好的性质: 通过unitary转换之后,两组qubit状态的内积值不变 。
即如果两组状态的内积用 <Φ|Ψ> 表示,即:
那么:
即经过 U 转换后,内积值不变。(其中 U+ 号表示 U 矩阵的 共轭矩阵 )
内积值不变不仅可以帮助我们之前提到的归一化约定: α^2+β^2=1 。而且当我们在QNN中对于 θ 求梯度更新时,梯度不会太大, 天然地防止了传统神经网络中的“梯度爆炸” 问题。事实上,QNN的loss函数和一般的神经网络类似:
其中z是样本编码, l(z) 是真实样本的label,
是预测并观测的样本label。
这样, QNN通过不断对最后一个qubit的 Yn+1 的观测,与真实样本label比较,得到一个修正值,修正神经网络中的 θ 参数,并且根据 θ 参数调整每个unitary归一门操作 ,不断进行迭代并更新每个unitary归一门 ,直到QNN每次预测的 Yn+1 与真实样本的label一致。
另外,传统深度学习的成功更多地是 归功于引入非线性的激活函数(Tanh, ReLu, softmax) , 那么量子神经网络 QNN 如何引入 非线性 的呢 ?其实答案在架构图中就可以找到:
如上图,每一层 U 门(unitary变换)的输入,都是由上一层 U 门通过不同连接组合连接的,这里的不同组合就是 非线性 的(虽然 U 门本身是线性的)。
最后,值得注意的是,对于整个量子神经网络的容错文章也做了探讨和考虑,在U门操作中加入了奇偶校验和 reed-muller编码 (一种比海明码高效的校验避编码)。具体David就不展开了。
对于文章不合理以及解释不当的地方希望大家积极指出。愿在新的一年Dvaid可以和大家继续探索量子计算世界,特别是结合机器学习与深度学习的领域,以及一些实际的量子计算项目与代码。
新年快乐 !!!
参考文献:
- Classification with Quantum Neural Networks on Near Term Processors
- https://www.quantiki.org/wiki/basic-concepts-quantum-computation
- https://github.com/adamisntdead/QuSimPy
- https://ai.googleblog.com/search/label/Quantum%20AI
- https://github.com/quantumlib/Cirq
- intriganod的量子计算youtube教学视频
- How Does a Quantum Computer Work? youtube教学视频
- 量子的unitary变换讲解视频
- https://www.slideshare.net/ProjectStudent/error-checking-and-correction-parity-bit-majority-voting-check-digit
- https://baike.baidu.com/item/reed-muller/407684
- https://en.wikipedia.org/wiki/Pauli_matrices
本文采用 署名 – 非商业性使用 – 禁止演绎 3.0 中国大陆许可协议 进行许可。著作权属于“David 9的博客”原创,如需转载,请联系微信: david9ml,或邮箱:yanchao727@gmail.com
或直接扫二维码:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTTP Essentials
Stephen A. Thomas、Stephen Thomas / Wiley / 2001-03-08 / USD 34.99
The first complete reference guide to the essential Web protocol As applications and services converge and Web technologies not only assume HTTP but require developers to manipulate it, it is be......一起来看看 《HTTP Essentials》 这本书的介绍吧!