Idea半成品,现在不做了,分享下(尾附资料库和代码)~
主要技术点:
用约束规划+概率图模型(信念传播)+神经网络端到端求解问题,生成一个关于变量的N*M矩阵,N是变量个数,M是变量取值集合的大小,矩阵元素代表某变量取某元素的信念,根据这个矩阵可自然读出解(如果不满足约束的情况实在太严重,就进一步加primal-dual unrolled optimization、启发式搜索、分支定界等后处理机制):
《Belief Propagation Neural Networks》(BPNN)设计了一个模块化的信念传播神经网络框架,它已经可以进行一些推理,求解NP完全问题了,只不过我对它们在复杂约束问题中的表现有所怀疑,想嵌入约束传播机制。由于文章的模块化做的很好,我只需将BPNN中因子-变量图消息传递模块修改成约束规划中约束归并与约束-变量图消息传递模块。正好今年新出一篇文章让上述修改变得比较容易——《From Support Propagation to Belief Propagation in Constraint Programming》。
修改后只是简单嵌入了约束传播机制,这是我们的基本框架。之后,再根据下面第三点中的文章,做进一步的大规模约束的缩减/聚合并考虑加入比较好的后处理机制。样本利用效率、在线机器学习等做为最后的考虑点……
- 网络框架基于2020年《Belief Propagation Neural Networks》 https://arxiv.org/pdf/2007.00295.pdf(概率图模型+图神经网络)
- 约束传播技术主要基于IJCAI 2020 《From Support Propagation to Belief Propagation in Constraint Programming》,把它网络化参考《Neural Probabilistic Logic Programming in DeepProbLog》、《Policy Message Passing: A New Algorithm for Probabilistic Graph Inference》
- 进一步优化则参考 《Practical Message-passing Framework for Large-scale Combinatorial Optimization》(初始化、并行、后处理机制的各种技巧)、《Augmentative Message Passing for Traveling Salesman Problem and Graph Partitioning》(专门处理约束很多的COP)、《Computational Challenges in Material Discovery:Bridging Constraint Reasoning and Machine Learning》(约束聚类)、《Deep Reasoning Networks:Thinking Fast and Slow》、《Exact-K Recommendation via Maximal Clique Optimization》(更有效地利用样本)
求解细节:
Factor Graphs and Belief Propagation
![0af4bc0283045167008ea73d64a406d2.png](https://i-blog.csdnimg.cn/blog_migrate/b3a623848833968a504a79e21220d349.jpeg)
![6d7730644a35f47a911ffd64e6837a75.png](https://i-blog.csdnimg.cn/blog_migrate/56e919dfac57cbf4cf6e74eba6225780.jpeg)
这种近似最初是由统计物理学开发的,被称为Bethe自由能。
Belief Propagation Neural Networks (BPNN)
BPNN由两部分组成。 1.迭代BPNN层(BPNN-D)输出消息,将信念传递到Bethe自由能层(BPNN-B)中;2.Bethe自由能层(BPNN-B)通过执行从信念到Z的回归来概括Bethe近似。
BPNN-D
BPNN迭代层是灵活的神经运算符,可以以多种方式对信念或消息进行操作。(我们要修改的就是这儿!)原文的迭代方式如下
![d944764b7e0d169e3084c7f191dc7951.png](https://i-blog.csdnimg.cn/blog_migrate/f962bdff738da3c04876f4d0eb45d9a0.jpeg)
BPNN-B
![7e2960621acf2e91f044b42d76a7ab73.png](https://i-blog.csdnimg.cn/blog_migrate/def989a5b71759e7f1ce91052153d3b4.jpeg)
这是对标准Bethe逼近的参数化,上式还通过将所有因子的信念传递给MLP_BF并对结果求平均值,以确保BPNN保留BP的对称性。
反复迭代生成关于变量的N*M矩阵,然后从矩阵中读出问题的解。
Constraint Propagation
用约束编程中的AllDifferent、Sum、Among、Table等约束元语翻译传统等式或不等式约束,形成约束-变量网络;
于是,将上述信念传播中的因子-变量图照抄,只不过因子的含义在这里变成了约束。约束-变量间的信息传递如下:
![3f1832460e88fc02ef4ed8aff6137359.png](https://i-blog.csdnimg.cn/blog_migrate/0ace2179bd80a886a8180e831d85d6c1.jpeg)
上图的marginal是求边际分布;另外,上图的各子函数流程如下:
![19a4ab2ecda9ac8597c74c491bb2af9c.png](https://i-blog.csdnimg.cn/blog_migrate/c5d8ab335bd3e7f89409694889a1c533.jpeg)
![08aaa1eefb5b92339ba750efda3647fa.png](https://i-blog.csdnimg.cn/blog_migrate/4f75bfd24f3e51ee7c658c3d91b4a674.jpeg)
《From Support Propagation to Belief Propagation in Constraint Programming》及其配套的库对不同类型的约束元语定义了不同的约束传播方式,比如
![ecd396af033a1dffb1d75c16097f496f.png](https://i-blog.csdnimg.cn/blog_migrate/f5e165953afe46e08f92215bda79f65e.jpeg)
这套约束传播框架基本可以和BPNN结合“食用”,生成最终用于决策的信念矩阵!
资料库
PSDDs: Probabilistic Sentential Decision Diagramshttp://reasoning.cs.ucla.edu/psdd/
Tractable Learning in Structured Probability Spaces.https://www.youtube.com/watch?v=Xc2J5Uzk7JI&ab_channel=SimonsInstitute
UCLA Automated Reasoning grouphttp://reasoning.cs.ucla.edu/
代码
对unroll damped BP刻画得很详细:https://github.com/DucLeVanMinh/Repl-Massive-MIMO-Belief-Propagation-Neural-Network/blob/master/DNN-dBP.ipynb
原文:https://arxiv.org/pdf/1804.01002.pdf
《From Support Propagation to Belief Propagation in Constraint Programming》https://github.com/PesantGilles/MiniCPBP
因子图神经网络与消息传递神经网络https://github.com/zzhang1987/Factor-Graph-Neural-Network/blob/master/lib/mpnn/mp_nn.py
https://bitbucket.org/problog/deepproblog/src/master/https://github.com/pawelswoboda/LP_MP
https://github.com/kaist-ina/bp_solver The BP-based framework to solve large-scale combinatorial optimization
python-约束传播求解Naked Twins、Diagonal Sudoku https://github.com/JacobPolloreno/Artificial-Intelligence-ND/tree/master/Sudoku