logo search
СППР_Часть1

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

Рассмотрим таблицу истинности этой функции (табл. 3.2).

Таблица 3.2. Таблица истинности логической функции «исключающее ИЛИ»

P1

P2

A

0

0

0

0

1

1

1

0

1

1

1

0

Что же подразумевается под "линейной неотделимостью" множеств? Чтобы ответить на этот вопрос, изобразим множество выходных значений в пространстве входов (рис. 3.7), следуя следующему правилу: сочетания входов P1 и P2, при которых выход A обращается в нуль, обозначаются кружком, а те, при которых A обращается в единицу - крестиком.

Наша цель - провести границу, отделяющую множество нулей от множества крестиков. Из построенной картины на рис. 3.7 видно, что невозможно провести прямую линию, которая бы отделила нули от единиц. Именно в этом смысле множество нулей линейно неотделимо от множества единиц, и персептроны, рассмотренные ранее, в принципе, не могут решить рассматриваемую задачу.

Рисунок 3.7 - Состояния логического элемента "исключающее ИЛИ"

Если же использовать персептроны со специальными нелинейными функциями активации, например, сигмоидными, то решение задачи возможно.

Выберем персептрон (Feed-Forward Back Propagation) с двумя нейронами скрытого слоя, у которых функции активации сигмоидные (TANSIG), и одним выходным нейроном с линейной функцией активации (PURELIN) (рис. 3.8). В качестве функции ошибки укажем MSE (Mean Square Error - средний квадрат ошибки). Напомним, что функция ошибки устанавливается в окне "Создание сети" после выбора типа сети.

Рисунок 3.8 - Сеть для решения задачи "исключающего ИЛИ"

Инициализируем сеть, нажав кнопку Initialize Weights на вкладке Initialize, после чего обучим, указав в качестве входных значений сформированную ранее переменную data1, в качестве целей - новый вектор, соответствующий желаемым выходам. В процессе обучения сеть не может обеспечить точного решения, то есть свести ошибку к нулю. Однако получается приближение, которое можно наблюдать по кривой обучения. Следует отметить, что данная кривая может менять свою форму от эксперимента к эксперименту, но, в случае успешного обучения, характер функции будет монотонно убывающим.

В результате обучения, ошибка была минимизирована до весьма малого значения, которое практически можно считать равным нулю.

Задача синтеза элемента "исключающего ИЛИ" является также примером задачи классификации. Она отражает общий подход к решению подобного рода задач.