Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Graph Neural Network (GNN)

Графовая нейронная сеть (GNN) обучается на узлах и рёбрах, передавая сообщения между соседними узлами. Рассматриваются передача сообщений, GCN, GAT, практическое применение и код.

Графовая нейронная сеть (GNN) — это нейронная сеть, которая работает непосредственно с графами: наборами узлов, соединённых рёбрами, причём узлы и рёбра могут содержать признаки. Молекулы (атомы и связи), социальные сети (пользователи и подписки), дорожные сети (перекрёстки и участки дорог), трёхмерные сетки и суставы человеческого скелета — всё это графы. У графа нет фиксированной сетки или порядка, а у узлов разное число соседей, поэтому свёрточные фильтры свёрточной нейронной сети (CNN) и пошаговая обработка рекуррентной нейронной сетью (RNN) напрямую не подходят. GNN решают эту задачу с помощью передачи сообщений: каждый узел многократно обновляет свой вектор признаков на основе векторов соседей, создавая эмбеддинги узлов, которые кодируют как собственные атрибуты узла, так и его положение в графе.

Как работает передача сообщений#

Слой GNN обновляет каждый узел за три шага. Каждый сосед отправляет сообщение — обычно это обучаемое преобразование его признаков. Узел объединяет входящие сообщения функцией, не зависящей от их порядка, например суммой, средним или максимумом. Затем узел объединяет результат со своими признаками, формируя новое представление. Поскольку агрегирование не зависит от порядка, результат не зависит от нумерации узлов. В 2017 году Джастин Гилмер и его коллеги описали многие GNN как частные случаи подхода нейронных сетей с передачей сообщений. После последнего слоя специализированная для задачи выходная голова использует эмбеддинги узлов, чтобы присвоить метки узлам, предсказать отсутствующие рёбра или классифицировать граф целиком:

Каждый слой расширяет область видимости узла на одно ребро, поэтому после k слоёв эмбеддинг узла зависит от всех узлов в пределах k рёбер — это его рецептивное поле в графе. Приведённый ниже фрагмент кода на PyTorch строит путь из шести узлов, применяет три слоя графовой свёртки с нормализацией из GCN Томаса Кипфа и Макса Веллинга и использует autograd, чтобы перечислить входные узлы, влияющие на узел 0 после каждого слоя:

import torch
from torch import nn

# A path graph 0-1-2-3-4-5 as an adjacency matrix with self-loops
A = torch.eye(6)
for i in range(5):
    A[i, i + 1] = A[i + 1, i] = 1
deg = A.sum(dim=1)
A_hat = A / torch.sqrt(deg[:, None] * deg[None, :])  # GCN normalization D^-1/2 (A + I) D^-1/2

torch.manual_seed(0)
x = torch.randn(6, 4, requires_grad=True)  # 4 input features per node
layers = [nn.Linear(4, 4) for _ in range(3)]

h = x
for k, layer in enumerate(layers, start=1):
    h = torch.tanh(A_hat @ layer(h))  # each node mixes in its neighbors' transformed features
    grad = torch.autograd.grad(h[0].sum(), x, retain_graph=True)[0]
    print(f"After layer {k}, node 0 depends on nodes {grad.abs().sum(dim=1).nonzero().flatten().tolist()}")

Вывод: [0, 1], [0, 1, 2] и [0, 1, 2, 3]: рецептивное поле узла 0 расширяется ровно на одно ребро с каждым слоем.

Распространённые архитектуры GNN#

  • GCN: Графовая свёрточная сеть вычисляет H′ = σ(D̃^(−1/2) Ã D̃^(−1/2) H W), где Ã — матрица смежности с петлями, а D̃ — матрица степеней: это среднее по узлу и его соседям с весами, зависящими от степеней, за которым следует матрица весов W, общая для всех узлов.
  • GraphSAGE: Сэмплирует фиксированное число соседей для каждого узла и обучает агрегатор, поэтому масштабируется на очень большие графы и позволяет строить эмбеддинги узлов, появившихся после обучения.
  • GAT: Графовые сети с механизмом внимания присваивают каждому соседу вес на основе обучаемых оценок внимания, а не фиксированных весов, зависящих от степени узла.
  • GIN: Сеть графовых изоморфизмов суммирует представления соседей и применяет MLP. Кеюлу Сюй и его коллеги доказали, что такая сеть различает графы не хуже теста Вайсфейлера — Лемана, который задаёт верхнюю границу возможностей стандартного обмена сообщениями.
  • Графовые трансформеры: Применяют самовнимание ко всем узлам и добавляют позиционные кодировки, полученные из структуры графа. Стандартный трансформер сам по себе является GNN на полном графе токенов.

При большом числе слоёв возникает чрезмерное сглаживание: повторное усреднение сближает эмбеддинги узлов, пока они не становятся неразличимыми. Поэтому многие GNN используют всего два или три слоя — как и исходная GCN, в которой их было два. PyTorch Geometric и Deep Graph Library (DGL) эффективно реализуют эти слои для разреженных списков рёбер.

Примеры применения в реальных условиях#

  • Прогноз погоды: Модель GraphCast от Google DeepMind, опубликованная в журнале Science в 2023 году, выполняет передачу сообщений по многоуровневой сетке, охватывающей весь земной шар, и менее чем за минуту строит прогноз на 10 дней с разрешением 0,25°. На 90% из 1380 проверочных целевых показателей она превосходит самые точные действующие детерминированные системы.
  • Поиск лекарств: В 2020 году исследователи MIT обучили сеть с направленной передачей сообщений предсказывать антибактериальную активность по молекулярным графам. С её помощью они обнаружили галицин — соединение, структурно не похожее на известные антибиотики, которое в лабораторных испытаниях уничтожало множество бактерий, устойчивых к лекарствам.
  • Рекомендательные системы: Модель PinSage от Pinterest обучила эмбеддинги пинов на графе из 3 миллиардов пинов и досок с 18 миллиардами рёбер, используя для обучения 7,5 миллиарда примеров.
  • Распознавание действий по скелету: ST-GCN рассматривает суставы тела как узлы, связывает их костями в каждом кадре и соединяет каждый сустав с тем же суставом в соседних кадрах, а затем классифицирует действие по полученному пространственно-временному графу. Модели оценки позы YOLO26 возвращают 17 ключевых точек COCO для каждого человека в каждом кадре — координаты суставов, по которым строится такой скелетный граф.
  • Граф знаний: Структура данных, которая хранит факты в виде троек «сущность — отношение — сущность». GNN — это модель, способная обучаться на графе знаний, например предсказывать отсутствующие связи.
  • Геометрическое глубокое обучение: Область, изучающая сети, построенные с учётом симметрий данных; она охватывает CNN на сетках, GNN на графах, а также модели на сетках и многообразиях.
  • CNN: CNN, применённая к изображению, — частный случай передачи сообщений на решёточном графе. У каждого пикселя одинаковое число соседей в фиксированных относительных позициях, поэтому CNN может обучить отдельный вес для каждой позиции соседа, чего GNN на нерегулярном графе сделать не может.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

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