# 量子机器学习加速医学影像分析(covid-19) **Repository Path**: lhonrush/quantum-machine-learning-covid19 ## Basic Information - **Project Name**: 量子机器学习加速医学影像分析(covid-19) - **Description**: 目前使用Xanadu的pennylane,下来会进一步扩展,并作进一步的实验,之后会尝试在华为HiQ上运行 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-07 - **Last Updated**: 2025-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: 机器学习, 量子计算, 量子神经网络, 量子机器学习 ## README Demo: 利用量子神经网络实现covid-x射线数据集的处理分析 项目概述 使用卷积神经网络分析、预测和评估 Covid-19 数据集 Dataset来源:kaggle竞赛数据集 [this datset](https://www.kaggle.com/pranavraikokte/covid19-image-dataset) 我们设计的分类器方法: 预处理数据集 数据集中给出的图像是真实的胸部 X 光片,之前没有修改过。所以都有不同的维度。因此,我们将所有图像尺寸缩小到特定尺寸。将图像尺寸固定为 256x256 以保持大部分图案完好无损会更方便。但是由于算力的一些限制,在这个demo中我们将大小保持为 28x28。 数据集以文件夹格式提供,其中每个类的所有图像都放在不同的文件夹中。 应用量子卷积层 我们已经将 [Quanvolutional Neural Network] (https://pennylane.ai/qml/demos/tutorial_quanvolution.html) 的单层方法扩展到多层,在我们的模型中准确地说是 4 层。 最初,每个图像的尺寸为 (28x28x1),它被馈送到第一个 Quanvolutional 层并转换为 (14x14x4)。第 2 层将其转换为 (7x7x16),第 3 层转换为 (3x3x64),最后第 4 层和最后一层将每个转换为 (1x1x256) 维数据矩阵。 这里虽然 Quanvolutional Layer gates 的参数是统一随机的,但我们进一步考虑了训练这些参数的方法,以后会对方法改进。 分类器模型 在 Quanvolutional 层之后,我们有分类器模型。分类器模型由两个子分类器组成,每个子分类器都是一个二元分类器。我们用“Model-1”和“Model-2”来区分这两个。 Model-1 分为两类——“普通人”和“Covid19/病毒性肺炎”。Model-2 分为两类——“Covid-19”和“病毒性肺炎”。 这里要提到的重要一点,最初我们尝试使用单一模型进行多类分类,结果结果非常低。因此,我们将两种模型方法视为最后一种。 模型 1 的准确性始终高于模型 2,因为区分“普通人”与“covid/病毒性肺炎”比区分“covid”与“病毒性肺炎”更容易。 我们为此创建了三个笔记本,采用三种不同的方法来减少特征尺寸技术和特征图电路设计。 在 [Notebook-Model_1]中,我们使用了 Principal 提取的 256 个特征大小的输入数据中的 11 个特征数据分析。在这里,我们实现了大约 49% 到 50% 的准确度。 在 [Notebook-Model_2]中,我们使用 TruncatedSVD 方法将每个图像的 256 个特征减少到 4 个。这使我们在 43% 到 45% 范围内的准确度略低。 在 [Notebook-Model_3]中,我们将数据进一步减少到仅 2 个特征。出乎意料的是,这给了我们之前所有方法中最高的,60% 的准确率。 我们之所以这样做,是因为将 256 个特征编码到量子电路不是一种可行的方法。同样更重要的是,Quantum 电路似乎在功能较少的情况下表现更好。因此,我们将来应该更加专注于有效地减少特征大小而不影响整体数据模式。 预测 在进行预测时,我们首先向 Model-1 提供输入。如果它预测为正常人,那么它是分配给输入的最终预测。如果没有,那么我们给 Model-2 提供相同的输入,它最终预测胸部 X 光片显示患者是否患有 Covid-19 或病毒性肺炎。 Model-1 和 Model-2 的训练成本和准确度图 当前版本有很多改进的空间 1. 数据集中的真实 X 射线图像足够大,可以包含大量信息。但是由于缺乏大算力,我们使用 openCV 库将大小减小到 28x28,这可能抑制了很多重要信息。 以后我们将尝试使用 256x256 维图像,这将提高模型的准确性。 2.目前虽然在使用Quanvolution和flattening数据后,我们每张图像有256个特征,但在[Notebook-Model_1]中我们只使用了11个特征、4个特征和2个特征, [Notebook-Model_2]和 [Notebook-Model_3]分别通过各种特征尺寸缩减方法。我们可以尝试使用更多特征来试验精度是否会随着更高维度的数据而提高,或者量子计算机仅在更少特征的情况下才能更好地工作。 3. 应用于图像数据的四个四元卷积层都是使用均匀生成的随机参数,没有进一步训练。 稍后,我们还将尝试训练这些四元卷积层,以便修改后的数据集可以包含更多关于真实图像的数据。 4. 我们还将包括在更精确的模拟器上训练的模型的训练结果和最终精度,并逐步尝试在真实的量子计算机上执行这些,以获得更真实的实验数据。 如何复现: 1.windows环境下,使用anaconda创建虚拟环境 2.Dependency安装命令 >conda create -n Xray python=3.8.8 >conda activate Xray >pip install -r requirements.txt 3.run代码块时提示有依赖包没有,则直接根据提示安装相应包即可,"pip install xxx" 开源组件说明: 部分代码设计时参考了所列参考文献中的方案与源代码,以及pennylane官方文档和QNN文档(https://pennylane.ai/qml/demos/tutorial_quanvolution.html) 数据集使用kaggle公开数据集(Covid-19 的x射线图片集)(https://www.kaggle.com/pranavraikokte/covid19-image-dataset) 参考文献 1. Saad Albawi, Tareq Abed Mohammed, and Saad Al-Zawi, "Understanding of a convolutional neural network, In 2017 International Conference on Engineering and Technology (ICET), pages 1-6. IEEE, 2017. 2. Maxwell Henderson, Samriddhi Shakya, Shashindra Pradhan, and Tristan Cook. "Quanvolutional neural networks: powering image recognition with quantum circuits", Quantum Machine Intelligence, 2(1):19, 2020. 3.Junhua Liu, Kwan Hui Lim, Kristin L Wood, Wei Huang, Chu Guo, and He-Liang Huang, "Hybrid quantum-classical convolutional neural networks", arXiv preprint arXiv:1911.02998, 2019. 4. [Quanvolutional Neural Networks.](https://pennylane.ai/qml/demos/tutorial_quanvolution.html) 5. Kinshuk Sengupta and Praveen Ranjan Srivastava , “Quantum algorithm for quicker clinical prognostic analysis: an application and experimental study using CT scan images of COVID‑19 patients”, Sengupta and Srivastava BMC Med Inform Decis Mak (2021) 21:227,https://doi.org/10.1186/s12911-021-01588-6