Для проверки функционирования сети подадим входную последовательность Р
и сравним с целевой последовательностью T (рис. 9.14):
a = sim(net,P);
plot(time,T, 'Color', [0 0.8 0.8], 'LineWidth',3),hold on
plot(time,a, 'k'), grid on
axis([0 5 –2 2]); % Рис.9.14
Рис. 9.14
Сеть выполняет поставленную задачу. Погрешность моделирования показана на рис. 9.15
и находится в пределах точности компьютера при вычислениях с плавающей точкой:
e = T–a; plot(time, e)
Рис. 9.15
Построенная линейная нейронная сеть может быть использована для идентификации и моделирования динамических систем, причем для линейных систем погрешности близки к 0.
Для нелинейных систем такой подход при достаточно малых амплитудах входного сигнала обеспечивает линеаризацию с минимальной среднеквадратичной ошибкой. Если нелинейная система переместится в другую рабочую точку, то изменятся и параметры нейронной сети. Для того чтобы получить линеаризованную модель за короткое время, частота замеров должна быть достаточно высокой, а на вход нелинейной системы необходимо подать пробный сигнал в виде случайного процесса небольшой амплитуды. Это ускорит адаптацию сети, поскольку большее количество измерений, характеризующих динамику системы, будет представлено на коротком интервале времени. Учет в случае нелинейных систем большего числа запаздывающих входов позволяет минимизировать ошибку при моделировании нелинейной системы. Если система характеризуется существенной нелинейностью, то более подходящими будут сети с обучением методом обратного распространения ошибки или радиальные базисные сети.
|
|
Читатель может обратиться к демонстрационному примеру applin3, где рассмотрена подобная задача.