RBM到MPS的转换

刚刚踏入NPL的小白哈哈哈哈哈(激动.jpg),最近在读一篇关于量子的论文《Equivalence of restricted Boltzmann machines and tensor network states》,论文中提到了如何将RBM与TNS相互转换,下面就记一下论文中的第二部分“将RBM转换到MPS”。

这是自己用比较易懂的话来解释的,如有不足请多多谅解,我也会继续研究,欢迎指教呀~~~~贴上论文的地址https://arxiv.org/pdf/1701.04831.pdf

 

一、预备知识

1、什么是RBM?

RBM是一种能量模型,用无监督学习的方法,它的目的就是最大可能地拟合训练数据(就是对输入数据的概率分布进行建模,对于一组数据来说如果我们知道了它符合什么分布,就能够确定RBM的参数,网络便能更好地进行学习)。这里放一个介绍RBM的博客,我觉得讲得挺好的http://lib.csdn.net/article/deeplearning/59097?knId=1746 

(1)RBM网络结构                        

RBM到MPS的转换_第1张图片 图(1)

 

RBM具有可视层和隐层,标准的RBM其可视层单元和隐层单元应该是全连接的,但是在进行RBM—>TNS的转化时,为了更方便地解释他们之间的转化,这里的RBM就采用了稀疏连接。

(2)RBM的参数

:可视层单元的偏置

:隐层单元的偏置

:可视层单元与隐层单元的连接权值

 

二、RBM到MPS的直接映射法

1、步骤

(1)在不改变RBM原有结构的条件下将RBM转化为TNS(RBM的可视单元对应TNS中的实际变量,隐层单元对应TNS中的虚拟变量);

(2)第二通过划分n个片(每个片中包含一个可视单元,隐层单元在这些片中的分配是随意的),将TNS映射到MPS中。

下面给出直接映射的算法、过程图以及详细的过程解释。

2、算法

RBM到MPS的转换_第2张图片 图(2)

 

 3、过程图

RBM到MPS的转换_第3张图片 图(3)

 

以图(1)为例,在不改变图(1)结构的条件下,我们将RBM变成了图(3)中的(a)(我们要知道RBM的每个单元是用圆点代表,TNS中的每个张量是用球状来代表),由于有6个可视单元,所以我们需要将(a)分成6片得到了(b)。由于MPS中每个张量与张量之间的维度是由红色虚线所经过的连接线的数量n所决定,即D=,由此我们可以看见(c)中的维度分别是

这里我们还需要关注一下(b)中的连接线,它被两条分割线所切割,这样的连接我们称为“长范围”连接,为了将这样的连接映射到MPS的虚拟连接上,我们需要对它进行分解,将它分解成任意两个2×2的矩阵的乘积。蓝色的方块代表2×2的矩阵P,Q。

RBM到MPS的转换_第4张图片 图(4)

我们通过上面的方法将RBM映射到MPS上,最后得到的MPS并不是唯一的,因为我们说过隐层单元在这些片中的分配是随意的,但是不管怎样,这些MPS都是相等的。直接映射的方法虽然简单,但包含了多余的自由度,它只是提供了一个维度的最大范围,所以这并不是最优的映射,下面就介绍一种最优映射。

 

三、RBM到TNS的最优映射法

首先将RBM的所有可视单元划分为X和Y两个集合,当我们给定了另一个集合Z时,X和Y就是相互独立的。集合Z的大小就决定了MPS中每个张量与张量之间的维度,即D=。此时我们的任务就是需要找到一个满足条件的最小集合Z。

同样下面给出算法、过程图以及过程解释。

1、算法

RBM到MPS的转换_第5张图片 图(5)

2、过程图

RBM到MPS的转换_第6张图片 图(6)

 

结合过程图和算法对最优映射的过程进行解释,粉色部分代表集合X,紫色部分代表集合Y,绿色部分代表集合Z。

根据算法第7行,首先X={},Y={,…,},我们可以找到一个最小集合Z使得X和Y相互独立,可以看出Z={}或者Z={},这里就选择Z={},矩阵的维度为=2。

RBM到MPS的转换_第7张图片 图(7)

接下来X={},Y={,…,},此时Z就可以为{}、{}、{}和{}其中的一个,这里我们选择Z={}(可能会想为什么{}给定之后,X和Y就相互独立了呢?我们试想将X中的单元与Z中单元之间的连接去除之后,X中的单元是否就不能通过Z中的单元与Y中的单元有连接了呢?如此一来,在我们给定了Z之后,X和Y就相互独立了)。图中的虚线集合用来代表,算法中15-17行就是代表虚线的产生。矩阵的维度为=4。

RBM到MPS的转换_第8张图片 图(8)

同样地,接下来X={ },Y={},我们选择最小集合Z={},此时的就包含了{}和{}的连接,最后矩阵的维度为=4。

图(9)

这里X={},Y={},我们同样找到最小集合Z={},这里发现当Z给出时,和集合X有连接,但和Y集合没有连接(当Z给出时,有连接,但此时的在集合Z中),所以在我们构建时需要记录一下,最后矩阵的维度为=4。

RBM到MPS的转换_第9张图片 图(11)

最后矩阵的维度为=2。

最终我们将RBM映射到了MPS中,如下图。

RBM到MPS的转换_第10张图片 图(12)

回头看看整个映射过程,我们发现RBM中的每条连接,在每次映射到MPS上时只考虑了一次,这也就是我们所介绍的最优映射法。而对比直接映射,RBM中的“长范围”连接会使得它所经过的所有张量的维度增加一倍。

很多细节呢可以去看看论文,我这里也是记录一下自己的思路,继续去学习啦~~~

未完待续~~~~

 

 

 

 

 

你可能感兴趣的:(量子语言模型,MPS,RBM,NLP)