Зворотне Поширення Помилки
Зворотне поширення (backprop) — це процес обчислення того, як функція втрат змінюється відносно кожного параметра в мережі. Мета — оновити параметри у напрямку, який зменшує втрати.
Для цього використовується алгоритм градієнтного спуску та обчислюються похідні функції втрат відносно значень до активації кожного шару (сирі вихідні значення до застосування функції активації), які потім поширюються назад.
Кожен шар впливає на фінальний прогноз, тому градієнти потрібно обчислювати структуровано:
- Виконати пряме поширення;
- Обчислити похідну втрат відносно вихідного значення до активації;
- Поширити цю похідну назад через шари, використовуючи правило ланцюга;
- Обчислити градієнти для ваг і зсувів для їх оновлення.
Градієнти відображають швидкість зміни функції відносно її вхідних даних, тобто є її похідними. Вони показують, наскільки незначна зміна ваг, зсувів або активацій впливає на функцію втрат, спрямовуючи процес навчання моделі за допомогою градієнтного спуску.
Позначення
Для кращого розуміння скористаємося такими позначеннями:
- 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 — це похідна активаційної функції вихідного шару.
Ця величина показує, наскільки чутлива функція втрат до змін у передактивації вихідного шару.
Після отримання 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де α — це швидкість навчання, яка визначає, наскільки сильно коригуються параметри.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain how the chain rule is applied in backpropagation?
What is the difference between pre-activations and activations?
Can you provide a step-by-step example of backpropagation for a simple network?
Awesome!
Completion rate improved to 4
Зворотне Поширення Помилки
Свайпніть щоб показати меню
Зворотне поширення (backprop) — це процес обчислення того, як функція втрат змінюється відносно кожного параметра в мережі. Мета — оновити параметри у напрямку, який зменшує втрати.
Для цього використовується алгоритм градієнтного спуску та обчислюються похідні функції втрат відносно значень до активації кожного шару (сирі вихідні значення до застосування функції активації), які потім поширюються назад.
Кожен шар впливає на фінальний прогноз, тому градієнти потрібно обчислювати структуровано:
- Виконати пряме поширення;
- Обчислити похідну втрат відносно вихідного значення до активації;
- Поширити цю похідну назад через шари, використовуючи правило ланцюга;
- Обчислити градієнти для ваг і зсувів для їх оновлення.
Градієнти відображають швидкість зміни функції відносно її вхідних даних, тобто є її похідними. Вони показують, наскільки незначна зміна ваг, зсувів або активацій впливає на функцію втрат, спрямовуючи процес навчання моделі за допомогою градієнтного спуску.
Позначення
Для кращого розуміння скористаємося такими позначеннями:
- 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 — це похідна активаційної функції вихідного шару.
Ця величина показує, наскільки чутлива функція втрат до змін у передактивації вихідного шару.
Після отримання 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де α — це швидкість навчання, яка визначає, наскільки сильно коригуються параметри.
Дякуємо за ваш відгук!