Як працює підтримка векторної машини (SVM)?


108

Як працює векторна машина підтримки (SVM) і чим вона відрізняється від інших лінійних класифікаторів, таких як лінійний рецептор , лінійний дискримінантний аналіз або логістична регресія ? *

(* Думаю з точки зору основної мотивації алгоритму, стратегій оптимізації, можливостей узагальнення та складності виконання )


4
Дивіться також: stats.stackexchange.com/questions/3947/…

Відповіді:


126

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

Інтуїція, що стоїть за підходом машинного підходу до підтримки, полягає в тому, що якщо класифікатор хороший у найскладніших порівняннях (точки B і A, які є найближчими один до одного на малюнку 2), то класифікатор стане ще кращим при легких порівняннях ( порівнюючи точки В і А, які знаходяться далеко один від одного).

Перцептрони та інші класифікатори:

Перцепрони будуються, беручи по одній точці і відповідно регулюючи лінію поділу. Як тільки всі точки відокремлюються, алгоритм перцептрона припиняється. Але це могло зупинитися де завгодно. На рисунку 1 видно, що існує купа різних розділових ліній, які розділяють дані. Критерії зупинки перцептрона прості: "розділіть точки і припиніть вдосконалювати лінію, коли ви отримаєте 100% поділ". Перцептрон прямо не каже, щоб знайти найкращу роздільну лінію. Логістична регресія та лінійні дискримінантні моделі будуються аналогічно перцептронам.

Найкраща лінія ділення максимально збільшує відстань між точками B, найближчими до точки A, і точками A, найближчими до B. Не потрібно дивитись на всі точки, щоб це зробити. Насправді, включення зворотного зв’язку з віддалених точок може нахилити рядок занадто далеко, як видно нижче.

введіть тут опис зображення

Підтримка векторних машин:

На відміну від інших класифікаторів, вектору підтримки явно сказано, щоб знайти найкращу роздільну лінію. Як? Машина підтримки підтримки шукає найближчі точки (мал. 2), які вона називає "векторами підтримки" (назва "машина підтримки вектора" пов'язана з тим, що точки схожі на вектори і що найкраща лінія "залежить від" або "підтримується" найближчими точками).

Після того як він знайшов найближчі точки, SVM проводить лінію, що з'єднує їх (див. Лінію, позначену "w" на малюнку 2). Він проводить цю сполучну лінію, роблячи віднімання вектора (точка А - точка В). Потім підтримуюча векторна машина оголошує найкращою роздільною лінією лінію, яка розділяє - і перпендикулярна до сполучної лінії.

Машина з підтримкою вектора краще, тому що коли ви отримаєте новий зразок (нові точки), ви вже зробили лінію, яка тримає B і A якомога далі один від одного, і тому менша ймовірність того, що хтось перекинеться поперек лінія на чужу територію.

введіть тут опис зображення

Я вважаю себе візуальним учнем, і я довго боровся з інтуїцією, що стоїть за векторами підтримки машин. Документ, названий « Подвійність та геометрія» в класифікаторах SVM, нарешті, допоміг мені побачити світло; ось звідки я і отримав зображення.


4
+1 від іншого візуального учня! Для читача я хотів би зазначити, що ці межі, видно на малюнку вище, базуються на наборі даних, який вже трансформувався. Не необроблений набір даних.
Кінгз

Читаючи svm більше двох років, сьогодні зрозумів, як визначається лінія відокремлення та ще кілька речей. Дякую за чисту відповідь.
користувач123

53

Відповідь Райана Зотті пояснює мотивацію максимізації меж рішення, відповідь Карлосда дає деякі подібності та відмінності стосовно інших класифікаторів. Я дам у цій відповіді короткий математичний огляд того, як навчаються та використовуються SVM.

Позначення

Далі скаляри позначаються курсивом з нижнього регістру (наприклад, ), векторів із жирними нижчими літерами (наприклад, ) та матриць з великими великими літерами курсивом (наприклад, ). - це перенесення , а .y,bw,xWwTww=wTw

Дозволяє:

  • x - вектор функції (тобто вхід SVM). , де - розмірність векторного ознаки.xRnn
  • y - клас (тобто вихід SVM). , тобто завдання класифікації є двійковим.y{1,1}
  • w і - параметри SVM: нам потрібно вивчити їх за допомогою навчального набору.b
  • (x(i),y(i)) бути вибірки в наборі даних. Припустимо, у навчальному наборі є зразків.ithN

З можна представити межі рішення SVM таким чином:n=2

введіть тут опис зображення

Клас визначається так:y

y(i)={1 if wTx(i)+b11 if wTx(i)+b1

що можна більш стисло записати як .y(i)(wTx(i)+b)1

Мета

SVM спрямований на задоволення двох вимог:

  1. SVM повинен збільшити відстань між двома межами рішення. Математично це означає, що ми хочемо максимізувати відстань між гіперплощиною, визначеною і гіперплощиною, визначеною . Ця відстань дорівнює . Це означає, що ми хочемо вирішити . Еквівалентно, що ми хочемо .wTx+b=1wTx+b=12wmaxw2wminww2

  2. SVM також повинен правильно класифікувати всі , що означаєx(i)y(i)(wTx(i)+b)1,i{1,,N}

Що призводить нас до наступної проблеми квадратичної оптимізації:

minw,bw2,s.t.y(i)(wTx(i)+b)1i{1,,N}

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

Можна зменшити обмеження, ввівши так звані слабкі змінні . Зауважимо, що кожен зразок навчального набору має власну змінну слабкості. Це дає нам наступну проблему квадратичної оптимізації:ξ(i)

minw,bw2+Ci=1Nξ(i),s.t.y(i)(wTx(i)+b)1ξ(i),i{1,,N}ξ(i)0,i{1,,N}

Це SVM з м'якою маржею . - гіперпараметр, який називається покаранням терміна помилки . ( Який вплив С у SVM з лінійним ядром? Та Який діапазон пошуку для визначення оптимальних параметрів SVM? ).C

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

minw,bw2+Ci=1Nξ(i),s.t.y(i)(wTϕ(x(i))+b)1ξ(i),i{1,,N}ξ(i)0,i{1,,N}

Оптимізація

Задача квадратичної оптимізації може бути перетворена в іншу оптимізаційну задачу, яку називають подвійною задачею Лагрангія (попередня задача називається первинною ):

maxαminw,bw2+Ci=1Nα(i)(1wTϕ(x(i))+b)),s.t.0α(i)C,i{1,,N}

Цю проблему оптимізації можна спростити (встановивши деякі градієнти до ) до:0

maxαi=1Nα(i)i=1Nj=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),s.t.0α(i)C,i{1,,N}

w не відображається як (як зазначено в теоремі представника ).w=i=1Nα(i)y(i)ϕ(x(i))

Тому ми вивчаємо використовуючи навчального набору.α(i)(x(i),y(i))

(FYI: Навіщо турбуватися з подвійною проблемою при встановленні SVM? Коротка відповідь: швидше обчислення + дозволяє використовувати хитрість ядра, хоча існують кілька хороших методів для навчання SVM в первинному, наприклад, див. {1})

Здійснення прогнозу

Після того, як засвоїться, можна передбачити клас нового зразка з вектором функції наступним чином:α(i)xtest

ytest=sign(wTϕ(xtest)+b)=sign(i=1Nα(i)y(i)ϕ(x(i))Tϕ(xtest)+b)

Підсумовування може здатися нездійсненним, так як це означає , що один має підсумувати з усіх навчальних зразкам, але переважна більшість є (див Чому Мультиплікатори Лагранжа рідкісні для SVM? ), Так що на практиці це не проблема. (зауважте, що можна побудувати спеціальні випадки, коли всі ) iff є вектором підтримки . На ілюстрації наведено 3 вектори підтримки.i=1Nα(i)0α(i)>0α(i)=0x(i)

Хитрість ядра

Можна помітити, що проблема оптимізації використовує лише у внутрішньому творі . Функція, яка відображає до внутрішнього продукту буде називається ядро , інакше функція ядра, часто позначається .ϕ(x(i))ϕ(x(i))Tϕ(x(j))(x(i),x(j))ϕ(x(i))Tϕ(x(j))k

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

Йдемо далі

Деякі цікаві питання якості для SVM:

Інші посилання:


Список літератури:


2
Привіт, Франку, велике спасибі за твою відповідь. Ви не проти пояснити, чому вектор є ортогональним для гіперплощини, яку генерує SVM? А як ви обчислили відстань між двома межами рішення, що дорівнюєw2w
tosik

3
На додаток до цієї чудової відповіді, я хочу порекомендувати це відео, яке проходить через математику за SVM і особливо роз'яснює питання @tosik прокоментував youtube.com/watch?v=_PwhiWxHK8o
Ніколас Рієбл

Дуже приємна відповідь. Лише одне зауваження щодо цієї частини: iff - вектор підтримки . Для класифікації підсумовування ефективно над векторами підтримки (тобто ). α(i)=0x(i)α(i)0
989 р.

13

Я збираюся зосередитись на схожості та відмінності її від інших класифікаторів:

  • Від перцептрона: SVM використовує втрату шарніру і регуляризацію L2, персептрон використовує втрату перцептрона і може використовувати ранню зупинку (або серед інших методик) для регуляризації, насправді термін регуляризації в перцептроні дійсно не існує. Оскільки у нього немає терміну регуляризації, перцептрон повинен бути перетренованим, тому можливості узагальнення можуть бути довільно поганими. Оптимізація проводиться за допомогою стохастичного градієнтного спуску і тому дуже швидка. З позитивної сторони цей документ свідчить про те, що, роблячи ранню зупинку з дещо зміненою функцією втрат, продуктивність може бути нарівні з SVM.

  • Від логістичної регресії: логістична регресія використовує логістичний термін втрат і може використовувати регуляризацію L1 або L2. Ви можете думати про логістичну регресію як про дискримінаційного брата генеративного наїва-Бейса.

  • З LDA: LDA також можна розглядати як генеративний алгоритм, він передбачає, що функції щільності ймовірності (p (x | y = 0) і p (x | y = 1) нормально розподіляються. Це ідеально, коли дані в Факт, як правило, розподіляється. Однак, є і недоліком того, що "тренування" вимагає інверсії матриці, яка може бути великою (коли у вас є багато можливостей). За умови гомодедастичності LDA стає QDA, що Баєсом є оптимальним для нормально розподілених даних. Це означає, що якщо припущення задоволені, що ви дійсно не можете зробити краще, ніж це.

Під час виконання (тестовий час), коли модель пройшла навчання, складність усіх цих методів однакова, це лише крапковий продукт між гіперпланом, що був знайдений процедурою навчання та точкою даних.


1
Оскільки вам здається дуже компетентним у SVM, дозвольте мені попросити вас пояснити мої сумніви: коли ми знайшли найкращий роздільний гіперплан, для чого ми його використовуємо? Ми можемо визначити SVM як метод, який, по-перше, вибирає найкращу гіперплан для правильної класифікації точок даних, а по-друге, він використовує цю гіперплан для розділення нових точок даних у двох класах. Правильно? (У мене є деякі сумніви щодо другої частини)
DavideChicco.it

1
@ DavideChicco.it Так, ми можемо використовувати функцію індикатора для класифікації нових даних, що часто є основною метою класифікатора. (Не сприймайте мого слова ні за що з цього, я все-таки новачок).
клавішник

12

Методика грунтується на малюванні граничної лінії рішення, залишаючи якомога більше запасу для перших можливих позитивних та негативних прикладів:

введіть тут опис зображення

Як на ілюстрації вище, якщо ми виберемо ортогональний вектор такий, що ми можемо встановити критерій рішення для будь-якого невідомого прикладу який буде каталогізовано як позитивний від форми:w=1u

wuC

що відповідає значенню, яке розмістило б проекцію за межами лінії рішення посеред вулиці. Зауважте, що .wu=uw

Еквівалентною умовою для позитивного зразка було б:

(1)wu+b0

приC=b.

Нам потрібно і щоб мати правило рішення, і щоб потрапити туди, нам потрібні обмеження .bw

Перше обмеження ми будемо вводити в тому , що для будь-якого позитивного зразка , ; а для негативних зразків . У межі поділу або гіперплані ( медіана ) значення буде , тоді як значення в жолобах будуть і :x+,wx++b1wx+b1011

введіть тут опис зображення

Вектор - вектор ваг , тоді як - зміщення .wb


Щоб об'єднати ці дві нерівності разом, ми можемо ввести змінну так, щоб для позитивних прикладів, а якщо приклади негативні, і зробимо висновокyiyi=+1yi=1

yi(xiw+b)10.

Отже, ми встановлюємо, що це повинно бути більше нуля, але якщо приклад наведений на гіперпланах ("жолобах"), які максимально збільшують межу поділу між гіперпланом рішення та кінчиками опорних векторів, в цьому випадку рядки), тоді:

(2)yi(xiw+b)1=0

Зауважте, що це еквівалентно вимагати, щобyi(xiw+b)=1.

введіть тут опис зображення


Друге обмеження : відстань гіперплана рішення до кінчиків опорних векторів буде максимальною. Іншими словами, межа розмежування ("вулиця") буде максимальною:

введіть тут опис зображення

Якщо припустити одиничний вектор, перпендикулярний до межі рішення, , точковий добуток із різницею двох "прикордонних" плюсів і мінусів прикладів - ширина "вулиці" :w

width=(x+x)ww

На рівняннях вище і знаходяться в жолобі (на гіперплощинах, що максимально розділяють). Тому для позитивного прикладу: , або ; і для негативного прикладу: . Отже, переформулювання ширини вулиці:x+x (xiw+b)1=0x+w=1bxw=1b

width=(x+x)ww=x+wxww=1b(1b)w(3)=2w

Тож тепер нам просто потрібно збільшити ширину вулиці - тобто максимізувати мінімізувати або мінімізувати:2w,w

(4)12w2

що математично зручно.


Отже, ми хочемо:

  1. Мінімізуйте з обмеженням:x2

  2. yi(wxi+b)1=0


Оскільки ми хочемо мінімізувати цей вираз на основі деяких обмежень, нам потрібен множник Лагранжа (повертаючись до рівнянь 2 і 4):

(5)L=12w2λi[yi(xiw+b)1]

Диференційований,

Lw=wλiyixi=0
.

Тому

(6)w=λiyixi

І диференціювання відносноb:

Lb=λiyi=0,

це означає, що ми маємо добуток множників і міток з нульовою сумою:

(7)λiyi=0

Підключення рівняння (6) назад до рівняння (5),

L=12(λiyixi)(λjyjxj)(λiyixi)(λjyjxj)λiyib+λi

Передостанній додаток дорівнює рівнянню (7) дорівнює нулю.

Тому

(8)L=λi12ijλiλjyiyjxixj

Рівень (8) є кінцевим лагранжанином.

Отже, оптимізація залежить від крапкового добутку пар прикладів.

Повернення до "правила рішення" у рівнянні (1) вище та використання рівняння (6):

(9)λiyixiu+b0

буде остаточним правилом рішення для нового вектораu.


Нічого оригінального ... Просто мої власні нотатки на більш вхідному рівні. В основному з цього відео з MIT з власними ілюстраціями. Про помилки, будь ласка, повідомте мене. Для проникливих відповідей та більш детальної інформації перейдіть на рівень експертів (пост Франка та інші).
Антоні Пареллада

І як обчислити b ?
Майк

1
@mike причому є сукупністю індексів векторів підтримкиВи можете знайти його тут . b=ysmSαmymxmxsS(αi>0).
Антоні Пареллада

@AntoniParellada дивовижна відповідь Антоні дуже дякує - але ви не пропустили частину проблеми з подвійною проблемою та умовами KTT?
Xavier Bourret Sicotte

@XavierBourretSicotte Я не можу працювати над цим деякий час. Будь ласка, подумайте про те, щоб написати альтернативну відповідь, що стосується цих питань, і якщо ви це зробите, будь ласка, повідомте мене, щоб я знав про це і можу підтримати його.
Антоні Пареллада

3

Деякі коментарі щодо умов подвійності та KTT

Первинна проблема

Збираючись з поста @ Антоні між рівняннями та , нагадайте, що наша оригінальна або первісна проблема оптимізації має такий вигляд:(4)(5)

minw,bf(w,b)=minw,b 12||w||2s.t.  gi(w,b)=y(i)(wTx(i)+b)+1=0

Метод Лагранжа

Метод множників Лагранжа дозволяє перетворити обмежену оптимізаційну задачу на необмежену форму:

L(w,b,α)=12||w||2imαi[y(i)(wTx(i)+b)1]

Де називається лагранжевим, а називаються лагранжевими множниками . L(w,b,α)αi

Наша проблема первинної оптимізації з Lagrangian стає наступною: (зауважте, що використання , не є найсуворішим, як ми також повинні використовувати і тут ...)minmaxinfsup

minw,b(maxαL(w,b,α))

Подвійна проблема

Те, що @Antoni та професор Патрік Вінстон зробили при їх виведенні, припускають, що функція оптимізації та обмеження відповідають деяким технічним умовам, таким чином, що ми можемо робити наступне:

minw,b(maxαL(w,b,α))=maxα(minw,bL(w,b,α))

Це дозволяє нам взяти часткові похідні відносно і , прирівняти до нуля, а потім підключити результати назад до початкового рівняння Лагранжана, отже, генеруючи еквівалент проблема подвійної оптимізації формиL(w,b,α)wb

maxαminw,bL(w,b,α)maxαimαi12i,jmy(i)y(j)αiαj<x(i)x(j)>s.t. αi0s.t. imαiy(i)=0

Подвійність та КТТ

Не вникаючи в надмірну математичну техніку, ці умови є комбінацією умов Дуалізму та Такюра Каруша Куна (KTT) і дозволяють нам вирішити подвійну задачу замість первинної , гарантуючи при цьому оптимальне рішення. У нашому випадку умови такі:

  • Функції обмеження первинної мети та нерівності повинні бути опуклими
  • Функція обмеження рівності повинна бути афінною
  • Обмеження повинні бути суворо здійсненими

Тоді існують які є рішеннями первинних і подвійних задач. Більше того, параметри задовольняють наведеним нижче умовам KTT:w,αw,α

wiL(w,α,β)=0(A)βiL(w,α,β)=0(B)αigi(w)=0(C)gi(w)0(D)αi0(E)

Більше того, якщо деякі задовольняють рішення KTT, то вони також є рішенням первинної та подвійної задачі.w,α

Вище рівняння має особливе значення і називається умовою подвійної комплементарності . Це означає, що якщо то що означає, що обмеження є активним, тобто воно має рівність, а не нерівність. Це пояснення рівняння у виведенні Антоні, де обмеження нерівності перетворюється на обмеження рівності.α i > 0 g i ( w ) = 0 g i ( w ) 0 ( 2 )(C)αi>0gi(w)=0gi(w)0(2)

Інтуїтивна, але неформальна схема

введіть тут опис зображення

Джерела


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