рібним чином. Ненавчена нейронна мережа подібна дитині - її можна навчити чого завгодно. У використовуваних на практиці нейронних мережах кількість ваг може становити кілька десятків тисяч, тому навчання - дійсно складний процес. Для багатьох архітектур розроблені спеціальні алгоритми навчання, які дозволяють налаштувати ваги нейронної мережі певним чином. Найбільш популярний з цих алгоритмів - метод зворотного поширення помилки (Error Back Propagation), використовуваний, наприклад, для навчання перцептрона. br/>
4. Навчання нейронних мереж
Навчити нейронну мережу - значить, повідомити їй, чого ми від неї домагаємося. Цей процес дуже схожий на навчання дитини алфавітом. Показавши дитині зображення літери "А", ми запитуємо його: "Яка це буква?" Якщо відповідь невірний, ми повідомляємо дитині ту відповідь, який ми хотіли б від нього отримати: "Це буква А". Дитина запам'ятовує цей приклад разом з вірною відповіддю, тобто в його пам'яті відбуваються деякі зміни в потрібному напрямку. Ми будемо повторювати процес пред'явлення букв знову і знову до тих пір, коли всі 33 літери будуть твердо запам'ятовані. Такий процес називають "навчання з учителем". br/>В
При навчанні нейронної мережі ми діємо абсолютно аналогічно. У нас є деяка база даних, що містить приклади (набір рукописних зображень літер). Пред'являючи зображення літери "А" на вхід нейронної мережі, ми отримуємо від неї деяку відповідь, не обов'язково вірний. Нам відомий і вірний (бажаний) відповідь - в даному випадку нам хотілося б, щоб на виході нейронної мережі з міткою "А" рівень сигналу був максимальний. Звичайно як бажаного виходу в задачі класифікації беруть набір (1, 0, 0, ...), де 1 стоїть на виході з міткою "А", а 0 - на всіх інших виходах. Обчислюючи різницю між бажаним відповіддю і реальною відповіддю мережі, ми отримуємо 33 числа - вектор помилки. Алгоритм зворотного поширення помилки - це набір формул, який дозволяє за вектором помилки обчислити необхідні поправки для ваг нейронної мережі. Одну і ту ж літеру (а також різні зображення однієї і тієї ж букви) ми можемо пред'являти нейронної мережі багато разів. У цьому сенсі навчання швидше нагадує повторення вправ у спорті - тренування. p align="justify"> Виявляється, що після багаторазового пред'явлення прикладів ваги нейронної мережі стабілізуються, причому нейронна мережа дає правильні відповіді на всі (або майже всі) приклади з бази даних. У такому випадку говорять, що "нейронна мережа вивчила всі приклади", "нейронна мережа навчена", або "нейронна мережа натренована". У програмних реалізаціях можна бачити, що в процесі навчання величина помилки (сума квадратів помилок по всіх виходах) поступово зменшується. Коли величина помилки досягає нуля або прийнятного малого рівня, тренування зупиняють, а отриману нейронну мережу вважають натренованого і готової до застосування на нових даних. Важлив...