当量子计算遇上神经网络与深度学习,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

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

查看所有标签

猜你喜欢:

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

新零售(实体店O2O营销与运营实战)

新零售(实体店O2O营销与运营实战)

苗李宁 / / 化学工业 / 2018-08-01 / 58.0

一起来看看 《新零售(实体店O2O营销与运营实战)》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具