跳转至

量子机器学习教程 - 完整指南

📚 教程文件列表

本目录包含完整的量子机器学习(QML)教程材料:

主教程文件

  1. 量子机器学习入门.ipynb - 完整的交互式教程(49 KB)
  2. 11 个主要章节
  3. 详细的代码示例和注释
  4. 可视化和实验对比

  5. README.md - 教程概述文档

  6. 详细的内容说明
  7. 技术亮点介绍
  8. 学习路径指引

辅助示例脚本

  1. simple_qnn_demo.py - 超简化示例(推荐新手先运行)
  2. 最简 QNN 演示
  3. 1 分钟运行时间
  4. 适合快速理解核心概念

  5. quick_start_qml.py - 快速入门示例

  6. 完整的训练流程
  7. 可视化结果
  8. 2-3 分钟运行时间

🎯 使用建议

对于初学者

推荐的学习顺序:

  1. 第一步:运行 simple_qnn_demo.py
  2. 理解量子神经网络的基本概念
  3. 观察训练过程
  4. 快速获得成功体验

  5. 第二步:阅读 README.md

  6. 了解完整教程的内容
  7. 查看学习目标和要求
  8. 准备相应的环境

  9. 第三步:学习 量子机器学习入门.ipynb

  10. 按顺序运行所有代码单元格
  11. 理解每个示例的原理
  12. 完成所有练习题

对于有经验的开发者

  1. 直接学习 量子机器学习入门.ipynb
  2. 参考其他脚本实现自己的模型
  3. 完成练习题进行巩固

📋 教程内容详解

第1章:量子机器学习简介

  • QML 的定义和重要性
  • 主要研究方向
  • 应用场景分析
  • 难度评估:⭐⭐⭐⭐

第2章:理论基础

  • 量子神经网络(QNN)
  • 数据编码方法(振幅编码、角度编码)
  • 变分层设计(强可展性电路)
  • 测量策略

  • 量子残差网络(QResNet)

  • 残差连接的原理
  • 跳跃连接实现
  • 梯度流动优化

  • 变分量子电路

  • 参数优化流程
  • 损失函数设计
  • 梯度计算

第3章:环境准备

import deepquantum as dq
import torch
import numpy as np
- 库安装和配置 - DeepQuantum 基础操作 - 环境验证

第4章:构建 QNN

实现的模型: - SimpleQNN:基础版本 - ImprovedQNN:支持批量处理 - 完整的前向/反向传播

第5章:实现 QResNet

  • QResidualBlock:残差块
  • QResNet:完整网络
  • 多层堆叠策略

第6章:分类任务实战

  • 圆形数据集:生成和可视化
  • 训练循环:完整的训练流程
  • 性能评估:准确率、损失曲线
  • 结果分析:模型对比

第7章:经典 vs 量子

  • ClassicalNN:经典神经网络
  • 性能对比分析
  • 混淆矩阵
  • 分类报告
  • 参数效率对比

第8章:DeepQuantum 高级特性

  • 量子卷积神经网络(QCNN)
  • 内置实现
  • 卷积和池化操作

  • 矩阵乘积态(MPS)

  • 内存优化
  • 大规模量子电路模拟
  • 性能对比

第9章:实战案例

  • 半月形数据集:更复杂的任务
  • 决策边界可视化
  • 多模型对比
  • 模型解释

第10章:总结与展望

  • 关键要点总结
  • 优势与挑战分析
  • 实用建议
  • 未来方向
  • 学习资源

第11章:练习题

8 个实践练习: 1. 不同的编码方式 2. 自定义量子电路 3. 多分类问题 4. 回归任务 5. 超参数优化 6. 真实数据集 7. 量子卷积网络 8. MPS 加速

🛠️ 技术实现

核心技术栈

  • DeepQuantum:量子计算框架
  • PyTorch:深度学习框架
  • NumPy:数值计算
  • scikit-learn:数据处理
  • Matplotlib/Seaborn:可视化

实现的模型

1. SimpleQNN

class SimpleQNN(nn.Module):
    - 基础量子神经网络
    - 4 个量子比特
    - 2 个变分层

2. ImprovedQNN

class ImprovedQNN(nn.Module):
    - 支持批量处理
    - 预处理层
    - 后处理层
    - 角度编码

3. QResidualBlock

class QResidualBlock(nn.Module):
    - 主路径 + 跳跃连接
    - 残差学习
    - 可堆叠设计

4. QResNet

class QResNet(nn.Module):
    - 多个残差块
    - 输入/输出投影
    - 深度网络架构

5. ClassicalNN

class ClassicalNN(nn.Module):
    - 经典神经网络
    - 用于性能对比
    - 相似的参数量

关键特性

数据编码

  • 角度编码:使用 RY, RZ 门
  • 基态编码:计算基态映射
  • 振幅编码:量子态振幅

电路设计

  • 强可展性电路:避免梯度消失
  • 硬件高效电路:减少门操作
  • 对称保持电路:保持数据对称性

训练策略

  • 批量训练:提高效率
  • 学习率调度:动态调整
  • 正则化:防止过拟合
  • 早停法:避免过训练

📊 预期结果

性能指标

  • 训练准确率:85-95%
  • 测试准确率:80-90%
  • 参数量:通常 < 100 个
  • 训练时间:2-5 分钟(CPU)

可视化输出

  1. 训练曲线
  2. 损失下降曲线
  3. 准确率提升曲线

  4. 性能对比

  5. 模型性能柱状图
  6. 训练过程对比

  7. 决策边界

  8. 2D 平面可视化
  9. 分类区域划分

  10. 混淆矩阵

  11. 分类准确性
  12. 误分分析

🚀 快速开始

环境要求

Python >= 3.8
PyTorch >= 1.10
DeepQuantum (项目自带)
NumPy >= 1.20
scikit-learn >= 0.24
Matplotlib >= 3.3

安装步骤

  1. 克隆项目
  2. 安装依赖
  3. 配置 DeepQuantum 路径

运行示例

运行超简单示例

cd E:\02_Projects\turingQ\教\06-高级应用
python simple_qnn_demo.py

运行完整教程

jupyter notebook 量子机器学习入门.ipynb

💡 学习建议

理论学习

  1. 先学习量子计算基础
  2. 理解量子门和电路
  3. 掌握变分量子算法

实践练习

  1. 从简单示例开始
  2. 逐步增加复杂度
  3. 实验不同参数
  4. 完成所有练习

深入研究

  1. 阅读推荐论文
  2. 尝试真实数据集
  3. 设计新的电路架构
  4. 优化训练策略

📖 参考资源

论文

  1. Mitarai et al., "Quantum circuit learning" (2018)
  2. Schuld et al., "Evaluating analytic gradients on quantum hardware" (2019)
  3. Grant et al., "Hierarchical quantum classifiers" (2018)

在线资源

框架文档

❓ 常见问题

Q: 训练很慢怎么办?

A: - 减少训练轮数 - 使用 MPS 表示 - 减少量子比特数 - 使用 GPU 加速

Q: 如何提高准确率?

A: - 增加电路层数 - 调整学习率 - 尝试不同的编码方式 - 使用更好的优化器

Q: 可以使用真实量子设备吗?

A: - 可以,但需要修改代码 - 使用量子 SDK (Qiskit, Cirq) - 考虑噪声和误差 - 建议先用模拟器验证

Q: 如何处理高维数据?

A: - 使用特征降维(PCA) - 量子卷积网络 - 分层编码 - 混合架构

🎓 进阶学习路径

初级 → 中级

  1. 完成本教程
  2. 实现不同的 QNN 架构
  3. 尝试真实数据集
  4. 调参与优化

中级 → 高级

  1. 研究最新论文
  2. 设计新的电路
  3. 实现量子优化算法
  4. 开发 QML 应用

研究方向

  1. 量子自然语言处理
  2. 量子强化学习
  3. 量子生成模型
  4. 量子联邦学习

📝 反馈与贡献

欢迎提供反馈和建议: - 报告问题 - 改进代码 - 添加新示例 - 完善文档

📄 许可证

遵循项目许可证条款。


祝你学习愉快!探索量子机器学习的奇妙世界! 🚀🔬


教程信息 - 难度:⭐⭐⭐⭐ (高级) - 时长:2-3 小时 - 作者:TuringQ 团队 - 版本:1.0 - 日期:2024