Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab5.docx
Скачиваний:
6
Добавлен:
22.07.2019
Размер:
310.38 Кб
Скачать

Задание 1 Вариант 1

N

n/n

Вход

Р

Выход (цель)

Т

1

1 2 3 4 5

1 3 5 7 9

Создадим однослойную линейную сеть, реализующую следующее соотношение между входом и целью (выходом):

P = [1 2 3 4 5];

T = [1 3 5 7 9];

net = newlind(P,T); % Создание линейной сети (линейного слоя) путем решения линейного уравнения.

Для того чтобы сформировать S-модель этой сети, используем команду

gensim(net,-1).

В результате откроется окно системы Simulink с S-моделью нейронной сети, которая включает блок входа, блок нейронной сети и блок осциллографа.

Далее активизируем двойным щелчком левой клавиши мыши блок входного сигнала x1. Блок входа позволяет ввести значение некоторой константы; введем значение, например, равное 2. Далее выполняем моделирование нейронной сети, выбирая опцию Start из меню Simulation либо активизируя кнопку Start simulation на инструментальной панели. После выполнения моделирования активизируем блок Scope (y1), который позволяет увидеть отклик сети на входное воздействие.

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

Задание 2 Вариант 1

N

n/n

Диапазон изменения двухэлементного входного сигнала

1

-1 1; -1 1

net = newlin([-1 1;-1 1],1); % Формирование однослойной линейной сети

net с двухэлементным входным сигналом со значениями от -1 до 1

net.IW{1}=[1 2]; %задаем веса для входных сигналов

net.b{1}= -1; %задаем смещение

gensim(net,-1)%генерируем S-модель НС

Далее активизируем двойным щелчком левой клавиши мыши блок входного сигнала x1. Блок входа позволяет ввести значение некоторой константы; введем значение, например, равное [1 1] (НС имеет двухэлементный входной сигнал). Далее выполняем моделирование нейронной сети, выбирая опцию Start из меню Simulation либо активизируя кнопку Start simulation на инструментальной панели. После выполнения моделирования активизируем блок Scope (y1), который позволяет увидеть отклик сети на входное воздействие.

Этот отклик равен постоянному значению 2 (1*1 + 1*2 – 1) и свидетельствует о том, что данная нейронная сеть относится к классу статических систем.

Задание 3

Спроектировать динамическую линейную нейронную сеть для предсказания синусоидальной функции по четырем предшествующим значениям.

Архитектура сети: линейная нейронная сеть с линией задержки по входу на 4 такта, с одним входом, значение которого заключены в диапазоне [-1 1], и одним выходом.

Обучающая последовательность:

входная последовательность

time = 0:0.1:10;

P = sin(time);

последовательность целей

Т = Р;

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

P = con2seq(P);

T = P;

Целесообразно сформировать эти последовательности в рабочей области системы MATLAB, а затем импортировать их в рабочую область интерфейса NNTool. Для этого откроем окно Neural Network Toolbox командой nntool и нажмем кнопку Import. После этих действий откроется окно импорта. Импортируем переменную P как последовательность входов (Input Data), а T – как последовательность целей (Target Date).

Чтобы создать новую НС, кликнем по кнопке New… в окне NNTool, затем выберем сеть типа Linear layer (train) с линией задержки по входу на 4 такта.

Кликнув два раза по созданной сети network1 или нажав кнопку Open…, откроется окно для просмотра и настройки НС.

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

>> for i=1:250

[network1,a{i},e{i}]=adapt(network1,P,T);

end;

Далее строим S-модель нейронной сети в системе Simulink командой: >>gensim(network1)

Далее строим график погрешности обучения сети. e{250} – вектор ошибки.

E=cell2mat(e{250});% объединяет массив элементов матриц в одну %матрицу

plot(time(10:101),E(10:101))

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

Далее проверим НС на участке временном учатске 10-20 секунд:

>>time2=10:0.1:20;

>> P2=sin(time2);

>>P2=con2seq(P2);

>> y=sim(network1,P2);%моделирование НС

>> plot(time2,cat(1,P2{:}),time2,cat(1,y{:}),'o')

По графику видно, что НС работает правильно.

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