2018研读营之张量网络与机器学习

(本页面在逐步完善中......) 主讲人为张潘。作为外行主讲,这次的风格会和2016年尤亦庄主讲的张量网络不大相同,大家请同时参考2016研读营之张量网络

数据与张量

  • 数据表示为希尔伯特空间中的一个向量,不同的特征映射方式会给出不同的希尔伯特空间。
    文件:Tensor6.png
    6维的张量
  • 对数据的线性操作表示为希尔伯特空间的一个算符。高维空间的线性操作可以对应低维空间的非线性操作。核方法(Kernel method),表示理论(representation theorem)。
  • 无论是向量还是算符,我们可以统一地用张量(高维数组)来表示它。
  • 维数灾难(curse of dimensionality) -> 希尔伯特空间维度非常大->张量的参数数目非常多->我们无法轻易表达这个张量
  • 张量降维 = 希尔伯特空间压缩 = 张量网络

张量网络的应用

  • 张量网络与概率图模型:张量缩并对应隐变量求和(积分)
  • 在物理中,张量网络常常
    • 缩并掉虚拟指标,表达一个波函数
    • 缩并掉所有指标,表达经典系统的配分函数
  • 在应用数学中,张量网络被用来拟合一个函数或另一个张量,或用来预测未知张量(或矩阵)元素
  • 在机器学习中(新),张量网络可以被用来做分类器,也可以利用量子力学的Born法则表达一个概率分布,构造一个生成模型(今天的主要内容)。
  • 张量网络在不同的领域中的应用基本上概括为
    • 量子物理:优化
    • 应用数学:拟合
    • 机器学习:泛化

张量网络(张量分解)

秩为1的张量:直积态

  • 最简单的张量网络: 秩为1的张量或者说是直积态,可分解(Factorized)纯态。它的参数数目最少,参数数目线性正比与组分数目,组分之间互相独立。
    • 一个量子比特,两个本征态:
      • 第一个本征态(类似像素黑)表示成 [math]\displaystyle{ | {\uparrow } \rang =|0\rangle=\left(\begin{matrix}1\\0\end{matrix}\right) }[/math],
      • 第二个本征态(类似像素白)表示成 [math]\displaystyle{ |{\downarrow }\rangle=|1\rangle=\left(\begin{matrix}0\\1\end{matrix}\right) }[/math]
      • 灰度值为0.8的像素表示成两个本征态的叠加 [math]\displaystyle{ |\Psi\rangle=\sqrt{0.8}|{\uparrow }\rangle+\sqrt{0.2}|{\downarrow }\rangle=\left(\begin{matrix}\sqrt{0.8}\\\sqrt{0.2}\end{matrix}\right) }[/math]
    • 两个量子比特(qubit)的直积态:[math]\displaystyle{ |\Psi\rangle =|{\uparrow }\rangle|{\downarrow }\rangle=\left(\begin{matrix}1\\0\end{matrix}\right)\otimes \left(\begin{matrix}0\\1\end{matrix}\right)=\left(\begin{matrix}0\\1\\0\\0\end{matrix}\right)=\left(\begin{matrix}0&0\\1&0\end{matrix}\right) }[/math]
      文件:Product state 1.png
      两个量子比特的直积态
    • 两个量子比特的直积态:[math]\displaystyle{ |\Psi\rangle =|{\uparrow }\rangle\left(\frac{1}{\sqrt{2}}|{\uparrow }\rangle+\frac{1}{\sqrt{2}}|{\downarrow }\rangle\right) }[/math]
  • 秩为1的张量作为模型可以用来拟合任意的张量(当然误差可能非常大),或者说提取任意张量的“最重要”的信息,但它的缺点是参数数目太少,表达能力十分有限。n个量子比特,精确描述可能需要 [math]\displaystyle{ 2^n }[/math]个参数( [math]\displaystyle{ 2^n-1 }[/math]个自由参数),但是秩为1对张量只有 [math]\displaystyle{ 2n }[/math]个参数([math]\displaystyle{ n }[/math]个自由参数)。
文件:Rank 1.png
用秩为1的张量拟合一个任意张量
  • 秩为1张量的推广
    • CP分解,Canonical rank, 参数数目ndr
    • Tucker分解,参数数目(ndr+r^n)
    • 矩阵乘积态,也叫做Tensor Train,ndr^2


秩大于1的张量:纠缠态

  • 不可分解的纯态
    • 两个量子比特的纠缠态: [math]\displaystyle{ \frac{1}{\sqrt{2}}|{\uparrow }\rangle|{\downarrow }\rangle-\frac{1}{\sqrt{2}}|{\downarrow }\rangle|{\uparrow }\rangle }[/math],在任何基下都不能写成直积态,纠缠来源于(anti)相关性。
    • EPR对: [math]\displaystyle{ \frac{1}{\sqrt{2}}|{\uparrow }\rangle|{\uparrow }\rangle+\frac{1}{\sqrt{2}}|{\downarrow }\rangle|{\downarrow }\rangle }[/math], 它的rank是多少?
    • [math]\displaystyle{ |\textrm{GHZ}\rangle=\frac{1}{\sqrt{2}}\left( |{\uparrow }\rang^{\otimes n}+ | {\downarrow }\rangle^{\otimes n}\right) }[/math]
  • 秩与纠缠
    • 秩为1->没有纠缠。
    • 秩越大,通常纠缠越多,通过纠缠熵(Entanglement entropy)来定量刻画。
    • 纠缠意味着一些信息被两个量子比特共享,单独看其中一个会损失信息!
    • 张量展开成 [math]\displaystyle{ 2\times 2 }[/math]矩阵的rank=这个矩阵Singular value非零元素个数 = 约化密度矩阵非零本征值数目
    • 为什么是SVD?因为SVD = Schmidt decomposition,天然的正交二分方法。
    • 多个(例如7个)量子比特怎么看两个子系统(例如前3个和后4个)之间有没有纠缠?
      • 同样是把维度为 [math]\displaystyle{ 2^7 }[/math]的张量需要展开成维度为 [math]\displaystyle{ 2^3\times 2^4 }[/math]的矩阵,然后看这个矩阵的秩。
      • 这个矩阵的奇异值平方=约化密度矩阵的本征值。
      • 大家回想一下Singular Values的定义,实际上求解一个矩阵的SVD的一个方法就是去求解这个矩阵所对应的协方差矩阵的本征值问题。
      • 这个 [math]\displaystyle{ 2^7 }[/math]的张量有很多种展开成矩阵的方法,这实际对应着不同的permute -> reshape 操作。对任意张量如果可以这么操作(有无限大内存和计算量),这会给出纠缠的准确度量,给出DMRG所需的最大bond dimension。
    • 小测试:[math]\displaystyle{ |\Psi\rangle=\frac{1}{ {2}}|{\uparrow }\rangle|{\uparrow }\rangle+\frac{1}{ {2}}|{\downarrow }\rangle|{\downarrow }\rangle+\frac{1}{ {2}}|{\uparrow }\rangle|{\downarrow }\rangle+\frac{1}{ {2}}|{\downarrow }\rangle|{\uparrow }\rangle }[/math]有没有纠缠?
  • 纠缠熵
    • 纠缠熵定义为约化密度矩阵的熵。
      • 密度矩阵[math]\displaystyle{ \rho=|\Psi\rangle\langle\Psi| }[/math] (对于纯态波函数[math]\displaystyle{ \Psi }[/math])秩为1。
      • 约化密度矩阵[math]\displaystyle{ \rho_A=\textrm{Tr}_B|\Psi\rangle\langle\Psi| }[/math]的秩是否大于1决定A系统和B系统有无纠缠。
      • [math]\displaystyle{ \psi_{AB} }[/math][math]\displaystyle{ \Psi }[/math]被reshape后得到的矩阵。有[math]\displaystyle{ \rho_A=\psi_{AB}\psi_{AB}^\dagger }[/math], 因此[math]\displaystyle{ \rho_A }[/math]的秩等于[math]\displaystyle{ \rho_B }[/math]的秩等于[math]\displaystyle{ \psi_{AB} }[/math]的秩。
      • [math]\displaystyle{ \rho_A }[/math]的本征值等于[math]\displaystyle{ \rho_B }[/math]的本征值等于[math]\displaystyle{ \psi_{AB} }[/math]的奇异值平方。
      • 纠缠熵定义为[math]\displaystyle{ S(\rho_A)=S(U\rho_A U^\dagger)=S(P(\{\lambda_i\}))=\sum_i\lambda_i\log(\lambda_i) }[/math],其中U是酉矩阵,[math]\displaystyle{ P(\{\lambda_i)\} }[/math]是约化密度矩阵的本征值的概率分布。

物理中常用的张量网络

  • 矩阵乘积态(Matrix Product States), 在应用数学中称为Tensor Train
    • 常被用于(一维)量子系统
    • 缩并很简单
    • 关联指数衰减
  • Projected Entanglement Pair State (PEPS), 二维的MPS
    • 天然对应二维系统
    • 缩并指数难
  • Tree Tensor Network, 在应用数学中Hierarchical Tucker Decomposition
    • 和mps差不多,但是有着关联长度的优势
  • Multi Entanglement Renormalization Ansatz
    • 常用语描述临界系统,关联power law衰减

矩阵乘积态

张量网络作为非监督生成模型