Generative Flow Networks (GFlowNets)
Entdecke, wie Generative Flow Networks (GFlowNets) probabilistische Modellierung nutzen, um vielfältige diskrete Objekte mit hohem Belohnungswert für die Wirkstoffforschung und kausales Lernen zu erzeugen.
Generative Flow Networks, kurz GFlowNets, sind ein leistungsstarkes Machine-Learning-Rahmenwerk für probabilistische Modellierung und amortisiertes Sampling. Sie eignen sich besonders gut zur Erzeugung diskreter, zusammengesetzter Objekte, indem sie den Generierungsprozess als sequenzielle Entscheidungsaufgabe behandeln. Anstatt einfach eine Belohnung zu maximieren, wie es beim herkömmlichen bestärkenden Lernen üblich ist, lernen GFlowNets, Objekte mit einer Wahrscheinlichkeit proportional zu einer vorab festgelegten Belohnungsfunktion zu sampeln. So können sie vielfältige Kandidaten mit hoher Belohnung in sehr großen Suchräumen finden und dem Modenkollaps entgegenwirken, der häufig andere generative Architekturen wie Generative Adversarial Networks (GANs) beeinträchtigt.
Grundprinzipien und Mechanismen#
GFlowNets bewegen sich durch eine strukturierte Umgebung und fügen Schritt für Schritt Bausteine hinzu, um ein endgültiges Objekt zu konstruieren.
- Vorwärts- und Rückwärtspolitiken: Ein neuronales Netzwerk sagt eine Vorwärtspolitik voraus, die für einen bestimmten Zustand die Wahrscheinlichkeitsverteilung möglicher Aktionen vorgibt. Indem das Modell Trajektorien durch diese Zustände abbildet, lernt es den „Fluss“ der Wahrscheinlichkeit.
- Trajectory-Balance-Verlust: Beim Training kommen häufig Optimierungsziele wie der Trajectory-Balance-Verlust zum Einsatz. Er stellt sicher, dass die Wahrscheinlichkeit, ein bestimmtes Objekt zu generieren, eng mit seiner beobachteten Belohnung übereinstimmt. Eine sorgfältige Abstimmung der Hyperparameter ist entscheidend, um diese Verlustfunktion während des Trainings zu stabilisieren.
- Proportionale Stichprobenziehung: Indem GFlowNets Stichproben proportional zur Belohnung ziehen, statt lediglich das absolute Maximum anzustreben, sorgen sie auf natürliche Weise für Vielfalt. Das ist entscheidend, wenn sie komplexe kombinatorische Räume erkunden.
GFlowNets im Vergleich zu anderen generativen KI-Verfahren#
Während generative KI viele Verfahren umfasst, besetzen GFlowNets eine besondere Nische. Standardmäßige Diffusionsmodelle oder Verfahren wie Flow Matching wandeln typischerweise kontinuierliche Rauschverteilungen in Daten um. GFlowNets hingegen sind ausdrücklich auf die Generierung diskreter Strukturen wie Graphen oder Sequenzen ausgelegt. Während standardmäßige Reinforcement-Learning-Agenten über den Markov-Entscheidungsprozess (MDP) einen einzelnen optimalen Pfad finden sollen, bilden GFlowNets mehrere Pfade mit hoher Belohnung ab, um eine große Vielfalt generierter Ergebnisse sicherzustellen.
Anwendungen in der Praxis#
Durch ihre Fähigkeit, vielfältige und hochgradig optimierte Kandidaten zu generieren, sind GFlowNets besonders wertvoll in den Naturwissenschaften und in der Strukturbiologie.
- Wirkstoffsuche und Moleküldesign: In der pharmazeutischen Forschung werden GFlowNets zur Generierung neuartiger therapeutischer Peptide und Molekülgraphen eingesetzt. Neuere Entwicklungen wie Atomic GFlowNets (A-GFN) bauen Moleküle Atom für Atom auf, um Eigenschaften wie Bindungsaffinität und synthetische Zugänglichkeit zu optimieren. Dieses Verfahren erzeugt vielfältigere Wirkstoffkandidaten als Methoden, die auf vordefinierten Fragmenten beruhen.
- Lernen kausaler Strukturen: GFlowNets werden auch eingesetzt, um die Struktur kausaler Bayes-Netze zu ermitteln. Sie nähern die Posteriorverteilung über gerichtete azyklische Graphen (DAGs) an und helfen Forschenden, beim Modellieren komplexer Datenbeziehungen eine realistische Einschätzung der epistemischen Unsicherheit zu bewahren.
Implementierung der Vorwärtspolitik#
Beim Aufbau eines GFlowNet muss die Vorwärtspolitik eine Wahrscheinlichkeitsverteilung über die möglichen nächsten Schritte vorhersagen. Das folgende PyTorch-Beispiel zeigt, wie sich eine einfache Policy-Schicht definieren und eine Aktion auswählen lässt. Während beim Erstellen von Bildverarbeitungsmodellen wie Ultralytics YOLO26 Begrenzungsrahmenkoordinaten vorhergesagt werden müssen, verwendet ein GFlowNet kategoriale Verteilungen, um den nächsten Zustand auf seinem Generierungspfad auszuwählen.
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()}")Wenn du komplexe KI-Lösungen in Python entwickelst, kannst du mit der Ultralytics Platform nahtlos Datensätze annotieren sowie Modelle trainieren und bereitstellen. Ganz gleich, ob du dich auf Aufgaben der Objekterkennung mit hoher Geschwindigkeit konzentrierst oder generative Architekturen erkundest: Eine solide Betriebsinfrastruktur für maschinelles Lernen (MLOps) ist entscheidend, um deine Modelle effektiv zu skalieren.









