教你在经典计算机上搭建一个量子神经网络,已开源( 四 )
本文插图
现在辅助态等于0的概率是:
本文插图
因此如果我们用U(θ)代替B , 用U(θ)的共轭对θ_i的导数来代替A , 然后辅助量子比特为0的概率将会给我们π(x , θ)对θ_i的梯度 。
很好!我们找到了一种在量子计算机上解析计算梯度的方法——现在剩下的就是建立我们的量子神经网络了 。
5 建立量子神经网络
我们导入所有模块:
本文插图
看看我们的数据 , 这是一版删除了一个类的IRIS数据集:
本文插图
我们需要从标签中分离特征(前四列):
本文插图
构建一个函数来做特性映射 。
由于输入向量是归一化的 , 并且是四维的 , 对于映射有一个超级简单的选择——使用2个量子比特来保存编码的数据 , 并使用一个映射将输入向量重新创建为量子态 。
为此 , 我们需要两个函数 。 一个函数从向量中提取角度 。
本文插图
另一个函数将角度转换成量子态 。
本文插图
这样讲解可能有点令人困惑 , 但是你并不一定要理解QNN是如何构建的 。 如果你想了解构建原理可以阅读这些代码 。
代码地址:https://github.com/SashwatAnagolum/launchpad/blob/master/tutorials/load_probability_distributions.ipynb
现在可以编写实现U(θ)所需的函数了 , 我们将采取RY门和CX门交替层的形式来实现函数 。
为什么需要CX层?如果不把它们包括进来 , 就没办法执行纠缠操作 , 这将限制网络能够涉及的希尔伯特空间的范 。 使用CX门 , 网络可以捕捉量子比特之间的交互 。
我们从G 门开始:
【教你在经典计算机上搭建一个量子神经网络,已开源】
本文插图
接下来 , 操作CX门:
本文插图
现在把这些结合在一起得到U(θ):
本文插图
接下来 , 我们创建一个函数来获取网络的输出 , 另一个函数将这些输出转换为类别预测:
本文插图
现在我们可以构建一个函数 , 在网络执行上前向传递 。
本文插图
紧接着 , 需要写出所有关于测量梯度的函数 。 首先 , 我们必须能够应用控制版本的U(θ):
本文插图
使用这个 , 我们可以创建一个函数并得出期望值:
本文插图
现在我们可以算出损失函数的梯度 , 最后做的乘法是为了得到π(x, θ) - y(x) 梯度项:
- 琉璃娃娃的梦|最经典的“许仙”反串女演员叶童结婚多年无子,近照流出老态尽显
- 东方网|当夜跑遇上经典游戏Icon 全球首个吃豆人主题跑诞生
- 百搭■鞋子要精不要多,初秋常备5个经典款,时髦百搭不出错
- 钱江晚报|小学生给天上的爸爸写信:我为有这样的爸爸感到自豪,如果你在该有多好啊
- 经典|四款满含童年记忆的老游戏,你玩过几款?
- 英雄联盟|Uzi操作失误引争议,澡子哥强行解释,直言:你在黄金是有原因的
- 电子|两市百元股达123只 医药生物、电子、计算机行业较集中
- 生物|两市百元股达123只 医药生物、电子、计算机行业较集中
- 时尚|鞋子要精不要多,初秋常备5个经典款,时髦百搭不出错
- 跳空缺口|干货:A股经典缺口理论,看懂炒股事半功倍!