{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 量子分类器\n", "\n", " Copyright (c) 2021 Institute for Quantum Computing, Baidu Inc. All Rights Reserved. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 概览\n", "\n", "本教程我们将讨论量子分类器(quantum classifier)的原理,以及如何利用量子神经网络(quantum neural network, QNN)来完成**二分类**任务。这类方法早期工作的主要代表是 Mitarai et al.(2018) 的量子电路学习 [(Quantum Circuit Learning, QCL)](https://arxiv.org/abs/1803.00745) [1], Farhi & Neven (2018) [2] 和 Schuld et al.(2018) 的中心电路量子分类器 [Circuit-Centric Quantum Classifiers](https://arxiv.org/abs/1804.00633) [3]。这里我们以第一类的 QCL 框架应用于监督学习(Supervised learning)为例进行介绍,通常我们需要先将经典数据编码成量子数据,然后通过训练量子神经网络的参数,最终得到一个最优的分类器。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 背景\n", "\n", "在监督学习的情况下,我们需要输入 $N$ 个带标签的数据点构成的数据集 $D = \\{(x^k,y^k)\\}_{k=1}^{K}$,其中 $x^k\\in \\mathbb{R}^{m}$ 是数据点,$y^k \\in\\{0,1\\}$ 是对应数据点 $x^k$ 的分类标签。**分类过程实质上是一个决策过程,决策给定数据点的标签归属问题**。 对于量子分类器框架,分类器 $\\mathcal{F}$ 的实现方式为一个含参 $\\theta$ 的量子神经网络/参数化量子电路, 测量量子系统以及数据后处理的组合。一个优秀的分类器 $\\mathcal{F}_\\theta$ 应该尽可能的将每个数据集内的数据点正确地映射到相对应的标签上 $\\mathcal{F}_\\theta(x^k) \\rightarrow y^k$。因此,我们将预测标签 $\\tilde{y}^{k} = \\mathcal{F}_\\theta(x^k)$ 和实际标签 $y^k$ 之间的累计距离作为损失函数 $\\mathcal{L}(\\theta)$ 进行优化。对于两分类任务,可以选择二次损失函数\n", "\n", "$$\n", "\\mathcal{L}(\\theta) = \\sum_{k=1}^N 1/N \\cdot |\\tilde{y}^{k}-y^k|^2. \\tag{1}\n", "$$\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 方案流程\n", "\n", "这里我们给出实现量子电路学习 (QCL) 框架下量子分类器的一个流程。\n", "\n", "1. 将经典数据编码$x^k$为量子数据$\\lvert \\psi_{\\rm in}\\rangle^k$。本教程采用角度编码。关于编码方式的具体操作,见[量子态编码经典数据](./DataEncoding_CN.ipynb)。用户也可以尝试其他编码,如振幅编码,体验不同编码方式对分类器学习效率的影响。\n", "2. 构建可调参数量子电路,对应幺正变换(unitary gate)$U(\\theta)$。\n", "3. 对每一个量子数据$\\lvert\\psi_{\\rm in}\\rangle^k$,通过参数化量子电路$U(\\theta)$,得到输出态$\\lvert \\psi_{\\rm out}\\rangle^k = U(\\theta)\\lvert \\psi_{\\rm in} \\rangle^k$。\n", "4. 对每一个量子数据得到的输出量子态$\\lvert \\psi_{\\rm out}\\rangle^k$,通过测量与数据后处理,得到标签 $\\tilde{y}^{k}$。\n", "5. 重复以上步骤,得到数据集内所有点的标签,并计算损失函数 $\\mathcal{L}(\\theta)$。\n", "6. 通过梯度下降等优化方法不断调整参数 $\\theta$ 的值,从而最小化损失函数。记录优化完成后的最优参数 $\\theta^*$, 这时我们就学习到了最优的分类器 $\\mathcal{F}_{\\theta^*}$。\n", "\n", " \n", "