Ця симуляція візуалізує, як чотири популярні алгоритми оптимізації переміщуються по 3D поверхні втрат у реальному часі. Кольорові сфери представляють пари параметрів (x, y), а кольорові сліди показують шлях кожного оптимізатора.
Використовуйте елементи керування для перемикання між поверхнями втрат, налаштування темпу навчання та імпульсу, увімкнення та вимкнення окремих оптимізаторів. Перетягніть 3D-сцену для обертання; прокрутіть для масштабування.
Числовий градієнт (центральні різниці): df/dx = (f(x+h,y) - f(x-h,y)) / (2h) h = 1e-4 Скориговані моменти Adam: m_hat = m / (1 - β₁^t) v_hat = v / (1 - β₂^t) θ -= α · m_hat / (√v_hat + ε)
Adam було запропоновано Дідеріком Кінгмою та Джиммі Ба у 2014 році і швидко став стандартним оптимізатором для навчання глибоких нейронних мереж. Його назва походить від Adaptive Moment Estimation (адаптивна оцінка моментів). На функції Розенброка — відомій своєю вузькою вигнутою долиною — Adam зазвичай збігається за частку кроків, необхідних звичайному SGD.
Ця симуляція показує, як чотири популярні алгоритми оптимізації — SGD, Momentum, RMSprop та Adam — переміщуються по 3D поверхні втрат у реальному часі. Усі оптимізатори стартують з однієї й тієї ж точки на одній із чотирьох класичних тестових поверхонь (Розенброк, Растрігін, Гіммельблау, Біл), обчислюють градієнт чисельно центральними скінченними різницями і роблять крок відповідно до власного правила оновлення, залишаючи за собою кольоровий слід.
Чотири сфери-параметри рухаються по одній і тій самій поверхні втрат, застосовуючи різні правила оновлення: SGD віднімає темп навчання, помножений на градієнт; Momentum накопичує швидкість; RMSprop нормалізує крок на корінь із середнього квадратів градієнтів; Adam поєднує обидва підходи з корекцією зсуву моментів. Кольорові сліди наочно показують, який оптимізатор швидше знаходить дно долини, а який застрягає в локальному мінімумі чи розганяється в осциляціях.
Виберіть поверхню втрат (Розенброк, Растрігін, Гіммельблау або Біл) із випадного списку, налаштуйте темп навчання (логарифмічна шкала), імпульс β₁ та Adam β₂ повзунками, а також кількість кроків на кадр, щоб пришвидшити симуляцію. Вимикайте окремі оптимізатори кнопками SGD/Momentum/RMSprop/Adam, щоб порівняти лише потрібні, перетягуйте сцену мишею для обертання і прокручуйте для масштабування; кнопки «Пауза» та «Скинути» керують відтворенням.
Adam було запропоновано Дідеріком Кінгмою та Джиммі Ба у 2014 році, і він швидко став стандартним оптимізатором для навчання глибоких нейронних мереж. Його назва походить від Adaptive Moment Estimation — адаптивної оцінки моментів. На функції Розенброка, відомій своєю вузькою вигнутою долиною, Adam зазвичай збігається за частку кроків, потрібних звичайному SGD.
Градієнтний спуск — це ітеративний алгоритм оптимізації, який мінімізує функцію втрат, послідовно рухаючи параметри у напрямку, протилежному градієнту. Він є основою навчання нейронних мереж та більшості моделей машинного навчання.
Темп навчання визначає розмір кроку у напрямку від'ємного градієнта. Занадто великий темп призводить до перескакування мінімуму та розбіжності; занадто малий — сповільнює навчання. Адаптивні методи, як-от Adam, автоматично підлаштовують ефективний темп навчання для кожного параметра.
SGD оновлює параметри, віднімаючи фіксовану частку градієнта. Adam підтримує експоненційно зважені середні як градієнтів, так і їхніх квадратів, надаючи кожному параметру власний адаптивний темп навчання з корекцією зсуву, що зазвичай дає значно швидшу збіжність на складних поверхнях.
Функція Розенброка f(x,y) = (1-x)² + 100(y-x²)² — класичний тест оптимізації. Її глобальний мінімум знаходиться в точці (1,1) усередині вузької вигнутої долини, що робить її складною для методів першого порядку: градієнт вздовж долини дуже малий порівняно з градієнтом поперек неї.
Імпульс накопичує вектор швидкості між ітераціями. У пласких напрямках швидкість накопичується і рух прискорюється; у напрямках, де градієнт осцилює, внески частково компенсують одне одного, зменшуючи коливання. Це поєднання прискорює спуск у пласких напрямках і водночас гасить осциляції.