Зворотне Поширення Помилки
Зворотне поширення, або backpropagation, — це процес визначення, як функція втрат змінюється відносно кожного параметра в нейронній мережі. Мета полягає в тому, щоб налаштувати ці параметри так, щоб зменшити загальні втрати.
Цей процес базується на алгоритмі градієнтного спуску, який використовує похідні функції втрат відносно попередньо активованих значень кожного шару (сирі вихідні дані до застосування функції активації) та поширює їх у зворотному напрямку через мережу.
Оскільки кожен шар впливає на фінальний прогноз, градієнти обчислюються крок за кроком:
- Виконати пряме поширення для отримання вихідних значень;
- Обчислити похідну втрат відносно попередньо активованого виходу;
- Поширити цю похідну назад через шари, використовуючи правило ланцюга;
- Обчислити та використати градієнти для ваг і зсувів для їх оновлення під час навчання.
Градієнти відображають швидкість зміни функції відносно її вхідних даних, тобто є її похідними. Вони показують, наскільки невелика зміна ваг, зсувів або активацій впливає на функцію втрат, спрямовуючи процес навчання моделі за допомогою градієнтного спуску.
Позначення
Для кращого розуміння скористаємося наступними позначеннями:
- Wl — матриця ваг шару l;
- bl — вектор зсувів шару l;
- zl — вектор попередньо активованих значень шару l;
- al — вектор активацій шару l;
Відповідно, якщо a0 дорівнює x (вхідні дані), пряме поширення у перцептроні з n шарами можна описати наступною послідовністю операцій:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.Щоб математично описати зворотне поширення помилки, вводяться такі позначення:
- dal: похідна функції втрат за активаціями на шарі l;
- dzl: похідна функції втрат за попередніми активаціями на шарі l (до застосування функції активації);
- dWl: похідна функції втрат за вагами на шарі l;
- dbl: похідна функції втрат за зміщеннями на шарі l.
Обчислення градієнтів для вихідного шару
На фінальному шарі n першим кроком є обчислення градієнта функції втрат відносно активацій вихідного шару, що позначається як dan.
Далі, використовуючи правило ланцюга, обчислюється градієнт функції втрат відносно попередніх активацій вихідного шару за формулою:
dzn=dan⊙f′n(zn)Тут f′n(zn) — це похідна функції активації на шарі n, а символ ⊙ позначає покомпонентне множення.
Символ ⊙ позначає покомпонентне множення, тобто кожен елемент одного вектора множиться на відповідний елемент іншого вектора. На відміну від цього, символ ⋅ означає скалярний добуток, який використовується для стандартного множення матриць або векторів. Позначення f′n відноситься до похідної функції активації на вихідному шарі.
Це значення показує, наскільки чутлива функція втрат до змін у передактиваційних значеннях вихідного шару.
Після обчислення dzn наступним кроком є знаходження градієнтів для ваг і зсувів:
dWndbn=dzn⋅(an−1)T,=dznЦі градієнти описують, наскільки потрібно скоригувати кожну вагу та зсув у вихідному шарі для зменшення втрат.
Тут (an−1)T — це транспонований вектор активацій з попереднього шару. Якщо початковий вектор має розмір nneurons×1, його транспонований вигляд має розмір 1×nneurons.
Для продовження зворотного поширення похідна функції втрат за активаціями попереднього шару обчислюється так:
dan−1=(Wn)T⋅dznЦей вираз дозволяє передавати сигнал помилки назад мережею, забезпечуючи коригування попередніх шарів під час навчання.
Поширення градієнтів до прихованих шарів
Для кожного прихованого шару l процедура однакова. Маючи dal:
- Обчислити похідну функції втрат за передактиваціями;
- Обчислити градієнти для ваг і зсувів;
- Обчислити dal−1 для подальшого поширення похідної назад.
Цей процес повторюється для кожного попереднього шару, крок за кроком, доки не буде досягнуто вхідного шару.
Оновлення ваг і зміщень
Після обчислення градієнтів для всіх шарів ваги та зміщення оновлюються за допомогою алгоритму градієнтного спуску:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Тут α позначає швидкість навчання, яка визначає, наскільки сильно параметри коригуються під час кожного кроку навчання.
Тут α — це швидкість навчання, гіперпараметр, що визначає розмір коригування, яке застосовується до ваг і зміщень під час кожного кроку оновлення.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 4
Зворотне Поширення Помилки
Свайпніть щоб показати меню
Зворотне поширення, або backpropagation, — це процес визначення, як функція втрат змінюється відносно кожного параметра в нейронній мережі. Мета полягає в тому, щоб налаштувати ці параметри так, щоб зменшити загальні втрати.
Цей процес базується на алгоритмі градієнтного спуску, який використовує похідні функції втрат відносно попередньо активованих значень кожного шару (сирі вихідні дані до застосування функції активації) та поширює їх у зворотному напрямку через мережу.
Оскільки кожен шар впливає на фінальний прогноз, градієнти обчислюються крок за кроком:
- Виконати пряме поширення для отримання вихідних значень;
- Обчислити похідну втрат відносно попередньо активованого виходу;
- Поширити цю похідну назад через шари, використовуючи правило ланцюга;
- Обчислити та використати градієнти для ваг і зсувів для їх оновлення під час навчання.
Градієнти відображають швидкість зміни функції відносно її вхідних даних, тобто є її похідними. Вони показують, наскільки невелика зміна ваг, зсувів або активацій впливає на функцію втрат, спрямовуючи процес навчання моделі за допомогою градієнтного спуску.
Позначення
Для кращого розуміння скористаємося наступними позначеннями:
- Wl — матриця ваг шару l;
- bl — вектор зсувів шару l;
- zl — вектор попередньо активованих значень шару l;
- al — вектор активацій шару l;
Відповідно, якщо a0 дорівнює x (вхідні дані), пряме поширення у перцептроні з n шарами можна описати наступною послідовністю операцій:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.Щоб математично описати зворотне поширення помилки, вводяться такі позначення:
- dal: похідна функції втрат за активаціями на шарі l;
- dzl: похідна функції втрат за попередніми активаціями на шарі l (до застосування функції активації);
- dWl: похідна функції втрат за вагами на шарі l;
- dbl: похідна функції втрат за зміщеннями на шарі l.
Обчислення градієнтів для вихідного шару
На фінальному шарі n першим кроком є обчислення градієнта функції втрат відносно активацій вихідного шару, що позначається як dan.
Далі, використовуючи правило ланцюга, обчислюється градієнт функції втрат відносно попередніх активацій вихідного шару за формулою:
dzn=dan⊙f′n(zn)Тут f′n(zn) — це похідна функції активації на шарі n, а символ ⊙ позначає покомпонентне множення.
Символ ⊙ позначає покомпонентне множення, тобто кожен елемент одного вектора множиться на відповідний елемент іншого вектора. На відміну від цього, символ ⋅ означає скалярний добуток, який використовується для стандартного множення матриць або векторів. Позначення f′n відноситься до похідної функції активації на вихідному шарі.
Це значення показує, наскільки чутлива функція втрат до змін у передактиваційних значеннях вихідного шару.
Після обчислення dzn наступним кроком є знаходження градієнтів для ваг і зсувів:
dWndbn=dzn⋅(an−1)T,=dznЦі градієнти описують, наскільки потрібно скоригувати кожну вагу та зсув у вихідному шарі для зменшення втрат.
Тут (an−1)T — це транспонований вектор активацій з попереднього шару. Якщо початковий вектор має розмір nneurons×1, його транспонований вигляд має розмір 1×nneurons.
Для продовження зворотного поширення похідна функції втрат за активаціями попереднього шару обчислюється так:
dan−1=(Wn)T⋅dznЦей вираз дозволяє передавати сигнал помилки назад мережею, забезпечуючи коригування попередніх шарів під час навчання.
Поширення градієнтів до прихованих шарів
Для кожного прихованого шару l процедура однакова. Маючи dal:
- Обчислити похідну функції втрат за передактиваціями;
- Обчислити градієнти для ваг і зсувів;
- Обчислити dal−1 для подальшого поширення похідної назад.
Цей процес повторюється для кожного попереднього шару, крок за кроком, доки не буде досягнуто вхідного шару.
Оновлення ваг і зміщень
Після обчислення градієнтів для всіх шарів ваги та зміщення оновлюються за допомогою алгоритму градієнтного спуску:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Тут α позначає швидкість навчання, яка визначає, наскільки сильно параметри коригуються під час кожного кроку навчання.
Тут α — це швидкість навчання, гіперпараметр, що визначає розмір коригування, яке застосовується до ваг і зміщень під час кожного кроку оновлення.
Дякуємо за ваш відгук!