主要技术点:
用约束规划+概率图模型(信念传播)+神经网络端到端求解问题,生成一个关于变量的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
这种近似最初是由统计物理学开发的,被称为Bethe自由能。
欢迎关注公众号”黄含驰的机器学习与优化打怪路“,干货爆满,不容错过!(每天内容都像下图这么丰富,日更4-8篇)
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
欢迎关注公众号”黄含驰的机器学习与优化打怪路“,干货爆满,不容错过!(每天内容都像下图这么丰富,日更4-8篇)