KAN 2.0: Конкурент ANN стає сильнішим

pic

Зображення, створене за допомогою DALL-E

Вступ

У попередній статті я коротко розповів про нову структуру нейронних мереж, яка виявилася ефективнішою для багатьох наукових задач, не страждала від "прокляття вимірності" і була набагато більш інтерпретованою, ніж звичні MLP (мультишарові персептрони). Лише кілька місяців після публікації оригінальної наукової роботи про KAN і випуску pykan (фреймворк для створення власних KAN) вийшла версія 2.0 (або, як скромно називають її автори, pykan 0.2.x). Тому в цій статті я розгляну чотири основні зміни в KAN 2.0, які зробили цю мережу ще потужнішою.

1 | Множення

Як згадувалося в попередній статті, KAN натхненний теоремою Колмогорова-Арнольда, яка стверджує, що будь-яку функцію можна представити через додавання та композицію. Це означає, що ми можемо переписати навіть множення, використовуючи тільки додавання та композицію, як показано нижче:

pic

Як представити xy через додавання та композицію

Це досить незручний спосіб запису множення, але ще гірше те, що для такого трюку KAN потребує як мінімум 3 шари, як показує схема нижче.

pic

Схема з наукової роботи KAN arXiv:2408.10205v1

Отже, просте множення забирає надто багато обчислювальних ресурсів і не дає бажаної інтерпретованості. Це велика недолік, враховуючи, що множення є основним елементом більшості формул. Для виправлення цієї ситуації розробники дозволили додавати вузли множення після кожного вузла сумування. Користувачі можуть налаштовувати кількість таких вузлів множення та їх розташування. Ознайомтесь із таблицею порівняння нижче:

pic

Таблиця порівняння з наукової роботи KAN arXiv:2408.10205v1

Хоча це виглядає дуже корисним, ми отримали ще один гіперпараметр для налаштування — вузли множення. Де їх слід вставляти? Скільки достатньо? Якщо ми мало знаємо про дані, відповідь на ці питання може бути схожа на пошук стежки в темному лісі. Сподіваюся, подальші роботи прояснять, як працювати з такими вузлами.

2 | Модульні структури

Це вдосконалення було натхненне мозком, так само як і перша нейронна мережа. Згадайте, що в мозку нейрони з'єднуються між собою та виконують різні задачі залежно від того, в якій частині мозку вони знаходяться. Деякі з них відповідають за зір, інші — за розпізнавання мови, і так далі, а потім вони безшовно з'єднуються і формують єдиний мозок. Автори запропонували зробити щось подібне та розділити нейрони (вузли) KAN на модулі, щоб вони могли зосереджуватися лише на своїй конкретній задачі. Модулі не мають жодних з'єднань між собою, і в кінці їхні результати передаються наступним нейронам, які обробляють їхні виходи разом.

Існує три типи модульності (як можна розділити вузли на модулі) від найспецифічнішого до найбільш загального:

Роздільність ⊂ Узагальнена роздільність ⊂ Узагальнена симетрія

Я вважаю, що детальне пояснення цього може стати темою для окремої статті. Тому зараз я просто залишу схему з наукової роботи KAN 2.0 для інтуїтивного розуміння.

pic

Різні типи модульності. Скриншот з наукової роботи KAN 2.0 arXiv:2408.10205v1

3 | Kanpiler

Однією з сильних сторін KAN була можливість витягувати символічну формулу після тренування на певному наборі даних. У новій версії автори намагалися розвинути цю функцію ще більше і представили kanpiler (компілятор KAN). Іноді ми вже знаємо певну інформацію про дані та те, які шаблони в них містяться.
Наприклад, якщо ми хочемо відкрити фізичні закони, ми можемо вже мати деякі існуючі гіпотези. Тоді ми можемо записати їх у символічній формі, і kanpiler перетворить їх на KAN. Після цього ми підганяємо цей KAN під наші дані, налаштовуються коефіцієнти сплайна, і ми можемо розширити цей KAN в глибину та ширину, щоб побачити деякі глибші залежності. Цей процес ілюстрований на скріншотах нижче.

pic

kanpiler. Схеми з наукової роботи KAN 2.0 arXiv:2408.10205v1

pic

Розширення KAN. Схема з наукової роботи KAN 2.0 arXiv:2408.10205v1

4 | Ефективність

У попередній статті я згадував, що хоча KAN демонструють кращі результати в різних задачах, вони навчаються значно довше, ніж MLP того ж розміру. Було проведено певну роботу, і тепер KAN стали значно швидшими. Зокрема:

  • Використання пам'яті було зменшено з O(LN²G) до O(LNG). Тут L — кількість шарів, N — кількість нейронів у шарі, а G — розмір сітки.
  • Тепер KAN можуть працювати на GPU, що значно прискорює навчання. Автори наводять приклад у статті:

Наприклад, навчання [4,100,100,100,1] за допомогою Adam на 100 кроків раніше займало цілий день на CPU…, але тепер займає 20 секунд на CPU і менше однієї секунди на GPU.

  • Були введені ще деякі хитрощі, які можуть пришвидшити навчання, наприклад, вимкнення збереження проміжних активацій (вони використовуються для побудови графіків мереж, але не є необхідними для простих прогнозів). Ці зміни можна активувати за допомогою одного рядка коду:
model.speed()

Підсумок

З цим оновленням KAN отримали ряд вдосконалень, що роблять їх більш ефективними та корисними, особливо для наукових задач. Автори підкреслюють великий потенціал мережі в сфері AI + Science, наприклад, вона вже показала відмінні результати у прогнозуванні молекулярних властивостей. Я напишу більше про це в наступних статтях, тому підписуйтеся, щоб залишатися в курсі. У розділі джерел я залишив наукову роботу KAN 2.0 та папку на GitHub з pykan, обов'язково перевірте, якщо вас це зацікавить.

P.S. Любіть дані, науку та data science!

Джерела

[

KAN 2.0: Kolmogorov-Arnold Networks Meet Science

Основна проблема AI + Science полягає в їхній вродженій несумісності: сучасний AI в основному базується на…

arxiv.org

](https://arxiv.org/abs/2408.10205?source=post_page-----c282feb6717e--------------------------------)

[

GitHub - KindXiaoming/pykan: Kolmogorov Arnold Networks

Kolmogorov Arnold Networks. Внесок у розвиток KindXiaoming/pykan через створення акаунта на GitHub.

github.com

](https://github.com/KindXiaoming/pykan?source=post_page-----c282feb6717e--------------------------------)

Перекладено з: KAN 2.0: Rival of ANN is getting stronger

Leave a Reply

Your email address will not be published. Required fields are marked *