量子语言模型|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)
RBM具有可视层和隐层,标准的RBM其可视层单元和隐层单元应该是全连接的,但是在进行RBM—>TNS的转化时,为了更方便地解释他们之间的转化,这里的RBM就采用了稀疏连接。
(2)RBM的参数
量子语言模型|RBM到MPS的转换
文章图片
:可视层单元的偏置
量子语言模型|RBM到MPS的转换
文章图片
:隐层单元的偏置
量子语言模型|RBM到MPS的转换
文章图片
:可视层单元量子语言模型|RBM到MPS的转换
文章图片
与隐层单元量子语言模型|RBM到MPS的转换
文章图片
的连接权值

二、RBM到MPS的直接映射法
1、步骤
(1)在不改变RBM原有结构的条件下将RBM转化为TNS(RBM的可视单元对应TNS中的实际变量,隐层单元对应TNS中的虚拟变量);
(2)第二通过划分n个片(每个片中包含一个可视单元,隐层单元在这些片中的分配是随意的),将TNS映射到MPS中。
下面给出直接映射的算法、过程图以及详细的过程解释。
2、算法
量子语言模型|RBM到MPS的转换
文章图片
图(2)
3、过程图
量子语言模型|RBM到MPS的转换
文章图片
图(3)
以图(1)为例,在不改变图(1)结构的条件下,我们将RBM变成了图(3)中的(a)(我们要知道RBM的每个单元是用圆点代表,TNS中的每个张量是用球状来代表),由于有6个可视单元,所以我们需要将(a)分成6片得到了(b)。由于MPS中每个张量与张量之间的维度是由红色虚线所经过的连接线的数量n所决定,即D=量子语言模型|RBM到MPS的转换
文章图片
,由此我们可以看见(c)中的维度分别是量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片

这里我们还需要关注一下(b)中量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
的连接线,它被两条分割线所切割,这样的连接我们称为“长范围”连接,为了将这样的连接映射到MPS的虚拟连接上,我们需要对它进行分解,将它量子语言模型|RBM到MPS的转换
文章图片
分解成任意两个2×2的矩阵的乘积。蓝色的方块代表2×2的矩阵P,Q。
量子语言模型|RBM到MPS的转换
文章图片
图(4) 我们通过上面的方法将RBM映射到MPS上,最后得到的MPS并不是唯一的,因为我们说过隐层单元在这些片中的分配是随意的,但是不管怎样,这些MPS都是相等的。直接映射的方法虽然简单,但包含了多余的自由度,它只是提供了一个维度的最大范围,所以这并不是最优的映射,下面就介绍一种最优映射。

三、RBM到TNS的最优映射法
首先将RBM的所有可视单元划分为X和Y两个集合,当我们给定了另一个集合Z时,X和Y就是相互独立的。集合Z的大小就决定了MPS中每个张量与张量之间的维度,即D=量子语言模型|RBM到MPS的转换
文章图片
。此时我们的任务就是需要找到一个满足条件的最小集合Z。
同样下面给出算法、过程图以及过程解释。
1、算法
量子语言模型|RBM到MPS的转换
文章图片
图(5) 2、过程图
量子语言模型|RBM到MPS的转换
文章图片
图(6)
结合过程图和算法对最优映射的过程进行解释,粉色部分代表集合X,紫色部分代表集合Y,绿色部分代表集合Z。
根据算法第7行,首先X={量子语言模型|RBM到MPS的转换
文章图片
},Y={量子语言模型|RBM到MPS的转换
文章图片
,…,量子语言模型|RBM到MPS的转换
文章图片
},我们可以找到一个最小集合Z使得X和Y相互独立,可以看出Z={量子语言模型|RBM到MPS的转换
文章图片
}或者Z={量子语言模型|RBM到MPS的转换
文章图片
},这里就选择Z={量子语言模型|RBM到MPS的转换
文章图片
},矩阵量子语言模型|RBM到MPS的转换
文章图片
的维度为量子语言模型|RBM到MPS的转换
文章图片
=2。
量子语言模型|RBM到MPS的转换
文章图片
图(7) 接下来X={量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
},Y={量子语言模型|RBM到MPS的转换
文章图片
,…,量子语言模型|RBM到MPS的转换
文章图片
},此时Z就可以为{量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
}、{量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
}、{量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
}和{量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
}其中的一个,这里我们选择Z={量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
}(可能会想为什么{量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
}给定之后,X和Y就相互独立了呢?我们试想将X中的单元与Z中单元之间的连接去除之后,X中的单元是否就不能通过Z中的单元与Y中的单元有连接了呢?如此一来,在我们给定了Z之后,X和Y就相互独立了)。图中的虚线集合用量子语言模型|RBM到MPS的转换
文章图片
来代表,算法中15-17行就是代表虚线的产生。矩阵量子语言模型|RBM到MPS的转换
文章图片
的维度为量子语言模型|RBM到MPS的转换
文章图片
=4。
量子语言模型|RBM到MPS的转换
文章图片
图(8) 同样地,接下来X={量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
},Y={量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
},我们选择最小集合Z={量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
},此时的量子语言模型|RBM到MPS的转换
文章图片
就包含了{量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
}和{量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
}的连接,最后矩阵量子语言模型|RBM到MPS的转换
文章图片
的维度为量子语言模型|RBM到MPS的转换
文章图片
=4。
量子语言模型|RBM到MPS的转换
文章图片
图(9) 这里X={量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
},Y={量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
},我们同样找到最小集合Z={量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
},这里发现当Z给出时,量子语言模型|RBM到MPS的转换
文章图片
和集合X有连接,但和Y集合没有连接(当Z给出时,量子语言模型|RBM到MPS的转换
文章图片
量子语言模型|RBM到MPS的转换
文章图片
有连接,但此时的量子语言模型|RBM到MPS的转换
文章图片
在集合Z中),所以在我们构建量子语言模型|RBM到MPS的转换
文章图片
时需要记录一下量子语言模型|RBM到MPS的转换
文章图片
,最后矩阵量子语言模型|RBM到MPS的转换
文章图片
的维度为量子语言模型|RBM到MPS的转换
文章图片
=4。
量子语言模型|RBM到MPS的转换
文章图片
图(11) 最后矩阵量子语言模型|RBM到MPS的转换
文章图片
的维度为量子语言模型|RBM到MPS的转换
文章图片
=2。
最终我们将RBM映射到了MPS中,如下图。
量子语言模型|RBM到MPS的转换
文章图片
图(12) 回头看看整个映射过程,我们发现RBM中的每条连接,在每次映射到MPS上时只考虑了一次,这也就是我们所介绍的最优映射法。而对比直接映射,RBM中的“长范围”连接会使得它所经过的所有张量的维度增加一倍。
很多细节呢可以去看看论文,我这里也是记录一下自己的思路,继续去学习啦~~~
未完待续~~~~




【量子语言模型|RBM到MPS的转换】

    推荐阅读