вації (2.5), як найбільш поширену функцію активації нейронних елементів, причому приймемо з=1.
;
;
,
У результаті узагальнене дельта правило для сігмоідной функції можна представити у вигляді:
; (2.14)
.
Помилка для j-го нейрона вихідного шару:
. (2.15)
З (2.13) помилка для j-го нейронного елемента прихованого шару:
, (2.16)
де m - число нейронних елементів наступного шару по відношенню до шару j.
Малюнок 2.15 - Алгоритм зворотного поширення помилки
Використовуючи вищевикладене, можна визначити алгоритм зворотного поширення помилки, малюнок 2.15. В алгоритмі прийняті наступні позначення, що відповідають програмою, що реалізує цей алгоритм:
-?- Крок навчання;
- Em - необхідна середньоквадратична помилка;
- epoxa - ціле число, рівне кількості навчальних зразків;
- wij - ваговий коефіцієнт зв'язку між i-м і j-м нейронами суміжних шарів;
- stArIN - масив вхідних значень навчального зразка;
- stArOUT - масив вихідних значень навчального зразка;
- stAr - об'єкт класу StadyArrays, що зберігає stArIN і stArOUT разом;
- massivStudy - масив об'єктів, що містять об'єкти класу StadyArrays;
- STOP - логічна змінна, відповідна закінченню навчання;
- layers - ціле число, рівне кількості всіх верств в нейронної мережі;
- koli4estvo - ціле число, рівне кількості нейронів у шарі;
- у - значення результату роботи нейронного елемента;
- resultStudy - масив результатів всіх нейронів шару;
- result - масив цільових значень;
-?- Помилка результату роботи нейрона;
- е [i] - сума квадратів помилок вихідного шару для i-го зразка;
- Е - середньоквадратична помилка мережі для всіх зразків.
Опис дії алгоритму зворотного поширення помилки.
1 Користувач вводить бажані значення кроку навчання (?), середньоквадратичної помилки (Em), і кількість зразків для навчання (epoxa).
2 Ініціалізувалися випадковим чином вагові коефіцієнти (wij) нейронних елементів в межах від - 0,5 до +0,5.
Початок циклу введення навчальних зразків.
Користувач вводить подається на вхід нейронної мережі масив даних, stArIN.
Користувач вводить масив цільових вихідних значень, stArOUT.
На підставі stArIN і stArOUT створюється об'єкт класу StadyArrays.
Створений об'єкт додається в масив massivStudy.
Значення STOP встановлюється в Брехня, мається на увазі що мережа не в змозі правильно вирішувати поставлену задачу, тобто не навчена.
Перевірка параметра зупинки процесу навчання. Якщо STOP=Істина, то цикл припиняється (перехід до блоку 30), в іншому випадку перехід до кроку 11.
Початок циклу навчання всім зразкам епохи.
Зчитується вхідний вектор значень чергового зразка. Здається resultStudy.
Циклу прямого проходження інформації по нейронної мережі. Відбувається послідовне проходження введеної інформації по всіх верствах.
Циклу обчислення реакції кожного нейрона в шарі на інформацію подається на цей шар.
Обчислюється результат роботи кожного нейрона, виходячи з (2.1):
,
де i - індекс, що характеризує нейрони попереднього шару по відношенню до шару j. Для вхідного шару yi береться із заданого в блоці 12 масиву resultStudy.
15 перевизначайте масив resultStudy, для представлення його як вхідної інформації вже наступного шару.
16 Зчитується цільової вектор значень поточного зразка. Здається result.
Цикл обчислення помилок усіх нейронних елементів вихідного шару.
На підставі отриманого масиву result і обчисленого resultStudy, знаходяться помилки по (2.15):
;
де yj - обчислене значення, тобто елемент масиву resultStudy;
tj - відоме цільове значення, елемент масиву result.
19 Цикл обчислення помилок у всіх прихованих шарах, починаючи з останнього.
20 Цикл обчислення помилок усіх нейронних елементів поточного прихованого шару.