Как стать автором
Обновить

Графовые нейронные сети GNN в самообучающемся искусственном интеллекте

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров6.8K
Всего голосов 8: ↑4 и ↓4+3
Комментарии12

Комментарии 12

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

В 2016 году меня посетила мысль о создании самообучающегося искусственного интеллект

окей, допустим почему-бы и нет; openai, google и прочие титаны не смогли в самообучение, тренят LLM на размеченных (и отфильтрованных) людьми данных... они просто не так хороши. Просто ... не смогли формализовать задачу постановки задачи самому себе, недотёпы.

Дальше следует упоминание генетических алгоритмов, а почему "графовые нейросети" (хм, видимо, бывают древовидные и с прочими ущербными топологиями) так перспективны - нам должно быть очевидно. Дальше - что-то вроде блок-схемы алгоритма, но все узлы прямоугольники (хотя есть ветвление), или ... это не алгоритм действий, а что-то вроде UML-диаграммы компонентов, ведь там есть "пользователь" (видимо, столь-ничтожный компонент "самообучаемой графовой нейросети GNN" (так указано в заголовке, ага, масло-масляное), что он среди прочих в нижнем регистре). Хм, не понятно.

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

Это впечатляет, но всё-ещё не понятно для обывателя, а то и хуже - похоже на shuffle из набора слов [функционал, мозг, анализ, восприятие, нейроны, кластер], так и просится цитата небезызвестного критика:

Хватит трепаться, покажите мне код (с) Линус Торвальдс

В придачу к лекциям на странице курса университета были и ссылки на научные статьи и исходный код на питоне. Таким образом, стало возможным заменить громоздкий кластер на граф знаний. При этом, в качестве постоянно обучаемой модели можно использовать GNN. На примере простого графа, который содержит несколько ссылок на функции python, мы с командой разработки scisoftdev, получили только рабочие варианты последовательностей функций. Мы создали граф знаний, который состоит из ссылок на функции, ...

Так каким образом? В публикации был какой-то код, потом с ним произвели модификации, получили нейросеть которая выдаёт "последовательность указателей на функции" (надеюсь, хэх, не копии самих функций) (про арность, последовательность вызова функций и передачу аргументов умолчим, это ... очевидно и просто, нейросети легко умеют в это, и в вывод типов).

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

Видимо, последовательное выполнение функций без взрывания пайтоновской vm и было фитнесс-функцией, эмм ... тренировки (?) :D Про это ничего не сказано, видимо уже на этом этапе происходит самообучение :D

Посмотрев на сайт на английском (как-то не скрепненько) и линкедин (уоу, а он разве не забанен?!) стало ясно - серьёзная команда, и код скорее всего проприетарная разработка, нечего тут надеяться на простой и понятный пример).

На вход мы подаем массив в виде строки

python-way, не иначе ;D О квантизации умолчим, самообученный агент автоматизировал это за нас.

как видно из вывода программы

Сори, вывод забыли добавить )) Или это пасхалка в стиле "It is obvious" как во многих математических публикациях ))

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

Эх, а самообучение где? - Упс, как-то вывод работы целой команды (компании) немного о другом вышел. От "графа знаний", и прочих совковых представлениях об "экспертных системах" тошнило ещё лет десять назад.

-------

Ребят, от статьи тянет каким-то результатом отрыжки chatgpt, или чем-то ещё хуже. Интернет и так превращается в помойку, а хабр в не-торт, давайте не будем так.

Замечу, что все эти LLM (трансформеры) - частный случай весьма обширного семейства графовых нейронок, конкретно - Graph Attention Networks (GAT).

Осилил cs224w - молодец.

А вот с эссе и терминологией есть куда развиваться. Autoregressive Models и подход Self-supervised Learning легко обозвать самообучающимися. ИМХО, порог входа в область и так достаточно высок, чтобы пинать за стиль изложения :]

" ...в 2018 году. Тогда я делал ставку на GAN и генетические алгоритмы.

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

Правильно я Вас понял, что сначала Вы думали, что надо GAN и генетические алгоритмы, а теперь Вы думаете, что надо машинное обучение на графах GML и графитовые сети GNN ?

По аналогии: "сначала мы на скачках сделали ставку на номер 6, но после финиша первым номера 8, сделали ставку на номер 8"

что-то упустил, накидаю ссылочек )
По этой ссылке есть и примеры кода и ссылки на статьи.
https://github.com/NDS-VU/GNN-SSL-chapter

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

А вот с DagsHub будет сложно, там нужно регистрироваться и уметь им пользоваться, не совсем открытый доступ, даже после регистрации тяжело разобраться, но можно

Вот тут конспекты с видеокурса
http://web.stanford.edu/class/cs224w/

Если говорить про список литературы, то он большой, но из основных могу написать:
1. Graph Neural Networks: Foundations, Frontiers, and Applications (Lingfei Wu,Peng Cui,Jian Pei Liang Zhao, 2022)
2. Graph Representation Learning (William L. Hamilton, McGill University, 2020)
3. Теория графов Д. В. Карпов

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

Хватит трепаться, покажите мне код (с) Линус Торвальдс

Ссылки хорошие, Лесковец - специалист и преподаватель известный. А про что пост был, если не секрет?

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

Вообще-то, любая структура с нодами и ребрами - граф: с формальной точки зрения кластер у вас и раньше был графовым. Так-что скорее всего ничего нового вы не сделали (или не рассказали).

Есть как минимум полносвязный граф, двудольный граф, направленный граф (нейронная сеть). Если в первом случае применялась четко определенная структура, то во втором применяется полносвязный граф, из которого выделяется нужный графлет. Ну да, отличий вовсе нет, ничего нового. Какая разница между камазом и мерседесом, это все транспортные средства ))) Капец уровень аргументации. Если уж решили меня хейтить, то найдите научные статьи и математические расчеты которые опровергают мою теорию/практику, чтобы доказать что я не прав предметно. Если же у вас не хватает знаний в этой области, то моей вины здесь нет. Вам ничто не мешает пройтись по ссылкам и ознакомиться с информацией.

Это шайтан машина от инопланетян, без рофлов аи это конечно оч крутая штука но как говорится можно и без него :P

Задача состоит в том, чтобы получить среднее значение массива имея всего
три функции: преобразование строки в массив, преобразование массива в
строку и вычисление среднего значения массива.

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории