📉 Візуалізатор Градієнтного Спуску
Спостерігайте як SGD, Momentum, RMSprop та Adam рухаються по 3D ландшафту втрат. Порівняйте швидкість збіжності та траєкторії. Налаштовуйте швидкість навчання та шум.
Про цю симуляцію
Цей візуалізатор запускає один або декілька оптимізаторів на 3D ландшафті втрат і анімує ітеративний шлях, який кожен з них прокладає до мінімуму. На кожному кроці істинний градієнт обраної тестової функції обчислюється аналітично, за бажанням додається шум, а правило оновлення параметрів для SGD, Momentum, RMSprop або Adam зсуває маркер вниз. Спостереження за чотирма траєкторіями, що змагаються на таких поверхнях, як долина Розенброка, показує, чому адаптивні методи так по-різному справляються з кривизною, вузькими ущелинами та сідловими точками.
🔬 Що показано
Візуалізоване поле висот класичного бенчмарку оптимізації (Розенброк, сідло, функція Біла або Хіммельблау). Кольорові точки спускаються по ньому, використовуючи реальні рівняння оновлення: звичайний SGD (x ← x − lr·g), Momentum, масштабування RMSprop по квадрату градієнта для кожної осі та Adam з коригованими на зміщення першим і другим моментами (β₁, β₂ = 0,999). Біла зірка ★ позначає глобальний мінімум, до якого прямує кожен шлях.
🎮 Як користуватись
Оберіть оптимізатор (або «Всі чотири» для порівняння) і функцію втрат зі списків. Повзунки Швидкості навчання (0,001–0,2), Momentum / β₁ (0–0,99) та Шуму градієнта (0–0,5) миттєво змінюють динаміку. Скидання перезапускає, Пауза зупиняє кадр, а перетягування обертає й прокрутка масштабує камеру. Панель телеметрії показує кількість кроків, втрату, норму градієнта та зміщення за крок.
💡 Чи знали ви?
«Бананова» функція Розенброка має глобальний мінімум у точці (1, 1), що лежить усередині довгої, вигнутої, майже пласкої долини. Слідування за градієнтом майже миттєво заводить у долину, але повзти по її дну до справжнього мінімуму — відомо повільно, саме тому вона стала стандартним стрес-тестом для алгоритмів оптимізації.
Часті питання
Що таке градієнтний спуск?
Градієнтний спуск — це ітеративний метод мінімізації функції шляхом повторюваних кроків у напрямку найшвидшого спадання — від'ємного градієнта. Кожне оновлення: параметр = параметр − швидкість_навчання × градієнт. У машинному навчанні це рушій, що коригує ваги моделі для зменшення похибки, і ця сторінка робить цей процес видимим на 2D-поверхні, намальованій у 3D.
Чим відрізняються SGD, Momentum, RMSprop та Adam?
SGD робить крок фіксованого розміру вздовж «сирого» градієнта. Momentum накопичує швидкість, тому набирає темп у послідовних напрямках і гасить коливання. RMSprop ділить кожен крок на ковзне середнє квадратів градієнтів, надаючи кожній осі власний адаптивний масштаб. Adam поєднує momentum і масштабування в стилі RMSprop з корекцією зміщення, тому тут він часто збігається найшвидше.
Що роблять повзунки швидкості навчання та шуму?
Швидкість навчання визначає, наскільки далеко рухається кожен крок; занадто мала — і збіжність повзе, занадто велика — маркер проскакує повз мінімум або розходиться. Шум градієнта додає випадкове збурення, пропорційне величині градієнта, імітуючи стохастичні градієнти навчання міні-пакетами й показуючи, як кожен оптимізатор справляється з недосконалою оцінкою напрямку.
Чи математично точна ця симуляція?
Так, для основної механіки. Градієнти всіх чотирьох функцій втрат обчислюються аналітично, а чотири правила оновлення реалізують стандартні рівняння, включно з коригованими на зміщення моментами Adam при β₂ = 0,999. Це достовірна навчальна модель із двома параметрами, а не повна глибока мережа, тож вона не враховує міні-пакети, регуляризацію ваг і розклади швидкості навчання.
Чому оптимізатори іноді застрягають або поводяться дивно?
На сідловій поверхні градієнт майже зникає в одному напрямку, тому звичайний SGD може застрягти, тоді як адаптивні методи вириваються швидше. На функції Хіммельблау є чотири окремі мінімуми, тож стартова точка визначає, у який басейн потрапить шлях. Ці поведінки ілюструють, що градієнтний спуск знаходить локальний мінімум поблизу точки старту, а не обов'язково глобальний.