Указания к выполнению работы

Исследование принципов работы персептронов

 

Цель работы: ознакомиться с принципом работы и методами обучения однослойных и многослойных персептронов Розенблатта.

 

Задание

1. Используя набор точек x1=[-1 -2 -5 2 -1 6], x2=[0.1 0.3 -0.5 0 -2 -0.3], y=[0 0 0 1 1 1], определить значения весовых коэффициентов однослойного персептрона, необходимые для правильной их классификации. Проверить правильность выполненных расчётов путем графического представления полученных результатов.

2. Обучить стандартный персептрон на этот же набор данных. Сравнить полученные значения весовых коэффициентов и смещений. Результат работы персептрона представить графически.

3. Используя известную таблицу истинности для операции «исключающее ИЛИ», подобрать весовые коэффициенты многослойного персептрона для ее реализации. Результат работы представить с помощью команды surf, contour или contourf.

4. Используя набор данных из таблицы вариантов, определить значения весовых коэффициентов многослойного персептрона. Проверить правильность полученных данных.

 

Таблица 1.1 – Варианты заданий

№ вар. x1 x2 y
0.2 -0.5 -1.1 0.4 -1.1 -0.7 1 -0.3 0.9 0 1 0 0 1 1
0.2 -0.5 -1.1 0.4 -1.1 0 -1.7 1.1 0.6 -1.9 1 0 0 1 1
0.2 -0.5 -1.1 0.4 -0.5 0.2 -0.6 1 0.4 1 1 0 1 1 0
0.2 -0.5 -1.1 0.4 -1.1 0.4 -0.3 -0.7 1.9 1.9 0 1 0 0 1
№ вар. x1 x2 y
0.2 -0.5 -1.1 0.4 -1.1 -0.4 0.4 0.3 0.9 0 1 1 0 0 0
0.2 -0.5 -1.1 0.4 -1.1 -0.2 -1.7 -0.9 0.2 -0.1 0 1 1 1 0
0.2 -0.5 -1.1 0.4 -1.1 2 0.5 -1.3 -0.7 0.6 0 1 0 1 0
0.2 -0.5 -1.1 0.4 -1.1 -2.3 -1.2 0.9 -0.7 0.1 1 0 0 1 1
0.2 -0.5 -1.1 0.4 -1.1 2.2 0.1 0 1.2 -2 0 1 1 0 0
-1 1.7 1.6 -1.3 0.9 0.3 0.7 -0.1 -1.6 -2.3 1 0 0 0 1
-1 0 1.6 -1.3 0.9 -0.7 1 0.3 0.9 0 1 0 1 1 0
-1 1.7 1.6 -1.3 0.9 -1.5 -1.7 1.1 0.6 -1.9 1 0 1 0 0
-1 1.7 1.6 -1.3 0.9 0.2 -0.6 1 0.4 1 0 1 0 0 1
-1 1.7 1.6 -1.3 0.9 0.4 -0.3 -0.7 1.3 0.9 1 1 0 1 0
-1 -1.7 1.6 -1.3 0.9 -0.4 0.4 0.3 0.9 0 0 1 1 0 0
-1 1.7 1.6 -1.3 0.9 -0.2 -1.7 -0.9 0.2 -0.1 0 1 0 1 0
-1 1.7 1.6 -1.3 0.9 2 0.5 -1.3 -0.7 -2.5 1 0 0 0 1
-1 1.7 1.6 -1.3 0.9 -2.3 -1.2 0.9 -0.7 0.6 1 0 1 0 0
-1 1.7 1.6 -1.3 0.9 2.2 0.1 0 1.2 -2 1 0 0 1 1
0.9 -0.9 1.2 -0.9 0.4 0.3 0.7 -0.1 -1.6 -2.3 1 0 0 1 0
0.9 -0.9 1.2 -0.9 0.4 -0.7 1 0.3 0.1 0 1 0 1 1 0
0.9 -0.9 0 -0.9 0.4 0 -1.7 1.1 0.6 -1.9 0 1 1 0 1
1.2 -0.9 1.2 -0.9 0.4 0.2 -0.6 1 0.4 1 1 0 0 1 0
0.9 -0.9 1.2 -0.9 0 0.4 -0.3 -0.7 1.3 0.9 0 1 1 0 1
0.9 -0.9 1.2 -0.9 -1.1 -0.4 -0.4 0.3 0.9 0 0 1 0 1 0
1.5 -0.9 1.2 -0.9 0.4 -0.2 -1.7 -0.9 0.2 -0.1 1 0 0 1 0
0.9 -0.9 1.2 -0.9 0.4 2 0.5 -1.3 -2 -2.5 1 0 1 4 0
0.9 -0.9 1.2 -0.9 0.4 -2.3 -1.5 0.9 -0.7 0.6 1 0 0 1 1
0.9 -0.9 1.2 -0.9 0.4 2.2 0.1 0 1.2 -2 1 0 0 1 1
0.3 -0.5 -0.2 -0.7 0 0.3 0.7 -0.1 -1.6 -2.3 1 0 1 0 0
0.3 -0.5 -0.2 -0.7 -0.8 -0.7 1 0.3 0.9 -0.5 0 1 0 0 1
0.3 -0.5 -0.2 -0.7 0 0 -1.7 1.1 0.6 -1.9 1 1 0 1 0
№ вар. x1 x2 y
0.3 -0.5 -0.2 -0.7 0 0.2 -0.6 1 0.4 1 0 1 1 0 0
0.3 -0.5 -0.2 -0.7 0 0.4 -0.3 -0.7 1.3 2 1 1 0 1 0
0.3 -0.5 -0.2 -0.7 0 -0.4 0.4 0.3 0.9 0 1 0 0 1 1
0.3 -0.5 -0.2 -0.7 0 -0.2 -1.7 -0.9 0.2 -0.1 1 0 1 0 0
0.3 -0.5 -0.2 -0.7 0 2 0.5 -1.3 -2 -2.5 1 0 0 1 1
0.3 -0.5 -0.2 -0.7 0 -2.3 -1.2 0.9 -0.7 0.6 1 0 0 1 0
0.3 -0.5 -0.2 -0.7 0 2.2 -1.5 0 1.2 -2 0 0 1 1 0
0.1 -0.7 -1.5 -0.5 0.2 0.3 0.7 -0.1 -1.6 -2.3 0 1 0 0 1
0.1 -0.7 -1.5 -0.5 0.2 -0.7 1 0.3 0.9 0 1 1 0 1 0
0.1 -0.7 -1.5 -0.5 0.2 0 -1.7 1.1 0.6 -1.9 1 1 0 1 0
0.1 -0.7 -1.5 -0.5 0.2 0.2 -0.6 1 0.4 1 0 1 0 1 0
0.1 -0.7 -1.5 -0.5 0.2 -1 -0.3 -0.7 1.3 0.9 1 0 0 1 0
0.1 -0.7 -1.5 -0.5 0.2 -0.4 0.4 0.3 0.9 0 1 1 1 0 0
0.1 -0.7 -1.5 -0.5 0.2 -0.2 -1.7 -0.9 0.2 -0.1 0 1 0 1 0
0.1 -0.7 -1.5 -0.5 0.2 2 0.5 -1.3 -0.7 -2.5 1 0 0 1 0
0.1 -0.9 -1.5 -0.5 0.2 -2.3 -1.2 0.9 -0.7 0.6 1 0 1 0 0
0.1 -0.7 -1.5 -0.5 0.2 2.2 0.1 0 1.2 -2 0 1 0 0 1
0.5 -1.2 -0.4 -0.3 -1.6 0 0.3 0.7 -0.1 -1.6 -2.3 0 1 1 0 1 0 1

 

Указания к выполнению работы

 

Персептрон Розенблатта – простейшая нейронная структура, способная выполнять двоичную классификацию образов, то есть, соответствует некоторый набор входных данных заранее известной ситуации или нет. Такой подход часто используют в задачах распознавания образов.

Задача определения весовых коэффициентов однослойного персептрона довольно проста с точки зрения математики. Тем не менее, рекомендуется создавать и обучать персептроны либо через командную строку (команды newp, train, sim), либо через интерфейс NNTool. Во втором варианте необходимо обязательно экспортировать полученную сеть в память, чтобы затем извлечь из нее значения весовых коэффициентов и смещения.

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

plotpv([x1;x2],y) – отображение на плоскости точек, поданных на персептрон, которые обозначаются кругами, если выход сети равен нулю, или крестиками, если выход равен единице.

plotpc([w1,w2],b) – построение границы принятия решений для персептрона с указанными весовыми коэффициентами и смещением. Для персептрона, созданного в nntool или с помощью команды newp, взять эти значения можно по синтаксису имя_сети.IW и имя_сети.b.

К сожалению, в Matlab отсутствуют встроенные механизмы обучения многослойных персептронов, а процесс их создания – крайне сложен. Поэтому рекомендуется задаться следующей последовательностью действий:

1. В графическом окне с помощью команды plotpvпостроить исходные данные и определить, как должны пройти линии разграничения. На основании этих соображений сформировать новые массивы x1t, x2t, y1t и y2t так, чтобы соответствующие пары входных и выходных значений были линейно разделимыми.

2. Используя полученные данные обучить два обычных персептроны, после чего извлечь из них значения весовых коэффициентов и смещений. Рекомендуется проиллюстрировать работу каждого персептрона графически.

3. Написать m-функцию, реализующую функцию Хевисайда:

4. Используя формулу вычисления выходного сигнала искусственного нейрона Маккаллоха-Питтса, создать m-функцию, реализующую работу двухслойного персептрона. В качестве параметров первого (скрытого) слоя использовать полученные ранее весовые коэффициенты и смещения.

5. Задаться некоторым отрицательным значением смещения во втором (выходном) слое и определить его весовые коэффициенты, используя данные из табл. 1.1 и полученные ранее результаты.

6. Вычислить значения выходного сигнала полученного персептрона на некотором диапазоне, включающем ВСЕ исходные точки. С помощью команды contourf показать, что нули и единицы располагаются в нужных областях.

 

 

Лабораторная работа №2