Узнайте, как генеративные потоковые сети (GFlowNets) используют вероятностное моделирование для генерации разнообразных дискретных объектов с высокой вознаграждающей ценностью в целях разработки лекарственных препаратов и причинно-следственного обучения.
Генеративные потоковые сети (Generative Flow Networks, или GFlowNets) — это мощная платформа машинного обучения, предназначенная для вероятностного моделирования и амортизированной выборки. Они превосходно справляются с генерацией дискретных, композиционных объектов, рассматривая процесс генерации как задачу последовательного принятия решений . Вместо простого максимизирования вознаграждения, как это принято в традиционном обучении с подкреплением, GFlowNets учатся выбирать объекты с вероятностью, пропорциональной заранее заданной функции вознаграждения. Это позволяет им обнаруживать разнообразные наборы кандидатов с высоким вознаграждением в исключительно больших пространствах выборок, эффективно смягчая коллапс модели, который часто мешает другим генеративным архитектурам, таким как генеративные состязательные сети (GAN).
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) необходимо для эффективного масштабирования ваших моделей.
Начните свой путь в будущее машинного обучения