量子机器学习:TensorFlow Quantum入门
注:转载请注明作者,本文也发布在作者的个人公众号上。 相关代码请见作者的Github。 TensorFlow Quantum TensorFlow Quantum (TFQ) 是谷歌在2020年发布的 量子机器学习框架 ,它能够帮助开发者方便的创建经典+量子结合的混合机器学习模型。量子+机器学习,两个热门的名词结合在一起,听上去很酷!但是你可能会问,这个框架是如何把经典和量子世界结合起来的呢?所谓的”经典-量子混合模型“又是如何工作的?在这个笔记里,我会结合谷歌的"Hello, many world"示例,实际讲解一下在TFQ下量子机器学习模型的搭建和工作原理。 基本概念 要理解TFQ的代码,首先需要了解一些量子计算的基本概念。 量子比特和状态向量 你可能在很多地方已经听到过量子比特(Qubit)的概念。一个经典比特在任意时刻只能处于两个状态中的一个,而量子比特则可以处于两个状态的叠加态: \(|\psi\rangle = \alpha|0\rangle + \beta|1\rangle\) 其中, \(\alpha\) 和 \(\beta\) 都是复数,并且 \(|\alpha|^2+|\beta|^2=1\) 。如果我们对这个量子比特进行测量,得到两个状态的概率分别是 \(|\alpha|^2\) 和 \(|\beta|^2\) 。 因此,一个量子比特的状态可以用一个**状态向量**来表示: \begin{matrix} \begin{pmatrix} \alpha \\ \beta \end{pmatrix} \end{matrix} 如果我们的系统里有多个量子比特,每个量子比特有相应的状态向量,那么这个系统的状态向量就是这些量子比特的**张量积**(tensor product)。例如一个系统有两个量子比特 \(\begin{pmatrix}\alpha_1 \\ \beta_1\end{pmatrix}\) 和 \(\begin{pmatrix}\alpha_2 \\ \beta_2\end{pmatrix}\) ,那么这个系统的状态向量就是: \(\begin{pmatrix}\alpha_1 \\ \beta_1\end{pmatrix} \otimes \begin{pmatrix}\alpha_2 \\ \beta_2\end{pmatrix} = \begin{pmatrix} \alpha_1\alpha_2 \\ \alpha_1\beta_2 \\ \beta_1\alpha_2 \\ \beta_1\beta_2 \end{pmatrix}\) 在谷歌的量子计算框架[Cirq]里,模拟器运行的结果里有一个 final_state 成员,这就是系统的状态向量。详细信息请参见我的[另一篇笔记]。 量子比特另外一种重要的表示方法是 Bloch球 (Bloch Sphere)。每一个量子比特都可以表示为Bloch球面上的一个向量: ...