Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Генеративные потоковые сети (GFlowNets)

Узнайте, как генеративные потоковые сети (GFlowNets) используют вероятностное моделирование для генерации разнообразных дискретных объектов с высокой вознаграждающей ценностью в целях разработки лекарственных препаратов и причинно-следственного обучения.

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

Основные принципы и механизмы

GFlowNets действуют, перемещаясь по структурированной среде и шаг за шагом добавляя строительные блоки для создания конечного объекта.

  • Политики прямого и обратного хода: Нейронная сеть прогнозирует политику прямого хода, определяя распределение вероятностей по возможным действиям из заданного состояния. Отображая траектории через эти состояния, модель обучается «потоку» вероятностей.
  • Потеря баланса траектории: при обучении часто используются оптимизационные критерии, такие как потеря баланса траектории, которая гарантирует, что вероятность генерации конкретного объекта будет тесно коррелировать с наблюдаемым вознаграждением. Правильная настройка гиперпараметров имеет решающее значение для стабилизации этой функции потерь во время обучения.
  • Пропорциональная выборка: Осуществляя выборку пропорционально вознаграждению, а не просто стремясь к абсолютному максимуму, GFlowNets естественным образом обеспечивают разнообразие, что имеет решающее значение при перемещении по сложным комбинаторным пространствам.

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) необходимо для эффективного масштабирования ваших моделей.

Давайте вместе создадим будущее искусственного интеллекта!

Начните свой путь в будущее машинного обучения