Несколько дней новогоднего волшебства:
Успейте начать обучение в 2018-ом году со скидкой до 30%!
Выбрать курс

Свёрточные сети на графах

ML_Deep_19.06_SITE.png

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

1.png

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

В 2015 году учёные из Гарвардского Университета предложили новый подход для работы с графами — Свёрточные сети на графах (Convolutional Networks on Graphs). Решая задачу об извлечении признаков из графового представления молекул, они предложили следующий подход.

Пусть Screenshot_3.pngсостояние вершины «v» в момент времени «t». Аналогично, Screenshot_4.png— состояние ребра между вершинами «v» и «w» в момент времени «t». Тогда назовём сообщением: Screenshot_5.png В этой формуле обе суммы берутся по всем w соседним с v, а скобки обозначают конкатенацию векторов. Вычислив для каждой вершины её сообщение, мы теперь можем обновить её состояние: Screenshot_7.png где Screenshot_8.png— своя матрица параметров для каждого временного шага и для каждой степени вершины 𝑑𝑒𝑔(𝑣). После нескольких таких шагов вычисляется функция от всего графа: Screenshot_9.png где f — нейронная сеть, а Wt — матрица «выходных» весов, своя для каждого временного шага. 2.png До этого момента мы никак не коснулись того, почему же такая модель получила название «свёрточной». Но на самом деле, если произвольное изображение вы представите в виде графа, каждая вершина которого соответствует пикселю, её состояние — просто цвет, а рёбра будут только между соседними пикселями, то станет понятно, что свёртки на графах — простое обобщение классических свёрточных сетей.

Такой подход имеет свои плюсы и минусы, и, безусловно, за три прошедших года в работе с графами всё сильно изменилось.

Есть вопросы? Напишите в комментариях!

Автор
0 комментариев
Для комментирования необходимо авторизоваться