Московский государственный университет имени М.В.Ломоносова
Опубликован: 30.04.2008 | Доступ: свободный | Студентов: 1613 / 248 | Оценка: 4.24 / 3.92 | Длительность: 14:56:00
Специальности: Математик
Лекция 4:

Оптимальная разделяющая гиперплоскость

< Лекция 3 || Лекция 4: 12 || Лекция 5 >

4.2. Построение оптимальной разделяющей гиперплоскости

Теорема. Если два множества X и \overline{X} разделимы гиперплоскостью, \Conv(X) и \Conv(\overline{X})выпуклые оболочки этих множеств, а x^*\in Conv(X) и \overline{x}^*\in Conv(\overline{X})пара ближайших точек в выпуклых оболочках, то

\max_{|\varphi|=1}\Pi(\varphi)=|x^*-\overline{x}^*|,
где |x^*-\overline{x}^*|обозначает евклидово расстояние между точками x^* и \overline{x}^*.

Доказательство. Положим \varphi^*=\frac{(x^*-\overline{x}^*)}{|x^*-\overline{x}^*|}. Из условий c_1(\varphi)=\min_{x\in X}(x,\varphi), \; 
c_2(\varphi)=\min_{\overline{x}\in \overline{X}}(\overline{x},\varphi), следует, что c_1(\varphi^*)\leq;(x^*,\varphi^*),\; c_2(\varphi^*)=(\overline{x}^*,\varphi^*) и, следовательно,

\Pi(\varphi)=c_1(\varphi)-c_2(\varphi)\leq(x^*,\varphi^*)-(\overline{x}^*,\varphi^*)=
(x^*-\overline{x}^*,\varphi^*)=|x^*-\overline{x}^*| ( 4.2)
Следовательно \max_{\varphi=1}\Pi(\varphi)\leq|x^*-\overline{x}^*| и для доказательства теоремы нужно показать, что справедливо неравенство
\Pi(\varphi^*)\geq|x^*-\overline{x}^*| ( 4.3)

Пусть точки y\in X и \overline{y}\in\overline{X} такие, что c_1(\varphi^*)=(y,\varphi^*) и c_2(\varphi^*)=(\overline{y},\varphi^*). Тогда

\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}

Теперь покажем, что (y-x^*,\varphi^*)\geq 0, а (\overline{y}-\overline{x}^*,\varphi^*)\leq 0, или, что то же самое:

(y-x^*,x^*-\overline{x}^*)\geq 0,\;(\overline{y}-\overline{x}^*,x^*-\overline{x}^*)\leq 0 ( 4.4)
Пусть z=\lambda y+(1-\lambda)x^*,\;0<\lambda<1 – точка в R^l. Очевидно, что она лежит в выпуклой оболочке X, т.е. z\in Conv(X). Тогда имеем
\begin{gathered}
|z-\overline{x}^*|^2=|\lambda(y-\overline{x}^*)+(1-\lambda)(x^*-\overline{x}^*)|^2=\\
=|\lambda(y-x^*)+(x^*-\overline{x}^*)|^2=\\
=|x^*-\overline{x}^*|^2+2\lambda(x^*-\overline{x}^*,y-\overline{x}^*)+\lambda^2|y-x^*|^2
\end{gathered} ( 4.5)
Поскольку точки x^* и \overline{x}^* – ближайшие в выпуклых оболочках Conv(X) и Conv(\overline{X}), получаем, что |z-\overline{x}^*|^2\geq|x^*-\overline{x}^*|^2. Тогда из (4.5) следует, что
2\lambda(x^*-\overline{x}^*,y-x^*)+\lambda^2|y-x^*|^2\geq 0,
или 2(x^*-\overline{x}^*,y-x^*)+\lambda|y-x^*|^2\geq 0\;\forall\lambda>0, что возможно лишь при (x^*-\overline{x}^*,y-x^*)\geq 0. Таким образом, первое из неравенств (4.4) доказано. Второе неравенство (4.4) доказывается аналогично.

Тем самым доказано неравенство (4.3), а из него (4.2) и утверждение теоремы.

Оптимальная разделяющая гиперплоскость ортогональна отрезку, соединяющему ближайшие точки выпуклых оболочек множеств X и \overline{X}, и проходит через середину этого отрезка. Задача поиска пары ближайших точек сводится к задаче квадратичного программирования следующим образом.

Каждая точка y, лежащая в выпуклой оболочке Conv(X), представима в виде y=\sum_{x\in X}\alpha_x x,\; \sum_{x\in X}\alpha_x=1,\; \alpha_x\geq 0. Аналогично, точка \overline{y}\in Conv(\overline{X}) представима в виде \overline{y}\sum_{\overline{x}\in\overline{X}}\beta_{\overline{x}}\overline{x},\;
\sum_{\overline{x}\in\overline{X}}\beta_{\overline{x}}=1,\;\beta_{\overline{x}}\geq 0. Нужно найти пару точек y и \overline{y}, обеспечивающих минимум выражения:

|y-\overline{y}|^2=
\left(
\sum_{x\in X}\alpha_x x-\sum_{\overline{x}\in\overline{X}}\beta_{\overline{x}}\overline{x},
\sum_{x\in X}\alpha_x x-\sum_{\overline{x}\in\overline{X}}\beta_{\overline{x}}\overline{x}
\right) ( 4.6)
при условиях:
\sum_{x\in X}\alpha_x=1,\;\alpha_x\geq 0, ( 4.7)
\sum_{\overline{x}\in\overline{X}}\beta_{\overline{x}}=1,\;\beta_{\overline{x}}\geq 0. ( 4.8)
Задача математического программирования (4.6-4.8) имеет два ограничения и квадратичную целевую функцию.

4.3. Алгоритм Гаусса-Зейделя


Задача состоит в нахождении наименьшего расстояния между множествами X и \overline{X}.

1. В качестве начальных значений берем произвольную пару x_0 и \overline{x}_0. Другими словами в начальный момент t=0\;z_t=x_0\in X и \overline{z}_t=\overline{x}_0\in\overline{X}.

2. Необходимо найти точку x_{t+1} ближайшую к \overline{z}_t на отрезке [z_t,x_t]. Обозначаем z_{t+1}=\overline{z}_t. Напишем условие ортогональности векторов (z_{t+1}-\overline{z}_t) и (z_t-y_k):

(z_{t+1}-\overline{z}_t,z_t-x_k)=0.
Т.к. z_{t+1}=\lambda z_t+(1-\lambda)x_k=x_k+\lambda(z_t-x_k), то
\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}
Следовательно, \lambda=\frac{(\overline{z}_t-x_k,z_t-x_k)}{|z_t-x_k|^2}. Если \lambda\leq 0, то z_{t+1}=x_k. Если \lambda\geq 1, то z_{t+1}=z_t. Если 0\lt;\lambda<1, то z_{t+1}=\lambda z_t+(1-\lambda)x_k.

3. Далее необходимо найти точку \overline{z}_{t+1} ближайшую к z_t на отрезке [\overline{z}_t,x_r]. Обозначаем z_{t+1}=\overline{z}_t.

Данную процедуру необходимо повторять, пока не найдутся две ближайшие точки множеств X и \overline{X}.

< Лекция 3 || Лекция 4: 12 || Лекция 5 >