ジェネレーティブ・フロー・ネットワーク(GFlowNets)が、確率的モデリングを用いて、創薬や因果学習のために多様で高報酬な離散的オブジェクトをサンプリングする仕組みをご紹介します。
Generative Flow Networks(GFlowNets)は、 確率的モデリングと償却サンプリングのために設計された 強力な機械学習フレームワークです。この手法は、生成プロセスを逐次的な意思決定 タスクとして扱うことで、離散的で構成可能なオブジェクトの生成に 特に優れています。 従来の 強化学習で一般的な、単に報酬を最大化するのではなく、 GFlowNetsは、あらかじめ定義された 報酬関数に比例する確率でオブジェクトをサンプリングすることを学習します。これにより、極めて広大なサンプル空間の中から多様な 高報酬の候補セットを発見することが可能となり、 生成対立ネットワーク(GAN)のような他の生成 アーキテクチャをしばしば悩ませる モデル崩壊を効果的に軽減します。
GFlowNetsは、構造化された環境内を移動しながら、段階的に構成要素を追加し、最終的な オブジェクトを構築することで動作します。
生成AIには多くの手法が含まれますが、 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) パイプラインが不可欠です。
未来の機械学習で、新たな一歩を踏み出しましょう。