Численные методы оптимизации
Оптимальные веса модели находятся методом минимизации средних потерь на выборке . В общем случае потерь и регуляризатора это нельзя сделать аналитически и приходится использовать численные методы оптимизаци и.
Применение численных методов может быть вычислительно эффективнее, даже когда аналитическое решение существует. Например, решение линейной регрессии
хоть и можно выразить аналитически, но для расчёта оно требует обращения матрицы , имеющее порядок сложности . Численные методы могут найти приближённое решение, используя меньший объём вычислений.
Численные методы, описанные в этом разделе, основаны на вычислении градиента , представляющего собой вектор из частных производных потерь по каждому параметру модели:
Градиент полезен, поскольку он указывает направление максимального возрастания функции в пространстве весов, а антиградиент - направление максимального убывания .
Почему?
Разложим в ряд Тейлора первого порядка, чтобы получить локально линейную аппроксимацию функции потерь:
Если перебирать всевозможные направления единичной длины, то из неравенства Коши-Буняковского получим, что наибольший локальный рост (для малых ) достигается, когда сонаправлен , а максимальный спад - когда и направлены в противоположные стороны.
Используя это свойство, градиентные методы оптимизации уменьшают функцию потерь, многократно сдвигая веса в направлении антиградиента функции потерь с малым шагом.
Иногда приходится оптимизировать функцию, не располагая её градиентом. Такая ситуация возникает, когда мы можем функцию вычислить в каждой точке, но не можем представить в аналитическом виде, чтобы её можно было продифференцировать. Например, это может быть выручка магазина при различных расположениях товаров на полках или качество решения задачи машинного обучения при различных значениях гиперпараметров. В этом случае используются безградиентные методы оптимизации (gradient free methods), такие как Байесовская оптимизация, генетические (эволюционные) алгоритмы, метод Tree-structured Parzen Estimator, алгоритм имитации отжига, случайный поиск или перебор по сетке значений.