Курс неклассической оптимизации

Обзор неклассических алгоритмов оптимизации (ПОЛНЫЙ КУРС)

Краткий обзор Новый полный курс, охватывающий три основных неклассических алгоритма оптимизации: Hill Climber, Simulated Annealing, Beam Search, LeapFrog и байесовскую оптимизацию.

Всем привет! Я решил начать новую серию публикаций о пяти популярных неклассических алгоритмах: Hill Climber, Simulated Annealing, Beam Search, LeapFrog и Байесовская оптимизация. Самый популярный неклассический алгоритм оптимизации - это область, известная как Эволюционные вычисления, по которой я уже создал целую серию, поэтому она не включена в эту серию ! Вы можете ознакомиться с обзором здесь:



В машинном обучении и искусственном интеллекте много проблем с оптимизацией. Большинство моделей в этих областях построены на поиске правильного набора параметров, который минимизирует некоторые типы функций ошибок, таких как ошибка средней суммы для регрессии или кросс-энтропия для классификации. Поэтому очень важно изучить эти типы алгоритмов, чтобы понять интуицию, лежащую в основе статистических моделей, используемых в машинном обучении и искусственном интеллекте.

Алгоритмы оптимизации обычно можно разделить на три категории: классические методы, основанные на дифференциальной информации; методы управляемого случайного поиска; и местные жадные поиски. Как и в случае с эволюционными алгоритмами, неклассические алгоритмы оптимизации не требуют знания градиента или матрицы Гессе для многомерных задач; Следовательно, эти типы алгоритмов предпочтительны в обстоятельствах, когда задача оптимизации недифференцируема или когда классические методы не могут найти оптимальные решения.

Оглавление

  • Материал, подлежащий покрытию
  • Функции тестирования производительности
  • Предварительные мероприятия
  • Вывод

Материал, подлежащий покрытию

Курс будет кратким и намного короче, чем предыдущий курс эволюционных вычислений. Курс будет разделен на три части, по одной для каждого из неклассических алгоритмов.

  • Блок 1) Альпинист
  • Блок 2) Имитация отжига
  • Блок 3) Поиск луча
  • Блок 4) LeapFrog
  • Блок 5) Байесовская оптимизация

Hill Climber - это алгоритм, использующий технику локального поиска, которая берет одну точку и идет в направлении пространства поиска, которое лучше текущего состояния. Имитация отжига - это алгоритм, который пытается смоделировать физику отжига, процесса охлаждения жидкости до состояния с минимальной энергией, путем поиска глобального минимума (состояния с минимальной энергией). Поиск луча - это вариант Hill Climber или Simulated Annealing, в котором алгоритм работает с использованием совокупности начальных точек вместо особой точки. LeapFrog - это алгоритм, основанный на популяциях, где худшие люди перепрыгивают к лучшим. Байесовская оптимизация - это распространенный метод оптимизации, позволяющий найти минимум за заданное количество шагов с помощью теоремы Байеса. Алгоритм работает путем выборки из апостериорного и обновления апостериорного из результатов.

Функции тестирования производительности

Чтобы оценить наши неклассические алгоритмы, мы протестируем их на трех хорошо известных функциях неограниченного тестирования производительности, чтобы увидеть, могут ли они найти глобальный минимум. Этими тестовыми функциями являются функции Сфера, Шуберта и Эггхолдер; все, кроме Эггхолдера, являются n-мерными задачами, где n может находиться в диапазоне от [1, бесконечность), мы проверим это на n = 1000. С другой стороны, Eggholder - это просто двумерная проблема. Ниже представлены трехмерные графики функций, указанных выше:

Мы не только проверим, может ли алгоритм найти глобальный минимум, но и сколько времени это займет и сколько функций требуется для этого.

Предварительные мероприятия

Вот некоторые предварительные сведения, которые, как я полагаю, вам следует знать, чтобы наилучшим образом применить материал и понять концепции:

  • Элементарная статистика - распределения вероятностей
  • Линейная алгебра (основные понятия: умножение матриц, евклидово расстояние и т. Д.)
  • Численные методы (основная концепция: зачем они используются и зачем они нужны)
  • Теория оптимизации (вы можете прочитать мой предыдущий пост об этом ниже)


  • Как программировать на Python - работа со структурами данных и алгоритмами
  • Знайте научные библиотеки Python - Numpy

Вывод

Неклассические алгоритмы оптимизации обычно используются, когда задача оптимизации не является дифференциальной, поэтому классические методы, требующие знания градиента или матрицы Гессе, не могут быть использованы или, когда классические методы не могут найти хороших решений.

Хорошо, на этом базовый обзор курса завершен! Если какая-либо из обсуждаемых тем покажется вам интересной, пожалуйста, оставайтесь здесь, мы рассмотрим все это и многое другое! В следующем посте мы начнем с Unit 1) Hill Climber:

Https://towardsdatascience.com/unit-1-hill-climber-optimization-985d5b79bd5