Привіт усім!
Сьогодні ми дізнаємось щось надзвичайно цікаве: Нейрокомп'ютинг! Давайте почнемо з розуміння цього поняття з основ. Як випливає з термінології, «нейро» стосується процесів, пов'язаних з мозком, а «морфний» означає форму чи структуру.
Розвиток цієї галузі розпочався з дуже простого питання: «Чому б не створити комп'ютерні чіпи, які працюють як клітини мозку?» Надихаючись тим, як нейрони та синапси в нашому мозку взаємодіють і обробляють інформацію, нейроморфний обчислювальний процес проектує апаратне і програмне забезпечення для імітації цих природних процесів.
Що таке нейроморфний обчислювальний процес?
Нейроморфний обчислювальний процес — це обчислювальна парадигма, натхнена мозком, яка імітує структуру та функціональність нейронних мереж для забезпечення енергоефективної, адаптивної та інтелектуальної обробки.
Традиційні комп'ютери, такі як той, на якому ви зараз читаєте це, обробляють інформацію послідовно і лінійно. Нейроморфні системи, з іншого боку, намагаються відтворити здатність мозку обробляти інформацію в паралельному, енергоефективному та адаптивному способі. Уявіть це як перехід від жорстких схем до мережі, яка розвивається і навчається з часом.
Нейроморфний обчислювальний процес, натхнений нейронаукою, оптимізує пристрої, схеми та алгоритми, щоб імітувати мозкову ефективність у машинному інтелекті. Це вводить Спайкові нейронні мережі (SNN), які обробляють інформацію як дискретні сплески, а не аналогові значення, що забезпечує менше споживання енергії та нові алгоритмічні досягнення. Поряд з цим розробляється нейроморфне апаратне забезпечення, яке підтримує розрідлені, подієві обчислення, а нові технології, такі як Неволатна пам'ять (Non-Volatile Memory, NVM), надають біоміметичні функції.
Що таке Спайкові нейронні мережі (SNN)?
Спайкові нейронні мережі (SNN) — це нейронні мережі, натхнені мозком, які обробляють інформацію через дискретні події, звані «сплесками», імітуючи спосіб комунікації біологічних нейронів. Вони забезпечують розрідлені, подієві та тимчасово закодовані обчислення, роблячи їх енергоефективними в порівнянні з традиційними нейронними мережами.
Спайкові нейронні мережі (SNN) та нейроморфний обчислювальний процес прагнуть імітувати енергоефективні та подієві обчислювальні можливості мозку, вирішуючи обмеження традиційного глибокого навчання, такі як високе споживання енергії та неефективність у переміщенні даних. На відміну від стандартних аналогових нейронних мереж (ANN), SNN використовують «сплески» нейронів для розрідженого та тимчасового оброблення, що робить їх придатними для низькопотужних пристроїв на краю мережі (edge devices). Проте залишаються виклики, такі як ефективне навчання глибоких SNN і інтеграція тимчасового кодування з навчанням на основі градієнтів. Нейроморфне апаратне забезпечення, натхнене біологічними системами, поєднує подієві архітектури та обчислення в пам'яті для подолання традиційних вузьких місць у комп'ютерних обчисленнях. Прогрес у спільному проектуванні алгоритмів та апаратного забезпечення між різними дисциплінами має обіцянку досягнення енергоефективності мозку в інтелектуальних системах.
Застосування нейроморфного обчислювального процесу (SNN)
Нейроморфний обчислювальний процес, підтримуваний Спайковими нейронними мережами (SNN), використовує природне оброблення тимчасових даних та енергоефективні спайкові нейрони. Ось деякі з ключових застосувань:
1. Класифікація зображень:
SNN використовуються для завдань класифікації зображень як на наборах даних з кадрів (наприклад, MNIST, CIFAR-10, ImageNet), так і на нейроморфних наборах даних (наприклад, N-MNIST, CIFAR10-DVS). Ці зображення кодуються у вигляді спайк-трейнів, а SNN навчаються за допомогою зворотного поширення помилки на основі градієнтів.
SNN досягають конкурентоспроможної точності з мінімальною кількістю кроків, покращуючи енергоефективність, обробляючи зображення у вигляді сплесків.
2. Розпізнавання жестів та аналіз настроїв:
SNN відмінно справляються з завданнями послідовної класифікації, де вхідні дані мають тимчасову залежність. Вони ефективно розпізнають жести з динамічних наборів даних, таких як IBM DVS Gesture Dataset.
SNN можуть відстежувати тимчасові послідовності у вхідних даних, таких як рецензії на фільми (набір даних IMDB) та класифікувати настрої (позитивний чи негативний) на основі послідовності сплесків.
3. Біомедичні застосування:
SNN особливо підходять для аналізу тимчасових біологічних сигналів, таких як:
- Електроенцефалографія (EEG) для активності мозку
- Електрокардіографія (ECG) для сигналів серця
- Електроміографія (EMG) для активності м'язів
- Електрокортикографія (ECoG) для виявлення епілептичних нападів.
- SNN обробляють складні та безперервні біологічні патерни з високою ефективністю, сприяючи діагностичним і моніторинговим застосуванням у галузі охорони здоров'я.
4. Оцінка руху
- SNN обробляють дані датчиків на основі подій від подієвих камер, які фіксують зміни в навколишньому середовищі як дискретні події, а не безперервні кадри. Це використовується для оцінки руху та завдань, таких як виявлення перешкод у робототехніці та автономних транспортних засобах.
- Тимчасова природа подієвих даних природно обробляється SNN, що робить їх надзвичайно ефективними в динамічних та швидкісних середовищах, пропонуючи значні переваги з точки зору енергоефективності.
5. Стійкість до атак
- SNN менш уразливі до атак, що базуються на протиправних зразках, завдяки своїм унікальним властивостям, таким як рідкісні активації, бінарні входи та нелінійна динаміка. Ці властивості роблять їх більш стійкими до порушень у вхідних даних.
- SNN забезпечують потужний механізм захисту від атак, які часто використовуються для обману традиційних нейронних мереж, пропонуючи потенційне рішення для забезпечення безпеки критичних систем, таких як автономне водіння.
Основи алгоритмів
Тепер ми знаємо, що алгоритми вимагають математичних знань та основ. Ми не будемо заглиблюватися в ці алгоритми, але давайте ознайомимось з алгоритмічними основами для Спайкових нейронних мереж (SNN), які є потужним підходом у нейроморфному обчисленні. Ці мережі відрізняються від традиційних штучних нейронних мереж (ANN) використанням тимчасової інформації для представлення вхідних даних, що вимагає перегляду алгоритмів навчання, які використовуються в ANN.
A) Моделі нейронів
Моделі нейронів є основою SNN і намагаються відтворити поведінку біологічних нейронів. Були запропоновані різні моделі, від простих до складних, кожна з яких має різний рівень біофідельності. Ось найбільш відомі моделі, що використовуються в SNN:
- Інтегруй і стріляй (IF): Найпростіша модель, яка накопичує вхідні стимули і генерує сплески, коли поріг перевищено.
- Поступовий інтегруй і стріляй (LIF): Подібно до IF, але з витіканням потенціалу мембрани з часом, коли не отримуються стимули.
- Модель реакції на сплески (SRM): Моделює реакцію нейрона на вхідні сплески більш тонко, враховуючи історію сплесків.
- Модель Ходжкіна-Хакслі (HH): Більш біологічно детальна модель, що враховує динаміку іонних каналів.
Хоча модель HH є найбільш біологічно точною, вона є більш обчислювально витратною. Тому простіші моделі, такі як IF/LIF, є більш прийнятними в глибоких SNN завдяки їхньому балансу між продуктивністю та обчислювальною ефективністю.
A.1) Модель нейрона LIF/IF
Модель LIF/IF визначається рівнянням, яке регулює внутрішній стан нейрона (потенціал мембрани). Потенціал інтегрує вхідний струм з часом і, коли він перевищує поріг, нейрон «стріляє».
Модель LIF має додаткову особливість: вона знижує потенціал мембрани з часом, коли немає вхідних даних, через що модель отримала назву «протікаюча» (leaky).
Основні характеристики:
- Потенціал спокою: Базова напруга, коли нейрон не генерує сплески.
- Потенціал мембрани: Накопичений потенціал, який інтегрує вхідний стимул.
- Поріг: Рівень потенціалу, при якому нейрон генерує сплеск.
- Рефрактерний період: Після сплеску нейрон входить в стан спокою, що запобігає негайному повторному сплеску і дає можливість іншим нейронам брати участь в процесі навчання.
A.2) Стохастична модель нейрона
Стохастична модель нейрона вводить ймовірнісну поведінку активації, де ймовірність сплеску залежить від величини вхідного сигналу. На відміну від детермінованої моделі LIF, яка гарантує сплеск, коли поріг досягається, ця модель використовує функцію ймовірності для визначення, коли нейрон спрацює.
Основні характеристики:
- Стохастична активація: Нейрон може генерувати сплеск в різний час, навіть при однаковому вході, через ймовірнісну природу.
- Зв'язок вхід-вихід: Ймовірність сплеску є нелінійною функцією входу.
Стохастична модель корисна для представлення невизначеності, але вона більш складна для реалізації в апаратному забезпеченні порівняно з детермінованими моделями, такими як LIF.
B) Кодування вхідних даних
Оскільки SNN працюють з послідовностями сплесків, необхідно кодувати аналогові вхідні дані (наприклад, пікселі зображень) у дискретні сплески. Методи кодування визначають точність представлення, і існують три основні підходи:
- Кодування за швидкістю: Інформація кодується в швидкості сплесків з часом.
- Темпоральне кодування: Інформація кодується в часі окремих сплесків.
- Навчальне кодування: Функція кодування вивчається під час тренування SNN.
B.1) Кодування за швидкістю
У кодуванні за швидкістю, швидкість активації нейронів у часовому вікні представляє вхідну інформацію. Поіссонівське кодування є специфічним варіантом кодування за швидкістю, де значення входу порівнюється з випадковим числом на кожному кроці часу. Якщо вхід перевищує випадкове значення, нейрон генерує сплеск, в іншому випадку — залишається неактивним.
Основні характеристики:
- Помилка дискретизації: Точність покращується з більшим числом кроків часу, але це також збільшує час обчислення.
- Неекономічність: Оскільки кожен сплеск містить мінімальну інформацію, кодування за швидкістю вважається неефективним для представлення безперервних даних.
B.2) Темпоральне кодування
- У темпоральному кодуванні точний час сплесків має критичне значення для представлення даних. Це на відміну від кодування за швидкістю, де важлива тільки частота. Існують кілька варіантів темпорального кодування, таких як:
- Логарифмічне темпоральне кодування: Кодує аналогове значення як бінарне число, при цьому кожен активний біт генерує сплеск.
- Кодування за порядком рангу: Перший нейрон, який генерує сплеск, кодує найбільше значення входу, а порядок сплесків представляє закодоване значення.
- Час до першого сплеску: Кожен нейрон генерує лише один сплеск, а час першого сплеску кодує значення.
Основні характеристики:
- Енергоефективність: Методи темпорального кодування вимагають менше сплесків для представлення тієї ж інформації.
- Виклики в тренуванні: Через складність синхронізації часу сплесків, SNN з темпоральним кодуванням можуть працювати гірше в порівнянні з SNN з кодуванням за швидкістю.
B.3) Шар кодування
Альтернативою до заздалегідь визначених методів кодування є використання шару кодування, який вивчає функцію кодування під час тренування.
Цей шар кодування зазвичай є простим нейронним мережевим шаром, таким як згортковий шар, який отримує аналогові входи і генерує послідовності сплесків як виходи.
Основні характеристики:
- Навчання від початку до кінця: Функція кодування тренується разом з рештою мережі, що дозволяє адаптивне та оптимізоване кодування.
- Простота: Часто використовує модель IF/LIF для ефективного кодування.
B.4) Сенсори, засновані на подіях
Стандартні камери, що використовуються для захоплення зображень, мають обмеження, такі як низький динамічний діапазон і схильність до розмиття при русі. Сенсори, засновані на подіях, або біо-надихнуті силіконові сітківки, вирішують ці проблеми, захоплюючи зміни інтенсивності на кожному пікселі асинхронно. Це дає змогу створити розріджене представлення вхідної сцени, де тільки зміни інтенсивності викликають сплески.
Основні переваги:
- Висока темпоральна роздільна здатність: Захоплює швидко рухомі події з мінімальною затримкою.
- Енергоефективність: Тільки зміни на сцені викликають події, зменшуючи споживання енергії.
- Робота в умовах слабкого освітлення: Краще підходить для умов низької освітленості та високого динамічного діапазону.
C) Прямі мережі
Прямі SNN складаються з шарів, які обробляють інформацію в одному напрямку — від входу до виходу. Ці мережі можна тренувати за допомогою різних правил навчання, включаючи ненаглядне та наглядне навчання.
Основні характеристики:
- Без зворотних зв'язків: У прямих мережах дані рухаються тільки в одному напрямку — від входу до виходу. Немає циклів або петель, тому кожна точка даних обробляється лише один раз.
- Нейрони: Це окремі одиниці обробки в кожному шарі, які отримують вхід, обробляють його і відправляють вихід.
- Ваги: Це значення, які застосовуються до вхідних даних для коригування їх важливості. Мережа вивчає ці ваги під час тренування.
- Активаційна функція: Ця функція визначає, чи має бути активований нейрон на основі отриманого входу. Вона подібна до охоронця мережі.
- Навчання: Прямі мережі тренуються шляхом коригування ваг для покращення точності виходу. Це відбувається за допомогою процесу зворотного поширення помилки (backpropagation), де вихід порівнюється з очікуваним результатом, і відповідно вносяться коригування.
Це для чіткого розуміння різниці між прямими мережами та ML
До зустрічі в наступний четвер із ще більш цікавими матеріалами!!
Перекладено з: Neuromorphic Computing Fundamentals