Оптимизация для науки о данных

Опубликовано: 19 Июля, 2021

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

Что такое оптимизация?
Википедия определяет оптимизацию как проблему, при которой вы максимизируете или минимизируете реальную функцию, систематически выбирая входные значения из разрешенного набора и вычисляя значение функции. Это означает, что когда мы говорим об оптимизации, мы всегда заинтересованы в поиске лучшего решения. Итак, предположим, что у кого-то есть некоторая функциональная форма (например, в форме f (x)), которая его интересует, и он пытается найти лучшее решение для этой функциональной формы. Что значит лучше всего? Можно сказать, что он заинтересован в минимизации этой функциональной формы или в максимизации этой функциональной формы.

Почему оптимизация для машинного обучения?

  • Почти все алгоритмы машинного обучения можно рассматривать как решения проблем оптимизации, и интересно, что даже в тех случаях, когда исходный метод машинного обучения имеет основу, полученную из других областей, например из биологии и т. Д., Можно все еще интерпретировать все алгоритмы машинного обучения как решение проблемы оптимизации.
  • Базовое понимание оптимизации поможет:
    • Более глубоко понять работу алгоритмов машинного обучения.
    • Рационализируйте работу алгоритма. Это означает, что если вы получили результат и хотите его интерпретировать, и если у вас есть очень глубокое понимание оптимизации, вы сможете понять, почему вы получили результат.
    • А на еще более высоком уровне понимания вы сможете сами разрабатывать новые алгоритмы.

Компоненты задачи оптимизации

Как правило, задача оптимизации состоит из трех компонентов.

minimize f(x), w.r.t x, subject to a ≤ x ≤ b

  1. Целевая функция (f (x)): первый компонент - это целевая функция f (x), которую мы пытаемся максимизировать или минимизировать. В общем, мы говорим о проблемах минимизации, это просто потому, что если у вас есть проблема максимизации с помощью f (x), мы можем преобразовать ее в задачу минимизации с помощью -f (x) . Итак, без ограничения общности, мы можем рассмотреть проблемы минимизации.
  2. Переменные решения (x): Второй компонент - это переменные решения, которые мы можем выбрать, чтобы минимизировать функцию. Итак, запишем это как min f (x) .
  3. Ограничения (a ≤ x ≤ b): третий компонент - это ограничение, которое в основном ограничивает этот x некоторым набором.

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

Типы проблем оптимизации:

Только в зависимости от типа ограничений:

  1. Задачи оптимизации с ограничениями: в случаях, когда здесь указано ограничение и мы должны добиться, чтобы решение удовлетворяло этим ограничениям, мы называем их проблемами оптимизации с ограничениями.
  2. Проблемы безусловной оптимизации: в случаях, когда ограничение отсутствует, мы называем их проблемами безусловной оптимизации.

В зависимости от типов целевых функций, переменных решения и ограничений:

  1. Если переменная решения (x) является непрерывной переменной: переменная x называется непрерывной, если она принимает бесконечное количество значений. В этом случае x может принимать бесконечное количество значений от -2 до 2.

    min f(x), x ∈ (-2, 2)

    • Задача линейного программирования: если решающая переменная (x) является непрерывной переменной, а целевая функция (f) линейна и все ограничения также линейны, то этот тип проблемы известен как задача линейного программирования. Таким образом, в этом случае переменные решения непрерывны, целевая функция линейна, и ограничения также линейны.
    • Задача нелинейного программирования: если решающая переменная (x) остается непрерывной; однако, если целевая функция (f) или ограничения являются нелинейными, тогда этот тип проблемы известен как проблема нелинейного программирования. Таким образом, проблема программирования становится нелинейной, если либо цель, либо ограничения становятся нелинейными.
  2. Если переменная решения (x) является целочисленной переменной: все числа, дробная часть которых равна 0 (нулю), например -3, -2, 1, 0, 10, 100, являются целыми числами.

    min f(x), x ∈ [0, 1, 2, 3]

    • Задача линейного целочисленного программирования: если переменная решения (x) является целочисленной переменной и если целевая функция (f) является линейной и все ограничения также линейны, то этот тип проблемы известен как задача линейного целочисленного программирования. Таким образом, в этом случае переменные решения являются целыми числами, целевая функция линейна, и ограничения также линейны.
    • Задача нелинейного целочисленного программирования: если решающая переменная (x) остается целой; однако, если либо целевая функция (f), либо ограничения являются нелинейными, тогда этот тип проблемы известен как задача нелинейного целочисленного программирования. Таким образом, проблема программирования становится нелинейной, если либо цель, либо ограничения становятся нелинейными.
    • Проблема двоичного целочисленного программирования: если переменная решения (x) может принимать только двоичные значения, такие как 0 и 1, только тогда этот тип проблемы известен как проблема двоичного целочисленного программирования.

      min f(x), x ∈ [0, 1]

  3. Если переменная решения (x) является смешанной переменной: если мы объединяем непрерывную переменную и целочисленную переменную, то эта переменная решения известна как смешанная переменная.

    min f(x1, x2), x1 ∈ [0, 1, 2, 3] and x2 ∈ (-2, 2)

    • Задача смешанного целочисленного линейного программирования: если решающая переменная (x) является смешанной переменной, и если целевая функция (f) является линейной и все ограничения также линейны, то этот тип проблемы известен как задача смешанного целочисленного линейного программирования. Таким образом, в этом случае переменные решения смешаны, целевая функция линейна, и ограничения также линейны.
    • Смешанно-целочисленная задача нелинейного программирования: если решающая переменная (x) остается смешанной; однако, если либо целевая функция (f), либо ограничения являются нелинейными, тогда этот тип проблемы известен как задача смешанного целочисленного нелинейного программирования. Таким образом, проблема программирования становится нелинейной, если либо цель, либо ограничения становятся нелинейными.