gonzo-обзоры ML статей
@gonzo_ML
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 дифференцируемы, так что его можно обучать бэкпропом.
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
Свежую статью про 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 дифференцируемы, так что его можно обучать бэкпропом.
❤ 51
👍 21
❤🔥 8
239 5.9K
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram