Про цю симуляцію

Ця симуляція показує, як чотири популярні алгоритми оптимізації — SGD, Momentum, RMSprop та Adam — переміщуються по 3D поверхні втрат у реальному часі. Усі оптимізатори стартують з однієї й тієї ж точки на одній із чотирьох класичних тестових поверхонь (Розенброк, Растрігін, Гіммельблау, Біл), обчислюють градієнт чисельно центральними скінченними різницями і роблять крок відповідно до власного правила оновлення, залишаючи за собою кольоровий слід.

🔬 Що демонструє

Чотири сфери-параметри рухаються по одній і тій самій поверхні втрат, застосовуючи різні правила оновлення: SGD віднімає темп навчання, помножений на градієнт; Momentum накопичує швидкість; RMSprop нормалізує крок на корінь із середнього квадратів градієнтів; Adam поєднує обидва підходи з корекцією зсуву моментів. Кольорові сліди наочно показують, який оптимізатор швидше знаходить дно долини, а який застрягає в локальному мінімумі чи розганяється в осциляціях.

🎮 Як користуватися

Виберіть поверхню втрат (Розенброк, Растрігін, Гіммельблау або Біл) із випадного списку, налаштуйте темп навчання (логарифмічна шкала), імпульс β₁ та Adam β₂ повзунками, а також кількість кроків на кадр, щоб пришвидшити симуляцію. Вимикайте окремі оптимізатори кнопками SGD/Momentum/RMSprop/Adam, щоб порівняти лише потрібні, перетягуйте сцену мишею для обертання і прокручуйте для масштабування; кнопки «Пауза» та «Скинути» керують відтворенням.

💡 Чи знали ви?

Adam було запропоновано Дідеріком Кінгмою та Джиммі Ба у 2014 році, і він швидко став стандартним оптимізатором для навчання глибоких нейронних мереж. Його назва походить від Adaptive Moment Estimation — адаптивної оцінки моментів. На функції Розенброка, відомій своєю вузькою вигнутою долиною, Adam зазвичай збігається за частку кроків, потрібних звичайному SGD.

Поширені запитання

Що таке градієнтний спуск?

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

Як темп навчання впливає на збіжність?

Темп навчання визначає розмір кроку у напрямку від'ємного градієнта. Занадто великий темп призводить до перескакування мінімуму та розбіжності; занадто малий — сповільнює навчання. Адаптивні методи, як-от Adam, автоматично підлаштовують ефективний темп навчання для кожного параметра.

У чому різниця між SGD та Adam?

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

Що таке функція Розенброка?

Функція Розенброка f(x,y) = (1-x)² + 100(y-x²)² — класичний тест оптимізації. Її глобальний мінімум знаходиться в точці (1,1) усередині вузької вигнутої долини, що робить її складною для методів першого порядку: градієнт вздовж долини дуже малий порівняно з градієнтом поперек неї.

Чому імпульс (Momentum) прискорює градієнтний спуск?

Імпульс накопичує вектор швидкості між ітераціями. У пласких напрямках швидкість накопичується і рух прискорюється; у напрямках, де градієнт осцилює, внески частково компенсують одне одного, зменшуючи коливання. Це поєднання прискорює спуск у пласких напрямках і водночас гасить осциляції.