Adaptive Gradient Algorithm (AdaGrad)

Оновлено: 31.07.2023

Що таке AdaGrad?

AdaGrad - це відомий метод оптимізації, який використовується в ML та DL. Дучі, Хазан і Сінгер запропонували його в 2011 році як спосіб регулювання швидкості навчання під час навчання.

  • Концепція AdaGrad полягає в тому, щоб змінювати швидкість навчання для кожного параметра в моделі залежно від попередніх градієнтів параметра.
.

Зокрема, він обчислює швидкість навчання як суму квадратів градієнтів з часом, по одному для кожного параметра. Це зменшує швидкість навчання для параметрів з великими градієнтами і збільшує швидкість навчання для параметрів з помірними градієнтами.

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

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

Типи градієнтного спуску

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

  • Спуск під градієнтом - це варіант градієнтного спуску, який використовується, коли функція втрат не є диференційованою в певних місцях.
.

У таких випадках градієнт функції невідомий, але можна визначити субградієнт.

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

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

Градієнтний спуск поділяється на три типи:

  • Багаторазовий градієнтний спуск - це найпоширеніший вид градієнтного спуску, в якому градієнт обчислюється на кожному кроці з використанням всього набору даних. Підхід змінює параметри, діючи в напрямку від'ємного градієнта функції втрат.
  • Стохастичний градієнтний спуск (SGD)- У цьому варіанті градієнтного спуску градієнт обчислюється на кожному кроці з використанням однієї випадково вибраної вибірки з набору даних. Оскільки градієнт виводиться з однієї точки даних, він може неправильно відображати загальну структуру набору даних. Це робить процес швидшим, але і більш шумним.
  • Міні-пакетний градієнтний спуск - гібрид пакетного градієнтного спуску і стохастичного градієнтного спуску. Градієнт створюється з використанням невеликої партії випадково вибраних зразків з набору даних, а не повного набору даних або окремого прикладу в міні-партіонному градієнтному спуску. Цей метод створює компроміс між шумом SGD та обчислювальними витратами пакетного градієнтного спуску.
.

Переваги використання AdaGrad

Нижче наведено переваги використання оптимізатора AdaGrad:

  • Простий у використанні- Це досить простий метод оптимізації, який можна застосовувати до різних моделей.
  • Не потребує ручної роботи- Немає необхідності вручну налаштовувати гіперпараметри, оскільки цей метод оптимізації автоматично регулює швидкість навчання для кожного параметра.
  • Адаптивна швидкість навчання- Змінює швидкість навчання для кожного параметра в залежності від попередніх градієнтів параметра. Це означає, що для параметрів з великими градієнтами швидкість навчання знижується, тоді як для параметрів з малими градієнтами швидкість навчання підвищується, що дозволяє алгоритму швидше сходитися і запобігає перевищенню ідеального рішення.
  • Адаптивність до зашумлених даних- Цей метод надає можливість згладжувати вплив зашумлених даних, призначаючи меншу швидкість навчання параметрам з сильними градієнтами через зашумленість вхідних даних.
  • Ефективна обробка розріджених даних- Він особливо добре справляється з розрідженими даними, які переважають в NLP і рекомендаційних системах. Це досягається шляхом надання розрідженим параметрам швидшої швидкості навчання, що може прискорити збіжність.
.

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