深圳Yolo 视觉
深圳
立即加入
词汇表

生成式流网络(GFlowNets)

了解生成式流网络(GFlowNets)如何利用概率建模,为药物发现和因果学习采样多样化且高回报的离散对象。

生成流网络(Generative Flow Networks,简称 GFlowNets)是一个强大的 机器学习框架,专为 概率建模和摊销采样而设计。它们 通过将生成过程视为一个序列决策 任务,在生成离散的、可组合的对象方面表现出色。 与传统 强化学习中常见的单纯最大化奖励不同,GFlowNets学会 以与预定义 奖励函数成正比的概率对对象进行采样。这使其能够在极其庞大的样本空间中发现多样化的 高奖励候选集合,从而有效缓解了 常困扰生成对抗网络(GANs)等其他生成 架构的 模型坍缩问题

核心原则与机制

GFlowNets 的运作方式是在结构化环境中移动,逐步添加构建模块,从而构建出最终的 对象。

  • 前向与后向策略 神经网络会预测一个前向策略, 该策略规定了从给定状态出发时各种可能动作的概率分布。通过映射穿过 这些状态的轨迹,模型从而学习到概率的“流”。
  • 轨迹平衡损失训练通常依赖于 诸如轨迹平衡损失之类的优化目标,该目标可确保生成特定 对象的概率与其观测到的奖励密切相关。正确的 超参数调优对于 在训练过程中稳定该损失函数至关重要。
  • 比例采样 通过按奖励比例进行采样,而非仅仅追求绝对最大值,GFlowNets 自然地实现了 多样性,这在探索复杂的 组合空间时至关重要。

GFlowNets 与其他生成式人工智能

虽然生成式人工智能涵盖了许多技术, 但 GFlowNets 占据着独特的地位。标准的 扩散模型或诸如 流匹配等技术通常将连续噪声 分布转换为数据。相比之下,GFlowNets 专门用于生成离散结构,例如 图或序列。 此外,标准强化学习代理旨在通过 马尔可夫决策过程(MDP)寻找单一最优路径, 而 GFlowNets 则规划出多条高回报路径,以确保生成的输出具有广泛的多样性。

实际应用

凭借生成多样且高度优化的候选方案的能力,GFlowNets在科学 和结构领域具有特别重要的价值。

实施“向前”政策

在构建 GFlowNet 时,前向策略必须预测下一系列可能步骤的概率分布。 以下 PyTorch 代码片段演示了如何定义一个简单的策略层并 采样一个动作。虽然构建像 Ultralytics 这样的视觉模型需要预测边界框 坐标,但 GFlowNet 则使用 分类型分布来选择其生成路径中的下一个 状态。

import torch
import torch.nn as nn
from torch.distributions import Categorical

# A simple linear policy mapping a 64-dim state to 4 possible actions
policy_network = nn.Sequential(nn.Linear(64, 4), nn.Softmax(dim=-1))

# Given a random state vector, compute action probabilities and sample
state = torch.randn(1, 64)
action_probs = policy_network(state)
sampled_action = Categorical(action_probs).sample()
print(f"Sampled Action: {sampled_action.item()}")

如果您正在使用 Python开发复杂的人工智能解决方案,您可以借助 Ultralytics 无缝地 对数据集进行标注、训练和部署模型。无论您专注于高速 目标检测任务,还是探索生成式 架构,拥有一个稳健的 机器学习运维(MLOps) 管道对于有效扩展模型至关重要。

让我们一起共建AI的未来!

开启您的机器学习未来之旅