Зворотне Поширення Помилки
Зворотне поширення, або 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.Тут α позначає швидкість навчання, яка визначає, наскільки сильно параметри коригуються під час кожного кроку навчання.
Тут α — це швидкість навчання, гіперпараметр, що визначає розмір коригування, яке застосовується до ваг і зміщень під час кожного кроку оновлення.
Дякуємо за ваш відгук!