{ "cells": [ { "cell_type": "markdown", "id": "c5391601", "metadata": {}, "source": [ "## 手写数字图片生成\n", "\n", "Copyright (c) 2023 Institute for Quantum Computing, Baidu Inc. All Rights Reserved.\n", "\n", "### 生成模型\n", "\n", "生成模型是机器学习中一种重要的模型类型,用于生成符合某种分布的数据。通俗地讲,生成模型可以从一些训练数据中学习到数据的分布特征,然后根据这些特征生成新的数据。\n", "\n", "生成模型可以分为概率生成模型和非概率生成模型两种类型。概率生成模型指可以建立数据的概率分布模型的生成模型,例如常见的高斯混合模型、朴素贝叶斯模型等。这些模型通常可以通过极大似然估计等方法进行训练,然后根据模型生成符合数据分布的新数据。非概率生成模型指不依赖于概率分布模型,而是通过学习数据的特征和规律,直接生成新的数据。例如生成对抗网络(GAN)就是一种非概率生成模型,它通过两个神经网络的对抗来学习生成数据。\n", "\n", "生成模型在自然语言处理、图像处理、音频处理等领域得到了广泛的应用。例如,可以用生成模型生成自然语言文本、图像、音频等内容,也可以用生成模型进行图像、音频的降噪、风格转换等任务。" ] }, { "cell_type": "markdown", "id": "05b924a7", "metadata": {}, "source": [ "### 使用 QCAAN 模型实现 MNIST 手写数字图片的生成\n", "\n", "#### QCAAN 简介\n", "\n", "量子电路关联对抗网络(Quantum-Circuit Associative Adversarial Network, QCAAN)[1](#qcaan_ref) 是一种量子生成模型,能够从现有的数据中学习,从而生成更加逼真的新数据。其可应用于数据生成、数据扩充和无监督学习。\n", "\n", "该模型主要是基于生成对抗网络(Generative Adversarial Network, GAN)来设计的。GAN 是一种深度学习模型,主要包含生成器(Generator)和判别器(Discriminator)两个神经网络。生成器通过将从高斯分布中采样的噪音样本作为输入,生成假样本。判别器则负责对真假样本进行分类。两个网络相互博弈、不断优化,使得生成器生成的样本逐渐更加逼真。\n", "\n", "该模型主要将 GAN 中的输入由高斯噪音分布替换为由参数化量子电路刻画的量子态分布。具体模型参考下图。除了 GAN 的两个网络外,我们还需要训练第三个量子神经网络 QNN 用来刻画生成器的输入,即先验分布 Prior,并使其接近判别器的倒数第二层隐空间(Latent space)的分布。在本教程中,我们使用的 QNN 主要包含若干层 U3 门和强纠缠门。一个包含 n qubits, D 层的量子电路可以简单地使用如下两行代码实现:\n", "\n", "```code\n", "cir = paddle_quantum.ansatz.Circuit(n)\n", "cir.complex_entangled_layer(D)\n", "```\n", "\n", "#### QCAAN 优势\n", "\n", "- 相较于经典的(伪)高斯分布,量子态分布是真随机,可以解决生成器(Generator)的快启动(kick-start)问题;\n", "- 原文作者[1](#qcaan_ref) 声称使用量子态分布可以缓解 GAN 的训练不稳定问题,以致能够生成更高清、更多样的图片。\n", "\n", "\n", "\n", "