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


空枝|教你在经典计算机上搭建一个量子神经网络,已开源定义了U_i的形式后 , 就能找到它的导数:
空枝|教你在经典计算机上搭建一个量子神经网络,已开源幸运的是 , 我们可以用G门来表示导数:
空枝|教你在经典计算机上搭建一个量子神经网络,已开源所以剩下的就是想办法构造出一个电路来得到所需的内积形式:
空枝|教你在经典计算机上搭建一个量子神经网络,已开源Hadamard测试是最简单的方法——首先 , 我们准备好输入的量子态 , 并将辅助态制备为叠加态:
空枝|教你在经典计算机上搭建一个量子神经网络,已开源现在对|ψ>应用Z_n-1B , 约束辅助态是|1>:
空枝|教你在经典计算机上搭建一个量子神经网络,已开源然后翻转辅助态 , 用A做同样的操作:
空枝|教你在经典计算机上搭建一个量子神经网络,已开源最后 , 对辅助态使用另一个Hadamard门:
空枝|教你在经典计算机上搭建一个量子神经网络,已开源现在辅助态等于0的概率是:
空枝|教你在经典计算机上搭建一个量子神经网络,已开源因此如果我们用U(θ)代替B , 用U(θ)的共轭对θ_i的导数来代替A , 然后辅助量子比特为0的概率将会给我们π(x , θ)对θ_i的梯度 。
很好!我们找到了一种在量子计算机上解析计算梯度的方法——现在剩下的就是建立我们的量子神经网络了 。
5 建立量子神经网络
我们导入所有模块:
空枝|教你在经典计算机上搭建一个量子神经网络,已开源看看我们的数据 , 这是一版删除了一个类的IRIS数据集:
空枝|教你在经典计算机上搭建一个量子神经网络,已开源我们需要从标签中分离特征(前四列):
空枝|教你在经典计算机上搭建一个量子神经网络,已开源构建一个函数来做特性映射 。
由于输入向量是归一化的 , 并且是四维的 , 对于映射有一个超级简单的选择——使用2个量子比特来保存编码的数据 , 并使用一个映射将输入向量重新创建为量子态 。
为此 , 我们需要两个函数 。 一个函数从向量中提取角度 。
空枝|教你在经典计算机上搭建一个量子神经网络,已开源另一个函数将角度转换成量子态 。
空枝|教你在经典计算机上搭建一个量子神经网络,已开源这样讲解可能有点令人困惑 , 但是你并不一定要理解QNN是如何构建的 。 如果你想了解构建原理可以阅读这些代码 。


推荐阅读