paint-brush
Сравнение сети Колмогорова-Арнольда (KAN) и многослойных перцептронов (MLP)к@aibites
927 чтения
927 чтения

Сравнение сети Колмогорова-Арнольда (KAN) и многослойных перцептронов (MLP)

к Shrinivasan Sankar8m2024/06/29
Read on Terminal Reader

Слишком долго; Читать

KAN бросают вызов многослойным перцептронам, которые сегодня являются фундаментальными для ВСЕХ LLM. Но смогут ли они выжить и добиться успеха? Давайте сравним и сопоставим.
featured image - Сравнение сети Колмогорова-Арнольда (KAN) и многослойных перцептронов (MLP)
Shrinivasan Sankar HackerNoon profile picture
0-item

Мы приняли классические многослойные перцептроны (MLP) как нечто само собой разумеющееся и построили на их основе множество архитектур. MLP являются неотъемлемой частью каждой модели LLM или фонда, которую мы видим сегодня, например,chatGPT, LLAMA, DALLE и CLIP. Или даже простые модели распознавания, такие как YOLO-v*.


А если я вам сейчас скажу, что у нас появился конкурент для тех самых МЛП? В городе появилась новая газета под названием «Сеть Колмогорова-Арнольда», или сокращенно КАН, которая бросает вызов МЛП. Если решение, которое они предлагают, действительно масштабируется, то мы сможем получить следующее поколение нейронных сетей, которые сделают нас еще на шаг ближе к общему искусственному интеллекту (AGI).


В то время как MLP содержат функции активации, такие как ReLU, сигмовидная мышца, tanh, GeLU и т. д., KAN предлагает нам изучить эти функции активации. Итак, как KAN это делает? Какая математика стоит за этим? Как это реализовано? И как мы вообще тренируем KAN?

Я постарался изо всех сил обобщить здесь статью KAN. Вы можете либо прочитать эту суть, либо прочитать статью длиной 48 страниц!

Визуальное объяснение

Если вы похожи на меня и хотите визуализировать вещи, чтобы лучше понять, вот видео-форма этой статьи:


МЛП — проблема

Начнем с MLP, с которыми мы хорошо знакомы. MLP состоят из узлов и ребер. В каждом узле мы суммируем входные данные и применяем такие активации, как ReLU, GeLU и SeLU, для получения выходных данных для этого конкретного узла.

Рисунок из статьи, иллюстрирующий разницу между MLP и KAN.


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

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

Полиномы и аппроксимация кривой

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

Анимация, иллюстрирующая функции x^2 и x^3.

Например, предположим, что у нас есть уравнение степени 3, где y=x³, как показано желтой кривой выше. И еще одно уравнение степени 2, y=x², как показано синей кривой на анимации выше. На этой визуализации мы видим, что при использовании x² никогда не удастся достичь кривизны, достигаемой при использовании x³.


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

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

Используя полином второго порядка , мы не сможем найти границу между ними, поскольку кривая x² имеет форму «U», а данные имеют форму «S». Хотя для этих данных подходит использование , оно требует дополнительных вычислительных затрат. Другим решением может быть использование , когда входной сигнал x отрицательный, но использование - , когда x положительный (синяя кривая, нарисованная рукой на рисунке выше).

Все, что мы сделали, — это добавили два полинома более низкой степени, чтобы получить кривую с более высокой степенью свободы. Именно эта идея лежит в основе сетей KAN.

Игрушечная проблема

Давайте теперь возьмем немного более сложную игрушечную задачу, где мы знаем, что данные генерируются с помощью простого уравнения y=exp(sin(x1² + x2²) + sin(x3² + x4²)) . Итак, у нас есть 4 входные переменные и три операции: экспонента, синус и квадрат. Итак, мы можем выбрать четыре входных узла с тремя слоями, каждый из которых предназначен для трех различных операций, как показано ниже.

Простая сеть KAN с 4 входами, 3 уровнями для 3 базовых функций.

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

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


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

Сплайны и B-сплайны

Фундаментальная идея B-сплайнов заключается в том, что любую данную функцию или кривую можно представить как комбинацию более простых функций или кривых. Эти более простые функции называются базисными функциями. Например, возьмем красную кривую на рисунке ниже. Для простоты попробуем представить это всего с помощью двух базисных функций.


Мы можем разбить его на 3 пункта, поскольку собираемся представить его в виде суммы двух базисных функций. Эти точки называются узлами. Базисных функций может быть любое количество n . Параметром, который управляет тем, как этот базис функционирует в комбинациях, является c. Когда мы «соединяем» две кривые, в узлах могут быть разрывы. Решение состоит в том, чтобы ограничить кривизну кривых в узлах, чтобы мы получили плавную кривую. Например, мы можем ограничить наклон двух кривых одинаковым в узлах, как показано зеленой стрелкой на рисунке ниже.

Мои каракули для иллюстрации B-сплайнов и базисных функций.

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

Сплайновые сетки и детализация KAN

KAN представляют новый способ обучения, называемый мелкозернистым . Все мы знакомы с тонкой настройкой, при которой мы добавляем в модель больше параметров. Однако в случае мелкозернистости мы можем улучшить плотность сплайновых сеток. Это то, что они называют расширением сетки.

Часть рисунка из статьи, показывающая тонкую настройку, эквивалентную точной настройке стандартной нейронной сети.

Как мы видим на рисунке выше из статьи, мелкозернистость просто делает сетки B-сплайнов плотными, чтобы они стали более репрезентативными и, следовательно, более мощными.

Вычислительная сложность

Одним из недостатков сплайнов является то, что они рекурсивны и требуют больших вычислительных затрат. Их вычислительная сложность составляет O(N²LG), что выше обычной сложности O(N²L) для MLP. Дополнительная сложность возникает из-за интервалов сетки G.

Авторы защищают эту внутреннюю проблему, показывая, что:

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

Графики этих защит мы увидим в разделе результатов. А пока давайте более подробно рассмотрим еще одну особенность KAN.

Интерпретируемость и выбор слоев KAN

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

  • Разреженность. Мы начнем с более крупной, чем ожидалось, сети KAN и введем регуляризацию, введя норму L1 функции активации вместо входных данных, как мы обычно делаем с машинным обучением.
  • Обрезка. После обучения разреженной сети мы можем удалить ненужные узлы, которые находятся ниже определенного порога по заданным критериям или баллам.
  • Символизация. Когда мы смутно знаем, какая функция представляет собой данные данные, мы можем установить несколько узлов для выполнения этой функции. Это называется символизацией. Например, если мы работаем со звуковыми волнами, большая часть данных имеет синусоидальную форму, поэтому мы облегчаем себе жизнь, устанавливая некоторые узлы как синусоидальные. Платформа позволяет нам сделать это, предоставляя интерфейсную функцию fix_symbolic(l,i,j,f) , где l, i, j — уровень и расположение узлов, а f — функция, которая может быть sine, cosine, log, etc

Различные шаги для обучения модели KAN

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

Различные этапы суммированы на рисунке выше. Мы начинаем с большой сети и разрежаем ее (шаг 1), сокращаем полученную сеть (шаг 2), устанавливаем некоторую символику (шаг 3), обучаем сеть (шаг 4) и, наконец, получаем обученную модель.

Эксперименты и результаты

Используя шаги, упомянутые выше, они обучили сети KAN решению пяти различных игрушечных задач, чтобы продемонстрировать их эффективность и сравнить их с MLP. Основные выводы из сравнения:

  • KAN обучается намного быстрее, чем MLP, что снижает присущую ему вычислительную сложность.
  • KAN может сделать с меньшим количеством параметров то, что MLP может сделать с гораздо большим количеством параметров.
  • KAN сходятся очень плавно с быстро уменьшающимися потерями по сравнению с MLP.

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

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

Катастрофическое забвение

Следующий вывод заключается в том, что KAN намного лучше, чем MLP, решают проблему катастрофического забывания. Если мы подаем данные последовательности для непрерывного обучения, KAN, похоже, запоминают прошлые данные гораздо лучше, чем MLP. Это показано на рисунке ниже, где KAN воспроизводит 5 фаз в данных, но MLP с трудом.

Рисунок из статьи, показывающий, что KAN лучше справляются с катастрофическим забыванием, чем MLP.

Другие результаты

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

Выбор между КАН и МЛП

Они привели рисунок ниже, чтобы помочь нам понять, когда следует выбирать KAN вместо MLP. Итак, выбирайте KAN, если:

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

Выбор между фигуркой КАН и МЛП из бумаги

В противном случае MLP все равно выиграют.

Выкрикивать

Если вам понравилась эта статья, почему бы не подписаться на меня Твиттер где я каждый день недели делюсь обновлениями исследований ведущих лабораторий искусственного интеллекта?

Также прошу подписаться на мою YouTube канал где я наглядно объясняю концепции и статьи ИИ.

Обсуждение и вывод

По моему мнению, KAN не могут заменить MLP в плане того, как трансформеры полностью охватили ландшафт НЛП. Скорее, KAN окажутся полезными для решения нишевых задач по математике и физике. Даже в этом случае я чувствую, что нам нужно еще много улучшений. Но для решения проблем больших данных, которые решаются с помощью базовых моделей, KAN предстоит пройти долгий путь, по крайней мере, в их нынешнем состоянии.

Более того, подход к обучению и проектированию архитектуры KAN имеет тенденцию отклоняться от стандартного способа проектирования и обучения современных нейронных сетей. Тем не менее, страница GitHub уже имеет 13 тысяч звезд и 1,2 тысячи форков, что указывает на то, что она к чему-то готова. Давайте подождем и посмотрим это пространство.