Відповідь Райана Зотті пояснює мотивацію максимізації меж рішення, відповідь Карлосда дає деякі подібності та відмінності стосовно інших класифікаторів. Я дам у цій відповіді короткий математичний огляд того, як навчаються та використовуються SVM.
Позначення
Далі скаляри позначаються курсивом з нижнього регістру (наприклад, ), векторів із жирними нижчими літерами (наприклад, ) та матриць з великими великими літерами курсивом (наприклад, ). - це перенесення , а .y,bw,xWwTw∥w∥=wTw
Дозволяє:
- x - вектор функції (тобто вхід SVM). , де - розмірність векторного ознаки.x∈Rnn
- y - клас (тобто вихід SVM). , тобто завдання класифікації є двійковим.y∈{−1,1}
- w і - параметри SVM: нам потрібно вивчити їх за допомогою навчального набору.b
- (x(i),y(i)) бути вибірки в наборі даних. Припустимо, у навчальному наборі є зразків.ithN
З можна представити межі рішення SVM таким чином:n=2
Клас визначається так:y
y(i)={−11 if wTx(i)+b≤−1 if wTx(i)+b≥1
що можна більш стисло записати як .y(i)(wTx(i)+b)≥1
Мета
SVM спрямований на задоволення двох вимог:
SVM повинен збільшити відстань між двома межами рішення. Математично це означає, що ми хочемо максимізувати відстань між гіперплощиною, визначеною і гіперплощиною, визначеною . Ця відстань дорівнює . Це означає, що ми хочемо вирішити . Еквівалентно, що ми хочемо
.wTx+b=−1wTx+b=12∥w∥maxw2∥w∥minw∥w∥2
SVM також повинен правильно класифікувати всі , що означаєx(i)y(i)(wTx(i)+b)≥1,∀i∈{1,…,N}
Що призводить нас до наступної проблеми квадратичної оптимізації:
minw,bs.t.∥w∥2,y(i)(wTx(i)+b)≥1∀i∈{1,…,N}
Це SVM з жорстким запасом , оскільки ця проблема квадратичної оптимізації допускає рішення, якщо дані лінійно відокремлюються.
Можна зменшити обмеження, ввівши так звані слабкі змінні . Зауважимо, що кожен зразок навчального набору має власну змінну слабкості. Це дає нам наступну проблему квадратичної оптимізації:ξ(i)
minw,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTx(i)+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀i∈{1,…,N}
Це SVM з м'якою маржею . - гіперпараметр, який називається покаранням терміна помилки . ( Який вплив С у SVM з лінійним ядром? Та Який діапазон пошуку для визначення оптимальних параметрів SVM? ).C
Можна додати ще більшу гнучкість, ввівши функцію яка відображає оригінальний простір функцій у просторі більш високого розміру. Це дозволяє нелінійні межі рішення. Проблема квадратичної оптимізації стає:ϕ
minw,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTϕ(x(i))+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀i∈{1,…,N}
Оптимізація
Задача квадратичної оптимізації може бути перетворена в іншу оптимізаційну задачу, яку називають подвійною задачею Лагрангія (попередня задача називається первинною ):
maxαs.t.minw,b∥w∥2+C∑i=1Nα(i)(1−wTϕ(x(i))+b)),0≤α(i)≤C,∀i∈{1,…,N}
Цю проблему оптимізації можна спростити (встановивши деякі градієнти до ) до:0
maxαs.t.∑i=1Nα(i)−∑i=1N∑j=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),0≤α(i)≤C,∀i∈{1,…,N}
w не відображається як (як зазначено в теоремі представника ).w=∑Ni=1α(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 вектори підтримки.∑Ni=1α(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:
Інші посилання:
Список літератури: