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

лабы по Сапунову / Lab4_neural / Лабораторная работа №4

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

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

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

тема: АЛГОРИТМ ОБРАТНОГО РАСПРОСТРАНЕНИЯ ОШИБКИ

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

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

Создаем в Matlab следующий код:

X = [6 1 9 9 6 1 1 8 3 4 7 5 7 4 3 5];

Y = [4 8 1 3 8 1 4 3 3 2 5 3 7.5 5 5 6];

input = [X; Y];

target = [ 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1];

net.trainParam.epochs = 200;

net.trainParam.goal = 0.001;

[net,tr] = train(net,input,target);

Обучение персептрона происходит в функции train.

Параметры, которые передаются в функцию train:

  1. net – многослойная сеть, объявленная с помощью функции newff.

  2. input – входные параметры

  3. target – вектор целей.

net.trainParam.epochs = 200; - кол-во эпох, после которого функция train прекратит действие, если не ошибка не переступит значение net.trainParam.goal = 0.001;

Для полученного результата делаем следующее:

input1 = [1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9;

1 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 1 1.5 3 4 5 6 7 7.5 9 1 2 3 3.5 5 6 7 8 9 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 2 3 4 5 6 7 8 9 1 2 3 4 5 7 8 9];

target1 = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0];

Z=sim(net,input1);

abs(target1-Z)<0.1 %выводим разницу между полученными результатами и желаемыми

Реализуем данную программу для разных архитектур сетей и функций активации:

X = [6 1 9 9 6 1 1 8 3 4 7 5 7 4 3 5];

Y = [4 8 1 3 8 1 4 3 3 2 5 3 7.5 5 5 6];

input = [X; Y];

target = [ 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1];

net = newff([1 10; 1 8],[6 2 1], {'tansig' 'tansig' 'purelin'});

net.trainParam.epochs = 200;

net.trainParam.goal = 0.001;

[net,tr] = train(net,input,target);

Columns 1 through 21

1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1

Columns 22 through 42

0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1

Columns 43 through 63

0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1

Columns 64 through 76

0 0 0 0 0 1 1 1 1 1 0 0 0

X = [6 1 9 9 6 1 1 8 3 4 7 5 7 4 3 5];

Y = [4 8 1 3 8 1 4 3 3 2 5 3 7.5 5 5 6];

input = [X; Y];

target = [ 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1];

net = newff([1 10; 1 8],[6 2 1], {'logsig' 'logsig' 'logsig'});

net.trainParam.epochs = 200;

net.trainParam.goal = 0.001;

[net,tr] = train(net,input,target);

Columns 1 through 22

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Columns 23 through 44

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Columns 45 through 66

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Columns 67 through 76

0 0 0 0 0 0 0 0 0 0

Меняем архитектуру сети:

X = [6 1 9 9 6 1 1 8 3 4 7 5 7 4 3 5];

Y = [4 8 1 3 8 1 4 3 3 2 5 3 7.5 5 5 6];

input = [X; Y];

target = [ 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1];

net = newff([1 10; 1 8],[6 5 4 1], {'tansig' 'tansig' 'tansig' 'logsig'});

net.trainParam.epochs = 200;

net.trainParam.goal = 0.001;

[net,tr] = train(net,input,target);

Columns 1 through 22

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1

Columns 23 through 44

0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 0 0

Columns 45 through 66

1 1 1 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 0 1 1

Columns 67 through 76

0 0 1 1 1 1 1 0 0 0

X = [6 1 9 9 6 1 1 8 3 4 7 5 7 4 3 5];

Y = [4 8 1 3 8 1 4 3 3 2 5 3 7.5 5 5 6];

input = [X; Y];

target = [ 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1];

net = newff([1 10; 1 8],[6 5 4 1], {'logsig' 'logsig' 'logsig' 'tansig'});

net.trainParam.epochs = 200;

net.trainParam.goal = 0.001;

[net,tr] = train(net,input,target);

Columns 1 through 22

1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0

Columns 23 through 44

0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0

Columns 45 through 66

1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0

Columns 67 through 76

1 0 1 1 1 1 1 1 1 0

Меняем архитектуру сети:

X = [6 1 9 9 6 1 1 8 3 4 7 5 7 4 3 5];

Y = [4 8 1 3 8 1 4 3 3 2 5 3 7.5 5 5 6];

input = [X; Y];

target = [ 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1];

net = newff([1 10; 1 8],[6 1], {'logsig' 'tansig'});

net.trainParam.epochs = 200;

net.trainParam.goal = 0.001;

[net,tr] = train(net,input,target);

Columns 1 through 22

1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0

Columns 23 through 44

0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0

Columns 45 through 66

1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1

Columns 67 through 76

0 0 1 1 1 1 1 0 0 0

X = [6 7 1 9 5 2 9 6 1 3 3 1 8 3 4 6];

Y = [4 7 8 1 6 5 3 8 1 4 5 4 3 3 2 1];

input = [X; Y];

target = [ 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1];

net = newff([1 10; 1 8],[6 1], {'tansig' 'logsig'});

net.trainParam.epochs = 200;

net.trainParam.goal = 0.001;

[net,tr] = train(net,input,target);

Columns 1 through 22

1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0

Columns 23 through 44

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Columns 45 through 66

0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0

Columns 67 through 76

0 0 1 1 1 1 1 1 0 0

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