Сегодня мы рассмотрим статью лаборатории фундаментальных исследований искусственного интеллекта МФТИ (Basic Research of Artificial Intelligence) 🏫
Sign Operator for Coping with Heavy-Tailed Noise: High Probability Convergence Bounds with Extensions to Distributed Optimization and Comparison Oracle (Н. Корнилов, Ф. Змушко, А. Семенов, А. Гасников, А. Безносиков)
[статья]
Введение
В современном мире нейронные сети стали основным инструментом для решения всевозможных задач, и тренд на их развитие только набирает обороты. Модели становятся все больше и сложнее, их обучение может занимать месяцы реального времени, а данные накапливаются с такой скоростью, что их качество неизбежно ухудшается.
Для алгоритмов оптимизации функций потерь этих моделей возникают следующие требования:
1) Устойчивость к сильно зашумленным данным. На рисунке в комментариях представлены нормы стохастических градиентов при дообучении языковой модели BERT, а также синтетическое распределение Леви с тяжелыми хвостами [1].
2) Гарантии достижения хорошей точности при каждом отдельном запуске.
3) Эффективность по памяти и времени работы. В больших моделях хранение даже одного дополнительного вектора параметров влияет на потребление памяти и скорость вычислений.
Клиппинг и нормализация
Далее мы будем обозначать параметры модели на итерации k через w^k, а стохастический градиент функции потерь f по батчу ξ^k — через ∇f(w^k, ξ^k).
Широко используемый в оптимизации нейронных сетей Stochastic Gradient Descent (SGD) вычисляет стохастический градиент функции и выполняет шаг в противоположном направлении, предварительно умножив его на величину шага aₖ:
w^(k+1) = w^k - aₖ ∇f(w^k, ξ^k)
Несмотря на популярность, эффективность и простоту, SGD не гарантирует быстрой сходимости с высокой вероятностью даже при небольших шумах. Поэтому к нему применяются различные модификации для повышения устойчивости и скорости сходимости.
Одна из самых успешных модификаций — градиентный клиппинг (ClippedSGD), в котором стохастический градиент сохраняет направление, но его норма обрезается так, чтобы не превышать заранее заданного значения λₖ, называемого уровнем клиппинга:
w^(k+1) = w^k - aₖ min (1, λₖ / ||∇f(w^k, ξ^k)||) ∇f(w^k, ξ^k).
ClippedSGD уже удовлетворяет всем вышеуказанным требованиям, однако и в теории, и на практике требует аккуратного подбора уровня клиппинга, размера батча и величины шага на каждой итерации.
Чтобы избежать подбора уровня клиппинга, можно не обрезать стохастический градиент, а просто нормировать его. Такой метод называется Normalized SGD (NSGD). В NSGD нужно настраивать только размер батча и величину шага, как и в SGD, но при этом NSGD гарантирует сходимость с высокой вероятностью даже при тяжелых шумах [2]. Кроме того, NSGD может сходиться при произвольных гиперпараметрах, а тонкая настройка помогает улучшить сходимость.
Смотри продолжение (знаковые методы и сравнительный оракул) в комментариях ⬇️
Post #10
884

- 🔥 2