Як працює нормалізація ваги?

Я читав статтю Нормалізація ваги: ​​проста репараметризація для прискорення навчання глибоких нейронних мереж щодо вдосконалення вивчення ANN за допомогою нормалізації ваги.

Вони розглядають стандартні штучні нейронні мережі, де обчислення кожного нейрона полягає у взятті зваженої суми вхідних ознак з подальшою поелементною нелінійністю

$$ y = \ phi (\ mathbf \ cdot \ mathbf + b) $$

де $ \ mathbf $ - це $ k $ -вимірний вектор ваги, $ b $ - термін скалярного зміщення, $ \ mathbf $ - $ k $ -вимірний вектор вхідних ознак, $ \ phi (\ cdot) $ позначає елементно нелінійність, а $ y $ позначає скалярний вихід нейрона.

Потім вони пропонують перепараметризувати кожен вектор ваги $ \ mathbf $ з точки зору вектора параметрів $ \ mathbf $ і скалярного параметра $ g $ і замість цього виконати стохастичний градієнтний спуск щодо цих параметрів.

де $ \ mathbf $ - $ k $ -вимірний вектор, $ g $ - скаляр, а $ \ | \ mathbf \ | $ позначає евклідову норму $ \ mathbf $. Вони називають це репараметризацією нормалізації ваги.

Для чого використовується цей скаляр $ g $ і звідки він береться? Чи є $ \ mathbf $ нормованою вагою? Як взагалі працює нормалізація ваги? У чому полягає інтуїція?

нормалізація

1 відповідь 1

Ваше тлумачення цілком правильне. Я не міг зрозуміти, як це пришвидшить конвергенцію. Те, що вони роблять, - це в основному перепризначення величини весового вектора (також зване нормою весового вектора).

Щоб поставити речі на перспективу, звичайний підхід до будь-якої функції вартості машинного навчання полягає у тому, щоб не тільки перевірити варіації помилки щодо вагової змінної (градієнта), але також додати термін нормалізації, який становить $ \ lambda (w_0 ^ 2 + w_1 ^ 2 + \ крапки) $. Це має кілька переваг:

Ваги не стануть експоненціально високими, навіть якщо ви зробите якусь помилку (як правило, відхиляючись до експоненціальних витрат через неправильний вибір швидкості навчання).

Крім того, конвергенція якось швидша (можливо, тому, що у вас зараз є 2 способи контролювати, скільки ваги слід надавати об’єкту. Важливі ваги об’єктів не тільки зменшуються на нормальний градієнт, але й градієнт нормування $ \ lambda (w_0 ^ 2 + w_1 ^ 2 + \ крапки) $).

У цій роботі вони запропонували зафіксувати величину вектора ваги. Це хороший спосіб, хоча я не впевнений, що це краще, ніж нормалізація функцій. Обмежуючи величину ваги до $ g $, вони фіксують доступний ресурс. Інтуїція полягає в тому, що якщо у вас є 24 години, ви повинні розподілити цей час між предметами. Ви розповсюдите його таким чином, щоб ваш рейтинг/знання були максимізовані. Отже, це може допомогти у швидшій конвергенції.

Також іншою інтуїцією буде, коли ви віднімаєте градієнт від вектора ваги, ви використовуєте швидкість навчання $ \ alpha $. Це визначає, скільки ваги-віку помилки ви хочете отримати, яка згодом буде віднята від ваг. У цьому підході ви не тільки віднімаєте ваги, але й використовуєте інший коефіцієнт навчання $ g $ для масштабування ваги. Я називаю це $ g $ швидкістю навчання, тому що ви можете налаштувати його, що, в свою чергу, налаштовує значення ваг, що, в свою чергу, впливає на майбутнє зменшення градієнтного спуску ваги.

Я впевнений, що хтось опублікує краще математичне пояснення цього, але це вся інтуїція, про яку я міг подумати. Буду вдячний, якщо вкажуть на інші інтуїції та математичні тонкощі. Сподіваюся, це допомагає!