Використання алгоритму back-propagation
Отже, найпростіший спосіб використання градієнта при навчанні - зміна ваг пропорційно градієнту - т.зв метод найшвидшого спуску:
Цей метод виявляється, проте, надзвичайно неефективний у разі, коли похідні за різними ваг сильно відрізняються, тобто рельєф функції помилки нагадує не яму, а довгий яр. (Це відповідає ситуації, коли активація деяких з сігмоідной нейронів близька по модулю до 1 або, що те ж саме - коли модуль деяких ваг багато більше 1). В цьому випадку для плавного зменшення помилки необхідно вибирати дуже маленький темп навчання, що диктуються максимальної похідної (шириною яру), тоді як відстань до мінімуму за порядком величини визначається мінімальної похідною (довжиною яру). В результаті навчання стає неприйнятно повільним. Крім того, на самому дні яру неминуче виникають осциляції, і навчання втрачає привабливе властивість монотонності убування помилки.
Мал. 3.5. Неефективність методу якнайшвидшого спуску: градієнт спрямований не в бік мінімуму
Найпростішим удосконаленням методу якнайшвидшого спуску є введення моменту. коли вплив градієнта на зміну ваг накопичується з часом:
Якісно вплив моменту на процес навчання можна пояснити наступним чином. Припустимо, що градієнт змінюється плавно, так що протягом деякого часу його зміною можна знехтувати (ми знаходимося далеко від дна яру). Тоді зміна ваг можна записати у вигляді:
тобто в цьому випадку ефективний темп навчання збільшується, причому істотно, якщо момент. Навпаки, поблизу дна яру, коли напрямок градієнта раз у раз змінює знак з-за описаних вище осциляцій, ефективний темп навчання сповільнюється до значення близького до:
Мал. 3.6. Введення інерції в алгоритм навчання дозволяє адаптивно змінювати швидкість навчання
Додаткова перевага від запровадження моменту - з'являється у алгоритму здатність долати дрібні локальні мінімуми. Це властивість можна побачити, записавши різницеве рівняння для навчання в вигляді диференціального. Тоді навчання методом якнайшвидшого спуску буде описуватися рівнянням руху тіла у в'язкому середовищі:. Введення моменту відповідає появі у такого гіпотетичного тіла інерції, тобто маси:. У підсумку, "розігнавшись", тіло може за інерцією долати невеликі локальні мінімуми помилки, застряє лише у відносно глибоких, значущих мінімумах.
Одним з недоліків описаного методу є введення ще одного глобального настроечного параметра. Ми ж, навпаки, повинні прагнути до відсутності таких нав'язуваних алгоритму ззовні параметрів. Ідеальною є ситуація, коли всі параметри навчання самі настроюються в процесі навчання, витягуючи інформацію про характер рельєфу функції помилки з самого ходу навчання. Прикладом досить вдалого алгоритму навчання є т.зв. RPROP (від resilient - еластичний), в якому кожен вага має свій адаптивно настроюється темп навчання.
RPROP прагне уникнути уповільнення темпу навчання на плоских "рівнинах" ландшафту функції помилки, характерного для схем, де зміни ваг пропорційні величині градієнта. Замість цього RPROP використовує лише знаки приватних похідних по кожному вазі.
Величина кроку поновлення - своя для кожної ваги і адаптується в процесі навчання:
Якщо знак похідної по даному вазі змінив напрямок, значить попереднє значення кроку по даній координаті було занадто велике, і алгоритм зменшує його в
раз. В іншому випадку крок збільшується в
раз для прискорення навчання далеко від мінімуму.
Ми не торкнулися тут більш витончених методів навчання, таких як метод сполученого градієнта. а також методів другого порядку, які використовують не тільки інформацію про градієнті функції помилки, але і інформацію про других похідних. Їх розбір навряд чи доречний при першому короткому знайомстві з основами нейрокомпьютинга.
Обчислювальна складність навчання
Раніше під час обговорення історії нейрокомпьютинга ми посилалися на відносну трудомісткість процесу навчання. Щоб мати хоча б приблизне уявлення про пов'язаних з навчанням обчислювальних витратах, наведемо якісну оцінку обчислювальної складності алгоритмів навчання.
Нехай як завжди W - число синаптичних ваг мережі (weights), а P - число навчальних прикладів (patterns). Тоді для одноразового обчислення градієнта функції помилки потрібно близько PW операцій. Припустимо для простоти, що ми досить близькі до шуканого мінімуму і можемо поблизу цього мінімуму апроксимувати функцію помилки квадратичним виразом. Тут - матриця других похідних в точці мінімуму. Оцінивши цю матрицю по локальній інформації (для чого буде потрібно операцій методу back-propagation), можна потрапити з будь-якої точки в мінімум за один крок. На цій стратегії побудовані методи другого порядку (метод Ньютона). Альтернативна стратегія - знайти необхідні параметрів за кроків методу першого порядку, витративши на кожному кроці операцій. Саме таку швидкість збіжності (ітерацій) мають кращі алгоритми першого порядку (наприклад, метод сполученого градієнта). В обох випадках оптимістична оцінка складності навчання мережі (тому що вона отримана для найпростішого з усіх можливих - квадратичного - рельєфу) становить операцій.