Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ModelNeyrosetey-Методичка.doc
Скачиваний:
160
Добавлен:
09.02.2015
Размер:
398.85 Кб
Скачать

Лабораторная работа № 4. Персептронные сети

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

Задание 1. Создать персептрон с одним нейроном и одноэлементным входом, диапазон значений которого от 0 до 1, и проанализировать значения параметров его вычислительной модели, выполнив следующие действия:

1. Создать и инициализировать персептрон:

net = newp([0 1], 1) % на экране весь объект

net.inputWeights{1,1} % веса входа объекта

net.biases{1} % смещение нейрона

net.IW{1,1} % значение весов

net.b{1} % значение смещения

net.IW{1,1}=[3] % задание веса

net.b{1}=[4] % задание смещения

net = init(net); % инициализация нулями

net.IW{1,1} % нулевое значение веса

net.b{1} % нулевое значение смещения

net.inputWeights{1,1}.initFcn=rands;

net.biases{1}.initFcn=rands;

net = init(net); % инициализация случайными значениями

net.IW{1,1}, net.b{1} % новые значения

p = {[0] [1] [0.5]}; % последовательность входов

a = sim(net, p) % моделирование сети

Задание 2. Создать персептрон с одним нейроном и одним двухэлементным вектором входа, значения элементов которого изменяются в диапазоне от –2 до 2, настроить веса и смещение для реализации разделяющей линии

p1 + p2 + 1 = 0,

а затем с помощью моделирования определить классы значений входного вектора, выполнив следующие действия.

1. Создать персептрон:

net = newp([ –2 2; –2 2], 1).

2. Произвести ручную инициализацию:

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

net.b{1} = [1].

3. Произвести проверку персептрона:

p = [1;1];

a = sim(net, p) % a = 1

p = [1; –1];

a = sim(net, p) % a = 0

4. Определить классы значений вектора:

p = {[ –2; –2] [ –2; –1] [ –2;0] [ –2;1] [ –2;2]…

[ –1; –2] [ –1; –1] [ –1;0] [ –1;1] [ –1;2]…

[0; –2] [0; –1] [0;0] [0;1] [0;2]…

[1; –2] [1; –1] [1;0] [1;1] [1;2]…

[2; –2] [2; –1] [2;0] [2;1] [2;2];

a = sim(net, p) % [0] –0 –й класс, [1] –1 –й класс

Задание 3. Создать персептрон с одним нейроном и двоичным входом и настроить его параметры для выполнения логической функции AND, а затем для выполнения логической функции OR, выполнив следующие действия:

1. Создать персептрон:

net = newp([0 1;0 1], 1).

2. Подготовить обучающие последовательности:

p={[0;0] [0;1] [1;0] [1;1]};

p1=cat(2, p{:});

T1=num2cell(p1(1,:) & p1(2,:)) % функция AND

T2=num2cell(p1(1,:) | p1(2,:)) % функция OR

3. Настроить параметры персептрона для выполнения логической функции AND, используя процедуру адаптации:

net.adaptParam.passes = 10; % число проходов

net.adapt(net,p,T1); % настройка на AND

net.IW{1,1},net.b{1} % линия 2p1 + p2 –3=0

Y =sim(net,p) % моделирование AND

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

net.trainParam.epochs=20; % число циклов

net = init(net); % инициализация

net = train(net,p,T2); % настройка на OR

net.IW{1,1},net.b{1} % линия 2p1 + 2p2 –2=0

Y = sim(net,p) % моделирование OR

Задание 4. Используя пошаговый режим адаптации и обучения, проследить изменения весов, смещения, выходного значения и ошибки для персептрона, рассмотренного в третьем задании. Для этого использовать команды:

net.adaptParam.passes = 1;

net.trainParam.epochs = 1;

[net,Y,e]=adapt(net,p,T1); % для AND

[net, Y,e]=train(net,p,T2); % для OR

net.IW{1,1},net.b{1} % настраиваемые параметры

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]