Сделай Сам Свою Работу на 5

Применение нейронных сетей

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

Аппроксимация и фильтрация сигналов

Предсказание стационарного сигнала

Постановка задачи

Задан гармонический сигнал с круговой частотой 4p 1/с (2 Гц) и длительностью 5 с. Дискретный сигнал T получен в результате квантования исходного сигнала по времени
с частотой 40 Гц (такт дискретности 0.025 с):

time = 0:0.025:5;

T = sin(time*4*pi);

stairs(time,T);

axis([0 5 –1 1]), xlabel(‘time, с’), ylabel(‘T’)

На рис. 9.1 показан график дискретного сигнала Т.

Рис. 9.1

Требуется предсказать значение сигнала yk на выходе сети в момент времени tk,
используя 5 последних значений сигнала Т в качестве входа, т. е.

(9.1)

где yk = sin(4ptk ) = sin(4pkh), tk = t0 : h: tf = 0 : 0.025 : 5.

В математическом смысле это задача экстраполяции сигнала на 1 шаг вперед.
С позиции теории нейронных сетей это задача настройки параметров и обучения сети. Сформируем обучающее множество следующим образом. Входная последовательность Р1 определена на интервале от 0 до 1 c и имеет длину Q1, а каждый вектор входа состоит из пяти компонент, соответствующих запаздывающим значениям сигнала T; целевой вектор Т1 сформирован из значений сигнала Т, начиная с шестого; контрольное подмножество T2 формируется из значений сигнала Т на интервале от 3 до 5 с:

Q = length(T);

h = 0.025;

Q1 = 1/h;

P1 = zeros(5,Q1);

P1(1,1:Q1) = T(1,1:Q1);

P1(2,2:Q1) = T(1,1:(Q1–1));

P1(3,3:Q1) = T(1,1:(Q1–2));

P1(4,4:Q1) = T(1,1:(Q1–3));

P1(5,5:Q1) = T(1,1:(Q1–4));

T1 = T(1,6:(Q1+5));

T2 = T(1,3/h:Q);

Синтез сети

Поскольку сигнал стационарный и соотношения между прошлыми и будущими значениями остаются неизменными, можно воспользоваться линейной моделью нейронной сети, рассчитывая веса на основе прямого решения системы линейных уравнений. Такой подход реализует М-функция newlind. Она вычисляет веса и смещение, которые минимизируют среднеквадратичную ошибку предсказания, которые зависят от длины обучающей последовательности Q1. Сеть для решения этой задачи должна состоять из одного нейрона с пятью входами (рис. 9.2).



net = newlind(P1,T1);

Рис. 9.2

Графики зависимостей значений весовых коэффициентов wi и смещения b показаны на рис. 9.3, а и б соответственно.

а б

Рис. 9.3

Значения этих величин стабилизируются после 0.5 с, когда исчерпывается 1 период синусоиды.

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

Рис. 9.4

Проверка сети

Выполним проверку сети, используя входную последовательность обучающего подмножества и сравнивая выход сети с фактическим значением сигнала T (рис. 9.5):

Q1 = 40;

a = sim(net,P1(:,1:Q1));

t1 = 6:Q1+5;

plot(time(t1),a,'*r', time(1:Q1+5),T(1,1:Q1+5))

xlabel('Time, c');

Рис. 9.5

Как следует из анализа этого рисунка, нейронная сеть достаточно точно отслеживает входной сигнал.

Теперь проверим работу сети, используя контрольное множество T2. Определим длину входной последовательности N1, равную 20, и построим график реакции сети (рис. 9.6):

N1 = 20;

Tt = T2(1,1:N1);

P2(1,:) = Tt(1,:);

P2(2,2:end) = Tt(1,1:end–1);

P2(3,3:end) = Tt(1,1:end–2);

P2(4,4:end) = Tt(1,1:end–3);

P2(5,5:end) = Tt(1,1:end–4);

a = sim(net,P2);

figure(3), clf

h1 = plot(time(1:size(P2, 2)–5), a(1:end–5), '*'); hold on

h2 = plot(time(1:size(P2, 2)–5), Tt(6:end), 'r');

Рис. 9.6

Вычислим погрешность сети, используя информацию из описания графических
объектов Line с дескрипторами h1 и h2:

y1 = get(h1,'YData'); y2 = get(h2,'YData');

minlength = min(length(y1), length(y2));

e = y1(1:minlength) – y2(1:minlength);

nre = sqrt(mse(e));

График погрешности экстраполяции в функции от длины обучающего сигнала и в зависимости от количества точек экстраполяции в качестве параметра показан на рис. 9.7.

Рис. 9.7

Из анализа этого графика следует, что при малом числе экстраполируемых точек 6, 8 и длительности обучающей последовательности более 0.1 с погрешности малы. С ростом числа экстраполируемых точек 10, 20, 30 требуется большая длина обучающей последовательности, и при длине, превышающей 20 тактов (0.5 с), погрешность не зависит от числа точек экстраполяции и монотонно убывает с увеличением длины обучающего множества.

Читатель может обратиться к демонстрационному примеру applin1, где исследуется подобная задача.



©2015- 2017 stydopedia.ru Все материалы защищены законодательством РФ.