Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы по Сапунову / Lab2_neural / Лабораторная №2 (отчет)

.doc
Скачиваний:
13
Добавлен:
13.04.2015
Размер:
91.14 Кб
Скачать

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

курс: «Вычислительный интеллект»

тема: моделирование булевой функции с помощью нейронной сети

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

студента 5 курса группы СИИ (магистры)

Дворника Константина

Нейрон с одним вектором входа р с R элементами показан на рис. 1. Здесь каждый элемент входа умножается на веса соответственно и взвешенные значения передаются на сумматор. Их сумма равна скалярному произведению вектора- строки W на вектор входа р.

Рис. 1. Функциональная схема нейрона

Нейрон имеет смещение b, которое суммируется со взвешенной суммой входов. Результирующая сумма n определяется как

Алгоритм персептрона

С помощью персептрона можно осуществлять классификацию объектов по двум классам. Полагаем, что x ∈ ϖ1, если R(x)>0, и x ∈ ϖ2 – в противном случае. Функция R(x) =wx будет линейной решающей функцией (ЛРФ), а гиперплоскость wx= 0 – линейной разделяющей поверхностью.

Предположим, что имеется некоторая обучающая выборка {x1, …, xn}, причем {x1, …, xm} ⊂ ϖ1 и {xm+1, …, xn} ⊂ ϖ2. Требуется построить линейную решающую функцию R(x) =wx, которая бы правильно разделяла элементы обучающей выборки, т.е.

wxi > 0 ∀ i= (1,…m)

wxi < 0 ∀ i= (m+1,…n)

Построение такой ЛРФ осуществим с помощью итерационного алгоритма. Для этого обучающую выборку запишем в виде бесконечной циклической последовательности {x1, …, xn, x1, …, xn,...} и выберем некоторое начальное значение весов w(1)=(w1(1), …, wn(1)). Далее на каждом k-м шаге алгоритма «предъявляется» k-й вектор xk обучающей выборки и значение весового вектора w(k) корректируется или не корректируется в соответствии с правилом

То есть весовой вектор не меняется, если «предъявленный» вектор классифицируется правильно и увеличивается или уменьшается на xk при неправильной классификации. Алгоритм завершает свою работу, если осуществляется n-кратная правильная классификация образов обучающей выборки.

Dvornik = 68 + 118 + 111 + 114 + 110 + 105 + 107 = 733. В двоичной системе 0011 1101 1101. Поскольку нам нужно первых 8 разрядов отбрасываем первые четыре. Получаем

x1

x2

x3

f

0

0

0

1

0

0

1

1

0

1

0

0

0

1

1

1

1

0

0

1

1

0

1

1

1

1

0

0

1

1

1

1

ДНФ функции f

Структура нейронной сети, представляющей функцию f

Заключительный этап – подбор весов и смещений сети таким образом, чтобы каждый нейрон реализовывал соответствующую функцию.

Например, для элементарной конъюнкции возможные весовые коэффициенты при соответствующих связях для x1, x2, x3 и смещения могут быть

(-1;-1;-1;0.5).

После подбора весовых коэффициентов созданная нейронная сеть моделируется при помощи системы Matlab.

input = [0 0 0 0 1 1 1 1; 0 0 1 1 0 0 1 1; 0 1 0 1 0 1 0 1];

output = [1 1 0 1 1 1 0 1];

net = newff([0 1; 0 1; 0 1],[6 1], {'hardlim' 'hardlim'});

net.IW{1, 1} = [-1 -1 -1; -1 1 1; 1 -1 -1; 1 1 1; 1 1 1; 1 1 1];

net.b{1} = [0.5; -1.5; -0.5; -2.5];

net.LW{2,1} = [1 1 1 1];

net.b{2,1} = -0.5;

y = sim (net,input)

Результат:

y =

1 1 0 1 1 1 0 1

Соседние файлы в папке Lab2_neural