«Что, если бы мы могли напрямую ввести компьютерную сеть в виде графика и использовать нейронные сети для прогнозирования… возможно, нескольких компьютеров, наиболее подверженных атакам хакеров?»
- Доктор Таймен Тилеман

У стажировки в IISc есть свои плюсы, одно из которых - выступления исследователей из наиболее актуальных технологических областей. Мне посчастливилось недавно присутствовать на выступлении, организованном Обществом обработки сигналов IEEE, Бангалорским отделением и отделом электротехники IISc. Текущий технический директор mind.ai и бывший выпускник лаборатории Джеффа Хинтона (Университет Торонто) доктор Таймен Тилеман познакомил нас с концепцией сверточных нейронных сетей с графами в течение часа! Я попытался записать остатки сеанса с моей точки зрения. Это для энтузиастов искусственного интеллекта и глубокого обучения.

Мы привыкли сосредотачиваться на сеточных данных в евклидовой области с определенными соседями. Например, в случае традиционной CNN мы знаем окрестности пикселя изображения, особенно при применении фильтров в сверточных слоях или слоях объединения (я подробнее остановлюсь на этом чуть позже). Представьте себе сценарий, в котором мы хотим ввести данные в виде графа с сохранением всех соседних связей. Многие сценарии требуют, чтобы данные анализировались в неевклидовом пространстве в виде графиков. Компьютерные сети, социальные сети, исследования по генетике и химическим связям - все это содержит данные в виде графиков.

Графические CNN по сравнению с Grid CNN

«Графические CNN подпадают под самые современные исследования, когда дело доходит до глубокого обучения».
- Доктор Таймен Тилеман

Традиционные сеточные CNN имеют две характеристики, которые создают проблемы в случае графических CNN. Трудно назначать веса узлам, если относительное расположение узлов не в формате сетки. Как узнать, какому узлу назначить w1, w2 или w3, без пространственной структуры 3x3 или NxN? Ниже представлены проблемы, с которыми пришлось столкнуться при разработке графической CNN.

  • Район не определен (Какие соседи?)
  • Весовые векторы, относящиеся к соседям, неизвестны (какой вес должен быть назначен какому соседу?)

Таким образом, исследователи начали изучать методы локализации. В семантической сегментации существует внутреннее противоречие между семантикой и местоположением: локальная информация решает где, тогда как глобальная информация пытается разрешить что. 1x1 CNN или полностью сверточные сети объединяют мелкую внешнюю информацию с глубокой грубой семантической информацией. Следовательно, хотя использование фильтров 1X1 может показаться немного абсурдным из-за того, что соседние пиксели не учитываются для свертки, преобразование полностью связанных слоев в сверточные слои с помощью этой концепции оказывается эффективным с точки зрения локализованной информации. Метод, предложенный Джонатаном Лонгом и соавт. учится от начала до конца. Для решения этих двух проблем ранее была предложена следующая архитектура:

  • Используйте одинаковый вес w для определенного слоя, для определенного узла графа (вместо w1, w2, w3…). Это решает проблемы с расположением.
  • Каждый уровень будет иметь одинаковую архитектуру с точки зрения узловых соединений. Это решает проблему микрорайонов.

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

Модификация этого условия заключалась бы в том, чтобы иметь одинаковые веса для непосредственных соседей и другой вес для цикла, как показано. Кроме того, сеть графов внутри сети графов может хранить информацию о локальных узлах для каждого узла. Это вдохновлено архитектурой «Сеть в сети», где каждый узел представляет собой другую меньшую сеть, а не просто вычисляет свертку, за которой сразу следует нелинейная активация! После этого у публики возникло много сомнений; множество из них - открытые вопросы.

Вопросы из зала

  1. Почему мы не можем использовать матрицу смежности для представления графа, а затем использовать для него стандартную 2D CNN?
    Графические CNN также предназначены для восстановления связности между различными слоями. Мало того, что матрица будет чрезвычайно разреженной, информация о связности будет потеряна на последующих уровнях. Кроме того, это не помогает в одноразовом представлении узла, скажем, узла A, связанного с узлом B и узлом C одновременно.

2. Можно ли использовать концепции графической CNN для концепции Grid CNN?
Да. По сути, представления сетки можно рассматривать как простую форму представлений графов с известными и структурированными соседями. Хорошим предложением для этого было то, что представление графа можно рассматривать как представление составной или плоской сетки, где каждый слой может представлять центральный узел с весом w для пространственного места, где присутствуют другие соседние или подключенные узлы (как показано).

3. Что, если 2 узла графа не связаны напрямую?
ConvNets всегда следуют иерархии, когда дело доходит до передачи информации. Таким образом, если два узла не связаны напрямую, их информация будет объединена с соответствующими весами на более глубоких уровнях.

4. Что, если нам нужно рассмотреть взвешенные графы?
В настоящее время они работают над методами, при которых веса ссылок представлены в виде узлов.

5. Что, если два графика имеют одинаковые относительные степени?
Соответствующие веса будут различаться, потому что при такой идеологии принимаются во внимание две вещи - связность (которая в данном случае будет одинаковой) и индивидуальный идентификатор узла (который будет зависеть от информации).

6. Если мы будем использовать концепцию одинаковых весов для слоев сетки, будет ли это эффективным?
Нет. Меньшие веса уменьшают синапсы и способность к обучению. Графические CNN используют это как новый подход, но в идеале разные веса оказались бы лучшим подходом.

Открытые вопросы

  • Можем ли мы распространить эту концепцию на RNN?
  • Можем ли мы распространить эту концепцию на ориентированные графы?
  • Можем ли мы обобщить это как для Graph CNN, так и для Grid CNN?
  • Как мы можем представить информацию о ссылках? (Например, будь то одинарная, двойная или тройная связь между атомами).
  • Как мы можем лучше распределять различные веса?
  • GPU и другое оборудование для повышения вычислительной эффективности.

Примечание. Это краткое изложение часового сеанса, и я не предлагаю ни одной из методик. Не стесняйтесь поправлять меня или предлагать свои предложения в разделе комментариев. Также прошу прощения за мои рисунки: P