12. Алгоритмы оптимизации¶
Если вы читали книгу последовательно до этого момента, вы уже использовали несколько алгоритмов оптимизации для обучения моделей глубокого обучения. Это были инструменты, которые позволяли нам продолжать обновлять параметры модели и минимизировать значение функции потерь, вычисляемое на обучающей выборке. Действительно, любой, кто доволен тем, чтобы рассматривать оптимизацию как чёрный ящик для минимизации целевых функций в простых условиях, может ограничиться знанием того, что существует массив вариаций такой процедуры (с названиями, такими как «SGD» и «Adam»).
Однако для успешного применения требуются более глубокие знания. Алгоритмы оптимизации важны для глубокого обучения. С одной стороны, обучение сложной модели глубокого обучения может занимать часы, дни или даже недели. Производительность алгоритма оптимизации напрямую влияет на эффективность обучения модели. С другой стороны, понимание принципов работы различных алгоритмов оптимизации и роли их гиперпараметров позволит нам целенаправленно настраивать гиперпараметры для повышения качества моделей глубокого обучения.
В этой главе мы подробно рассмотрим распространенные алгоритмы оптимизации в глубоком обучении. Почти все задачи оптимизации, возникающие в глубоком обучении, являются невыпуклыми. Тем не менее разработка и анализ алгоритмов в контексте выпуклых задач оказались весьма поучительными. Именно поэтому в этой главе приводится краткий обзор выпуклой оптимизации и доказательство корректности очень простого алгоритма стохастического градиентного спуска для выпуклой целевой функции.