Навіщо турбуватися з подвійною проблемою при встановленні SVM?


50

Враховуючи точки даних та мітки , первинна проблема SVM з жорстким відривом -y 1 , , y n{ - 1 , 1 }x1,,xnRdy1,,yn{1,1}

s.t.

minimizew,w012wTw
s.t.i:yi(wTxi+w0)1

яка є квадратичною програмою з змінними, оптимізованою для та обмежень. Подвійнийid+1i

s.t.

maximizeαi=1nαi12i=1nj=1nyiyjαiαjxiTxj
s.t.i:αi0i=1nyiαi=0
- квадратична програма з змінними, оптимізованою для нерівності та обмежень рівності.n nn+1nn

Реалізуючи SVM з жорстким запасом, чому я б вирішував подвійну задачу замість первинної задачі? Первинна проблема для мене виглядає більш "інтуїтивно зрозумілою", і мені не потрібно хвилюватись у зв'язку з роздвоєністю, станом Куна-Таккера тощо.

Для мене було б сенсом вирішити подвійну проблему, якщо , але я підозрюю, що є кращі причини. Це так?dn


26
Коротка відповідь - це ядра. Довга відповідь - keeerneeels (-;

Найголовніше подвійне завдання - це ввести фокус ядра, спрямований на відображення вихідних даних у простір з більшим розміром.
BigeyeDestroyer

Відповіді:


40

На основі конспектів лекцій, на які посилається у відповіді @ user765195 (спасибі!), Здається, найбільш очевидними причинами:

Вирішуючи первинну задачу, ми отримуємо оптимальне , але нічого не знаємо про . Для класифікації точки запиту нам потрібно чітко обчислити скалярний добуток , що може бути дорогим, якщо велике.α i x w T x dwαixwTxd

Вирішуючи подвійну задачу, отримуємо (де для всіх, окрім кількох точок - векторів підтримки). Для класифікації точки запиту ми обчислюємоα i = 0 xαiαi=0x

wTx+w0=(i=1nαiyixi)Tx+w0=i=1nαiyixi,x+w0

Цей термін дуже ефективно обчислюється, якщо існує лише мало векторів підтримки. Крім того, оскільки зараз у нас є скалярний продукт, що включає лише вектори даних , ми можемо застосувати фокус ядра .


6
Чекай-чекай. Скажімо, у вас є два вектори підтримки x1 і x2. У вас не може бути менше двох, правда? Ви кажете, що обчислення <x1, x> і <x2, x> швидше, ніж <w, x>?
Лев

1
@Leo: Зауважте, що я використовую <x1, x>і wTx. Перший використовується як символ для оцінки ядра K (x1, x), який проектує x1 і x у дуже об'ємний простір і неявно обчислює скалярний добуток прогнозованих значень. Останній є нормальним скалярним твором, так wі xповинні бути спроектовані в явному вигляді, а потім скалярний твір обчислюються в явному вигляді. Залежно від вибору ядра, один явний розрахунок може зайняти набагато більше обчислень, ніж багато оцінок ядра.
блека

1
Як я розумію первинну задачу, - це множники Лагранжа, то чому ми не можемо вирішити первинну задачу, щоб знайти ? Я маю на увазі, що ми, мабуть, не повинні вдаватися до подвійної проблеми, щоб з'ясувати, що це , чи не так? α αααα
авокадо

2
"Крім того, оскільки зараз у нас є скалярний продукт, що включає лише вектори даних, ми можемо застосувати фокус ядра." - Це справедливо і в первинному формулюванні.
Firebug

2
Якщо люди хочуть детальніше про коментар від @Firebug ... ознайомтесь з рівняннями 10-12 lib.kobe-u.ac.jp/repository/90001050.pdf (що є необмеженою версією прима ).
MrDrFenner

13

Прочитайте другий абзац на сторінці 13 та обговорення, що триває в ньому, у цих примітках:

http://cs229.stanford.edu/notes/cs229-notes3.pdf


17
Це чудова довідка і чітко відповідає на питання. Я думаю, що ваша відповідь буде краще оцінена, якщо ви зможете узагальнити відповідь тут: це робить цей потік самостійно.
whuber

3

Ось одна з причин того, що подвійна рецептура є привабливою з точки зору чисельної оптимізації. Деталі ви можете знайти в наступному документі :

Hsieh, C.-J., Chang, K.-W., Lin, C.-J., Keerthi, SS, and 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
Інформація про те, як використовувати набір математики, тут: math.meta.stackexchange.com/questions/5020/…
Моніку

-5

На мою думку, у записках лекції Ендрю нг чітко зазначалося, що первісна проблема 1 / || w || - це проблема, яка не є опуклою. Подвійний - це опукла проблема, і завжди легко знайти оптимум випуклої функції.


1
Прималь SVM, як зазначено вище, опукла.
Дугал
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.