Generative Flow Networks (GFlowNets)
Узнай, как генеративные потоковые сети (GFlowNets) используют вероятностное моделирование для выборки разнообразных дискретных объектов с высоким вознаграждением для поиска лекарств и причинно-следственного обучения.
Generative Flow Networks (GFlowNets) — это мощный фреймворк машинного обучения, предназначенный для вероятностного моделирования и амортизированной выборки. Они превосходно справляются с генерацией дискретных комбинаторных объектов, рассматривая процесс генерации как задачу последовательного принятия решений. Вместо простого максимизации награды, как это принято в традиционном обучении с подкреплением, GFlowNets учатся делать выборку объектов с вероятностью, пропорциональной предопределенной функции награды. Это позволяет им находить разнообразные наборы кандидатов с высокой наградой в исключительно больших пространствах выборки, эффективно смягчая проблему коллапса модели, которая часто присуща другим генеративным архитектурам, таким как генеративно-состязательные сети (GAN).
Основные принципы и механизмы#
GFlowNets работают, перемещаясь по структурированной среде и шаг за шагом добавляя строительные блоки для создания конечного объекта.
- Прямые и обратные политики: Нейронная сеть прогнозирует прямую политику, определяя распределение вероятностей возможных действий из заданного состояния. Сопоставляя траектории через эти состояния, модель изучает «поток» вероятности.
- Потери на основе баланса траекторий: Обучение часто опирается на такие цели оптимизации, как потери на основе баланса траекторий, которые гарантируют, что вероятность генерации конкретного объекта тесно согласуется с его наблюдаемой наградой. Правильная настройка гиперпараметров важна для стабилизации этой функции потерь во время обучения.
- Пропорциональная выборка: Осуществляя выборку пропорционально награде, а не просто стремясь к абсолютному максимуму, GFlowNets естественным образом обеспечивают разнообразие, что крайне важно при навигации по сложным комбинаторным пространствам.
GFlowNets против других типов Generative AI#
Хотя генеративный ИИ охватывает множество методов, GFlowNets занимают уникальную нишу. Стандартные диффузионные модели или такие методы, как сопоставление потоков, обычно преобразуют непрерывные распределения шума в данные. В отличие от них, GFlowNets явно адаптированы для генерации дискретных структур, таких как графы или последовательности. Более того, в то время как стандартные агенты обучения с подкреплением стремятся найти единственный оптимальный путь с помощью марковского процесса принятия решений (MDP), GFlowNets прокладывают множество путей с высоким вознаграждением для обеспечения широкого разнообразия генерируемых результатов.
Реальные приложения#
Способность генерировать разнообразных и высокооптимизированных кандидатов делает GFlowNets особенно ценными в научных и структурных областях.
- Поиск лекарств и дизайн молекул: В фармацевтических исследованиях GFlowNets используются для генерации новых терапевтических пептидов и молекулярных графов. Недавние достижения, такие как атомные GFlowNets (A-GFN), создают молекулы атом за атомом для оптимизации таких свойств, как аффинность связывания и синтетическая доступность. Этот процесс создает более разнообразные кандидаты в лекарственные средства по сравнению с методами, основанными на предопределенных фрагментах.
- Обучение причинно-следственным структурам: GFlowNets также применяются для обнаружения структуры причинных байесовских сетей. Они аппроксимируют апостериорное распределение по направленным ациклическим графам (DAG), помогая исследователям сохранять реалистичный взгляд на эпистемическую неопределенность при моделировании сложных взаимосвязей данных.
Реализация прямой политики#
При создании 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, ты можешь легко аннотировать датасеты, обучать и развертывать модели с помощью платформы Ultralytics. Независимо от того, сосредоточен ли ты на высокоскоростных задачах обнаружения объектов или изучаешь генеративные архитектуры, надежный конвейер операций машинного обучения (MLOps) необходим для эффективного масштабирования моделей.






