Попробуем применить сеть ADALINE для предсказания значений детерминированного процесса p (t). Обратимся к рис. 5.9.
Рис. 5.9
Некоторый сигнал поступает на линию задержки так, что на ее выходе формируются 2 сигнала: p (t –1), p (t –2). Настройка сети реализуется с помощью М-функции adapt, которая изменяет параметры сети на каждом шаге с целью минимизировать погрешность
e (t) = a (t) – p (t). Если эта погрешность нулевая, то выход сети a (t) точно равен p (t) и сеть выполняет предсказание должным образом.
Ниже приведен сценарий, который предназначен для решения задачи предсказания сигнала на 1 шаг вперед. Входной детерминированный процесс получен в результате прохождения ступенчатого сигнала через колебательное звено.
Поскольку для формирования входа применено динамическое звено второго порядка, то в сети ADALINE будет использована ЛЗ с двумя блоками. Запишем следующий сценарий для решения задачи предсказания сигнала:
clear
sys = ss(tf(1,[1 1 1])); % Формирование колебательного звена
% Получение реакции на ступенчатое входное воздействие
|
|
time = 0:0.2:10;
[y,time] = step(sys,0:0.2:10);
% Формирование обучающего множества
p = y(1:length(time)–2)';
t = y(3:length(time))';
time = time(1:length(time)–2);
% Формирование нейронной сети
net = newlin([–1 1],1,[1 2]);
P = num2cell(p);
T = num2cell(t);
% Настройка нейронной сети
pi = {0 0};
net.adaptParam.passes = 5;
[net,Y,E,Pf,Af] = adapt(net,P,T,pi);
Y1 = cat(1,Y{:}); % Преобразование массива ячеек в массив double
% Построение графиков
plot(time,Y1,'b:',time,p,'r–'), xlabel('Время, с'), ylabel('Процессы')
title('Обучение нейронной сети')
% Моделирование нейронной сети
x = sim(net,P);
x1 = cat(1,x{:});
plot(time,x1,'b')
Найденные значения весов и смещения равны
net.IW{1,1}, net.b
ans = 0.33427 0.31816
ans = [0.35853]
Результаты обучения и моделирования результирующей нейронной сети, решающей задачу предсказания сигнала, представлены соответственно на рис. 5.10, а и б.
а | б |
Рис. 5.10
Как видно из этих рисунков, приемлемое для данной постановки задачи количество циклов обучения равно пяти; результаты моделирования показывают, что при длительности процесса 10 с диапазон успешного предсказания находится в пределах 1.8–10 с.