Generative Flow Networks (GFlowNets)
Generative Flow Networks (GFlowNets) がいかに確率モデリングを使用して、創薬や因果学習のために多様で報酬の高い離散オブジェクトをサンプリングするか解説します。
Generative Flow Networks, or GFlowNets, are a powerful machine learning framework designed for probabilistic modeling and amortized sampling. They excel at generating discrete, compositional objects by treating the generation process as a sequential decision-making task. Instead of simply maximizing a reward, as is common in traditional reinforcement learning, GFlowNets learn to sample objects with a probability that is proportional to a predefined reward function. This allows them to discover diverse sets of high-reward candidates within exceptionally large sample spaces, effectively mitigating the model collapse that often plagues other generative architectures like Generative Adversarial Networks (GANs).
Link to this section基本原則とメカニズム#
GFlowNetsは、構造化された環境を移動し、ビルディングブロックを段階的に追加して最終的なオブジェクトを構築することで動作します。
- フォワードおよびバックワードポリシー: ニューラルネットワークがフォワードポリシーを予測し、特定の状態からの可能なアクションに対する確率分布を決定します。これらの状態を通る軌跡をマッピングすることで、モデルは確率の「フロー」を学習します。
- Trajectory Balance Loss: Training often relies on optimization objectives like trajectory balance loss, which ensures that the probability of generating a specific object aligns closely with its observed reward. Proper hyperparameter tuning is essential to stabilize this loss function during training.
- 比例サンプリング: 単に絶対最大値を求めるのではなく、報酬に比例してサンプリングすることで、GFlowNetsは自然に多様性を確保します。これは、複雑な組合せ最適化空間をナビゲートする際に極めて重要です。
Link to this sectionGFlowNetsと他の生成AIの比較#
生成AIには多くの技術が含まれていますが、GFlowNetsは独自のニッチな領域を占めています。標準的な拡散モデルやフローマッチングのような技術は、通常、連続的なノイズ分布をデータに変換します。対照的に、GFlowNetsはグラフやシーケンスといった離散的な構造を生成するために明示的に最適化されています。さらに、標準的な強化学習エージェントがマルコフ決定過程 (MDP)を通じて単一の最適経路を見つけることを目的とするのに対し、GFlowNetsは生成される出力の幅広い多様性を確保するために、報酬の高い複数の経路をマッピングします。
Link to this section実社会での応用#
多様で高度に最適化された候補を生成する能力により、GFlowNetsは科学分野や構造分野で特に価値を発揮します。
- 創薬と分子設計: 医薬品研究において、GFlowNetsは新しい治療用ペプチドや分子グラフを生成するために使用されます。Atomic GFlowNets (A-GFN) のような最近の進歩では、分子を原子単位で構築し、結合親和性や合成の容易さといった特性を最適化します。このプロセスにより、定義済みの断片に依存する手法よりも、より多様な薬物候補が作成されます。
- 因果構造学習: GFlowNetsは、因果ベイズネットワークの構造を発見するためにも適用されています。有向非巡回グラフ (DAGs)上の事後分布を近似し、複雑なデータ関係をモデリングする際に研究者が認識的不確実性を現実的に捉えられるよう支援します。
Link to this sectionフォワードポリシーの実装#
GFlowNetを構築する際、フォワードポリシーは次の可能なステップに対する確率分布を予測する必要があります。以下のPyTorchコードスニペットは、単純なポリシー層を定義してアクションをサンプリングする方法を示しています。Ultralytics YOLO26のようなビジョンモデルを構築する場合はバウンディングボックスの座標を予測する必要がありますが、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で複雑なAIソリューションを開発している場合、Ultralytics Platformを使用してデータセットのアノテーション、トレーニング、モデルのデプロイをシームレスに行うことができます。高速な物体検出タスクに注力している場合でも、生成アーキテクチャを探索している場合でも、モデルを効果的にスケーリングするには強固な機械学習オペレーション (MLOps)パイプラインが不可欠です。






