用约束规划+概率图模型(信念传播)+神经网络端到端求解问题

Posted 黄含驰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用约束规划+概率图模型(信念传播)+神经网络端到端求解问题相关的知识,希望对你有一定的参考价值。

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》。

修改后只是简单嵌入了约束传播机制,这是我们的基本框架。之后,再根据下面第三点中的文章,做进一步的大规模约束的缩减/聚合并考虑加入比较好的后处理机制。样本利用效率、在线机器学习等做为最后的考虑点……

  1. 网络框架基于2020年《Belief Propagation Neural Networks》 https://arxiv.org/pdf/2007.00295.pdf(概率图模型+图神经网络)

  1. 约束传播技术主要基于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》

  2. 进一步优化则参考 《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


用约束规划+概率图模型(信念传播)+神经网络端到端求解问题
这种近似最初是由统计物理学开发的,被称为Bethe自由能。

Belief Propagation Neural Networks (BPNN)

BPNN由两部分组成。 1.迭代BPNN层(BPNN-D)输出消息,将信念传递到Bethe自由能层(BPNN-B)中;2.Bethe自由能层(BPNN-B)通过执行从信念到Z的回归来概括Bethe近似。

BPNN-D

BPNN迭代层是灵活的神经运算符,可以以多种方式对信念或消息进行操作。(我们要修改的就是这儿!)原文的迭代方式如下
用约束规划+概率图模型(信念传播)+神经网络端到端求解问题

BPNN-B
用约束规划+概率图模型(信念传播)+神经网络端到端求解问题
这是对标准Bethe逼近的参数化,上式还通过将所有因子的信念传递给MLP_BF并对结果求平均值,以确保BPNN保留BP的对称性。

反复迭代生成关于变量的N*M矩阵,然后从矩阵中读出问题的解。

Constraint Propagation

用约束编程中的AllDifferent、Sum、Among、Table等约束元语翻译传统等式或不等式约束,形成约束-变量网络;
于是,将上述信念传播中的因子-变量图照抄,只不过因子的含义在这里变成了约束。约束-变量间的信息传递如下:
用约束规划+概率图模型(信念传播)+神经网络端到端求解问题

上图的marginal是求边际分布;另外,上图的各子函数流程如下:
用约束规划+概率图模型(信念传播)+神经网络端到端求解问题

《From Support Propagation to Belief Propagation in Constraint Programming》及其配套的库对不同类型的约束元语定义了不同的约束传播方式,比如

这套约束传播框架基本可以和BPNN结合“食用”,生成最终用于决策的信念矩阵!

资料库

PSDDs: Probabilistic Sentential Decision Diagrams
http://reasoning.cs.ucla.edu/psdd/

Tractable Learning in Structured Probability Spaces.
https://www.youtube.com/watch?v=Xc2J5Uzk7JI&ab_channel=SimonsInstitute

UCLA Automated Reasoning group
http://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



以上是关于用约束规划+概率图模型(信念传播)+神经网络端到端求解问题的主要内容,如果未能解决你的问题,请参考以下文章

概率图模型

深度信念网络

ubuntu18一文学会Pytorch端到端网络部署Tensorrt模型推理

ubuntu18一文学会Pytorch端到端网络部署Tensorrt模型推理

概率图模型课本笔记

基于端到端可迁移深度强化学习的图优化