1
Результат застосування створеної мережі підтверджує правильність приналежності випадкових чисел до певного класу. [8]
ВИСНОВКИ
Усі результати класифікації представлені в додатку Б і показують, що 4 представленої мережі вектора, відзначені зірочками, класифікуються мережею PNN, що складається з двадцяти нейронів, правильне. На закінчення відзначимо, що мережі PNN можуть досить ефективно застосовуватися для вирішення задач класифікації. Недолік мережі PNN полягає в тому, що працює вона відносно повільні, оскільки виконують дуже великі об'єми обчислень в порівнянні з іншими типами нейронних мереж.
Результатом виконання даної курсової роботи було створення ймовірнісної нейронної мережі PNN (Probabilistic Neural Networks) для класифікації двовимірних векторів на 4 класи. Масиви для 20 пар вхідних x було вибрано із випадковими координатами {x1, x2}, що розподілені за нормальним законом розподілу. Для створення даної мережі було використано програмний пакет MatLab 6.3. З допомогою цього продукту було створено вхідний масив Р матриця зв’язності Т та вхідні масиви для тестування створеної мережі р. Результати проектування мережі представлені в додатках.
Перелік використаних джерел
СТП 02070855-03-99. Стандарт підприємства. Курсовий і дипломний проект: Вимоги до змісту та оформлення. – Івано-Франківськ, ІФНТУНГ, 1999.
Notebook «Нейронные сети» - заготовка для книги [3], мережа кафедри КТіСУ: h:\disciplines\neuro\kurs_rob\M-book_neural_net.doc.
Графічний інтерфейс користувача, мережа кафедри КТіСУ: h:\disciplines\neuro\ MATLAB\Graphical_user_interface.doc.
Neural Network Toolbox. User’s Guide, v.4, мережа кафедри КТіСУ: h:\disciplines\neuro\MATLAB\nnet.pdf
Перелік більшості функцій MATLAB NNT, мережа кафедри КТіСУ: h:\disciplines\neuro\MATLAB\function_list.doc.
Скановане зображення книги [3], сторінки 52-101 (3. Обучение нейронных сетей), мережа кафедри КТіСУ: h:\disciplines\neuro\kurs_rob\Medvedev_Potemkin_52-101.
Скановане зображення книги [3], сторінки 102-146 (4. Персептроны, 5. Линейные сети, 6. Радиальные базисне сети), мережа кафедри КТіСУ: h:\disciplines\neuro\kurs_rob\Medvedev_Potemkin_102-146.
Приклади реалізації трьох нейронних мереж, мережа кафедри КТіСУ: h:\disciplines\neuro\MATLAB\Neural Networks.doc.
Додаток А
Програма реалізації мережі
1 clear all
2 xks1=rand(5,1);
3 yks1=rand(5,1);
4 xks2=1+rand(5,1);
5 yks2=rand(5,1);
6 xks3=1+rand(5,1);
7 yks3=1+rand(5,1);
8 xks4=rand(5,1);
9 yks4=1+rand(5,1);
10 P=[xks1 yks1;xks2 yks2;xks3 yks3;xks4 yks4]';
11 Tc=[1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4];
12 T=ind2vec(Tc)
13 T=full(T)
14 net=newpnn(P,T);
15 net.layers{1}.size
16 Y=sim(net,P);
17 Yc=vec2ind(Y);
18 clf reset,drawnow
19 p1=0:.05:1;
20 p2=p1;
21 p3=1:.05:2;
22 p4=p3;
23 [P1,P2]=meshgrid(p1,p2);
24 [P3,P4]=meshgrid(p3,p1);
25 [P5,P6]=meshgrid(p3,p4);
26 [P7,P8]=meshgrid(p1,p3);
27 pp=[P1(:),P2(:)];
28 ac=sim(net,pp');
29 aa=full(ac);
30 m=mesh(P1,P2,reshape(aa(1,:),length(p1),length(p2)));
31 set(m,'facecolor',[0.5 1 0.5 ],'linestyle','none');
32 hold on
33 view(3)
34 m=mesh(P3,P4,reshape(aa(2,:),length(p1),length(p1)));
35 set(m,'facecolor',[0 0.5 0.8],'linestyle','none');
Продовження Додатку А
36 m=mesh(P5,P6,reshape(aa(3,:),length(p1),length(p2)));
37 set(m,'facecolor',[0.9 0.8 1],'linestyle','none');
38 m=mesh(P7,P8,reshape(aa(4,:),length(p1),length(p2)));
39 set(m,'facecolor',[1 0.9 0.1],'linestyle','none');
40 plot3(P(1,:),P(2,:),ones(size(P,2))+0.1,'.','markersize',25,'color',[0 0 0])
41 plot3(P(1,:),P(2,:),1.1+ones(size(P,2)),'+','markersize',35,'color',[0 1 1])
42 hold off
43 view(2) view(2)
Додаток Б
Програма для тестування мережі
1 clf reset, drawnow
2 p1=0:.05:1;
3 p2=p1;
4 p3=1:.05:2;
5 p4=p3;
6 [P1,P2]=meshgrid(p1,p2);
7 [P3,P4]=meshgrid(p3,p1);
8 [P5,P6]=meshgrid(p3,p4);
9 [P7,P8]=meshgrid(p1,p3);
10 pp=[P1(:),P2(:)];
11 aa=sim(net,pp');
12 aa=full(aa);
13 xks1=rand(5,1);
14 yks1=rand(5,1);
15 xks2=1+rand(5,1);
16 yks2=rand(5,1);
17 xks3=1+rand(5,1);
18 yks3=1+rand(5,1);
19 xks4=rand(5,1);
20 yks4=1+rand(5,1);
21 p=[xks1 yks1;xks2 yks2;xks3 yks3;xks4 yks4]';
22 a = sim(net,p);
23 ac = vec2ind(a);
24 m=mesh(P1,P2,reshape(aa(1,:),length(p1),length(p2)));
25 set(m,'facecolor',[0.7 0.6 0.5 ],'linestyle','none');
26 hold on
27 view(3)
28 m=mesh(P3,P4,reshape(aa(2,:),length(p1),length(p1)));
29 set(m,'facecolor',[0.9 0.9 0.8],'linestyle','none');
30 m=mesh(P5,P6,reshape(aa(3,:),length(p1),length(p2)));
31 set(m,'facecolor',[0.9 0.8 0],'linestyle','none');
32 m=mesh(P7,P8,reshape(aa(4,:),length(p1),length(p2)));
33 set(m,'facecolor',[1 0.9 0.9],'linestyle','none');
34 plot3(p(1,:),p(2,:),ones(size(p,2))+0.1,'.','markersize',25,'color',[0 0 0])
35 plot3(p(1,:),p(2,:),1.1+ones(size(p,2)),'+','markersize',35,'color',[0 1 1])
36 hold off
37 view(2)
Додаток В
Результати виконання програми
Вектор вхідних даних Р
P =
Columns 1 through 10
0.8381 0.0196 0.6813 0.3795 0.8318 1.1934 1.6822 1.3028 1.5417 1.1509
0.5028 0.7095 0.4289 0.3046 0.1897 0.6979 0.3784 0.8600 0.8537 0.5936
Columns 11 through 20
1.4966 1.8998 1.8216 1.6449 1.8180 0.7271 0.3093 0.8385 0.5681 0.3704
1.6602 1.3420 1.2897 1.3412 1.5341 1.7027 1.5466 1.4449 1.6946 1.6213
Матриця зв’язності Т
T =
1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
Вихідна матриця приналежності вхідних даних до певного класу
Yc =
1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4
Графічний результат виконання представлений в додатку Г (рисунок Г.1)
Вектор вхідних даних для тестування мережі р
p =
Columns 1 through 10
0.8121 0.6101 0.7015 0.0922 0.4249 1.9566 1.1472 1.8699 1.7694 1.4442
0.3756 0.1662 0.8332 0.8386 0.4516 0.6206 0.9517 0.6400 0.2473 0.3527
Columns 11 through 20
1.1879 1.4906 1.4093 1.4635 1.6109 0.2460 0.5874 0.5061 0.4648 0.5414
1.0712 1.3143 1.6084 1.1750 1.6210 1.9423 1.3418 1.4018 1.3077 1.4116
Матриця зв’язності ас для тестування мережі
ac = 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4
Графічний результат виконання представлений в додатку Г (рисунок Г.2)
Продовження Додатку В
Матриця помилок після завершення навчання
T-Y
ans =
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Додаток Г
Графіки розподілу навчальних і тестових векторів за класами
Рисунок Г.1 – Графік навчальних векторів розподілених по класах
Рисунок Г.2 – Графік тестових векторів розподілених по класах