[БЕЗ_ЗВУКА] В этом видео мы познакомимся с методом Нелдера–Мида. Этот метод оптимизации используется очень часто, работает довольно неплохо, поэтому знать его будет полезно. Применяется он для оптимизации функций, в том числе негладких и зашумленных. Устроен очень просто, и его легко реализовать. При этом в подробном изложении этого метода есть большое количество нетривиальных эвристик, которые, однако, работают. Этот метод используется по умолчанию в функции minimize из модуля scipy.optimize, и еще он может иногда не сходиться или сходиться не к минимуму, но обычно очень хорош на практике. Начало работы алгоритма выглядит следующим образом: мы выбираем n + 1 начальную точку для случая оптимизации функции от n переменных и пытаемся их выбрать так, чтобы они были не слишком далеко от предполагаемого экстремума, то есть не надо специально забираться подальше, и эта n + 1 точка образует симплекс. Что такое симплекс? Проще пояснить, начав с примеров пространств в небольшой размерности. Для прямой (то есть в одномерном пространстве) — это будет просто отрезок, для плоскости — это будет треугольник, для пространства трехмерного — это будет тетраэдр. Ну а в n-мерном случае — это просто некоторое n-мерное обобщение тетраэдра. Если мы посмотрим в двумерном случае на линии уровня функции, то получится, что мы выбрали какие-то три точки, смотрим на треугольник, построенный на этих трех точках, и дальше просто пытаемся деформировать этот треугольник таким образом, чтобы он постепенно подползал к минимуму и стягивался вокруг него. В процессе деформации используется несколько шагов: это отражение, сжатие, растяжение и сжатие всего симплекса. Если посмотреть на демонстрацию работы алгоритма, то можно увидеть, как деформируется треугольник, как он медленно движется к минимуму и как затем стягивается. Именно из-за этого поведения этот метод иногда называют «Амебой». Итак, мы познакомились с методом Нелдера–Мида, узнали, почему же его все называют «Амебой», и как это связано с его работой, и узнали, что этот метод неплохо работает на практике, несмотря на отсутствие каких-то сильных теоретических результатов насчет его сходимости. Кроме того, стоит заметить, что этот метод особенно хорошо работает, если перед ним применить какой-то метод грубой оптимизации (например, поиск по сетке).