Азербайджан |
Нелинейный классификатор. Многослойный персептрон
5.1. Задача исключающего ИЛИ
Рассмотрим булеву функцию как некий классификатор. Вектор
признаков имеет вид
. В данном случае имеется четыре прецедента и два
класса. Напомним таблицу значений функции
.
Как видно из рисунка тут нельзя построить разделяющую прямую, поскольку выпуклые оболочки точек, относящихся к первому классу и ко второму классу, пересекаются. Следовательно, и линейный классификатор построить нельзя. Попытаемся построить необходимый нелинейный классификатор как суперпозицию несколько линейных.
Рассмотрим две вспомогательные булевы функции и
. Напомним
таблицы значений этих функций:
5.1.1. Построение линейного классификатора функции . Очевидно, что
разделяющей прямой является линия:
![x_1+x_2=\frac12](/sites/default/files/tex_cache/778772b7cf52b6cb179f6ffcf592c0f0.png)
Соответствующий персептрон имеет вид:
5.1.2. Построение линейного классификатора функции .
Здесь также можно построить разделяющую прямую:
![x_1+x_2=\frac32](/sites/default/files/tex_cache/8987e98f00d3cae79ab5208402c70c5b.png)
Соответствующий персептрон имеет вид:
5.1.3. Построение нелинейного классификатора функции .
Пусть на выходе персептрона для функции
-
,
а на выходе персептрона для функции
–
.
Посмотрим, какие значения принимает вектор
.
Обозначив классы как показано в таблице, получаем разделяющую прямую, изображенную на рисунке и соответствующий линейный классификатор:
![y_1-y_2=\frac12](/sites/default/files/tex_cache/b5dd4b3713449c39399cae70eba2c0f9.png)
Учитывая вышеизложенное, получаем нелинейный классификатор, который задается через два линейных классификатора, как показано на рисунке слева:
![x_1+x_2=\frac12 \text{ и } x_1+x_2=\frac32](/sites/default/files/tex_cache/cac17a9995f6cf578aede3bc9aca8bf6.png)
Соответствующий двухслойный персептрон изображен на рисунке справа.