Розвитком моделі Хопфилда для вирішення комбінаторних оптимізаційних задач і задач штучного інтелекту є машина Больцмана, запропонована і досліджена Джефери Е. Хинтоном і Р. Земелом. У ній, як і в інших моделях, нейрон має стани 1, 0 і зв'язок між нейронами має вагу. Кожен стан мережі характеризується визначеним значенням функції консенсусу (аналог функції енергії). Максимум функції консенсусу відповідає оптимальному вирішенню задачі. Є наступна інформація про результати моделювання на ЕОМ роботи нейронної мережі. Моделювалася асинхронна робота мережі Хопфилда. Мережа працює добре, тобто без помилок відновлює еталонні образи з випадкових, якщо в неї записується не більш 15 % еталонних образів. Іспити проводилися для 30 нейронів і для 100 нейронів у мережі. Бралася деяка кількість випадкових векторів у якості еталонних і будувалася відповідна матриця ваг зв'язків. Моделювання при 100 нейронах було істотно більш повільним процесом, ніж при 30 нейронах, хоча якісна картина і у тому і в іншому випадках була та сама. Приблизно 88 % іспитів закінчувалися в еталонних станах, 10 % – у стійких станах, близьких до еталонного. При відстані ≤ 5 між початковим і еталонним векторами, еталонний стан досягався в 90 % випадків. Зі збільшенням відстані, імовірність влучення в найбільш близький еталонний стан гладко спадала. При відстані 12 імовірність дорівнювала 0.2. Стійкі стани, занадто близькі друг до друга, мають тенденцію "зливатися", вони попадають в одну западину на енергетичній поверхні. Програмувалася задача комівояжера на основі мережі Хопфилда. Мережею зі 100 нейронів для 20 різних випадкових початкових станів були визначені маршрути, 16 з яких були прийнятними, 50 % спроб дали 2 шляхи 2.83 і 2.71 (цифри приводяться, щоб показати як вони близькі) при найкоротшому 2.67. Це результати моделювання роботи мережі з безперервною моделлю нейрона. Моделювалася також задача комівояжера, але для мережі типу машина Больцмана, проводилася при наступних значеннях керуючих параметрів: A = 0.95, L = 10, M = 100 (A – позитивне число менше одиниці, але близьке до неї, L – число іспитів, що проводяться без змін, M – число послідовних іспитів, що не приводять до зміни стану машини, як критерію завершення процесу). Процес запускався 100 разів для n = 10 (усього в мережі N = n^2 нейронів) і 25 разів для n = 30 при різних нормальних станах машини Больцмана. Для n = 10 вийшов оптимальний результат, для n = 30 – вирішення на 14 % гірше оптимального. Відзначимо, що імовірний механізм функціонування машини Больцмана дає можливість одержати на ній трохи кращі результати оптимізації, чим на моделі Хопфилда.
2.4. Мережі зі зворотним розповсюдженням
З розвитком теорії нейронних мереж вони стають усе більше і здобувають переважно багатошарову структуру. Одним із розповсюджених способів навчання цих мереж став спосіб зворотного поширення (back propogatіon). У таких НМ зв'язок між собою мають тільки сусідні шари, при цьому кожен нейрон попереднього шару зв'язаний із усіма нейронами наступного шару. Нейрони звичайно мають сигмоїдальну функцію активації. Перший шар нейронів називається вхідним і містить число нейронів відповідне розпізнаному образові. Останній шар нейронів називається вихідним і містить стільки нейронів, скільки класів образів розпізнається. Між вхідним і вихідним шарами розташовується один або більше схованих (тіньових) шарів. Визначення числа схованих шарів і числа нейронів у кожнім шарі для конкретної задачі є неформальною задачею.
Принцип навчання такої нейронної мережі базується на обчисленні відхилень значень сигналів на вихідних процесорних елементах від еталонних і зворотньому "прогоні" цих відхилень до їхніх елементів, що породили, з метою корекції помилки. Ще в 1974 році Поль Дж. Вербос винайшов значно більш ефективну процедуру для обчислення величини, що називається похідною помилки по вазі, коли працював над своєю докторською дисертацією в Гарвардському університеті. Процедура, відома тепер як алгоритм зворотного поширення, стала одним з найбільш важливих інструментів у навчанні нейронних мереж. Однак цьому алгоритмові властиві і недоліки, головний з яких - відсутність скільки-небудь прийнятних оцінок часу навчання. Розуміння, що мережа зрештою навчиться, мало втішає, якщо на це можуть піти роки. Проте, алгоритм зворотного поширення має найширше застосування. Наприклад, успіх фірми NEC у розпізнаванні букв, був досягнутий саме завдяки алгоритмові зворотного поширення.
3. Основні алгоритми навчання і функціонування нейронних мереж
3.1. Алгоритм навчання з вчителем (алгоритм зворотного розповсюдження багатошарових нейронних мереж)
Серед різних структур нейронних мереж (НМ) однієї з найбільш відомих є багатошарова структура, у якій кожен нейрон довільного шару зв'язаний із усіма аксонами нейронів попереднього шару або, у випадку першого шару, із усіма входами НМ. Такі НМ називаються повнозв’язними. Коли в мережі тільки один шар, алгоритм її навчання з вчителем досить очевидний, тому що правильні вихідні стани нейронів єдиного шару свідомо відомі, і підстроювання синаптичних зв'язків йдуть у напрямку, мінімізуючому помилку на виході мережі. На цьому принципі будується, наприклад, алгоритм навчання одношарового перцептрона. У багатошарових же мережах оптимальні вихідні значення нейронів усіх шарів, крім останнього, як правило, не відомі, і двох або більш шаровий перцептрон уже неможливо навчити, керуючись тільки величинами помилок на виходах НМ. Один з варіантів рішення цієї проблеми – розробка наборів вихідних сигналів, що відповідають вхідним, для кожного шару НМ, що, звичайно, є дуже трудомісткою операцією і не завжди здійсненно. Другий варіант – динамічне підстроювання вагових коефіцієнтів синапсів, у ході якої вибираються, як правило, найбільш слабкі зв'язки і змінюються на малу величину в ту або іншу сторону, а зберігаються тільки ті зміни, що спричинили зменшення помилки на виході всієї мережі. Очевидно, що даний метод "тику", незважаючи на свою удавану простоту, вимагає великих рутинних обчислень. І, нарешті, третій, більш прийнятний варіант - поширення сигналів помилки від виходів НМ до її входів, у напрямку, зворотньому прямому поширенню сигналів у звичайному режимі роботи. Цей алгоритм навчання НМ одержав назву процедури зворотного поширення. Саме він буде розглянутий надалі.
Відповідно до методу найменших квадратів, мінімізуючою цільовою функцією помилки НМ є величина:
, (3.1)де
– реальний вихідний стан нейрону j вихідного шару N нейронної мережі при подаванні на її входи p-го образу; djp – ідеальний (бажаний) вихідний стан цього нейрону.Підсумовування ведеться по всіх нейронах вихідного шару і по всім оброблюваним мережею образам. Мінімізація ведеться методом градієнтного спуску, що означає підстроювання вагових коефіцієнтів у такий спосіб:
. (3.2)Тут wij – ваговий коефіцієнт синаптичного зв’язку, який поєднує i-ий нейрон шару n-1 с j-им нейроном шару n, h – коефіцієнт швидкості навчання, 0<h<1.
Відомо що,
. (3.3)Тут під yj, як і раніш, мається на увазі вихід нейрона j, а під sj – зважена сума його вхідних сигналів, тобто аргумент активаційної функції. Оскільки множник dyj/dsj є похідна цієї функції по її аргументу, з цього випливає, що похідна активаційної функції повинна бути визначена на всій осі абсцис. У зв'язку з цим функція одиничного стрибка та інші активаційні функції з неоднорідностями не підходять для розглянутих НМ. У них застосовуються такі гладкі функції, як гіперболічний тангенс або класичний сигмоїд з експонентою. У випадку гіперболічного тангенсу маємо:
. (3.4)Третій множник ¶sj/¶wij, очевидно, дорівнює виходу нейрона попереднього шару yi(n-1).
Що стосується першого множника в (3.3), він легко розкладається наступним чином :
. (3.5)Тут підсумовування по k виконується серед нейронів шару n+1.
Запровадивши нову змінну
, (3.6)ми отримаємо рекурсивну формулу для підрахунку величин dj(n) шару n з величин dk(n+1) більш старшого шару n+1:
. (3.7)Для вихідного шару
. (3.8)Тепер ми можемо записати формулу (3.2) у розкритому вигляді:
. (3.9)