Іноді для додання процесові корекції ваг деякої інерційності, що згладжує різкі стрибки при переміщенні по поверхні цільової функції, (3.9) доповнюється значенням зміни ваги на попередній ітерації
, (3.10)де m – коефіцієнт інерційності, t – номер поточної ітерації.
Таким чином, повний алгоритм навчання НМ за допомогою процедури зворотного розповсюдження будується так:
1. Подати на входи мережі один з можливих образів і в режимі звичайного функціонування НМ, коли сигнали поширюються від входів до виходів, розрахувати значення останніх. Нагадаємо, що
, (3.11)де M – число нейронів у шарі n-1 з урахуванням нейрону з постійним вихідним станом +1, який задає зсув; yi(n-1)=xij(n) – i-ий вхід нейрону j шару n;
yj(n) = f(sj(n)), (3.12)
де f() – сигмоїд;
yq(0)=Iq, (3.13)
де Iq – q-а компонента вектору вхідного образу.
2. Обчислити d(N) для вихідного шару по формулі (3.8). Обчислити по формулі (3.9) або (3.10) зміни вагів Dw(N) шару N.
3. Обчислити по формулам (3.7) і (3.9) (або (3.7) і (3.10)) відповідно d(n) і Dw(n) для усіх інших шарів, n=N-1,...1.
4. Скорегувати усі ваги в НМ:
. (3.14)5. Якщо помилка мережі значна, перейти до кроку 1. В протилежному випадку – кінець.
Мережі на кроці 1 поперемінно у випадковому порядку пред'являються всі тренувальні образи, щоб мережа, образно кажучи, не забувала одні в міру запам'ятовування інших. Алгоритм ілюструється на рис. 4.
З виразу (3.9) випливає, що коли вихідне значення yi(n-1) наближається до нуля, ефективність навчання помітно знижується. При двійкових вхідних векторах у середньому половина вагових коефіцієнтів не буде коректуватися, тому ділянку можливих значень виходів нейронів [0,1] бажано локалізувати в межі [-0.5,+0.5], що досягається простими модифікаціями логістичних функцій. Наприклад, сигмоїд з експонентою перетвориться до виду:
. (3.15)Рис. 4. Діаграма сигналів у мережі при навчанні за алгоритмом зворотного поширення
Тепер торкнемося питання ємності НМ, тобто числа образів, пропонованих на її входи, що вона здатна навчитися розпізнавати. Для мереж з числом шарів більше двох, він залишається відкритим. Для НМ із двома шарами, тобто вихідним і одним схованим шаром, детерміністська ємність мережі Cd оцінюється так:
Nw/Ny<Cd<Nw/Ny×log(Nw/Ny), (3.16)
де Nw – число ваг, що підбудовуються, Ny – число нейронів у вихідному шарі.
Слід зазначити, що даний вираз отриманий із урахуванням деяких обмежень. По-перше, число входів Nx і нейронів у схованому шарі Nh повинно задовольняти нерівності Nx+Nh>Ny. По-друге, Nw/Ny>1000. Однак вищенаведена оцінка виконувалася для мереж з активаційними функціями нейронів у вигляді порогу, а ємність мереж із гладкими активаційними функціями, наприклад – (3.15), зазвичай більше. Крім того, що фігурує в назві ємності, прикметник "детерміністський" означає, що отримана оцінка ємності підходить абсолютно для всіх можливих вхідних образів, що можуть бути представлені Nx входами. У дійсності розподіл вхідних образів, як правило, має деяку регулярність, що дозволяє НМ проводити узагальнення і, таким чином, збільшувати реальну ємність. Так як розподіл образів, у загальному випадку, заздалегідь не відомий, ми можемо говорити про таку ємність тільки приблизно, але зазвичай вона разів у два перевищує ємність детерміністську.
У продовження розмови про ємність НМ логічно торкнутися питання про необхідну потужність вихідного шару мережі, що виконує кінцеву класифікацію образів. Справа в тому, що для поділу безлічі вхідних образів, наприклад, по двох класах, досить всього одного виходу. При цьому кожен логічний рівень – "1" і "0" – буде позначати окремий клас. На двох виходах можна закодувати вже 4 класи і так далі. Однак результати роботи мережі, організованої таким чином, можна сказати – "під зав'язку", – не дуже надійні. Для підвищення вірогідності класифікації бажано увести надмірність шляхом виділення кожному класові одного нейрона у вихідному шарі або, що ще краще, декількох, кожен з яких навчається визначати належність образу до класу зі своїм ступенем вірогідності, наприклад: високим, середнім і низьким. Такі НМ дозволяють проводити класифікацію вхідних образів, об'єднаних у нечіткі (розмиті або пересічні) безлічі. Ця властивість наближає подібні НМ до умов реального життя.
Розглянута НМ має декілька "вузьких місць". По-перше, у процесі навчання може виникнути ситуація, коли великі позитивні або негативні значення вагових коефіцієнтів змістять робочу крапку на сигмоїдах багатьох нейронів в ділянку насичення. Малі величини похідної від логістичної функції призведуть у відповідність з (3.7) і (3.8) до зупинки навчання, що паралізує НМ. По-друге, застосування методу градієнтного спуску не гарантує, що буде знайдений глобальний, а не локальний мінімум цільової функції. Ця проблема зв'язана ще з однією, а саме – з вибором величини швидкості навчання. Доказ збіжності навчання в процесі зворотного поширення засновано на похідних, тобто збільшення ваг і, отже, швидкість навчання повинна бути нескінченно малою, однак у цьому випадку навчання буде відбуватися неприйнятно повільно. З іншого боку, занадто великі корекції ваг можуть призвести до постійної нестійкості процесу навчання. Тому в якості швидкості навчання зазвичай вибирається число менше 1, але не дуже маленьке, наприклад, 0.1, і воно, узагалі говорячи, може поступово зменшуватися в процесі навчання. Крім того, для виключення випадкових влучень у локальні мінімуми іноді, після того як значення вагових коефіцієнтів стабілізуються, швидкість навчання короткочасно сильно збільшують, щоб почати градієнтний спуск із нової крапки. Якщо повторення цієї процедури кілька разів приведе алгоритм у той самий стан НМ, можна більш-менш впевнено сказати, що знайдено глобальний максимум, а не якийсь інший. Проте даний метод є досить ефективним і широко застосовується.
Слід зазначити, що існує й інший метод виключення локальних мінімумів і, крім того, паралічу НМ, що полягає в застосуванні стохастичних НМ, про які йшла мова в попередніх главах.
У такий спосіб, розглянутий у даній главі, алгоритм навчання нейронної мережі за допомогою процедури зворотного поширення має на увазі наявність якоїсь зовнішньої ланки, що надає мережі крім вхідних так само і цільові вихідні образи. Алгоритми, що користуються подібною концепцією, називаються алгоритмами навчання з вчителем. Для їхнього успішного функціонування необхідна наявність експертів, що створюють на попередньому етапі для кожного вхідного образу еталонний вихідний.
3.2. Алгоритм навчання без вчителя (алгоритм прямого розповсюдження нейронних мереж)
Оскільки створення штучного інтелекту рухається по шляху копіювання природних прообразів, вчені не припиняють суперечку на тему, чи можна вважати алгоритми навчання з вчителем натуральними або ж вони є цілком штучними. Наприклад, навчання людського мозку, на перший погляд, відбувається без вчителя: на зорові, слухові, тактильні та інші рецептори надходить інформація ззовні, і усередині нервової системи відбувається якась самоорганізація. Однак, не можна заперечувати і того, що в житті людини не мало вчителів – і в буквальному, і в переносному значенні, – які координують зовнішні впливи. Разом з тим, чим би не закінчилася суперечка прихильників цих двох концепцій навчання, вони обидві мають право на існування.
Головна риса, що робить навчання без вчителя привабливим, – це його "самостійність". Процес навчання, як і у випадку навчання з вчителем, полягає в підстроюванні ваг синапсів. Деякі алгоритми, щоправда, змінюють і структуру мережі, тобто кількість нейронів і їхні взаємозв'язки, але такі перетворення краще назвати більш широким терміном – самоорганізацією. Очевидно, що підстроювання синапсів може проводитися тільки на підставі інформації, доступної в нейроні, тобто його стану і вже наявних вагових коефіцієнтів. Виходячи з цього розуміння і, що більш важливо, за аналогією з відомими принципами самоорганізації нервових клітин, побудовані алгоритми навчання Хебба.
Сигнальний метод навчання Хебба полягає в зміні ваг за наступним правилом:
, (3.17)де yi(n-1) – вихідне значення нейрону i шару (n-1), yj(n) – вихідне значення нейрону j шару n; wij(t) і wij(t-1) – ваговий коефіцієнт синапсу, який поєднує ці нейрони, на ітераціях t и t‑1 відповідно; a – коефіцієнт швидкості навчання. Тут і надалі, для загальності, під n розуміється довільний шар мережі. При навчанні по даному методу підсилюються зв’язки між збудженими нейронами.
Існує також і диференціальний метод навчання Хебба:
. (3.18)Тут yi(n-1)(t) та yi(n-1)(t-1) – вихідне значення нейрону i шару n-1 відповідно на ітераціях t і t-1; yj(n)(t) та yj(n)(t-1) – теж саме для нейрону j шару n. Як видно з формули (3.18), сильніше всього навчаються синапси, поєднуючи ті нейрони, виходи яких найбільш динамічно змінились в бік зростання.
Повний алгоритм навчання із застосуванням вищенаведених формул буде виглядати так:
1. На стадії ініціалізації усім ваговим коефіцієнтам привласнюються невеликі випадкові значення.