Метод опорных векторов (Support vector machine)

## Линейно разделимый случай SVM

Пусть дана выборка

(

x
i

,

y
i

)
,

# i
1
…
N
,

x
i

∈

R
D

,

y
i

∈
{
−
1
;
1
}

{\displaystyle (x\_i, y\_i),~i=1\ldots N,~x\_i \in R^D,~y\_i \in \{-1; 1\}}

Линейный классификатор:

a
(
x
# )
s
i
g
n
(

w
T

x

w
0

)
,

w
∈

R
D

,

w
0

∈
R

{\displaystyle a(x) = sign(w^Tx + w\_0),~w \in R^D,~w\_0 \in R }

Какой геометрический смысл у линейного классификатора? Он строит гиперплоскость, которая задается уравнением:

w

T

x

w
0

=
0

{\displaystyle w^{T}x + w\_0 = 0 }

И объекты лежащие по разные стороны от разделяющей поверхности классификатор относит к разным классам. Возьмем из обучающий выборки объект, лежащий ближе всего к разделяющей поверхности. И пусть для него выполнено следующее равенство:

w
T

x

w
0

=
b
,

b
>
0

{\displaystyle w^Tx + w\_0 = b ,~~~b > 0}

Найдем расстояние от него до гиперплоскости. Известно, что расстояние может быть посчитано по формуле:

w
T

x

w
0

‖
w
‖

 В нашем случае расстояние до гиперплоскости равно

b

‖
w
‖

{\displaystyle \frac{b}{\|w\|}}

.

Таким образом ширина разделяющей полосы будет равна

2
b

‖
w
‖

{\displaystyle \frac{2b}{\|w\|}}

 и наша задача заключается в нахождении вектора

w

{\displaystyle w}

. Он должен быть таким, чтобы гиперплоскость линейно разделяла нашу выборку и ширина зазора между классами была максимальной. Зачем это нужно? Мы знаем, что чем больше значение

⟨
w
,
x
⟩

{\displaystyle \langle w,x \rangle}

тем классификатор увереннее в ответе. Поэтому мы и хотим увеличить ширину зазора между классами, чтобы повысить качество классификации.

Итак, перейдем к математической постановке задачи:

{

2
b

‖
w
‖

→

max

w
,

w
0

∀

x
i

,

# y
1

w
T

x
i

w
0

≥
b

∀

x
i

,

# y
−
1

w
T

x
i

w
0

≤
−
b

{\displaystyle
\begin{cases}
\frac{2b}{\|w\|} \rightarrow \underset{w, w\_0}{\max} \\
\forall x\_i,~y = 1 ~~w^Tx\_i + w\_0 \ge b \\
\forall x\_i,~y = -1 ~~w^Tx\_i + w\_0 \le -b
\end{cases}
}

Заметим, что второе и третье уравнение можно переписать в виде одного:

y
i

(

w
T

x
i

w
0

)

≥
b

{\displaystyle y\_i\left(w^Tx\_i + w\_0\right) \ge b}

Если точка

(
w
,

w
0

,
b
)

{\displaystyle (w,w\_0, b)}

 - решение задачи, то для

∀
α
>
0

(
α
w
,

α

w
0

,

α
b
)

{\displaystyle \forall \alpha > 0 ~~(\alpha w,~\alpha w\_0,~\alpha b)}

 - тоже решение. Положим

# b
1

{\displaystyle b=1}

, т.к. мы можем масштабировать

(
w
,

w
0

,
b
)

{\displaystyle (w,w\_0, b)}

.

Итого получим следующую задачу:

{

‖
w
‖
→

min

w
,

w
0

y
i

(

w
T

x
i

w
0

)

≥
1

∀
i
∈
1
,
…
,
N

{\displaystyle
\begin{cases}
\|w\| \rightarrow \underset{w, w\_0}{\min} \\
y\_i\left(w^Tx\_i + w\_0\right) \ge 1 ~~~\forall i\in 1, \dots , N\\

\end{cases}
}

y
i

(

w
T

x
i

w
0

)

=
1

{\displaystyle y\_i\left( w^Tx\_i + w\_0 \right) = 1}
* Неинформативные векторы:

y
i

(

w
T

x
i

w
0

)

>
1

{\displaystyle y\_i\left( w^Tx\_i + w\_0 \right) > 1}

Но все это не имеет отношения к жизни, потому что линейно разделимых выборок не бывает.

## Линейно неразделимый случай SVM

Теперь рассмотрим случай, когда не удается линейно разделить выборку на два класса. Решать задачу по новой не хочется, поэтому ослабим условие предыдущей задачи. Т.е. разрешим объектам из одного класса попадать в область второго класса.

{

‖
w
‖
→

min

w
,

w
0

y
i

(

w
T

x
i

w
0

)

≥
1
−

ξ
i

∀
i
∈
1
,
…
,
N

ξ
i

≥
0
,

# i
1
,
…
,
N

{\displaystyle
\begin{cases}
\|w\| \rightarrow \underset{w, w\_0}{\min} \\
y\_i\left(w^Tx\_i + w\_0\right) \ge 1 - \xi\_i ~~~\forall i\in 1, \dots , N\\
\xi\_i \ge 0,~~i = 1,\dots,N
\end{cases}
}

ξ

{\displaystyle \xi}

 надо как-то штрафовать, чтобы они не были слишком большими. В итоге получим следующую задачу:

{

1
2

‖
w

‖
2

C

∑

# i
1

N

ξ
i

→

min

w
,

w
0

,
ξ

y
i

(

w
T

x
i

w
0

)

≥
1
−

ξ
i

∀
i
∈
1
,
…
,
N

ξ
i

≥
0
,

# i
1
,
…
,
N

{\displaystyle
\begin{cases}
\frac{1}{2}\|w\|^2 + C \sum\_{i = 1}^{N}\xi\_i \rightarrow \underset{w, w\_0, \xi}{\min} \\
y\_i\left(w^Tx\_i + w\_0\right) \ge 1 - \xi\_i ~~~\forall i\in 1, \dots , N\\
\xi\_i \ge 0,~~i = 1,\dots,N
\end{cases}
}

Параметр

C

{\displaystyle C}

 определяет цену ошибки классификации. Заметим, что в качестве штрафа мы также могли взять

C

∑

i

N

ξ
i
2

{\displaystyle C\sum\_{i}^{N}\xi\_i^2}

.

### Классификация типов объектов

y
i

(

w
T

x
i

w
0

)

>
1

{\displaystyle y\_i\left( w^Tx\_i + w\_0 \right) > 1}
* Опорные векторы:

y
i

(

w
T

x
i

w
0

)

≤
1

{\displaystyle y\_i\left(w^Tx\_i + w\_0\right) \le 1}

	+ Граничные опорные векторы:

	y
	i

	(

	w
	T

	x
	i

	w
	0

	)

	=
	1

	{\displaystyle y\_i\left( w^Tx\_i + w\_0 \right) = 1}
	+ Опорные вектора-нарушители:
		- y
		i

		(

		w
		T

		x
		i

		w
		0

		)

		>
		0

		{\displaystyle y\_i\left(w^Tx\_i + w\_0\right) > 0 }

		 - векторы, лежащие внутри разделяющей полосы, но в своем классе
		- y
		i

		(

		w
		T

		x
		i

		w
		0

		)

		<
		0

		{\displaystyle y\_i\left(w^Tx\_i + w\_0\right) < 0}

		 - векторы, которые классифицируются неверно

## Какой функции потерь и регуляризатору соответствует SVM?

Рассмотрим еще раз линейно неразделимый случай SVM.

{

1
2

‖
w

‖
2

C

∑

# i
1

N

ξ
i

→

min

w
,

w
0

,
ξ

y
i

(

w
T

x
i

w
0

)

≥
1
−

ξ
i

∀
i
∈
1
,
…
,
N

ξ
i

≥
0
,

# i
1
,
…
,
N

{\displaystyle
\begin{cases}
\frac{1}{2}\|w\|^2 + C \sum\_{i = 1}^{N}\xi\_i \rightarrow \underset{w, w\_0, \xi}{\min} \\
y\_i\left(w^Tx\_i + w\_0\right) \ge 1 - \xi\_i ~~~\forall i\in 1, \dots , N\\
\xi\_i \ge 0,~~i = 1,\dots,N
\end{cases}
}

Постараемся избавиться от

ξ

{\displaystyle \xi}

. Ясно, что из последних двух неравенства можем получить:

{

ξ
i

≥
1
−

y
i

(

w
T

x
i

w
0

)

ξ
i

≥
0
,

# i
1
,
…
,
N

{\displaystyle
\begin{cases}
\xi\_i \ge 1 - y\_i\left(w^Tx\_i + w\_0\right) \\
\xi\_i \ge 0,~~i = 1,\dots,N
\end{cases}
}

Или иначе это можно записать:

ξ
i

=
max

(

1
−

y
i

(

w
T

x
i

w
0

)

,
0

)

≥
0

{\displaystyle \xi\_i = \max\left(1 - y\_i\left(w^Tx\_i + w\_0\right), 0\right) \ge 0}

И тогда нашу задачу можно переписать в виде:

1
2

‖
w

‖
2

C

∑

# i
1

N

max

(

1
−

y
i

(

w
T

x
i

w
0

)

,
0

)

→

min

w
,

w
0

{\displaystyle \frac{1}{2} \|w\|^2 + C \sum\_{i = 1}^{N} \max \left(1 - y\_i\left(w^Tx\_i + w\_0\right), 0\right) \rightarrow \underset{w, w\_0}{\min} }

Это и есть функция потерь, которую мы пытаемся минимизировать. Видно, что в данном случае используется

L
2

{\displaystyle L\_2}

 регуляризация, а функция потерь является кусочно - линейной.

## Вывод решения

Запишем еще раз условия задачи:

{

1
2

‖
w

‖
2

C

∑

# i
1

N

ξ
i

→

min

w
,

w
0

,
ξ

y
i

(

w
T

x
i

w
0

)

≥
1
−

ξ
i

∀
i
∈
1
,
…
,
N

ξ
i

≥
0
,

# i
1
,
…
,
N

{\displaystyle
\begin{cases}
\frac{1}{2}\|w\|^2 + C \sum\_{i = 1}^{N}\xi\_i \rightarrow \underset{w, w\_0, \xi}{\min} \\
y\_i\left(w^Tx\_i + w\_0\right) \ge 1 - \xi\_i ~~~\forall i\in 1, \dots , N\\
\xi\_i \ge 0,~~i = 1,\dots,N
\end{cases}
}

Запишем Лагранжиан:

L
(
w
,
b
,
ξ
,
λ
,
μ
# )

1
2

‖
w

‖
2

C

∑

# i
1

N

ξ
i

−

∑

# i
1

N

λ
i

[

y
i

(

w
T

x
i

b
)
−
1

ξ
i

]
−

∑

# i
1

N

μ
i

ξ
i

{\displaystyle
L(w,b,\xi,\lambda,\mu) = \frac{1}{2}\|w\|^2 + C \sum\_{i = 1}^{N}\xi\_i - \sum\_{i = 1}^{N}\lambda\_i[y\_i (w^T x\_i + b) - 1 + \xi\_i] - \sum\_{i = 1}^{N} \mu\_i \xi\_i
}

Выпишем Условия Куна-Таккера:

{

▽
w

# L
w
−

∑

# i
1

l

λ
i

y
i

x
i

=
0
⟹

# i
1

l

λ
i

y
i

x
i

▽
b

# L
−

∑

# i
1

l

λ
i

y
i

=
0
⟹

∑

# i
1

l

λ
i

y
i

=
0

▽

ξ
i

# L
C
−

λ
i

−

μ
i

⟹

μ
i

λ
i

=
C

λ
i

[

y
i

(

w
T

x
i

b
)
−
1

ξ
i

# ]
0
⟹
(

λ
i

=
0
)

o
r

(

y
i

(

w
T

x
i

b
# )
1
−

ξ
i

)

μ
i

ξ
i

=
0
⟹
(

μ
i

=
0
)

o
r

(

ξ
i

=
0
)

ξ
i

≥
0
,

λ
i

≥
0
,

μ
i

≥
0

{\displaystyle
\begin{cases}
\bigtriangledown\_w L = w - \sum\_{i=1}^{l} \lambda\_i y\_i x\_i = 0 \Longrightarrow w = \sum\_{i=1}^{l} \lambda\_i y\_i x\_i \\
\bigtriangledown\_b L = - \sum\_{i=1}^{l} \lambda\_i y\_i = 0 \Longrightarrow \sum\_{i=1}^{l} \lambda\_i y\_i = 0 \\
\bigtriangledown\_{\xi\_i} L = C - \lambda\_i - \mu\_i \Longrightarrow \mu\_i + \lambda\_i = C \\
\lambda\_i[y\_i (w^T x\_i + b) - 1 + \xi\_i] = 0 \Longrightarrow (\lambda\_i=0)\ or\ (y\_i (w^T x\_i + b) = 1 - \xi\_i) \\
\mu\_i \xi\_i = 0 \Longrightarrow (\mu\_i=0)\ or\ (\xi\_i=0) \\
\xi\_i \ge 0,\ \lambda\_i \ge 0,\ \mu\_i \ge 0
\end{cases}
}

Воспользуемся этими условиями и перепишем Лагранжиан:

# L

1
2

‖

∑

# i
1

l

λ
i

y
i

x
i

‖
2

−

∑

i
,
# j
1

l

λ
i

λ
j

y
i

y
j

x

i

T

x
j

−
b

∑

# i
1

l

λ
i

y
i

∑

# i
1

l

λ
i

∑

# i
1

l

ξ
i

(
C
−

λ
i

−

μ
i

# )

{\displaystyle
L = \frac{1}{2}\|\sum\_{i=1}^{l} \lambda\_i y\_i x\_i\|^2 - \sum\_{i,j=1}^{l} \lambda\_i \lambda\_j y\_i y\_j x\_{i}^T x\_j - b \sum\_{i=1}^{l} \lambda\_i y\_i + \sum\_{i=1}^{l} \lambda\_i + \sum\_{i=1}^{l} \xi\_i (C - \lambda\_i - \mu\_i) = }

=

∑

# i
1

l

λ
i

−

1
2

∑

i
,
# j
1

l

λ
i

λ
j

y
i

y
j

x

i

T

x
j

{\displaystyle = \sum\_{i=1}^{l} \lambda\_i - \frac{1}{2} \sum\_{i,j=1}^{l} \lambda\_i \lambda\_j y\_i y\_j x\_{i}^T x\_j
}

Таким образом мы перешли к двойственной задаче:

{

∑

# i
1

l

λ
i

−

1
2

∑

i
,
# j
1

l

λ
i

λ
j

y
i

y
j

x

i

T

x
j

→

m
a
x

λ

0
≤

λ
i

≤

C
,

# i
1
,
2
,
.
.
.
,
l

∑

# i
1

l

λ
i

y
i

=
0

{\displaystyle
\begin{cases}
\sum\_{i=1}^{l} \lambda\_i - \frac{1}{2} \sum\_{i,j=1}^{l} \lambda\_i \lambda\_j y\_i y\_j x\_{i}^T x\_j \rightarrow \underset{\lambda}{max} \\
0 \le \lambda\_i \le\ C,\ i=1,2,...,l \\
\sum\_{i=1}^{l} \lambda\_i y\_i = 0 \\
\end{cases}
}

## Обобщение через ядра

Вместо скалярного произведения можно использовать ядра:

{

∑

# i
1

l

λ
i

−

1
2

∑

i
,
# j
1

l

λ
i

λ
j

y
i

y
j

K
(

x
i

,

x
j

)
→

m
a
x

λ

0
≤

λ
i

≤

C
,

# i
1
,
2
,
.
.
.
,
l

∑

# i
1

l

λ
i

y
i

=
0

{\displaystyle
\begin{cases}
\sum\_{i=1}^{l} \lambda\_i - \frac{1}{2} \sum\_{i,j=1}^{l} \lambda\_i \lambda\_j y\_i y\_j K(x\_i,x\_j) \rightarrow \underset{\lambda}{max} \\
0 \le \lambda\_i \le\ C,\ i=1,2,...,l \\
\sum\_{i=1}^{l} \lambda\_i y\_i = 0 \\
\end{cases}
}

В этом случае классификатор будет иметь вид:

a
(
x
# )
s
i
g
n
(

∑

# i
1

l

λ
i

y
i

K
(

x
i

,
x
)
b
)

{\displaystyle
a(x)= sign(\sum\_{i=1}^{l} \lambda\_i y\_i K(x\_i, x) + b)
}