МІНІСТЕРСТВО ОСВІТИ НАУКИ МОЛОДІ ТА СПОРТУ УКРАЇНИ
ДВНЗ НАЦІОНАЛЬНИЙ ГІРНИЧИЙ УНІВЕРСИТЕТ
КАФЕДРА СИСТЕМНОГО АНАЛІЗУ І УПРАВЛІННЯ
Лабораторна робота №3
з дисципліни
«Самонавчання складних систем»
Виконав
Ст. гр. САм-13
Рубан А.А.
Перевірив
Желдак Т.А.
м. Дніпропетровськ
2013
Лабораторна робота № 3.
Реалізація та дослідження радіально-базисних нейронних мереж
Завдання.
1. Здійснити програмну реалізацію радіально-базисної нейронної мережі. При реалізації забезпечити можливість динамічної зміни кількості нейронів прихованого шару та „ширини" активаційних вікон, а також виведення інформації у файл та у вигляді графіків.
2. Використовуючи дані таблиці початкових даних, написати програмний фрагмент для обчислення 20 значень функції по заданих значеннях аргументів та їх варіаціях з кроком ±1 і знайти їх середнє значення.
3. Подати задані значення аргументів на вхід нейронної мережі. Виходом вважати обчислене значення функції; виходом - логічну функцію, що дорівнює “1”, якщо більше середнього значення, та “0”, якщо менше.
4. Для створеної мережі підібрати такі „ширини" вікон, при яких апроксимація буде найкращою, про що пересвідчитись на контрольних шаблонах.
5. Перевірити, як змінюється якість апроксимації при збільшенні кількості навчальних шаблонів та зміні їх дисперсії. Встановити, що RBF-мережа виконує точніше: інтерполяцію чи екстраполяцію. Пояснити результати..
Початкові дані знаходяться в файлі lab_CCC_vars.xls в робочому каталозі дисципліни на сервері локальної комп’ютерної мережі кафедри (лист “нейронні мережі”).
Для реалізації цієї лабораторної роботи була розроблена програма лістинг якої наведений нижче.
Лістинг програми
%Матриця значень вхiдних факторiв
x=[6 3 2
4 3 2
4 5 4
5 5 4
6 5 4
6 5 2
4 4 4
5 3 2
6 3 3
4 5 2
4 3 4
6 3 4
6 4 2
];
%Транспонування матрицы
x=x;
[p1,n]=size(x);
%Значення результ характеристики
y=[0.848130057
0.372724725
-2.379191022
-2.624845986
-1.928531207
-0.3237221
-2.228885103
0.137213962
0.01842597
-0.714529169
-1.337802749
-0.796317686
-0.076609909
];
%Вектор ширини выкон активацыйних функ
si=ones(1,p1);
%Обчислення матрицы f
for i=1:p1
for j=1:p1
s=0;
for k=1:n
s=s+(x(i,k)-x(j,k))^2;
end
f(i,j)=exp(-s/si(i));
end
end
%Обчислення оберн матр до f
c=inv(f);
%Розрахунок вагових коеф
w=c*y;
%Тестовi значення вхiдних факт
ll=[5 3 4];
%Розрахунок рекзульт значення
x_test=[]
for i=1:p1
s=0;
for k=1:n
s=s+(ll(k)-x(i,k))^2;
end
f_re(i)=exp(-s/si(i));
end
%Друк результ
re=f_re*w
Результат роботи програми при 5 навчальних прикладах
X1 |
X2 |
X3 |
Y |
Y’ |
6 |
4 |
2 |
-0,08111 |
-0,0656 |
6 |
4 |
3 |
-0,8631 |
-0,3011 |
5 |
5 |
2 |
-0,94944 |
-0,3863 |
5 |
5 |
3 |
-1,72133 |
-1,0012 |
5 |
5 |
4 |
-2,63902 |
-2,5359 |
Результат роботи програми при 13 навчальних прикладах
X1 |
X2 |
X3 |
Y |
Y’ |
6 |
4 |
2 |
-0,08111 |
-0.0766 |
6 |
4 |
3 |
-0,8631 |
-0.391 |
5 |
5 |
2 |
-0,94944 |
-0.4002 |
5 |
5 |
3 |
-1,72133 |
-1.0928 |
5 |
5 |
4 |
-2,63902 |
-2.6248 |
Висновки: аналізуючи результати програми можна сказати, що дана нейрона мережа дає не досить точні результати. Щоб підвищити точність роботи програми потрібно збільшити кількість навчальних прикладів, що було підтверджено експериментальним шляхом. При 5 навчальних прикладах похибка становить 37,85%, а при 13- 31,03%.