СегодняТемы машинного обученияВ 35-й статье мы продолжим принцип модели SVM, а сегодня объясним алгоритм SMO.
Обзор формулы
В предыдущих статьях мы проанализировали и вывели формулы как для жесткого, так и для мягкого интервала и обнаружили, что формы мягкого и жесткого интервала очень близки, а различаются лишь несколькими параметрами. Итак, давайте сосредоточимся на обработке мягкого интервала.
Используя метод множителей Лагранжа и решая двойственную задачу исходной задачи, мы получаем квадратичное программирование:
Условия КТТ, которым он должен удовлетворять, следующие:
То есть нам нужно решить экстремальное значение (1) в этих условиях.В случае этого ограничения, хотя мы упростили формулу, чтобы иметь только один параметр, но как получить это экстремальное значение? Для решения этой задачи нам необходимо ввести новый алгоритм, что и является основным содержанием сегодняшней статьи -Алгоритм SMO.
Введение в алгоритм SMO
Полное написание SMO — это Sequential Minimal Optimization, что переводится в алгоритм минимальной оптимизации последовательности. Основная идея алгоритма заключается в том, что нам нужно найти рядтакое, что (1) принимает экстремальное значение, но проблемаНам сложно одновременно оптимизировать этот ряд значений. Итак, алгоритм SMO придумал очень оригинальный способ объединить эту сериюДва из них считаются переменными, а все остальные фиксированные значения считаются константами.
Вопрос в том, почему мы выбираем дваРассматривать это как переменную и не выбирать одну? Не проще ли выбрать один? Поскольку одним из наших ограничений является, так что если мы выберем только одинЕсли скорректировать, то очевиднонарушит это ограничение. Итак, мы выбираем два, один из них меняется, а другой меняется вместе с ним, чтобы гарантировать, что ограничения не будут нарушены.
Для удобства описания по умолчанию выбираем двасоответственно. Кроме того, поскольку мы участвуем воперация, мы делаем. Таким образом, вышеприведенная формула (1) может быть записана как:
из них за счет,так, указанная выше Константа означает, что в дополнение кдругие константы. мы предполагаем, что,в,так какЕсть только два варианта, 1 или -1, поэтому мы можем обсудить это в каждом конкретном случае.
Обсуждайте в каждом конкретном случае
Сначала мы обсудимиКогда числа разные, типов не более двух.Первый случай, это,, будем считать, что k > 0 в этот момент, второй случай, мы предполагаем, что k 0, это фактически первый случай. это становитсяЗадача линейного программирования, мы можем нарисовать картину очень четко.
Для первого случая мы видим, чтоДиапазон, диапазон второго случая. Здесь мы снова обозначаем k, так как мы хотим оптимизировать итерационным методомЗначение , поэтому мы делаем предыдущий раундсоответственно. О здесь относится к старому значению.Нижняя граница L для следующего раунда равна, верхняя граница H равна.
Аналогично рисуемВ случае одного и того же знака также есть k > 0 и k
Первый случай, тогда, при k > 0 соответствующиеЗначение. Когда k > C, на этот раз также имеет место 1' в правом верхнем углу. В это время после пунктирной линии посерединеДиапазон.
Второй случай,В настоящее время, в этот момент k , поэтому на данный момент решения нет. Комбинируя эти два случая, можно получить, что нижняя граница L равна, последний H был.
Мы предполагаем, что получаем следующий раунд после переборада,здесьunc означает неограниченный. Затем мы добавляем ограничения прямо сейчас, мы можем получить:
здеськогда мы используем вывод, чтобы получить экстремальное значение, но проблема в том, что это значение может быть недоступно из-за ограничений. Следовательно, приведенный выше ряд операций заключается в исследовании экстремальных значений, которые мы можем получить при наличии ограничений. Не имеет значения, если вы не понимаете процесс вывода, по крайней мере, этот вывод нужно понять.
Устранение замены
Теперь у нас есть новый после следующей итерацииДиапазон значений , следующее, что нужно сделать, это решить проблему, которая минимизирует функцию потерь, такую как градиентный спуск.изначение, так какЗначение определено, поэтому мы можем решить одну из них.
мы заказываем, то мы можем заменить
Подставляем эту формулу в исходную формулу, а полученную формулу можно исключить, так что мы получаемсодержит толькоформула. Мы можем думать об этом как офункцию, для дальнейшего упрощения сделаем
здесьПредставляет собой разницу между фактическим значением i-го образца и прогнозируемым значением.Мы подставляем две приведенные выше формулы в исходную формулу, и можно получить упрощение:
Далее нужно сделать эту формулуВывод и экстремальное значение, является содержанием средней школы математики.
Решаем эту формулу и окончательно получаем:
Из этой формулы мы можем найтиЗначение после очередного раунда итераций, после того, как значение получено, мы можем сравнить его с верхней и нижней границей ограничения, и тогда мы можем получить наилучшее значение, которое можно получить при условии выполнения ограничения. Наконец, мы положилиПодставить в формулу для решения. так что мы будемТакже оптимизирована парапараметр, алгоритм SMO на самом делеПовторно используйте описанный выше метод оптимизации, чтобы постоянно выбирать два параметра для оптимизации., пока не будет достигнуто количество итераций, или новые улучшения не могут быть внесены.
Логику всего алгоритма на самом деле понять не сложно, а вот процесс вывода промежуточной формулы действительно больше. Это также причина, по которой я поместил модель SVM в тему машинного обучения, чтобы объяснить.В следующей статье мы представим вам соответствующее содержание функции ядра модели SVM.После окончания наша тема машинного обучения придет к конец., а потом мы начнем тему глубокого обучения, так что следите за обновлениями.
Сегодняшняя статья здесь, если вам понравилась эта статья, пожалуйста, приходите на волнукачество три, поддержите меня (Подписывайтесь, делайте репосты, лайкайте).