name | about | labels |
---|---|---|
RFC | Используйте этот шаблон для требований, которые будут обсуждены | kind/feature или kind/enhancement |
Requirement | Используйте этот шаблон для подтвержденных требований | kind/feature или kind/enhancement |
AdaHessian — это стохастический оптимизационный алгоритм второго порядка, который адаптивно оценивает матрицу Гессе и динамически включает кривизну функции потерь. В отличие от методов первого порядка (например, SGD и Adam), методы второго порядка являются одними из самых мощных оптимизационных алгоритмов, имеющих лучшие свойства сходимости. Основной недостаток традиционных методов второго порядка заключается в том, что они требуют большого объёма вычислений на каждом шаге итерации и имеют меньшую точность по сравнению с методами первого порядка.Чтобы решить эти проблемы, в AdaHessian были введены несколько новых подходов, включая: (i) быстрый метод на основе Hutchison для приближения матрицы кривизны с низкими вычислительными затратами; (ii) среднее экспоненциальное скользящее для сглаживания изменений диагональных элементов матрицы Гессе между различными итерациями; и (iii) блочное среднее для уменьшения дисперсии диагональных элементов матрицы Гессе.
Статья показывает, что AdaHessian достигает значительных новых лучших результатов по сравнению с другими адаптивными оптимизационными методами, включая различные варианты Adam. В частности, были проведены широкие тесты на задачах CV, NLP и рекомендательных системах, и было обнаружено, что AdaHessian:
(i) имеет на 1,80%/1,45% большую точность на моделях ResNets20/32 на Cifar10 по сравнению с Adam, а также на 5,55% больше точности на ImageNet;
(ii) для модели transformer, AdaHessian имеет на 0,13/0,33 больше BLEU-оценки на IWSLT14/WMT14 по сравнению с AdamW, а также на 2,7/1,0 меньше PPL на PTB/Wikitext-103;
(iii) для модели SqueezeBert, AdaHessian имеет на 0,41 больше на GLUE-датасете по сравнению с AdamW;
(iv) для модели DLRM на Criteo Ad Kaggle-датасете, AdaHessian имеет на 0,032% больше по сравнению с Adagrad.
Исходный код torch для AdaHessian доступен и открыт для использования.
Улучшение удобства использования пакета mindflow
nn.Adam
проводится дополнительная разработка, чтобы обеспечить повторное использование кода, максимально гарантируя согласованность интерфейса, стабильность производительности и точность;mindspore.vjp()
для решения второго порядка производной и случайного предсказания диагональных элементов матрицы Hessian.