阅读 1260 次 , 阅读 1 次
量子卷积神经网络
在这个演示中,我们实现了量子卷积神经网络(Quanvolutional Neural Network),这是一个最初由Henderson et al. (2019)提出的量子机器学习模型[1]。
引言
经典卷积
卷积神经网络(CNN)是经典机器学习中的一个标准模型,特别适合处理图像。这种模型基于卷积层的概念,不是用全局函数处理全部输入数据,而是应用局部卷积。
如果输入是一张图像,那么小的局部区域会被一个核(kernel)依次处理。对每个区域获得的结果通常与单个输出像素的不同通道相关联。所有输出像素的结合产生了一个新的类似图像的对象,这个对象可以由额外的层进一步处理。
量子卷积
同样的概念也可以扩展到量子变分电路中。一种可能的方法如下:
- 输入图像的一个小区域(例如 的正方形)被嵌入到一个量子电路中。在这个演示中,这是通过应用于初始处于基态的量子位上的参数化旋转来实现的。
- 在系统上执行与酉矩阵 相关的量子计算。该酉矩阵可以由变分量子电路产生,或者更简单地,由随机电路产生。
- 最终对量子系统进行测量,获得一系列经典的期望值。测量结果也可以像参考文献[1]中提出的那样进行经典后处理,但为简单起见,在这个演示中我们直接使用原始的期望值。
- 类似于经典卷积层,每个期望值被映射到单个输出像素的不同通道。
- 通过在不同区域重复相同的程序,可以扫描整个输入图像,产生一个结构为多通道图像的输出对象。
- 量子卷积可以由更多的量子层或经典层跟随。
与经典卷积的主要区别在于量子电路可以生成高度复杂的核,其计算至少在原则上可能是经典不可解的。
在本教程中,我们将用量子机器学习库deepquantum探索量子卷积神经网络(QCNN)在8*8的Digits手写数字数据集上的训练效果。

二维数据集的量子-经典混合卷积模型架构图
通用设置
c:\Users\HP\.conda\envs\dq\lib\site-packages\torchvision\io\image.py:13: UserWarning: Failed to load image Python extension: 'Could not find module 'C:\Users\HP\.conda\envs\dq\Lib\site-packages\torchvision\image.pyd' (or one of its dependencies). Try using the full path with constructor syntax.'If you don't plan on using image functionality from `torchvision.io`, you can ignore this warning. Otherwise, there might be something wrong with your environment. Did you have `libjpeg` or `libpng` installed before building `torchvision` from source?
warn(
加载数据集
本次实验需要使用Digits 数据集,Digits 数据集是一个手写数字的数据集,包含了1797个样本。每个样本都是一个8×8的像素矩阵,代表一个手写数字的图像。这个数据集有10个分类,代表了“0,1,2,…,9”这10个数字。每个样本对应的特征向量的维数为64,对应了每组数据的8*8个像素点。
这个数据集可以通过Python的sklearn库加载。
画出Digits 数据集的部分图片,你可以尝试保存切分好的数据集,方便之后直接调用。也可以进一步尝试用其他数据集训练模型。
模型定义
接下来我们用量子机器学习库deepquantum定义随机参数化量子卷积线路。
模型训练
我们首先初始化模型的一个实例,然后用已经通过量子卷积预处理的数据集对其进行训练和验证。
1%| | 1/100 [00:01<02:37, 1.59s/it]
Train Loss: 2.304 Train Acc: 0.107 Valid Loss: 2.282 Valid Acc: 0.143
50%|█████ | 50/100 [01:20<01:21, 1.63s/it]
Train Loss: 1.156 Train Acc: 0.684 Valid Loss: 1.228 Valid Acc: 0.684
100%|██████████| 100/100 [02:40<00:00, 1.61s/it]
Train Loss: 0.813 Train Acc: 0.749 Valid Loss: 0.913 Valid Acc: 0.742
结果展示
最终,我们可以绘制出随着训练次数增加,测试准确率和测试损失的变化情况。
参考文献
[1] Henderson M, Shakya S, Pradhan S, et al. Quanvolutional neural networks: powering image recognition with quantum circuits[J]. Quantum Machine Intelligence, 2020, 2(1): 2.