生成流网络(GFlowNet)入门路径
靳秋野 | 作者
什么是生成流网络(GFlowNet)?
什么是生成流网络(GFlowNet)?
GFlowNet 的应用领域
GFlowNet 的应用领域
GFlowNet 是一种新兴的生成模型,它在多种任务中展现了强大的性能和潜力。以下是一些生成流网络的前沿研究和应用领域的例子:
• 因果推断:生成流网络可以用于从数据中学习因果结构和机制,从而实现因果推理和干预。比如,我们可以从数据中推断出因果图的后验分布,并从中采样新的因果图。
• 分子设计:生成流网络可以用于设计具有特定性质的分子,从而促进药物发现和材料科学。比如,我们可以从蛋白质、DNA或RNA序列中学习一个概率分布,并从中采样新的序列。
方法
方法
这张图展示了为什么在GFlowNets中使用“流”这个词。它考虑了非规范化概率的流动,类似于有向非循环图中从初始状态流出的水量,其轨迹对应于所有可能的动作序列,以便按顺序构建复杂的对象,如分子图、因果图、对场景的解释或者我们脑海中的想法。
生成流网络的基本原理是将一个简单的先验分布(如均匀分布或正态分布)通过一系列可逆的变换映射到一个复杂的后验分布,从而实现从先验到后验的概率流。生成流网络的基本算法如下:
1. 定义一个初始状态,通常是一个空对象或一个随机对象。
2. 定义一个动作空间,通常是一个有限的离散集合,表示可以对当前状态进行的变换。
3. 定义一个终止动作,表示结束生成过程。
4. 定义一个生成策略,通常是一个神经网络,表示在每个状态下选择动作的概率分布。
5. 定义一个奖励函数,通常是一个环境模型,表示给定状态的价值或效用。
6. 从初始状态开始,重复以下步骤,直到选择终止动作为止:
结果
结果
讨论
讨论
综上所述,GFlowNets作为一种新兴的研究方法,已在多种任务中展现了强大的性能和潜力,如因果推断、分子设计、候选生成等。同时,GFlowNets也面临着一些挑战和问题,如:
• 优化难度:生成流网络的训练目标是非凸的,并且涉及到大量的随机采样,因此需要有效的优化算法和技巧来保证收敛和稳定性。
• 可扩展性:生成流网络的计算复杂度随着状态空间和动作空间的增大而增大,因此需要有效的近似和剪枝来提高可扩展性和效率。
• 可比较性:生成流网络的评估指标和基准数据集还不够完善和统一,因此需要更多的研究和协作来建立可比较性和可重复性。
学习路径
学习路径
Yoshua Bengio. Generative Flow Networks. 2022. https://yoshuabengio.org/2022/03/05/generative-flow-networks
• 书籍:目前还没有专门介绍生成流网络的书籍,但你可以参考一些涉及生成模型、变分推理、能量模型等相关主题的书籍,如《深度学习》、《机器学习》等;此外,Bengio介绍了GFlowNets在科学发现中的应用和前景,详情参考文献[3]。
Yoshua Bengio et al. GFlowNets for AI-Driven Scientific Discovery. https://arxiv.org/abs/2302.00615
• Repo:有一些开源的代码库和项目,实现了生成流网络的不同版本和应用。你可以在GitHub开源库[2]上找到有关GFlowNets的文章和项目,并根据自己的需要进行修改或扩展。
GitHub – zdhNarsil/Awesome-GFlowNets: A curated list of resources about generative flow networks (GFlowNets). https://github.com/zdhNarsil/Awesome-GFlowNets
AI+Science 读书会启动
推荐阅读