Теория графов и нейронные сети в распознавании объектов — в чем преимущество графов?
Доброго дня! Получил задание расписать преимущества теории графов перед нейронными сетями в распознавании объектов.
Копаюсь - пока нашел лишь то, что нейронные сети необходимо все время обучать для достижения высокоточных результатов, а так же их работа завязана на мощной технической части, тогда как графы менее ресурсоемкие и лучше подходят для задач малого и среднего размера.
То есть для пункта "привести доказательства" мало что готово, посему прошу помощи - какие ресурсы стоит использовать, статьи, книги, лекции?
Заранее спасибо!
Первый раз слышу, чтобы какой-то граф распознал образ.
А вот нейронные сети через свёрточные фильтры, внимание (attention) и трансформеры нормально справляются.
Я попробую рассказать своё видение проблемы. Я не уверен что я прав но напишу как мне кажется.
Есть две модели представления нейронных сетей.
1) Матрицы (иногда называют тензоры). Имеют аппаратную реализацию в новых TPU (Tensor processor unit). Кажется Гугл сейчас продает услугу аренды таких сетей для задач обучения. Подходят для плотного заполнения нейронных слоём когда нейроны связаны каждый-с-каждым. При этом даже если связи нет (коэффициентик равен 0.0) тем не менее пространство все равно используется и этот ноль участвует в расчете.
Расчет обучения (как я его себе понимаю) должен сводится к перемножению входного векртора на всю полседовательность матриц. И также к применению функции активации между слоями. Имеено за счет функции активации и идет обучение (там есть своя доказательная база) и идет декомпозиция на слои. Если бы функции не было - тогда можно было-бы все слои (константы) схлопнуть в 1 большую матрицу. Вот так и бегает умножение туда-сюда. Обучение - проверка ошибок. Коррекция. И снова обучение.
2) Графы. Это вырожденный вариант матриц когда нулей оооочень много то чтоб зря не меремножать нули можно модель вычислений представить в виде графов. Математически это дает экономию в виде пропуска ненужных вычислений. И должна быть экономия в виде памяти для коэффициентов каждого слоя. На практике представить граф компактно очень сложно. Если кто из вас делал свои графы - то вы знаете что жрут они память как в не в себя, и никогда не угадаешь сколько надо выделить под вершину или под ребро чтоб не было пере-аллокаций и потерь.
Если вы хоть раз открывали учебники по НС типа Каллана или Хайкина то там с первых страниц идет описание
персептрона или 1-слойного нейрона в виде рисунка со стрелочками. Это и есть граф. Таки рисунки любят преподаватели в универах и всякие теоретики.
В старых математических пакетах (еще в 80х годах) есть целые мат-библиотеки которые работают с разреженными матрицами (sparsed matrices). Это - тоже наивные попытки создать экономию. Такая дырявая матрица как раз отражает граф где вершины - это столбцы и строки а рёбра - это ненулевые коэффициенты.
Реализаций их - целая куча. Математики любят решать системы дифуров в таких структурах. Там своя специфика. Тоже есть много нулей. Тоесть между графом и дырявой матрицей есть полиморфизм.
Есть поддержка таких дырявых структур (Vector.sparse) и в биг-дате (Spark). Тоже для нужд ML.
Тоесть если ваш нейрончик дырявый - то он полюбит графы и дырявые матрицы. Если он - плотняк
заполнен коэффициентами - то берите обычные матрицы.
Все что я написал это просто моё чортово ИМХО. И не стоит это воспринимать за правду.
aptypuoh, не думай о графах вообще. Возьми простую задачу (2х слойный) нейрончик учится распознавать рукописные буквы (стандартный набор MNIST) и напиши на любом языке. Хоть на JavaScript. И пока будешь делать у тебя многие вопросы отпадут.
Как только вам предоставят доказательства превосходства графов над нейросетями, вы легко ответите, почему.
В действительности, нейросеть - это и есть большой граф. Поэтому говорить о преимуществах графов над графами некорректно.
Не так хорошо владею вопросом как Вы, очевидно, потому не понял, как можно использовать в ответе то, что написали выше. Просить ответ на вопрос в лоб глупо, думаю, но пока иных идей нет
Да, нейросеть ещё нужно обучить и всё такое, но в результате нейросеть в любом случае выдаст некий финальный граф, который и будет распознавать объекты.
То, что вы подразумеваете под теорией графов, похоже, статический захардкоженный человеком граф без машинного обучения. Но я не могу гадать на кофейной гуще.