.. _chap_optimization: Алгоритмы оптимизации ===================== Если вы читали книгу последовательно до этого момента, вы уже использовали несколько алгоритмов оптимизации для обучения моделей глубокого обучения. Это были инструменты, которые позволяли нам продолжать обновлять параметры модели и минимизировать значение функции потерь, вычисляемое на обучающей выборке. Действительно, любой, кто доволен тем, чтобы рассматривать оптимизацию как чёрный ящик для минимизации целевых функций в простых условиях, может ограничиться знанием того, что существует массив вариаций такой процедуры (с названиями, такими как «SGD» и «Adam»). Однако для успешного применения требуются более глубокие знания. Алгоритмы оптимизации важны для глубокого обучения. С одной стороны, обучение сложной модели глубокого обучения может занимать часы, дни или даже недели. Производительность алгоритма оптимизации напрямую влияет на эффективность обучения модели. С другой стороны, понимание принципов работы различных алгоритмов оптимизации и роли их гиперпараметров позволит нам целенаправленно настраивать гиперпараметры для повышения качества моделей глубокого обучения. В этой главе мы подробно рассмотрим распространенные алгоритмы оптимизации в глубоком обучении. Почти все задачи оптимизации, возникающие в глубоком обучении, являются *невыпуклыми*. Тем не менее разработка и анализ алгоритмов в контексте *выпуклых* задач оказались весьма поучительными. Именно поэтому в этой главе приводится краткий обзор выпуклой оптимизации и доказательство корректности очень простого алгоритма стохастического градиентного спуска для выпуклой целевой функции. .. toctree:: :maxdepth: 2 optimization-intro convexity gd sgd minibatch-sgd momentum adagrad rmsprop adadelta adam lr-scheduler