Частина 1. Елементи нейрологіки з позиції апаратної реалізації
Основні нейромережеві парадигми розроблені кілька десятиліть назад, по їхньому дослідженню опубліковане величезне число робіт з оглядами яким можна познайомитися в [1-4]. Ми лише, для кращого розуміння в подальшому архітектурно-схемотехнічному рішені нейрообчислювальних систем зупинимося на найбільш важливих елементах нейрологіки з позиції апаратної реалізації.
Одним з основних достоїнств нейрообчислювача є те, що його основу складають відносно прості, найчастіше - однотипні, елементи (комірки), що імітують роботу нейронів мозку - "нейрони". Кожен нейрон характеризується своїм поточним станом за аналогією з нервовими клітками головного мозку, що можуть бути збуджені чи загальмовані. Він має групу синапсів - однонаправлених вхідних зв'язків, з'єднаних з виходами інших нейронів, а також має аксон - вихідний зв'язок даного нейрона, з яким сигнал (збудження чи гальмування) надходить на синапсы наступних нейронів. Загальний вид нейрона приведений на малюнку 2.
Рис.2. Загальний вид нейрона.
Кожен синапс характеризується величиною синаптичного зв'язку чи його вагою wі, що по фізичному змісті еквівалентний електричній провідності. Поточний стан нейрона визначається, як зважена сума його входів:
Вихід нейрона є функція його стану: y = f(s) (2), що називається активаційною і може мати різний вид (деякі з типових активаційних функцій представлені на малюнку 3). Однієї з найбільш розповсюджених - є нелінійна функція з насиченням, так звана логічна функція чи сигмоїд (тобто функція S-подібного виду):
Рис2.5
а) одинична гранична функція;
б) лінійний поріг (гістерезис);
в) сигмоїд - гіперболічний тангенс;
г) логічний сигмоїд.
При зменшенні сигмоїд стає більш положистим, у межі при =0 вироджуючись у горизонтальну лінію на рівні 0.5, при збільшенні сигмоид наближається по зовнішньому вигляді до функції одиничного стрибка з порогом T у точці x=0. З виразу для сигмоїда очевидно, що вихідне значення нейрона лежить у діапазоні [0,1]. Одна з цінних властивостей сигмоїдної функції – простий вираз для її похідної.
Паралелізм обробки досягається шляхом об'єднання великого числа нейронів у шари і з'єднання певним чином різних нейронів між собою. Як приклад найпростішої НС приведемо трьох нейронний персептрон (мал.3), нейрони якого мають активаційну функцію у виді одиничної граничної функції, робота якої докладно розглянута в літературі [2-4]. На n входів надходять деякі сигнали, що проходять по синапсах на 3 нейрони, що утворюють єдиний шар цієї НС і три вихідних сигнали, що видають:
Очевидно, що усі вагові коефіцієнти синапсів одного шару нейронів можна звести в матрицю W, у якій кожен елемент wіj задає величину і-го синаптичного зв'язку j-ого нейрона. Таким чином, процес, що відбувається в НС, може бути записаний у матричній формі: Y=F(XW), де X і Y - відповідно вхідній і вихідний сигнальні вектори, F( V) - активаційна функція, застосовувана поэлементно до компонентів вектора V. Теоретично число шарів і число нейронів у кожнім шарі може бути довільним.
Рис.3 Одношаровий персептрон.
Для того щоб нейронная мережа працювала - її треба навчити. Від якості навчання залежить здатність мережі вирішувати поставлені перед нею проблеми. На етапі навчання крім параметра якості підбору вагових коефіцієнтів важливу роль грає час навчання. Як правило, ці два параметри зв'язані зворотньою залежністю і їх приходиться вибирати на основі компромісу. Навчання НС може вестися з вчителем чи без нього. У першому випадку мережі пред'являються значення як вхідних, так і бажаних вихідних сигналів, і вона по деякому внутрішньому алгоритмі налаштовує ваги своїх синаптичних зв'язків. В другому випадку виходи НС формуються самостійно, а ваги змінюються по алгоритму, що враховує тільки вхідні і похідні від них сигнали.
Розглядаючи класифікацію НС можна виділити: бінарні (цифрові) і аналогові НС, попередньо навчені (неадаптивні) і що самонавчаються (адаптивні) нейронні мережі, що украй важливо при їхній апаратній реалізації. Бінарні оперують із двійковими сигналами, і вихід кожного нейрона може приймати тільки два значення: логічний нуль ("загальмований" стан) і логічна одиниця ("збудженийстан). До цього класу мереж відноситься і розглянутий вище трьох нейронный персептрон, тому що виходи його нейронів, формовані функцією одиничного стрибка, рівні або 0, або 1. В аналогових мережах вихідні значення нейронів можуть приймати неперервні значення, що могло б мати місце після заміни активаційної функції нейронів персептрона на сигмоїд.
Рис. 4. Двошаровий персептрон
Мережі також можна класифікувати по топології (числу шарів і зв'язків між ними). На малюнку 4 представлений двошаровий персептрон, отриманий з персептрона малюнка 3 шляхом додавання другого шару, що складається з двох нейронів. При цьому нелінійність активаційної функції має конкретний сенс: тому що, якби вона не мала дану властивість чи не входила в алгоритм роботи кожного нейрона, результат функціонування будь-якої p-шарової НС із ваговими матрицями W(і), і=1,2,...p для кожного шару і зводився б до перемножування вхідного вектора сигналів X на матрицю W()=W(1)..W(2) Ч...ЧW(p) , тобто фактично така p-шарова НС еквівалентна одношаровій НС із ваговою матрицею єдиного шару W(): Y=XW() .
Існує безліч різних алгоритмів навчання, що поділяються на два великих класи: детерміновані і стохастичні. У першому з них налаштування ваг являє собою тверду послідовність дій, у другому - вона виробляється на основі дій, що підкоряються деякому випадковому процесу
Практично 80% реалізованих на сьогодні нейрочіпів, орієнтованих на задачі цифрової обробки сигналів, використовують при навчанні НС алгоритм зворотнього поширення помилки, крім всього інші він став деяким еталоном для виміру продуктивності нейрообчислювачів (наприклад, як ШПФ на 1024 відліки для сигнальних процесорів), тому на ньому варто зупинитися докладніше.
Розглянемо цей алгоритм у традиційній постановці [1-4]. Він представляє поширення сигналів помилки від виходів НС до її входів, у напрямку, зворотньому прямому поширенню сигналів у звичайному режимі роботи. Цей алгоритм навчання НС одержав назву процедури зворотнього поширення (Back Propagatіon). Відповідно до методу найменших квадратів, що мінімізується цільовою функцією помилки НС є сигнал помилки навчання:
де - реальний вихідний стан нейрона j вихідного шару N нейронной мережі при подачі на її входи p-го образу; djp - ідеальний (бажаний) вихідний стан цього нейрона. Підсумовування ведеться по всіх нейронах вихідного шару і по всім оброблюваним мережею образах. Мінімізація ведеться методом градиентного спуску, що означає налаштування вагових коефіцієнтів у такий спосіб:
Тут wіj - ваговий коефіцієнт синаптичного зв'язку, що з'єднує і-ий нейрон шару n-1 з j-им нейроном шару n, - коефіцієнт швидкості навчання, 0<<1.
Тут під yj, як і раніш, мається на увазі вихід нейрона j, а під sj - зважена сума його вхідних сигналів, тобто аргумент активаційної функції. Тому що множник dyj/dsj є похідною цієї функції по її аргументі, з цього випливає, що похідна активаційної функція повинна бути визначена на всій осі абсцис, тобто в них застосовуються такі гладкі функції, як гіперболічний тангенс чи класичний сигмоїд з експонентою. У випадку гіперболічного тангенса
Третій множник sj/wіj, очевидно, дорівнює виходу нейрона попереднього шару yі(n-1), для виразу похідної сигналу помилки по вихідному сигналі маємо:
Тут підсумовування по k виконується серед нейронів шару n+1.
Увівши нову змінну
ми одержимо рекурсивну формулу для розрахунків величин j(n) шару n з величин k(n+1) більш старшого шару n+1.
Для вихідного ж шару
Тепер ми можемо записати основний вираз для вагових коефіцієнтів в узагальненому виді:
Іноді для додання процесу корекції ваг деякої інерційності, що згладжує різкі стрибки при переміщенні по поверхні цільової функції, доповнюється значенням зміни ваги на попередній ітерації (тобто ми уже впритул підійшли до добре відомого адаптивного LMS алгоритму).
де - коефіцієнт інерційності, t - номер поточної ітерації.
Діаграма сигналів у мережі при навчанні по алгоритму зворотного поширення представлена на мал.5. Вона структурно відбиває всі нейромережеві операції і наочно ілюструє ті структурно-функціональні елементи, що повинні бути реалізовані в елементарній комірці нейрообчислювача.
Рис.5. Діаграма сигналів у мережі при навчанні по алгоритму зворотного поширення [3]
Розглянута НС має цілий ряд недоліків [1-4]: По-перше, у процесі навчання може виникнути ситуація, коли великі позитивні чи негативні значення вагових коефіцієнтів змістять робочу точку на сигмоїдах багатьох нейронів в область насичення. Малі величини похідної від логічної функції приведуть до зупинки навчання, що паралізує НС. По-друге, застосування методу градієнтного спуску не гарантує, що буде знайдений глобальний, а не локальний мінімум цільової функції. Ця проблема зв'язана ще з однією, а саме - з вибором величини швидкості навчання. Доказ збіжності навчання в процесі зворотного поширення основано на похідних, тобто збільшення ваг і, отже, швидкість навчання повинні бути нескінченно малими, однак у цьому випадку навчання буде відбуватися неприйнятно повільно. З іншого боку, занадто великі корекції ваг можуть привести до постійної нестійкості процесу навчання. Тому в якості звичайно вибирається число менше 1, але не дуже маленьке, наприклад, 0.1, і воно, узагалі говорячи, може поступово зменшуватися в процесі навчання. Крім того, для виключення випадкових влучень у локальні мінімуми іноді, після того як значення вагових коефіцієнтів застабілізуються, короткочасно сильно збільшують, щоб почати градиентний спуск із нової точки. Якщо повторення цієї процедури кілька разів приведе алгоритм у той самий стан НС, можна більш-менш упевнено сказати, що знайдено глобальний максимум, а не якийсь інший.
Рис.7. Алгоритм проектування нейроадаптивной системи активного керування акустичним полем.