Что такое графовые нейронные сети?

Что такое графовые нейронные сети Изучение

Graph Neural Network — это современная техника машинного обучения, которая используется для выполнения различных операций с графическими данными. Традиционные нейронные сети уже доступны для анализа и выполнения операций, но они ограничены только текстовыми данными. Когда нам нужно заняться графическими данными, мы используем нейронную сеть Graph. Графические нейронные сети позволяют исследовать эти связи по-новому, потому что графы — это надежные структуры данных, в которых хранятся отношения между элементами. GNN можно использовать, например, для определения того, какие пользователи с наибольшей вероятностью поддержат что-либо на сайтах социальных сетей. В этой статье будут рассмотрены основы графовых нейронных сетей, а также архитектура GNN и принципы их работы. Мы также обсудим приложения GNN и их ограничения.

Что такое график?

Граф является самой основной и важной частью нейронной сети графа. В области информатики Graph — это структура данных, состоящая из двух компонентов: вершин и ребер (известных как узлы). Граф представлен A, матрицей смежности. Если граф имеет n узлов, то он будет иметь размерность (n × n).

Формула для определения графика:

G= (В, Е)

где,

V = набор узлов
E = кромка между узлами

рмула для определения граф

Что такое графовая нейронная сеть?

Графовые нейронные сети были разработаны Scarselli et al. в 2008 году. GNN был разработан для моделирования динамических систем с использованием графических данных. Как только GNN была разработана, она привлекла внимание исследователей и стала основной областью исследований и приложений. Существует широкий спектр приложений GNN, таких как приложения для социальных сетей, маркетинг и т. Д. Графовые нейронные сети — это методология, которая используется для решения сложных задач, связанных с графами. Как известно, граф представляет объекты и их отношения с помощью математических формул. Есть два параметра графика. Первый — это объект (узел), а второй — отношение (ребра). Возьмем пример социальной сети, которую можно представить в виде графа, где пользователи являются узлами, а их соединения — ребрами. Основное внимание при разработке GNN было сосредоточено на том, чтобы она могла устанавливать и изучать скрытые закономерности и отношения для графических данных. Традиционные нейронные сети не способны обрабатывать данные в виде графа, потому что эти модели предполагают, что входные данные представляют собой вектор фиксированного размера.

вые нейронные сети были разработаны Scar

Типы графовой нейронной сети

GNN подразделяется на 3 типа, а именно:

1. Рекуррентный ВНС

Это тип GNN, в котором соединение между различными узлами генерирует циклический выходной сигнал от других узлов. Это влияет на узел того же цикла, что и на выходе, и ведет себя динамически по своей природе. Он основан на теореме Банаха о неподвижной точке.

Читайте также:  Тенденции UI и UX-дизайна в 2022 году

2. Пространственная ГНС

Пространственная GNN похожа на CNN. Он также работает на основе сбора свойств соседних узлов и передачи их центральному узлу.

3. Спектральная ГНС

Эта GNN основана на матричной теории математики. Как и другие GNN, для извлечения результата используются узлы и топология, но спектральная GNN использует концепции собственных значений и собственных векторов для получения результата из предоставленных графических данных.

Функции графической нейронной сети

Различные функции, выполняемые GNN, заключаются в следующем:

1. Классификация узлов

Классификация узлов определяется как процесс обучения модели прогнозированию меток узлов на основе характеристик и спецификаций соседних узлов и функций. Он подпадает под категорию проблем с полууправляемым ML.

2. Предсказание ссылок

Link Prediction определяется как процесс определения взаимосвязи между двумя узлами в графе. Кроме того, эта функция помогает проверить, связаны ли два узла или объекта или нет.

3. Классификация графов

Как следует из названия, он используется для классификации графа на основе узлов, присутствующих на разных графах. Это похоже на классификацию узлов и прогнозирование ссылок. Эта функция сортирует графики в одинаковую категорию.

Проблемы использования GNN в машинном обучении

Хотя GNN полезны при решении задач машинного обучения, существуют некоторые проблемы и ограничения GNN в ML, а именно:

  • GNN использует характеристики соседних узлов для предсказания центрального узла, и это продолжается до тех пор, пока узел не станет стабильным.
  • GNN использует огромное количество данных для обучения.
  • Он регулирует параметр, чтобы минимизировать функцию потерьмодели.

Граф сверточной сети

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

Python3

import torch
from torch import nn
 
class graph_CN(nn.Module):
    def __init__(self, *sizes):
        super().__init__()
        self.layers = nn.ModuleList([
            nn.Linear(a, b) for a, b in zip(sizes[:-1], sizes[1:])
        ])
 
    def forward(self, vert, edg):
 
        # ----- Build the adjacency matrix -----
        adj_M = torch.eye(len(vert))
 
        # edg contain connected vert: [vertex_0, vertex_1] 
        adj_M [edg[:, 0], edg[:, 1]] = 1
        adj_M [edg[:, 1], edg[:, 0]] = 1
 
        # ----- Here forward data passes are done-----
        for layer in self.layers:
            vert= torch.sigmoid(layer(adj_M @ vert))
 
        return vert

В приведенном выше коде мы сначала импортировали модуль PyTorch. Затем мы создали класс, а именно » GNN «. Существуют слои GCN, которые определяются как линейные преобразования. Здесь модель принимает вершины и ребра в качестве входного значения. Затем мы получаем окончательный результат, который представляет собой функции узла после прохождения через разные слои GCN.

Читайте также:  Как определить новый класс в Ember.js?

Глубокая прогулка

Deepwalk определяется как графовая нейронная сеть, которая используется для выполнения различных операций над определенной структурой целевого графа. Deepwalk использует очень продвинутый метод, а именно случайный обход пути, который помогает ему четко наблюдать за локальными структурами, представленными в данной сети. DeepWalk делает это, используя различные случайные пути, а затем обучает данные с помощью модели Skip-gram. Модель Skip-gram — это модель машинного обучения, способная указать конкретный узел, связанный с предоставленными входными словами. После распознавания ближайшего узла, связанного с входными данными, эта модель генерирует несколько предсказанных слов для этого конкретного узла. Эта концепция используется DeepWalk.

GraphSage

Метод обучения представлению динамических графов — GraphSAGE. Без переобучения он предсказывает внедрение нового узла с помощью индуктивного обучения. Он использует функции агрегатора для создания новых вложений узлов на основе свойств и окружения узла. Вместо того, чтобы складывать их вместе и терять их из виду, мы используем универсальную функцию агрегирования. Перед использованием агрегации средних значений мы суммировали сообщения от соседей, а затем нормализовали их в соответствии с количеством соседей. Теперь мы также можем использовать глубокие нейронные сети, такие как LSTM, или метод объединения.

Приложения GNN

  • Графическая нейронная сеть широко используется в приложениях для социальных сетей, НЛП и системах рекомендаций по рекламе.
  • Он также используется для анализа данных приложений социальных сетей, где есть очень большие наборы данных. Это помогает разработчику найти отношения между узлами данных, созданными конкретным пользователем.
  • Для использования классификацииGraph и классификации узлов.
  • Он также используется для прогнозирования в отделе здравоохранения.
  • GNN используется для установления связи между пользователем и продуктами, что повышает эффективность модели.

GNN в трафике

GNN также используется в области дорожного движения, анализируя скорость транспортных средств, количество транспортных средств на дороге и т. д. Мы можем прогнозировать интенсивность движения, используя GNN для решения сложных дорожных задач.

GNN в компьютерном зрении

Графическая нейронная сеть широко используется в области компьютерного зрения. Применение GNN в компьютерном зрении быстро растет день ото дня. Различным вариантом использования GNN в решении задач компьютерного зрения является классификация изображений, распознавание объектов и семантическая сегментация. Преимущество использования GNN в компьютерном зрении заключается в том, что он может устанавливать пространственные отношения между предоставленными объектами. GNN может создавать модели, которые могут выполнять сложные операции между объектами изображения, что позволяет им создавать более эффективные и точные прогнозы относительно любого объекта и атрибутов.

Читайте также:  6 столпов разработки игр: руководство для начинающих

GNN в НЛП

Говоря о GNN в области обработки естественного языка, в последнее время GNN широко используется для применения в НЛП. Это связано с тем, что GNN обладает высокой способностью различать, находить и устанавливать отношения между словами и фразами, что является основной целью НЛП. GNN рассматривает каждое слово как узел в графе и устанавливает связь между этими узлами, чтобы создать семантическую связь между ними. Вот как GNN работает в области обработки естественного языка. Создание отношений между этими узлами позволяет сети фиксировать шаблоны и отношения между словами. GNN также используется для анализа контента, а затем для более точных прогнозов. GNN также используется для выполнения задач машинного обучения, таких как классификация изображений., распознавание объектов и распознавание сущностей.

Заключение

Графовая нейронная сеть — это тип нейронной сети, предназначенный для работы с графоструктурированными данными, такими как социальные сети, биологические сети и рекомендательные системы, путем установления связи между различными узлами данных. Граф определяется как абстрактное представление сети, представляющее некоторую связь между данными, обычно двумя разными объектами. Граф определяется как G= (V, E). Здесь V используется для представления наборов узлов (вершин), а E используется для определения границы между ними. Сверточные сети графов — это тип нейронной сети, которая используется для решения различных проблем, связанных с графами, а именно проблем с данными, структурированными на графах. Различные варианты использования GNN в компьютерном зрении и обработке естественного языка включают классификацию изображений, распознавание объектов и областьсемантическая сегментация.

Оцените статью
bestprogrammer.ru
Добавить комментарий