Автор работы: Пользователь скрыл имя, 02 Июня 2013 в 12:44, контрольная работа
Якщо динамічна система є лінійною або може бути лінеаризованою в околиці робочої точки, то адаптивна лінійна нейронна мережа здатна прогнозувати подальше значення сигналу на виході системи, використовуючи кілька останніх значень цього сигналу в якості входу. У математичному сенсі розглянута задача є задачею екстраполяції сигналу на один крок вперед.
Адаптивна лінійна нейронна мережа, яка використовується для прогнозування, повинна мати тільки один нейрон, тому що фільтр має тільки один вихід. Кількість вхідних сигналів мережі і, відповідно, кількість блоків запізнювання в лінії затримки визначається в процесі моделювання, виходячи з умови, щоб похибка прогнозу була мінімальною.
Міністерство освіти і науки, молоді та спорту України
Національний технічний університет
«Харківський політехнічний інститут»
Кафедра системного аналізу і управління
ІНДИВІДУАЛЬНЕ РОЗРАХУНКОВЕ ЗАВДАННЯ
з дисципліни «ШТУЧНІ НЕЙРОННІ МЕРЕЖІ»
Тема: «Прогнозування сигналу на виході стаціонарного фільтра
за допомогою адаптивної лінійної нейронної мережі»
Перевірив: доц. каф. САіУ
Дорофєєв Ю.І.
Харків 2012
1. ПОСТАНОВКА ЗАДАЧІ
1. Сформувати масив
вхідних сигналів фільтра
2. Побудувати графік вхідного сигналу, включивши режим відображення координатної сітки.
3. Сформувати вихідний
сигнал фільтра, описуваного
4. Побудувати графік вихідного сигналу, включивши режим відображення координатної сітки.
5. Підготувати дані для навчання нейронної мережі, перетворивши їх у формат cell array за допомогою М-функції con2seq. Значення послідовності сигналів виходу мережі повинні збігатися зі значеннями виходу фільтра. А значення послідовності сигналів входу повинні відставати на один крок від сигналів виходу.
6. Вибрати кількість
нейронів, початкову кількість блоків
в лінії затримки, а також значення
швидкості навчання і
7. Виконати навчання нейронної мережі за допомогою М-функції train.
8. Аналізуючи графік
залежності помилки на виході
мережі, одержуваної в процесі
навчання, від кількості епох
навчання, підібрати оптимальні
параметри процесу навчання, при
яких величина помилки не
9. Протестувати навчену нейронну мережу, використовуючи М-функцію sim і подаючи на вхід послідовність вхідних сигналів.
10. Побудувати графік
вихідного сигналу нейронної
мережі, перетворивши дані в формат dou
11. Порівнюючи графіки
вихідних сигналів фільтра і
нейронної мережі, в процесі експериментів
визначити оптимальну
12. Побудувати графік
помилки на виході мережі, включивши
режим відображення координатно
2. АНАЛІТИЧНИЙ ОГЛЯД
Якщо динамічна система є лінійною або може бути лінеаризованою в околиці робочої точки, то адаптивна лінійна нейронна мережа здатна прогнозувати подальше значення сигналу на виході системи, використовуючи кілька останніх значень цього сигналу в якості входу. У математичному сенсі розглянута задача є задачею екстраполяції сигналу на один крок вперед.
Джерелом прогнозованого сигналу є лінійний стаціонарний фільтр, який описується наступним рекурентним співвідношенням:
(1)
Це означає, що значення сигналу на виході фільтру в поточний момент часу залежить від попередніх значень виходу ,..., , а також від поточного значення вхідного сигналу і попередніх значень входу ,…, . На вхід фільтра подається сигнал виду для формування якого створюється масив значень, що обчислюються на інтервалі часу, довжина якого і значення періоду дискретизації визначаються на основі заданих даних.
Після формування масиву вхідних значень для моделювання фільтру в системі MATLAB використовується М-функція filter: >> Y = filter(А, В, R);
Вхідні аргументи:
А – масив розмірності , який містить коефіцієнти різницевого рівняння (1).
У нашому випадку: a(1)=1; a(2)=N-1.5; a(3)=-(N-0.5)
В – масив розмірності , який містить коефіцієнти різницевого рівняння (1).
У нашому випадку:
R – масив вхідних сигналів фільтра.
Вихідні аргументи:
Y – масив вихідних сигналів фільтра, розмірність якого дорівнює розмірності вхідного масиву R.
Рис. 1 – Структурна схема системи прогнозування
Адаптивна лінійна нейронна мережа, яка використовується для прогнозування, повинна мати тільки один нейрон, тому що фільтр має тільки один вихід. Кількість вхідних сигналів мережі і, відповідно, кількість блоків запізнювання в лінії затримки визначається в процесі моделювання, виходячи з умови, щоб похибка прогнозу була мінімальною.
3. ОСНОВНІ РЕЗУЛЬТАТИ
1. Сформували масив Р вхідних сигналів фільтра відповідно до рівняння і даними: N=13, ∆t=0,0001∙N, T=5.
N=13;
step = 0.0001*N;
time = 0:step:5;
for i=1:1:length(time)
P(i) = sin (N*sin(time(i))*time(i));
end
2. Отримали графік вхідного сигналу фільтра, який зображено на рис. 3.1.
Рисунок 3.1 – Вхідний сигнал фільтру
3. Сформували вихідний сигнал фільтра, що описується наступним різницевим рівнянням: y(t) = -(N-0.5) ∙y(t-1)+(N+0.5) ∙y(t-2)+1∙r(t).
A = [1 (N-0.5) -(N+0.5)];
B = [1];
Y = filter(A, B, P);
4. Отримали графік вихідного сигналу, зображений на рис. 3.2.
Рисунок 3.2 – Вихідний сигнал фільтру
5. Дані для навчання нейронної мережі були підготовані таким чином, щоб значення послідовності сигналів входу відставали на один крок від сигналів виходу, а значення послідовності сигналів виходу мережі збігалися зі значеннями виходу фільтра.
X(1)=0;
for i=1:length(P)-1
X(i+1)=P(i);
end
X1 = con2seq (X);
Y1 = con2seq(Y);
6. Обрали кількість нейронів, початкову кількість блоків в лінії затримки, а також значення швидкості навчання і сформували адаптивну лінійну нейронну мережу.
net = newlin (minmax(P), 1, [0 1], 0.01);
net = init(net);
7. Виконали навчання нейронної мережі за допомогою М-функції train.
net.trainParam.epochs=1000;
%net.trainParam.goal = 0.001;
net=train(net,X1,Y1);
8. Проаналізуємо графік залежності помилки на виході мережі, одержуваної в процесі навчання, від кількості епох навчання та підберемо оптимальні значення параметрів процесу навчання, при яких величина помилки не перевищує значення 1е-3.
Установимо величину помилки і кількість епох навчання:
net.trainParam.goal = 0.001;
net.trainParam.epochs=1000;
Почнемо аналіз при одному блоці затримки зі швидкістю навчання 0,01. Отримаємо наступні результати, зображені на рис. 3.3.
Рисунок 3.3.
З рисунку видно, що помилка виходить на нескінченність.
Установимо швидкість навчання 0,0001. Результати на рис. 3.4.
Рисунок 3.4.
З рисунку видно, що зі зменшенням швидкості, помилка почала зменшуватись, але не достатньо швидко для того, щоб досягнуті помилки в 0,001 за 1000 епох.
Тому, збільшимо кількість блоків затримки до двох і отримаємо результати на рис. 3.5.
Рисунок 3.5.
Видно, що помилка зменшується стрімкіше, але ще не достатньо швидко.
Збільшимо кількість блоків затримки до трьох та кількість епох до 2000:
Рисунок 3.6.
Помилка майже досягла потрібної відмітки за 2000 ітерацій. Для отримання потрібного результату можемо збільшити кількість епох, або кількість блоків затримки. Збільшимо кількість блоків затримки, щоб процес відбувався швидше.
Рисунок 3.7.
З рисунку видно, що ми досягли помилку 0,001 за 1178 епох, при 4 блоках затримки і швидкістю навчання 0,0001.
9. Проведемо тестування навченої нейронної мережі, використовуючи М-функцію sim і подаючи на вхід послідовність вхідних сигналів.
Z = sim (net, X1);
10. Побудувати графік
вихідного сигналу нейронної
мережі, перетворивши дані в формат dou
Z1 = cat (2, Z{:});
figure(4);
plot (time, Z1, 'r');
Рисунок 3.8. Графік вихідного сигналу нейронної мережі
11. Порівняємо графіки вихідних сигналів фільтра і нейронної мережі. Синім кольором відображено графік вихідного сигналу фільтра, а червоним – нейронної мережі. На малюнках 3.9 – 3.12 порівняльна характеристика сигналів фільтра і нейронної мережі при різній кількості блоків затримки.
Рисунок 3.9. Порівняльна характеристика сигналів фільтра і нейронної мережі з одним блоком затримки
Рисунок 3.10. Порівняльна характеристика сигналів фільтра і нейронної мережі з двома блоками затримки
Рисунок 3.11. Порівняльна характеристика сигналів фільтра і нейронної мережі з трьома блоками затримки
Рисунок 3.12. Порівняльна характеристика сигналів фільтра і нейронної мережі з чотирма блоками затримки
Порівнюючи графіки, можна зробити висновок, що зі збільшенням кількості блоків затримки похибка зменшується.
12. Побудуємо графік помилки на виході мережі, включивши режим відображення координатної сітки, зобразимо його на рис. 3.13.
Рисунок 3.13. Графік помилки на виході мережі
13. Порівнюючи графік, що відображає зміну прогнозованого сигналу та графік динаміки зміни помилки можна зробити висновок, що чим швидше змінюється прогнозований сигнал тим більше значення помилки.