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