Adaptive Gradient Algorithm (AdaGrad)
Оновлено: 31.07.2023
Що таке AdaGrad?
AdaGrad - це відомий метод оптимізації, який використовується в ML та DL. Дучі, Хазан і Сінгер запропонували його в 2011 році як спосіб регулювання швидкості навчання під час навчання.
- Концепція AdaGrad полягає в тому, щоб змінювати швидкість навчання для кожного параметра в моделі залежно від попередніх градієнтів параметра.
Зокрема, він обчислює швидкість навчання як суму квадратів градієнтів з часом, по одному для кожного параметра. Це зменшує швидкість навчання для параметрів з великими градієнтами і збільшує швидкість навчання для параметрів з помірними градієнтами.
Ідея цього методу полягає в тому, що він дозволяє швидкості навчання адаптуватися до геометрії функції втрат, дозволяючи їй швидше збігатися в напрямках з крутим градієнтом, в той час як в напрямках з пологим градієнтом вона є більш консервативною. Це може призвести до швидшої збіжності та кращого узагальнення.
Однак цей метод має суттєві недоліки. Одним з найбільш значущих є те, що кумулятивні величини градієнта можуть стати досить великими з часом, що призведе до мізерної ефективної швидкості навчання, яка може перешкоджати подальшому навчанню. Adam і RMSProp, два сучасні алгоритми оптимізації, поєднують метод адаптивної швидкості навчання з іншими стратегіями, щоб обмежити зростання величини градієнта з часом.
Типи градієнтного спуску
Градієнтний спуск - це відомий оптимізаційний підхід, який використовується в машинному навчанні та глибокому навчанні для визначення найкращих значень параметрів моделі. Це ітераційний підхід, який працює шляхом мінімізації функції втрат, що кількісно визначає різницю між очікуваними та реальними результатами моделі.
- Спуск під градієнтом - це варіант градієнтного спуску, який використовується, коли функція втрат не є диференційованою в певних місцях.
У таких випадках градієнт функції невідомий, але можна визначити субградієнт.
На кожній ітерації метод субградієнтного спуску вибирає субградієнт g функції втрат і оновлює поточну оцінку оптимального розв'язку в напрямку від'ємного субградієнта. Іншими словами, алгоритм просувається в напрямку найкрутішого спадання функції втрат.
Він може бути повільнішим, ніж звичайний градієнтний спуск, оскільки він просто пропонує напрямок спуску, а не точний розмір кроку градієнтного спуску. Щоб досягти збіжності з ідеальним рішенням, розмір кроку повинен бути ретельно визначений.
Градієнтний спуск поділяється на три типи:
- Багаторазовий градієнтний спуск - це найпоширеніший вид градієнтного спуску, в якому градієнт обчислюється на кожному кроці з використанням всього набору даних. Підхід змінює параметри, діючи в напрямку від'ємного градієнта функції втрат.
- Стохастичний градієнтний спуск (SGD)- У цьому варіанті градієнтного спуску градієнт обчислюється на кожному кроці з використанням однієї випадково вибраної вибірки з набору даних. Оскільки градієнт виводиться з однієї точки даних, він може неправильно відображати загальну структуру набору даних. Це робить процес швидшим, але і більш шумним.
- Міні-пакетний градієнтний спуск - гібрид пакетного градієнтного спуску і стохастичного градієнтного спуску. Градієнт створюється з використанням невеликої партії випадково вибраних зразків з набору даних, а не повного набору даних або окремого прикладу в міні-партіонному градієнтному спуску. Цей метод створює компроміс між шумом SGD та обчислювальними витратами пакетного градієнтного спуску.
Переваги використання AdaGrad
Нижче наведено переваги використання оптимізатора AdaGrad:
- Простий у використанні- Це досить простий метод оптимізації, який можна застосовувати до різних моделей.
- Не потребує ручної роботи- Немає необхідності вручну налаштовувати гіперпараметри, оскільки цей метод оптимізації автоматично регулює швидкість навчання для кожного параметра.
- Адаптивна швидкість навчання- Змінює швидкість навчання для кожного параметра в залежності від попередніх градієнтів параметра. Це означає, що для параметрів з великими градієнтами швидкість навчання знижується, тоді як для параметрів з малими градієнтами швидкість навчання підвищується, що дозволяє алгоритму швидше сходитися і запобігає перевищенню ідеального рішення.
- Адаптивність до зашумлених даних- Цей метод надає можливість згладжувати вплив зашумлених даних, призначаючи меншу швидкість навчання параметрам з сильними градієнтами через зашумленість вхідних даних.
- Ефективна обробка розріджених даних- Він особливо добре справляється з розрідженими даними, які переважають в NLP і рекомендаційних системах. Це досягається шляхом надання розрідженим параметрам швидшої швидкості навчання, що може прискорити збіжність.
Зрештою, AdaGrad має потенціал стати потужною технікою оптимізації для машинного та глибокого навчання, особливо коли дані розріджені, зашумлені або мають велику кількість параметрів.