За кулисами — с нулевой математикой

Во многих аспектах повседневной жизни, таких как социальные сети, химические соединения, сети и т. д., у нас есть данные в формате графиков. И на первый взгляд сложно подобрать что-то существенное. Теперь на сцену выходит ИИ. Основным инструментом для обработки графических данных и выполнения классификации, группировки или регрессии является сверточная нейронная сеть графов (GCNN). Среди прочего, у нас есть возможность классифицировать графы, узлы и ребра. В этом блоге мы узнаем, как работает GCNN для классификации графов.

Любому алгоритму машинного обучения или глубокого обучения нужны помеченные данные для выполнения контролируемой классификации. Предположим, что для классификации группы пользователей социальных сетей данные A должны выглядеть примерно так:

Ключевая проблема в этой ситуации заключается в том, что данные независимы и не включают в себя несколько столбцов или признаков, которые легко обрабатывать. Здесь независимые данные (X) представляют собой граф, и классификация должна выполняться на основе характеристик узлов, связей между узлами и/или характеристик ребер. Мы должны изменить эти данные в следующий формат, чтобы обработать их:

Хорошо, давайте конвертируем данные из «А» в «Б»…!!!

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

В этом блоге мы поймем процесс в следующие три шага:

1 — G: решить график и создать Convo
2 — C: решить Convo и создать табличные данные
3 — NN: применить NN к этим табличным данным для прогнозирования

Шаг 1

G: решите граф и создайте Convo:

Каждая функция имеет некоторые функции, такие как [x1, x2, …, xn], и имеет некоторое значение:

Чтобы получить Convo, нам нужно выполнить шаг передачи сообщений и обновить значение функций в соответствии с их соседями.

В нашем случае «f» может быть любой математической функцией, которую нам нужно выбрать в соответствии с задачей:

Давайте выберем f = среднее значение и обновим следующим образом:

Точно так же мы можем получить обновленный вектор для каждого узла, и значение обновления будет в нашем примере:

Теперь вопрос в том, сколько времени нам нужно для передачи сообщений: это зависит от того, сколько переходов вся информация будет распределяться по всему графу или просто следовать за некоторым оптимальным числом переходов (если ваш граф имеет огромное количество разреженных ребер ).

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

После завершения передачи сообщения мы можем создать Convo 2D-метрик следующим образом:

Шаг 2

C:Решите convo:

В нашем случае у нас есть Convo 3x2 и мы переходим к CNN (= C + NN). Функцией объединения может быть что угодно Max, Min, Average, Mode, Mix и т. д. Я беру среднее значение.

Теперь у нас есть вектор, представляющий весь граф. И мы можем выполнить обработку этих преобразованных данных с помощью многослойного персептрона (MLP), что является третьим шагом GCNN.

Шаг 3

NN: обработка нейронной сети.

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

Для просмотра анимационного видео перейдите по ссылке ниже:

Подпишитесь на канал, чтобы увидеть больше видео об искусственном интеллекте.

Я люблю быть на связи, подписывайтесь на меня в Insta = @saqibcs

Я изо всех сил пытаюсь получить 100 первых подписчиков на среде. Пожалуйста, следуйте ForFollow.

Удачного кодирования…!!!