Для заданных точек данных и меток y 1 , … , y n ∈ { - 1 , 1 } , основная задача SVM с жестким полем имеет вид
S.T.
которая является квадратичной программой с переменными для оптимизации и я ограничениями . Двойственный
s.t.
является квадратичной программа с п + 1 переменныхкоторые будут оптимизированы для и п неравенств и п равенства ограничений.
При реализации SVM с жестким запасом, почему бы мне решить двойную проблему вместо основной проблемы? Первичная проблема выглядит для меня более «интуитивно понятной», и мне не нужно беспокоиться о пробеле дуальности, состоянии Куна-Такера и т. Д.
Это имело бы смысл мне решить двойную задачу , если , но я подозреваю , что есть более веские причины. Это тот случай?
Ответы:
На основании лекционных заметок упомянутых в ответе @ user765195 (спасибо!), Наиболее очевидные причины, по-видимому, следующие:
Решая первичную задачу, мы получаем оптимальное , но ничего не знаем о α i . Чтобы классифицировать точку запроса x, нам нужно явно вычислить скалярное произведение w T x , что может быть дорого, если dвес αя Икс весTИкс d велико.
Решая двойственную задачу, получаем (где α i = 0 для всех, кроме нескольких точек - опорных векторов). Чтобы классифицировать точку запроса x , мы вычисляемαя αя= 0 Икс
Этот термин очень эффективно рассчитывается, если имеется всего несколько векторов поддержки. Кроме того, поскольку теперь у нас есть скалярный продукт, включающий только векторы данных , мы можем применить трюк ядра .
источник
<x1, x>
иwTx
. Первый используется в качестве символа для оценки ядра K (x1, x), которая проецирует x1 и x в очень многомерное пространство и неявно вычисляет скалярное произведение проецируемых значений. Последнее является нормальным скалярным произведением, поэтомуw
иx
должно быть спроецировано явно, а затем скалярное произведение вычисляется явно. В зависимости от выбора ядра, одно явное вычисление может занять гораздо больше вычислений, чем многие оценки ядра.Прочитайте второй абзац на стр. 13, а обсуждение продолжите в этих заметках:
http://cs229.stanford.edu/notes/cs229-notes3.pdf
источник
Вот одна из причин, почему двойная формулировка привлекательна с точки зрения численной оптимизации. Вы можете найти подробности в следующей статье :
Hsieh, C.-J., Chang, K.-W., Lin, C.-J., Keerthi, SS, и Sundararajan, S., «Метод двухкоординатного спуска для линейного SVM большой шкалы», Труды 25-я Международная конференция по машинному обучению, Хельсинки, 2008.
Двойная формулировка включает в себя одно ограничение аффинного равенства и n связанных ограничений.
1. Ограничение аффинного равенства можно «исключить» из двойной формулировки.
Это можно сделать, просто взглянув на ваши данные в R ^ (d + 1) через вложение R ^ d в R ^ (d + 1), повторяя добавление одной координаты «1» к каждой точке данных, то есть R ^ d ----> R ^ (d + 1): (a1, ..., ad) | ---> (a1, ..., ad, 1).
Делая это для всех точек в обучающем наборе, переделывается проблема линейной отделимости в R ^ (d + 1) и устраняется постоянный член w0 из вашего классификатора, что, в свою очередь, устраняет ограничение аффинного равенства из двойственного.
2. По пункту 1 двойственное можно легко привести как выпуклую квадратичную оптимизационную задачу, ограничения которой являются только связанными ограничениями.
3. Теперь двойная задача может быть эффективно решена, т. Е. С помощью алгоритма спуска по двойной координате, который дает эпсилон-оптимальное решение в O (log (1 / epsilon)).
Это сделано, отмечая, что исправление всех альф, кроме одного, приводит к решению в закрытой форме. Затем вы можете циклически перебирать все альфы (например, выбирать один наугад, фиксировать все остальные альфы, вычислять решение в закрытой форме). Можно показать, что таким образом вы получите почти оптимальное решение «довольно быстро» (см. Теорему 1 в вышеупомянутой статье).
Есть много других причин, по которым двойная задача привлекательна с точки зрения оптимизации, некоторые из которых используют тот факт, что она имеет только одно ограничение аффинного равенства (остальные ограничения являются связанными ограничениями), в то время как другие используют наблюдение, которое при решении двойной проблемы "часто большинство альфа-каналов" равны нулю (ненулевые альфа-значения, соответствующие опорным векторам).
Вы можете получить хороший обзор вопросов численной оптимизации для SVM из презентации Стивена Райта на семинаре по вычислительному обучению (2009).
PS: я новичок здесь. Извиняюсь за то, что не умею использовать математические обозначения на этом сайте.
источник
По моему мнению, в заметках Эндрю Нг четко упоминалось, что основная задача 1 / || w || - это невыпуклая задача. Двойственное является выпуклой задачей, и всегда легко найти оптимальное значение выпуклой функции.
источник