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

Нелинейный классификатор. Многослойный персептрон

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >
Аннотация: В этой лекции рассматриваются нелинейный классификатор и многослойный персептрон. Приведены основные теоремы и определения, а также примеры практической реализации

5.1. Задача исключающего ИЛИ

Рассмотрим булеву функцию xor(x_1,x_2) как некий классификатор. Вектор признаков имеет вид x=(x_1,x_2). В данном случае имеется четыре прецедента и два класса. Напомним таблицу значений функции xor(x_1,x_2).

№ прецедента x_1 x_2 xor(x_1,x_2) Класс
1 0 0 0 \Omega_1
2 0 1 1 \Omega_0
3 1 0 1 \Omega_0
4 1 1 0 \Omega_1

Как видно из рисунка тут нельзя построить разделяющую прямую, поскольку выпуклые оболочки точек, относящихся к первому классу и ко второму классу, пересекаются. Следовательно, и линейный классификатор построить нельзя. Попытаемся построить необходимый нелинейный классификатор как суперпозицию несколько линейных.

Рассмотрим две вспомогательные булевы функции or(x_1,x_2) и and(x_1,x_2). Напомним таблицы значений этих функций:

№ прецедента x_1 x_2 and(x_1,x_2) or(x_1,x_2)
1 0 0 0 0
2 0 1 0 1
3 1 0 0 1
4 1 1 1 1

5.1.1. Построение линейного классификатора функции or(x_1,x_2). Очевидно, что разделяющей прямой является линия:

x_1+x_2=\frac12


Соответствующий персептрон имеет вид:


5.1.2. Построение линейного классификатора функции and(x_1,x_2). Здесь также можно построить разделяющую прямую:

x_1+x_2=\frac32


Соответствующий персептрон имеет вид:


5.1.3. Построение нелинейного классификатора функции xor(x_1,x_2). Пусть на выходе персептрона для функции or(x_1,x_2) - y_1, а на выходе персептрона для функции and(x_1,x_2)y_2. Посмотрим, какие значения принимает вектор (y_1,y_2).

Исходные вектора OR AND XOR
x_1 x_2 y_1 y_2 Класс
0 0 0 0 1 \Omega_1
0 1 1 0 0 \Omega_0
1 0 1 0 0 \Omega_0
1 1 1 1 1 \Omega_1

Обозначив классы как показано в таблице, получаем разделяющую прямую, изображенную на рисунке и соответствующий линейный классификатор:

y_1-y_2=\frac12

Учитывая вышеизложенное, получаем нелинейный классификатор, который задается через два линейных классификатора, как показано на рисунке слева:

x_1+x_2=\frac12 \text{ и } x_1+x_2=\frac32

Соответствующий двухслойный персептрон изображен на рисунке справа.


< Лекция 4 || Лекция 5: 1234 || Лекция 6 >
Евгений Шаров
Евгений Шаров
Россия, Североморск, школа№11, 1991