а малу величину в ту чи іншу сторону, а зберігаються тільки ті зміни, які спричинили зменшення помилки на виході всієї мережі. Очевидно, що даний метод, незважаючи на свою уявну простоту, вимагає громіздких рутинних обчислень. І, нарешті, третій, більш прийнятний варіант - поширення сигналів помилки від виходів НС до її входів, в напрямку, зворотному прямому поширенню сигналів у звичайному режимі роботи. Цей алгоритм навчання НС отримав назву процедури зворотного поширення.
Відповідно до методу найменших квадратів, минимизируемой цільовою функцією помилки НС є величина:
(1)
де - реальне вихідна стан нейрона j вихідного шару N нейронної мережі при подачі на її входи p-го образу; djp - ідеальне (бажане) вихідна стан цього нейрона.
Підсумовування ведеться по всіх нейронах вихідного шару і по всіх оброблюваним мережею образам. Мінімізація ведеться методом градієнтного спуску, що означає підстроювання вагових коефіцієнтів наступним чином:
(2)
Тут wij - ваговий коефіцієнт синаптичного зв'язку, що з'єднує i-ий нейрон шару n - 1 з j-им нейроном шару n, h - коефіцієнт швидкості навчання, 0 lt; h lt; 1.
Як показано в [2],
(3)
Тут під yj,, мається на увазі вихід нейрона j, а під sj - зважена сума його вхідних сигналів, тобто аргумент активаційної функції. Так як множник dyj/dsj є похідною цієї функції по її аргументу, з цього випливає, що похідна активаційної функція повинна бути визначена на всій осі абсцис. У зв'язку з цим функція одиничного стрибка та інші активаційні функції з неоднорідностями не підходять для розглянутих НС. У них застосовуються такі гладкі функції, як гіперболічний тангенс або класичний сигмоид з експонентою. У разі гіперболічного тангенса
(4)
Третій множник ¶sj/¶wij, очевидно, дорівнює виходу нейрона попереднього шару yi (n - 1).
Що стосується першого множника в (3), він легко розкладається наступним чином [2]:
(5)
Тут підсумовування по k виконується серед нейронів шару n + 1.
Запровадивши нову змінну
(6)
ми отримаємо рекурсивну формулу для розрахунків величин dj (n) шару n з величин dk (n + 1) більш старшого шару n + 1.
(7)
Для вихідного ж шару
(8)
Тепер ми можемо записати (2) у розкритому вигляді:
(9)
Іноді для додання процесу корекції ваг деякої інерційності, згладжуючої різкі скачки при переміщенні по поверхні цільової функції, (9) доповнюється значенням зміни ваги на попередній ітерації
(10)
де m - коефіцієнт інерційності, t - номер поточної ітерації.
Таким чином, повний алгоритм навчання НС за допомогою процедури зворотного поширення будується так:
. Подати на входи мережі один з можливих образів і в режимі звичайного функціонування НС, коли сигнали поширюються від входів до виходів, розрахувати значення останніх.
(11)
де M - число нейронів у шарі n - 1 з урахуванням нейрона з постійним вихідним станом +1, що задає зсув; yi (n - 1)=xij (n) - i-ий вхід нейрона j шару n. (n)=f (sj (n)), де f () - сигмоид (12) (0)=Iq, (13 )
де Iq - q-а компонента вектора вхідного образу.
. Розрахувати d (N) для вихідного шару за формулою (8).
Розрахувати за формулою (9) або (10) зміни ваг Dw (N) шару N.
. Розрахувати за формулами (7) і (9) (або (7) і (10)) відповідно d (n) і Dw (n) для всіх інших шарів, n=N - 1, ... 1.
. Скорегувати всі ваги в НС
(14)
. Якщо помилка мережі істотна, перейти на крок 1. В іншому випадку - кінець.
Розглянута НС має кілька нюансів. По-перше, в процесі навчання може виникнути ситуація, коли великі позитивні або негативні значення вагових коефіцієнтів змістять робочу точку на сигмоид багатьох нейронів в область насичення. Малі величини похідною від логістичної функції приведуть у відповідність з (7) і (8) до зупинки навчання, що паралізує НС. По-друге, застосування методу градієнтного спуску не гарантує, що буде знайдений глобальний, а не локальний мінімум цільової функції. Ця проблема пов'язана ще з однією, а саме - з вибором величини швидкості навчання. Доказ збіжності навчання в процесі зворотного поширення засновано на похідних, тобто збільшення ваг і, отже, швидкість навчання повинні бути нескінченно малими, проте в цьому випадку навчання відбуватиметься неприйнятно повільно. З іншого боку, занадто великі корекції ваг можуть призвести до постійної нестійкості процесу навчання. Тому в якості h зазвичай вибирається число менше 1, але не дуже маленьке, наприклад, 0.1, і воно, взагалі кажучи, може поступово зменшуватися в процесі навчання. Крім того, для виключення випадкових попадань в локальні мінімуми іноді, післ...