KAN: Kolmogorov-Arnold Networks
Ziming Liu, Yixuan Wang, Sachin Vaidya, Fabian Ruehle, James Halverson, Marin Soljačić, Thomas Y. Hou, Max Tegmark
Статья:
https://arxiv.org/abs/2404.19756
Код:
https://github.com/KindXiaoming/pykan
Docs:
https://kindxiaoming.github.io/pykan/
Twitter:
https://x.com/zimingliu11/status/1785483967719981538
Yes, we GAN! Yes, we KAN!
Свежую статью про KAN не расшарил за последние дни только ленивый (я — ленивый). Но обзоров по сути при этом довольно мало. Попробуем.
Авторы предлагают альтернативы классическим многослойным персептронам (MLP) под названием
сети Колмогорова-Арнольда (Kolmogorov-Arnold Networks, KANs). Идея в том, что фиксированная для нейрона в MLP функция активации в KAN переезжает в изменяемую часть и становится обучаемой функцией (параметризуется сплайном) вместо веса. Это вроде бы небольшое изменение приводит к большой разнице.
Если отойти на шаг назад, то классические MLP опираются на
Универсальную теорему аппроксимации (Universal Approximation Theorem, UAT), она же
Теорема Цыбенко (
https://web.njit.edu/~usman/courses/cs675_fall18/10.1.1.441.7873.pdf), говорящая, что однослойная сеть прямого распространения с сигмоидальной функцией активации может аппроксимировать любую непрерывную функцию многих переменных с любой заданной точностью при условии достаточного количества нейронов и правильного выбора весов. После этой теоремы было и много других её вариаций (
https://en.wikipedia.org/wiki/Universal_approximation_theorem). Сам Джордж Цыбенко, кстати, ныне здравствующий американский математик и инженер (
https://engineering.dartmouth.edu/community/faculty/george-cybenko) в том самом Дартмуте, где родился искусственный интеллект. Ну, полезная в общем теорема, даёт нам надёжный базис для использования нейросетей.
Есть на свете другая интересная теорема,
Теорема Колмогорова-Арнольда (Kolmogorov-Arnold representation theorem, KART) или
Теорема суперпозиции (
https://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Arnold_representation_theorem). Эта теорема гласит, что непрерывная функция многих переменных может быть представлена суперпозицией непрерывных функций одной переменной. То есть как бы все функции многих переменных можно записать с использованием функций одной переменной и сложения. Из интересного, в UAT равенство приближённое, а в KART строгое.
Если посмотреть на графы активаций, текущие через сеть, то в случае MLP они текут через обучаемые веса (находятся на рёбрах графа) и попадают в фиксированные функции активации (находятся в узлах). В случае KAN они текут через обучаемые функции активации на рёбрах (линейных весов как таковых уже нет), а в узлах просто суммируются.
Обучаемые одномерные функции активации на рёбрах графа параметризуются B-сплайнами. Для простого двуслойного KAN для n входов есть 2n+1 скрытых узлов, где происходят суммирования двух функций на рёбрах, которые затем суммируются в одно число через другие обучаемые рёбра. На картинке это проще, чем текстом.
Эту архитектуру KAN авторы обобщают до произвольных глубины и ширины сети. Оригинальная версия теоремы Колмогорова-Арнольда соответствует двухуровневой KAN (может быть описана списком размерностей слоёв [d, 2d+1, 1]), более общей версии теоремы для более глубоких сетей вроде как неизвестно, поэтому до конца не ясно как именно углублять и расширять. Но по аналогии с MLP они предлагают рецепт — simply stack more KAN layers! Кто хочет более технической нотации, в работе расписаны матрицы функций, описывающие слои KAN, а также композиция нескольких слоёв.
Все операции внутри KAN дифференцируемы, так что его можно обучать бэкпропом.