Як працює мозок?

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

Історія комп'ютерних наук загалом зводиться до того, що вчені намагаються зрозуміти, як працює людський мозок, і відтворити щось аналогічне за своїми можливостями. Як саме вчені його досліджують? Уявімо, що в XXI столітті на Землю прилітають інопланетяни, які ніколи не бачили звичних нам комп'ютерів, і намагаються дослідити пристрій такого комп'ютера. Швидше за все, вони почнуть з вимірювання напружень на провідниках, і виявлять, що дані передаються в двійковому вигляді: точне значення напруги не важливе, важлива тільки його наявність або відсутність. Потім, можливо, вони зрозуміють, що всі електронні схеми складені з однакових «логічних вентилів», у яких є вхід і вихід, і сигнал всередині схеми завжди передається в одному напрямку. Якщо інопланетяни досить кмітливі, то вони зможуть розібратися, як працюють комбінаційні схеми - одних їх достатньо, щоб побудувати порівняно складні обчислювальні пристрої. Можливо, інопланетяни розгадають роль тактового сигналу і зворотного зв'язку; але навряд чи вони зможуть, вивчаючи сучасний процесор, розпізнати в ньому фон-нейманівську архітектуру із загальною пам'яттю, лічильником команд, набором регістрів і т. п. Справа в тому, що за підсумками сорока років погоні за продуктивністю в процесорах з'явилася ціла ієрархія «пам'яток» з хитромудрими протоколами синхронізації між ними; кілька паралельних конвеєрів, забезпечених передбачувачами переходів, так що поняття «лічильника команд» фактично втрачає сенс; з кожною командою пов "язаний власний вміст регістрів тощо. Для реалізації мікропроцесора достатньо кількох тисяч транзисторів; щоб його продуктивність досягла звичного нам рівня, потрібні сотні мільйонів. Сенс цього прикладу в тому, що для відповіді на питання «як працює комп'ютер?» не потрібно розбиратися в роботі сотень мільйонів транзисторів: вони лише затуляють собою просту ідею, що лежить в основі архітектури наших ЕВМ.

Моделювання нейронів

Кора людського мозку складається з близько ста мільярдів нейронів. Історично склалося так, що вчені, які досліджують роботу мозку, намагалися охопити своєю теорією всю цю колосальну конструкцію. Будова мозку описана ієрархічно: кора складається з часток, частки - з «гіперколонок», ті - з «мініколонок»... Мініколонка складається з приблизно сотні окремих нейронів.

За аналогією з пристроєм комп'ютера, абсолютна більшість цих нейронів потрібні для швидкості та ефективності роботи, для стійкості до збоїв, тощо; але основні принципи пристрою мозку так само неможливо виявити за допомогою мікроскопа, як неможливо виявити лічильник команд, розглядаючи під мікроскопом мікропроцесор. Тому більш плідний підхід - спробувати зрозуміти пристрій мозку на найнижчому рівні, на рівні окремих нейронів та їх колонок; і потім, спираючись на їхні властивості - спробувати припустити, як міг би працювати мозок цілком. Приблизно так прибульці, зрозумівши роботу логічних вентилів, могли б з часом скласти з них найпростіший процесор, - і переконатися, що він еквівалентний за своїми здібностями справжнім процесорам, навіть хоча ті набагато складніше і потужніше.

На малюнку, наведеному трохи вище, тіло нейрона (зліва) - невелика червона пляма в нижній частині; все інше - дендрити, «входи» нейрона, і один аксон, «вихід». Різнокольорові точки вздовж дендритів - це синапси, якими нейрон з'єднаний з аксонами інших нейронів. Робота нейронів описується дуже просто: коли на аксоні виникає «сплеск» напруги вище порогового рівня (типова тривалість сплеску 1мс, рівень 100мВ), то синапс «пробивається», і сплеск напруги переходить на дендрит. При цьому сплеск «згладжується»: спочатку напруга за 5.. 20мс росте до порядку 1мВ, потім експоненціально загасає; таким чином, тривалість сплеску розтягується до ауд 50мс.

Якщо кілька синапсів одного нейрона активізуються з невеликим інтервалом за часом, то «розгладжені сплески», що збуджуються в нейроні кожним з них, складаються. Нарешті, якщо одночасно активні досить багато синапсів, то напруга на нейроні піднімається вище порогового рівня, і його власний аксон «пробиває» синапси пов'язаних з ним нейронів.

Чим потужнішими були вихідні сплески, тим швидше ростуть розгладжені сплески, і тим менше буде затримка до активізації наступних нейронів.

Крім того, бувають «гальмівні нейрони», активація яких знижує загальну напругу на пов'язаних з ним нейронах. Таких гальмуючих нейронів 15... 25% від загального числа.

У кожного нейрона тисячі синапсів; але в будь-який момент часу активні не більше десятої частини всіх синапсів. Час реакції нейрона - одиниці мс; такого ж порядку затримки на поширення сигналу вздовж дендриту, тобто ці затримки мають істотний вплив на роботу нейрона. Нарешті, пару сусідніх нейронів, як правило, пов'язує не один синапс, а близько десятка - кожен з власною відстанню до тіл обох нейронів, а значить, з власною тривалістю затримки. На ілюстрації праворуч два нейрони, зображені червоним і синім, пов'язані шістьма синапсами.

У кожного синапсу свій «опір», що знижує вхідний сигнал (у прикладі вище - з 100мВ до 1мВ). Цей опір динамічно підлаштовується: якщо синапс активізувався відразу перед активацією аксона - то, мабуть, сигнал з цього синапсу добре корелює із загальним висновком, так що опір знижується, і сигнал буде вносити більший внесок у напругу на нейроні. Якщо ж синапс активізувався відразу після активації аксона - то, мабуть, сигнал з цього синапсу не мав відношення до активації аксона, так що опір синапсу підвищується. Якщо два нейрони пов'язані кількома синапсами з різною тривалістю затримки, то така підбудова опорів дозволяє вибрати оптимальну затримку, або оптимальну комбінацію затримок: сигнал починає доходити саме тоді, коли від нього найбільше користі.

Таким чином, модель нейрона, прийнята дослідниками нейронних мереж - з єдиним зв'язком між парою нейронів і з миттєвим поширенням сигналу від одного нейрона до іншого - досить далека від біологічної картини. Крім того, традиційні нейронні мережі оперують не часом окремих сплесків, а їх частотою: чим частіше сплески на входах нейрона, тим частіше будуть сплески на виході. Ті деталі пристрою нейрона, які відкинуті в традиційній моделі - істотні або несуттєві вони для опису роботи мозку? Нейробіологи накопичили величезну масу спостережень про пристрій і поведінку нейронів - але які з цих спостережень проливають світло на загальну картину, а які - лише «деталі реалізації», і - як і провісник переходів у процесорі - не впливають ні на що, крім ефективності роботи? Джеймс вважає, що саме тимчасові характеристики взаємодії між нейронами і дозволяють наблизитися до розуміння питання; що асинхронність так само важлива для роботи мозку, як синхронність - для роботи ЕВМ.

Ще одна «деталь реалізації» - непотрібність нейрона: з деякою ймовірністю він може активізуватися спонтанно, навіть якщо сума напружень на його дендритах не досягає порогового рівня. Завдяки цьому, «навчання» колонки нейронів можна починати з будь-якого досить великого опору на всіх синапсах: спочатку ніяка комбінація активацій синапсів не буде призводити до активації аксона; потім спонтанні сплески призведуть до того, що знизиться опір синапсів, які активізувалися незадовго до цих спонтанних сплесків. Таким чином нейрон почне розпізнавати конкретні «патерни» вхідних сплесків. Що найважливіше, патерни, схожі на ті, на яких нейрон навчався, - теж будуть розпізнаватися, але сплеск на аксоні буде тим слабшим і/або пізніше, чим менше нейрон «впевнений» в результаті. Навчання колонки нейронів виходить набагато ефективніше, ніж навчання звичайної нейронної мережі: колонці нейронів не потрібна контрольна відповідь для тих зразків, на яких вона навчається - фактично, вона не розпізнає, а класифікує вхідні патерни. Крім того, навчання колонки нейронів локалізовано - зміна опору синапсу залежить від поведінки лише двох з'єднаних ним нейронів, і ніяких інших. В результаті цього, навчання призводить до зміни опорів вздовж шляху проходження сигналу, тоді як при навчанні нейронної мережі ваги змінюються у зворотному напрямку: від нейронів, найближчих до виходу - до нейронів, найближчих до входу.

Наприклад, ось колонка нейронів, навчена розпізнавати патерн сплесків (8,6,1,6,3,2,5) - значення позначають час сплеску на кожному з входів. В результаті навчання, затримки налаштувалися на точну відповідність розпізнаваному патерну, так що напруга на аксоні, що викликається правильним патерном, виходить максимально можливою (7):

Та ж сама колонка відреагує на схожий вхідний патерн (8,5,2,6,3,3,4) меншим сплеском (6), причому напруга досягає порогового рівня помітно пізніше:

Нарешті, гальмуючі нейрони можуть використовуватися для реалізації «зворотного зв'язку»: наприклад, як на ілюстрації справа, - придушувати повторні сплески на виході, коли вхід тривалий час залишається активним; або пригнічувати сплеск на виході, якщо він занадто затримується порівняно з вхідними сигналами, - щоб зробити класифікатор більш «категоричним»; або, в нейросхемі для розпізнавання патерезів, різні колонки-класифікатори можуть бути пов'язані гальмуючими нейронами, щоб активація одного класифікатора автоматично придушувала всі інші класифікатори.

Розпізнавання зображень

Для розпізнавання рукописних цифер з бази MNIST (28x28 пікселів у відтінках сірого) Джеймс з колонок-класифікаторів, описаних вище, зібрав аналог п'ятишарової «бурточної нейромережі». Кожна з 64 колонок у першому шарі обробляє фрагмент 5х5 пікселів з вихідного зображення; такі фрагменти перекриваються. Колонки другого шару обробляють по чотири виходи з першого шару кожну, що відповідає фрагменту 8х8 пікселів з вихідного зображення. У третьому шарі всього чотири колонки - кожній відповідає фрагмент з 16х16 пікселів. Четвертий шар - підсумковий класифікатор - розбиває всі зображення на 16 класів: клас призначається відповідно до того, який з нейронів активізується першим. Нарешті, п'ятий шар - класичний перцептрон, що співвідносить 16 класів з 10 контрольними відповідями.

Класичні нейромережі досягають на базі MNIST точності 99.5% і навіть вище; але за твердженням Джеймса, його «гіперколонка» навчається за набагато меншу кількість ітерацій, завдяки тому, що зміни поширюються вздовж шляху проходження сигналу, а значить, зачіпають меншу кількість нейронів. Як і для класичної нейромережі, розробник «гіперколонки» визначає тільки конфігурацію з'єднань між нейронами, а всі кількісні характеристики гіперколонки - тобто опір синапсів з різними затримками - набуваються автоматично в процесі навчання. Крім того, для роботи гіперколонки потрібна на порядок менша кількість нейронів, ніж для аналогічної за можливостями нейромережі. З іншого боку, симуляція таких «аналогових нейросхем» на електронному комп'ютері дещо ускладнюється тим, що на відміну від цифрових схем, що працюють з дискретними сигналами і з дискретними інтервалами часу - для роботи нейросхем важливі безперервність зміни напружень і асинхронність нейронів. Джеймс стверджує, що кроку симуляції в 0.1мс достатньо для коректної роботи його розпізнавача; але він не уточнював, скільки «реального часу» займає навчання і робота класичної нейромережі, і скільки - навчання і робота його симулятора. Сам він давно на пенсії, і вільний час він присвячує вдосконаленню своїх аналогових нейросхем.

Резюме від tyomitch: представлена модель, заснована на біологічних передумовах, досить просто влаштована, і при цьому володіє цікавими властивостями, що радикально відрізняють її від звичних цифрових схем і від нейромереж. Можливо, такі «аналогові нейрони» стануть елементною базою майбутніх пристроїв, які зможуть справлятися з низкою завдань - наприклад, з розпізнаванням образів - не гірше людського мозку; точно так само, як цифрові схеми давно перевершили людський мозок у здатності до рахунку.