教你在经典计算机上搭建一个量子神经网络,已开源( 三 )


本文插图
网络的输出 , 我们称之为π(x , 0) , 是最后一个量子比特被测量为 |1?状态的概率(Z_n-1代表将Z门应用到最后的量子比特) , 加上一个经典的偏置项 。
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
最后 , 我们在输出的数据中取出和 x 有关联的标签 , 用来计算样本上的损失——我们将使用二次损失 , 如下:
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
从输出的数据中可以得到网络 p 的预测:
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
接下来要计算损失函数
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
的梯度 , 当然完全可以使用传统的方法 , 但我们需要的是一种在量子计算机上计算的方法 。
4 全新的计算梯度的方法
我们先求损失函数对θ_i的微分:
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
展开最后一项:
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
通过求导 , 我们可以去掉常数项 。
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
现在 , 使用乘积法则 , 我们可以进一步展开:
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
上面这个公式读起来有一点痛苦 , 但是通过 Hermitian 共轭 , 可以转化为下面这个简单的公式:
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
U(θ) 由多个门组成 , 每一个门又由不同的参数控制 , 求U的偏导数只需要求门U_i(θ_i)对θ_i的偏导数:
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
我们把U_i定义为相同的形式 , 称为G门 , 当然形式不是唯一的 。
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
定义了U_i的形式后 , 就能找到它的导数:
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
幸运的是 , 我们可以用G门来表示导数:
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
所以剩下的就是想办法构造出一个电路来得到所需的内积形式:
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
Hadamard测试是最简单的方法——首先 , 我们准备好输入的量子态 , 并将辅助态制备为叠加态:
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
现在对|ψ>应用Z_n-1B , 约束辅助态是|1>:
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
然后翻转辅助态 , 用A做同样的操作:
教你在经典计算机上搭建一个量子神经网络,已开源
本文插图
最后 , 对辅助态使用另一个Hadamard门:
教你在经典计算机上搭建一个量子神经网络,已开源