Введение
Прошлым летом в свет вышла новая архитектура нейронных сетей под названием Kolmogorov-Arnold Networks (KAN). Основная статья есть в открытом доступе на архиве по следующей ссылке. На момент выхода статьи эта новость произвела фурор в мире машинного обучение, так как KAN показывали существенный прирост в качестве аппроксимации различных сложных функций. На фото ниже видно, что ошибка новых сетей падает значительно быстрее при увеличении числа параметров.

Однако, за все приходится платить, и цена таких маленьких значений функции ошибки - медленное обучение: KAN обучается примерно в 10 раз медленнее, чем старый добрый MLP. Из всего этого возникает вопрос: насколько все же уместно использование новой архитектуры вместо привычных всем MLP?
Конечно же, ответ на этот вопрос не столь однозначный: кому-то больше важна скорость обучения и работы модели, кому-то качество предсказаний. В поисках ответа я пришел к интересной задаче, которая легла в основу моей курсовой работы (полная версия по ссылке) и которую я собираюсь здесь изложить.
Разделение глубины и постановка задачи
Один из способов сравнить архитектуры - выявить так называемое свойство разделения глубины. Для MLP сетей оно заключается в следующем: пусть есть MLP сеть глубины
и MLP сеть
глубины
, при этом
, а ширина обоих сетей полиномиальна относительно размерности
входного пространства (далее обозначаем через
) если существует функция
такая, что она приближается (в каком именно смысле будет понятно позднее) сетью
, но не приближается
, то говорят, что выполняется свойство разделения глубины между
и
.
Моя идея заключалась в том, чтобы попытаться установить подобное свойство, которое разделяло бы KAN и MLP. Конкретно, вопрос ставился следующим образом: пусть - KAN глубины
, ширины
и
- MLP сеть той же глубины и полиномиальной ширины. Существует ли такая функция
, что она приближается
, но не приближается
?
Для того, чтобы ответить на этот вопрос, нам придется вникнуть в устройство KAN, рассмотреть один из известных результатов разделения глубины для MLP сетей глубины 2 и 3 (ширины ), а также объединить это все с помощью результата по преобразованию кусочно-линейного (станет понятно далее) KAN в MLP и обратно. Итак, начнем по порядку.
1. Устройство KAN
Для начала определим, что такое слой KAN.
Определение: Слой сети КАN (KAN-слой) с входной размерностью и выходной размерностью
задаётся матрицей
вещественных функций одной переменной
, которые мы называем функциями активации. Он представляет функцию
На фото ниже представлен в схематичном виде слой KAN (для удобства связи проведены только между входом и первым выходом, т.е ).

Теперь определим KAN как композицию слоев.
Определение: Сеть Колмогорова-Арнольда (KAN) глубины — это композиция
KAN-слоёв
.
Например, в случае, когда последний слой имеет выходную размерность 1, функция, задаваемая KAN, будет иметь такой страшный вид:
где — входная размерность
-го KAN-слоя
.
Добавлю также пару слов про механизм обучения KAN. Изначально все задаются в виде сплайнов и некоторой нелинейной добавки
, т.е
где
есть линейная комбинация B-сплайнов. Для тех, кто не знаком со сплайнами, добавлю: сплайн - это просто кусочно-полиномиальная функция (многочлен фиксированной степени на каждом отрезке разбиения), а B-сплайны - базис в пространстве таких функций. На фото ниже можно посмотреть пример интерполяции функции сплайнами разной степени и B-сплайнами.

Сейчас и далее не столь важно, как строятся эти самые сплайны, мы хотим понять основной механизм обучения. При инициализации ,
и
определяется в соответствии с инициализацией Xavier. Далее происходит процесс обратного распространения ошибки: вычисляется градиент функции потерь по параметрам модели, в которые входят коэффициенты
в реализациях сплайнов (обычно берутся кубические сплайны и итоговые функции являются гладкими), а также веса
и
, затем делается шаг в направлении антиградиента и процесс повторяется снова. При обучении происходит так называемое расширение сетки: каждые k шагов обучения мы увеличиваем число точек разбиения отрезков для аппроксимации сплайнами, тем самым увеличивая число параметров
сети.
2. От KAN к MLP и обратно
Для начала введем несколько определений, которые понадобятся в этом разделе:
Определение: Кусочно-линейный KAN - это KAN, в котором все функции - кусочно-линейные.
Определение: Через будем обозначать семейство функций, задаваемых с помощью кусочно-линейного KAN глубины
и ширины
. Здесь
- число сегментов кусочно-линейных функций
.
Определение: Через будем обозначать семейство функций, задаваемых с помощью ReLU MLP сети глубины
и ширины
.
В попытках найти подход к изначальной задаче о разделении глубины я наткнулся на статью Relating Piecewise Linear Kolmogorov Arnold Networks to ReLU Networks, в которой показано, что кусочно-линейный KAN ширины и глубины
может быть представлен ReLU MLP сетью глубины на 1 больше, ширины
. Более строго, верна следующая теорема:
Теорема: Для любого кусочно-линейного KAN существует ReLU-сеть
такая, что
для всех
, при этом после перехода к MLP глубина увеличивается на 1, а ширина становится равной
, где k - число сегментов кусочно-линейных функций
. (верно и для
).
В этой же статье доказывается и обратный факт:
Теорема: Пусть — это MLP-сеть с функциями активации из семейства
. Тогда существует KAN
с функциями активации, которые являются либо аффинно-линейными, либо принадлежат
, такой что
для всех
, при этом глубина и ширина сети не меняются при переходе к KAN. В частности, если
— это ReLU-сеть, то существует кусочно-линейный KAN
, для которого
при всех
.
Из этих теорема мы можем понять, что
В частности
Иначе говоря, любой двухслойный кусочно-линейный KAN ширины может быть реализован в виде трехслойной ReLU MLP сети, имеющей полиномиальную ширину (на всякий случай нужно уточнить, что ширина у них не обязана совпадать, она просто должна быть полиномиальной относительно входной размеренности).
Таким образом, интерес представляет следующий вопрос: если мы можем представить любой двухслойный кусочно-линейный KAN трехслойной ReLU MLP, может мы можем представить его ограничившись лишь двумя слоями?
Отрицательный ответ на этот вопрос вел бы к отсутствию вложения
а следовательно было бы установлено свойство разделения глубины между двухслойным кусочно-линейным (а значит и произвольным) KAN и двухслойной ReLU MLP (везде ширина предполагается ). То есть, существовала бы такая функция
, что она реализуется двухслойным KAN, но не реализуется двухслойной ReLU MLP.
На самом деле, мы можем пойти наоборот: построим функцию , а затем покажем, что она удовлетворяет нужным условиям. Как раз этому посвящены следующие разделы.
3. Поиск искомой функции
В этом разделе нам понадобятся 2 предположения об используемых активационных функциях MLP-сетей:
Предположение 1: Для заданной функции активации существует константа
(зависящая только от
), такая что выполняется следующее:
Для любой -липшицевой функции
, которая постоянна вне ограниченного интервала
, и для любого
существуют скаляры
, где
, такие что функция
удовлетворяет условию:
Предположение 2: Функция активации является (лебегово) измеримой и удовлетворяет условию:
для всех и некоторых констант
.
Стоит заметить, что эти два предположения выполняются для многих известных активационных функций, в частности для ReLU. Первое предположение говорит о том, что мы можем приблизить любую липшицеву функцию с ограниченным носителем с помощью двухслойной MLP сети с данной активационной функцией, а второе ограничивает рост активационной функции некоторым полиномом.
В процессе поиска подходящего кандидата на роль "плохой" функции я вспомнил про статью 2016 года с результатом разделения глубины для MLP сетей глубины 2 и 3 - The Power of Depth for Feedforward Neural Networks. Основным результатом данной работы является следующая теорема:
Теорема: Предположим, что функция активации удовлетворяет предположению 1 с константой
, а также предположению 2. Тогда существуют универсальные константы
такие, что для любой размерности
найдется вероятностная мера
на
и функция
со следующими свойствами:
Функция
ограничена в
, имеет носитель на
и может быть представлена 3-слойной нейронной сетью с шириной не более
.
Любая функция
, представленная двухслойной сетью с шириной не более
, удовлетворяет неравенству:
То есть, теорема говорит о том, что существует некоторая функция и вероятностная мера
, что
не приближается никакой двухслойной ReLU MLP сетью полиномиальной ширины по норме
, но трехслойной сети уже достаточно для ее приближения.
Моя идея заключалась в том, что такая функция может подойти и для моей задачи. Для этого надо было проверить, возможно ли приблизить ее с помощью двухслойного кусочно-линейного KAN.
Перед тем, как доказывать, что действительно приближается KAN-ом, обсудим ее построение.
Для начала зададим вероятностную меру на
. Это будет такая мера, что ее плотность имеет вид
, где
- преобразование Фурье индикатора единичного евклидова шара
, здесь
- множитель, такой, что
. График такой плотности для
приведен ниже, а явная формула имеет вид
где - функция Бесселя первого типа, порядка
. (график для
ниже)


Идея брать именно такую меру исходит из того, что носитель двухслойной нейронной сети представляет из себя объединение многомерных трубок ограниченного радиуса, проходящих через начало координат. А это значит, что функция (преобразование Фурье произведение
и
) должна иметь большую часть своей
-массы далеко от начала координат. Но
(справа - свертка преобразований Фурье), а свертка с индикатором единичного шара как раз "разносит" массу от центра (это известный факт для
, но из построения
это будет верно и для
). Подробнее об этом можно прочитать в исходной статье в разделе "Proof Sketch".
Теперь зададим как комбинацию индикаторов некоторых "тонких" оболочек:
где ,
и
, где
- непересекающиеся интервалы ширины
, значения которых лежат в пределах
. Более подробное построение можно посмотреть в исходной статье, либо в полном тексте моей курсовой.
4. Приближение с помощью KAN
Теперь нам остается проверить, что построенная в предыдущем разделе функция действительно приближается двухслойным кусочно-линейным KAN. Тогда, в силу того, что двухслойной ReLU MLP она не приближается, будет получена невложимость классов .
Начнем с переформулировки Предположения 1 из предыдущего раздела для архитектуры KAN:
Предположение 1(KAN): Пусть - активационная функция (сплайн с
сегментами), тогда для любой
-липшицевой функции
, такой, что
вне интервала
и для любого
найдется
, такое, что верно:
Заметим, что для кусочно-линейных сплайнов это предположение выполняется. Отрезок можно разбить на K равных частей с шагом
, затем строим сплайн
, совпадающий с
в точках
:
Оценим точность приближения, так как является
-липшицевой, то на каждом отрезке
:
Чтобы выполнялось , достаточно положить
, т.е
.
Также нам понадобится следующая лемма из оригинальной статьи:
Лемма 1: Предположим, что . Для любого выбора
,
существует
-липшицева функция
, носитель которой содержится в
и принимающая значения в
, удовлетворяющая условию
Здесь - большая числовая константа, которая должна быть больше определенного порога, также она участвует в построении
(подробнее в оригинальной статье).
Из данной леммы уже видно, что наша "плохая" функция может быть приближена по -норме некоторой липшицевой функцией многих переменных. Заметим также, что значения
зависят лишь от нормы
. Осталось понять, можем ли мы приближать двухслойным кусочно-линейным KAN такие липшицевы функции, зависящий от нормы входного вектора. Об этом следующая лемма:
Лемма 2: Предположим, что функция активации удовлетворяет предположению 1(KAN). Пусть
-
-липшицева функция с носителем на
, где
. Тогда для любого
существует функция
, представимая двухслойным кусочно-линейным KAN ширины
, в котором число сегментов кусочно-линейных функций
, такая что
Доказательство: Определим -липшицеву функцию
которая константа вне отрезка . Такими же свойствами обладает и функция
определенная на . Применим Предположение 1(KAN) к функции
, получим функцию
такую, что
Такое неравенство верно при . Следовательно, функция
будет иметь вид .
Введем теперь следующую функцию:
Так как является
-липшицевой с носителем в множестве
, отсюда следует, что
является
-липшицевой с носителем в
. Снова применим предположение 1(KAN) к функции
с
. Получим функцию
, что
Теперь рассмотрим композицию , которая из определений
и
имеет вид:
Т.е представляет собой двухслойный KAN ширины .
Покажем, что . Для любого
из
мы имеем:
Рассмотрим каждое из трёх абсолютных значений:
Первое абсолютное значение не превосходит
согласно построению
.
Второе абсолютное значение, поскольку
является
-липшицевой, не превосходит
, что по построению
составляет не более
.
Что касается третьего абсолютного значения: если
, то
и значение равно нулю. Если
, то легко проверить, что
, и поскольку
непрерывна и имеет носитель на
, следует, что
, и снова получаем ноль.
Суммируя вышесказанное, получаем , что и требовалось. Лемма 2 доказана.
Наконец, объединим Лемму 1 и Лемму 2 для доказательства того, что функция приближается двухслойным KAN:
Теорема: Существует универсальная константа такая, что выполняется следующее. Пусть
. Предположим, что
и функции
построены как указано выше. Для любого выбора
,
существует функция
, представимая двухслойным кусочно-линейным KAN ширины
, со значениями в
, такая что
Доказательство: Сначала применим Лемму 2, чтобы получить -липшицеву функцию
со значениями в
, удовлетворяющую условию
Затем используем Лемму 2 с параметрами ,
,
( тогда
) для построения функции
, представимой двухслойным кусочно-линейным KAN ширины
, такой что
. Это означает, что
, а также что значения
лежат в
(поскольку
). Объединяя это с равенством выше и используя неравенство треугольника, завершаем доказательство.
Подведение итогов
Проделав такую большую работу, мы показали, что существует функция такая, что она не может быть приближена двухслойной ReLU MLP ширины
, но может быть приближена двухслойным кусочно-линейным KAN ширины
с числом сегментов
. Иначе говоря, доказано отсутствие вложения
Таким образом, существуют функции, которые не могут быть приближены старой архитектурой MLP, однако могут быть реализованы с помощью KAN (даже в случае кусочно-линейных активационных функций у последнего). Конечно же, этот результат в большей степени теоретический, но он показывает, что в новой архитектуре может быть заложена куда большая выразимостная мощность, чем в классической.
Flokis_guy
Статья отличная. И благодаря подобным хабр ещё торт.
В целом сравнение через выразительную способность отличное. Хотя двухслойный MLP имеет универсальную аппроксимацию в C и Lp. Ширина его при желаемой точности растет экспоненциально, а не полиномиально. Но с другой стороны, так как KAN в общем случае обобщает MLP имея произвольную функцию
в сравнении с w*activation(x). Где в первом слое активация является линейной. И вот тут интересный момент, если представить MLP как двухслойный KAN, то выходит, что это и портит всю ситуацию. И тут возникает вопрос, а честно ли так сравнивать, так как линейная функция является сплайном первого порядка, но не любой сплайн это линейная функция вида w*x+b.
E_P_H_E_M_E_R_I_S Автор
Спасибо за приятный отзыв! Как я понял, вопрос про то, что работая только с кусочно-линейными KAN мы теряем как раз то, что и обобщает KAN - произвольные сплайны. Да, это действительно так, я рассматриваю лишь частный случай новой архитектуры, самый простой, в некотором смысле. Но даже так получается, что с точки зрения выразимостной мощности при равном числе слоев (в нашем случае 2) KAN оказывается мощнее.
Интересно было бы посмотреть дальше на KAN уже в общем виде, но там есть свои сложности, например, произвольный KAN уже не перестроить в классическую MLP, нужно добавлять специальные активационные функции с покоординатным возведением в степень.