Численная оптимизация (Numerical Optimization)
Что такое Численная оптимизация (Numerical Optimization)?
Численная оптимизация — это совокупность методов и алгоритмов для поиска экстремумов (минимумов или максимумов) функций в задачах машинного обучения и нейронных сетей, реализуемая посредством вычислительных процедур.
Аналогия из бытового мира
Представьте, что вы ищете самую низкую точку в гористой местности, но видите только небольшой участок вокруг себя. Вы делаете шаги, ориентируясь на уклон под ногами, постепенно спускаясь вниз. Численная оптимизация в нейросетях работает похоже: алгоритм «шагает» по пространству параметров, ориентируясь на градиент функции потерь, чтобы найти её минимум.
Исторический контекст
Идеи численной оптимизации восходят к классической математике (метод Ньютона, 17 век), но их активное применение в ML началось с развитием нейросетей в 1980–1990‑х. Ключевой прорыв — алгоритм стохастического градиентного спуска (SGD), который стал стандартом для обучения нейросетей. В 2010‑х появились усовершенствованные оптимизаторы (Adam, RMSprop), учитывающие адаптивную скорость обучения и момент (momentum), что значительно ускорило сходимость.Смежные понятия и различия
- Аналитическая оптимизация — ищет решение в замкнутой форме (например, нормальное уравнение в линейной регрессии). В ML часто неприменима из‑за сложности функций и больших объёмов данных.
- Глобальная оптимизация (например, генетические алгоритмы) — ищет глобальный экстремум, но медленна для нейросетей. Численная оптимизация в ML обычно фокусируется на локальном поиске, так как пространство параметров слишком велико.
- Выпуклая оптимизация — гарантирует нахождение глобального минимума для выпуклых функций. В нейросетях функции потерь не выпуклые, поэтому численные методы ищут «хороший» локальный минимум.
Примеры использования
- SGD (Stochastic Gradient Descent) — базовый оптимизатор, обновляющий веса на основе градиента по мини‑батчу данных.
- Adam — популярный адаптивный оптимизатор, комбинирующий момент и масштабирование скоростей обучения.
- RMSprop — учитывает скользящее среднее квадратов градиентов для адаптации шага.
- L-BFGS — квазиньютоновский метод, иногда используется для небольших сетей или тонкой настройки.
torch.optim.Adam() или tf.keras.optimizers.SGD(). 