Оптимальная разделяющая гиперплоскость
4.2. Построение оптимальной разделяющей гиперплоскости
Теорема. Если два множества и
разделимы гиперплоскостью,
и
– выпуклые оболочки этих множеств, а
и
– пара ближайших точек в выпуклых оболочках, то
![\max_{|\varphi|=1}\Pi(\varphi)=|x^*-\overline{x}^*|,](/sites/default/files/tex_cache/6c00543ba953d0a574dff5676a133a7c.png)
![|x^*-\overline{x}^*|](/sites/default/files/tex_cache/abc5a6f4928297ca4aabf3afe9f4d051.png)
![x^*](/sites/default/files/tex_cache/5d9075efa0ec4b2e8228505844f11742.png)
![\overline{x}^*](/sites/default/files/tex_cache/1a8259cfb05bdd78a80b75f688f10247.png)
Доказательство. Положим .
Из условий
, следует, что
и,
следовательно,
![]() |
( 4.2) |
![\max_{\varphi=1}\Pi(\varphi)\leq|x^*-\overline{x}^*|](/sites/default/files/tex_cache/88d1c81e291abb5959dc0b36333bcc5e.png)
![]() |
( 4.3) |
Пусть точки и
такие,
что
и
.
Тогда
![\begin{gathered}
\Pi(\varphi^*)=c_1(\varphi^*)-c_2(\varphi^*)=(y-\overline{y},\varphi^*)= \\
=(x^*+(y-x^*)-\overline{x}^*-(\overline{y}-\overline{x}^*),\varphi^*)= \\
=(x^*-\overline{x}^*,\varphi^*)+(y-\overline{x},\varphi^*)-(\overline{y}-\overline{x}^*,\varphi^*)=\\
=|x^*-\overline{x}^*|+(y-x^*,\varphi^*)-(\overline{y}-\overline{x}^*,\varphi^*).
\end{gathered}](/sites/default/files/tex_cache/924ec94c0c2e1a4e8eb577b50bfe1dd8.png)
Теперь покажем, что ,
а
, или, что то же самое:
![]() |
( 4.4) |
![z=\lambda y+(1-\lambda)x^*,\;0<\lambda<1](/sites/default/files/tex_cache/d5f24256b8c99c76042b2482d1d0dc91.png)
![R^l](/sites/default/files/tex_cache/730587457fd49bb7ad46b3faba91b348.png)
![X](/sites/default/files/tex_cache/02129bb861061d1a052c592e2dc6b383.png)
![z\in Conv(X)](/sites/default/files/tex_cache/8f6c39cec3fa75a1ebd36de244fe1959.png)
![]() |
( 4.5) |
![x^*](/sites/default/files/tex_cache/5d9075efa0ec4b2e8228505844f11742.png)
![\overline{x}^*](/sites/default/files/tex_cache/1a8259cfb05bdd78a80b75f688f10247.png)
![Conv(X)](/sites/default/files/tex_cache/16ea5f1218d6f83a130a401c753df915.png)
![Conv(\overline{X})](/sites/default/files/tex_cache/f82c5a9425d9d18b70325926e5d8dff6.png)
![|z-\overline{x}^*|^2\geq|x^*-\overline{x}^*|^2](/sites/default/files/tex_cache/efc0358cc03b37094443cae00caa52d5.png)
![2\lambda(x^*-\overline{x}^*,y-x^*)+\lambda^2|y-x^*|^2\geq 0,](/sites/default/files/tex_cache/ddb3aa68988bd4f7164745b1d17db84d.png)
![2(x^*-\overline{x}^*,y-x^*)+\lambda|y-x^*|^2\geq 0\;\forall\lambda>0](/sites/default/files/tex_cache/79fde270823b751d1221f8146cf3e186.png)
![(x^*-\overline{x}^*,y-x^*)\geq 0](/sites/default/files/tex_cache/3273f2ffd6686744e45b04f6925ea595.png)
Тем самым доказано неравенство (4.3), а из него (4.2) и утверждение теоремы.
Оптимальная разделяющая гиперплоскость ортогональна отрезку,
соединяющему ближайшие точки выпуклых оболочек множеств
и
, и проходит через середину этого отрезка.
Задача поиска пары ближайших точек сводится к задаче квадратичного
программирования следующим образом.
Каждая точка , лежащая в выпуклой оболочке
, представима в виде
.
Аналогично, точка
представима в виде
.
Нужно найти пару точек
и
, обеспечивающих минимум выражения:
![]() |
( 4.6) |
![]() |
( 4.7) |
![]() |
( 4.8) |
4.3. Алгоритм Гаусса-Зейделя
Задача состоит в нахождении наименьшего расстояния между множествами и
.
1. В качестве начальных значений берем произвольную пару и
.
Другими словами в начальный момент
и
.
2. Необходимо найти точку ближайшую к
на отрезке
. Обозначаем
.
Напишем условие ортогональности векторов
и
:
![(z_{t+1}-\overline{z}_t,z_t-x_k)=0.](/sites/default/files/tex_cache/574354356a31fbde8db40498c583c54d.png)
![z_{t+1}=\lambda z_t+(1-\lambda)x_k=x_k+\lambda(z_t-x_k)](/sites/default/files/tex_cache/363999b2c58678618d35c7708ace6e13.png)
![\begin{gathered}
(z_{t+1}-\overline{z}_t,z_t-x_k)=(x_k+\lambda(z_t-x_k)-\overline{z}_t,z_t-x_k)=\\
=\lambda(z_t-x_k,z_t-x_k)+(x_k-\overline{z}_t,z_t-x_k)=0
\end{gathered}](/sites/default/files/tex_cache/a48a72928e0560e7b95612a7a54adf31.png)
![\lambda=\frac{(\overline{z}_t-x_k,z_t-x_k)}{|z_t-x_k|^2}](/sites/default/files/tex_cache/9de37a039fb380626f242d7894419bdf.png)
![\lambda\leq 0](/sites/default/files/tex_cache/8439f1cdd25f835cc2158568db2f5598.png)
![z_{t+1}=x_k](/sites/default/files/tex_cache/5f830996d356117cecadd187c91b6adb.png)
![\lambda\geq 1](/sites/default/files/tex_cache/a31818fd6ae02bd6bccc59c877c81c31.png)
![z_{t+1}=z_t](/sites/default/files/tex_cache/cbfcb686ae2f847916eb4b503f51c017.png)
![0\lt;\lambda<1](/sites/default/files/tex_cache/2e2ce3dc34f6d9a40cc8c5ec7df8a03a.png)
![z_{t+1}=\lambda z_t+(1-\lambda)x_k](/sites/default/files/tex_cache/49463cb4b3f780171f26ce35573154ff.png)
3. Далее необходимо найти точку ближайшую к
на отрезке
. Обозначаем
.
Данную процедуру необходимо повторять, пока не найдутся две
ближайшие точки множеств и
.