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

Линейный классификатор. Алгоритм персептрона

< Лекция 2 || Лекция 3: 123 || Лекция 4 >

3.2.3. Сходимость алгоритма персептрона.

Основной вопрос, связанный с алгоритмом персептрона связан с его сходимостью. Конечен ли построенный итерационный процесс обучения?

Теорема Новикова. Пусть \{x_i\}бесконечная последовательность векторов из двух непересекающихся замкнутых множеств X_1 и X_2 ; и пусть существует гиперплоскость, проходящая через начало координат и разделяющая X_1 и X_2 (не имеет с ними общих точек). Тогда при использовании алгоритма персептрона число коррекций весового вектора конечно.


Доказательство. Пусть W^* - направляющий вектор разделяющей гиперплоскости (которая существует по условию). Не нарушая общности, будем считать, что он является единичным.

Пусть X=conv\left(X_1\bigcup\overline{X}_2\right), \overline{X}_2 в – симметричное к X_2 множество; \rho=\rho(0,X), где \rho – евклидово расстояние. Согласно утверждению 3.3 \left(W^*,X\right)\geq\rho_0>0\quad \forall x\in X.

Оценим \left(W_t,W^*\right).

Пусть W^*единичный вектор нормали, разделяющий X_1 и X_2.

\left(W^*,X\right)\geq\rho_0 \text{ при } x\in X_1
\left(W^*,X\right)\leq-\rho_0 \text{ при } x\in X_2

Пусть W_t – весовой вектор после предъявления вектора x_t ; W_0=0 – начальная итерация весового вектора (|W^*|-1). Тогда, если (W_t,x_{t+1})>0, то коррекции не происходит. Иначе, если (W_t,x_{t+1})\leq 0, то коррекция: W_{t+1}=W_t+x_{t+1}

|W_{t+1}|^2=|W_t|^2+2(x_{t+1},W_t)+|x_{t+1}^2\leq |W_T|^2+D^2, т.к. (x_{t+1},W_t)\leq 0 и |x_{t+1}|\leq\sup_{x\in X}|x|=D

Таким образом, к моменту t происходит k коррекций, то

|W_t|^2\leq k\cdot D^2, \text{ т.к. } |W_0|=0 ( 3.1)

В начальный момент времени (W_0,W^*)=0. Если в момент i+1 произошла коррекция, то

(W_{t+1},W^*)=(W_0,W^*)+(x_{t+1},W^*)\geq (W_t,W^*)+\rho_0
Если коррекция не происходит, то
(W_{t+1},W^*)=(W_t,W^*)
Если к моменту t произошло k коррекций, то
(W_t,W^*)\geq k\rho_0
С другой стороны
(W_t,W^*)\leq|W_t|\cdot|W^*|=|W_t|
Поэтому
|W_t|\geq k\rho_0 ( 3.2)

Из неравенств 3.1 и 3.2 следует:

k^2\rho_0\leq|W_t|^2\leq kD^2 \Rightarrow k\rho_0\leq D^2 \Rightarrow k\leq\frac{D^2}{\rho_0}
Таким образом, число коррекций k не превосходит \lfloor\frac{D^2}{\rho_0}\rfloor.

3.2.4. Оптимизационная интерпретация. Рассмотрим непрерывную кусочно-линейную функцию J(W):

J(W)=\sum_{x\in Y} \delta_x(W,x),\text{ где }\delta_x=
\left\{
\begin{aligned}
& -1,x\in X_1 \\
& 1,x\in X_2
\end{aligned}
\right. ;
Y – множество векторов неправильно классифицированных гиперплоскостью W. Тогда J(W)\geq 0 и J(W)=0\Leftrightarrow Y=\varnothing. Задача состоит в минимизации этой функции:
J(W)=\sum_{x\in Y}\delta_x (W,x)\rightarrow\min
Построим минимизацию по схеме градиентного спуска:
W_{t+1}=W_t-\rho_t\frac{dJ(W)}{dW}
Т.к. \frac{dJ(W)}{dW}=\sum_{x\in Y}\delta_x x, то W_t-\rho_t\sum_{x\in Y}\delta_x x

Таким образом, алгоритм персептрона представляет собой вариант алгоритма градиентного спуска. Выбор последовательности величин \rho_t для обычно осуществляется так, чтобы:

\sum_{t=0}^{\infty}|\rho_t|>\infty \quad\text{и}\quad \sum_{t=0}^{\infty}\rho_t^2<\infty

3.2.5. Схема Кеслера. Идея построения линейного классификатора естественно обобщается на случай классификации с числом классов больше двух. Рассмотрим задачу классификации по M классам. Для каждого класса необходимо определить линейную дискриминантную функцию W_i, \; i=1,2,\ldots,M. Пусть – x-(l+1) -мерный вектор в расширенном пространстве. Вектор x относится к классу |Omega_i, если

W_i x > W_j x,\; \forall i\neq j

Схема Кеслера позволяет применить алгоритм персептрона для решения этой задачи.

Для каждого вектора-прецедента из \Omega_i строим (M-1) векторов x_{ij} размерности (l+1)M:

x_{ij}=(\underbrace{0,\ldots,0}_1,\underbrace{0,\ldots,0}_2,\ldots,\underbrace{x_1,\ldots,x_M}_i,
        \underbrace{0,\ldots,0}_{i+1},\ldots,\underbrace{-x_1,\ldots,-x_M}_j,\ldots,\underbrace{0,\ldots,0}_M)^T
и вектор W=(W_1,W_2,\ldots,W_M)^T, где W_i – весовой вектор i -ой дискриминантной функции.

Пусть x=(x_1,x_2,\ldots,x_M), тогда вектор x_{ij} можно записать в виде:

\def\Nol{\mathop{0}}
\def\Ix{\mathop{x}}
\def\MinIx{\mathop{-x}}
x_{ij}=(\Nol\limits_{1},\Nol\limits_{2},\ldots,\Nol\limits_{i-1},\Ix\limits_{i},
        \Nol\limits_{i+1},\ldots,\Nol\limits_{j-1},\MinIx\limits_{j},\Nol\limits_{j+1},\ldots,\Nol\limits_{M})

Если x относится к классу \Omega_1, то Wx_{ij}>0\quad \forall j=1,2,\ldots,M,\; i\neq j, т.к. W_i x>W_j x и Wx_{ij}=W_i x-W_J x> 0.

Таким образом, задача заключается в построении линейного классификатора в (l+1)M -мерном пространстве так, чтобы каждый из (M-1)N векторов-прецедентов лежал в положительном полупространстве. Если вектора в исходной задаче разделимы, то это можно сделать с помощью алгоритма персептрона.

< Лекция 2 || Лекция 3: 123 || Лекция 4 >