You are on page 1of 20

SVEUILITE U ZAGREBU

FAKULTET PROMETNIH ZNANOSTI


Poslijediplomski studij

Hrvoje Gold
Upute za vjebe na raunalu

Umjetne neuronske mree u


prometu i transportu

1. Model neurona i arhitektura neuronske mree


2. Perceptron
3. Prepoznavanje uzoraka

Zagreb, 1997/2002

NEURONSKE MREE U PROMETU I TRANSPORTU


MODEL NEURONA I ARHITEKTURA NEURONSKE MREE

MODEL NEURONA I ARHITEKTURA NEURONSKE MREE


Neuroni i neuronske mree ine temelj inteligentnog ponaanja ivih organizama. Umjetni
neuroni i neuronske mree predstavljaju modele biolokih sustava. Umjetna neuronska mrea,
sastavljena od velikog broja meusobno povezanih umjetnih neurona, jest sustav za obradu
podataka sa sposobnou uenja na temelju iskustva. Uenje na temelju prethodno obraenih
primjera ini osnovu inteligentnog ponaanja kao to je npr. prepoznavanje uzoraka,
optimizacija procesa, klasifikacija podataka, predvianje buduih stanja, identifikacija
procesa, prilagodljivo voenje i slino. Navedeni oblici ponaanja jesu temelj razvoja
suvremenih inteligentnih transportnih sustava (Intelligent Transportation Systems).
1.1 Model neurona s jednim ulazom
Model neurona s jednim ulazom i bez dodatnog prilagodljivog lana (bias) prikazuje slika
1.1.1.
w

a = F(n) = F(w*p)
Slika 1.1.1 Model neurona s jednim ulazom
Vrijednost ulazne veliine p se prenosi spojnicom koja mnoenjem s teinom w pojaava
vrijednost ulazne veliine za umnoak w*p. Optereena ulazna veliina n = w*p je
neposredna ulazna veliina i jedini argument aktivacijske (prijenosne) funkcije F.
Aktivacijska funkcija izraunava vrijednost izlazne veliine a. Neuron na slici 1.1.2.
posjeduje dodatni prilagodljivi lan b, koji kao dodatak umnoku w*p pomie aktivacijsku
funkciju F u lijevu stranu za iznos b. Dodatni prilagodljivi lan se promatra kao teina sa
stalnim jedininim iznosom pridijeljene ulazne veliine. Neposredna ulazna veliina
aktivacijske funkcije je zbroj optereenog ulaza w*p i dodatnog lana b.
p

a
a = F(n) = F(w*p + b)

b
1

Slika 1.1.2 Model neurona s jednim ulazom i dodatnim prilagodljivim lanom (bias)
Teina w i lan b su prilagodljivi parametri modela neurona.
1.2 Aktivacijska funkcija
Najee koritene aktivacijske funkcije F su funkcija skoka, linearna i sigmoidna funkcija.
Aktivacijska funkcija skoka ili praga (engl. hard limiter), slika 1.2.1, ograniava izlaznu
vrijednost neurona na binarni iznos 0 ili 1. Koristi se za tvorbu neurona kojima se donose
odluke, npr. kod klasifikacije uzoraka.

1-2

NEURONSKE MREE U PROMETU I TRANSPORTU


MODEL NEURONA I ARHITEKTURA NEURONSKE MREE

Slika 1.2.1 Aktivacijska funkcija skoka


Vrijednost iste linearne (engl. pure line) aktivacijske funkcije, slika 1.2.2, jednaka je
umnoku w*p, odnosno zbroju w*p i b. Koristi se kod neurona koji slue kao linearni
aproksimatori.

Slika 1.2.2 Linearna aktivacijska funkcija


Logistika sigmoidna (engl. logistic sigmoid) aktivacijska funkcija, slika 1.2.3, ograniava
neposrednu ulaznu vrijednost, koja moe imati iznos u rasponu , u podruje od 0 do 1.
Radi derivabilnosti najee se koristi u mreama koje se poduavaju metodom povratnog
rasprostiranja pogreke.

Slika 1.2.3 Logistika aktivacijska funkcija


Argument aktivacijskih funkcija na lijevoj strani slika 1.2.1, 1.2.2 i 1.2.3 ne sadri, dok
argument aktivacijskih funkcija na desnoj strani istih slika sadri dodatni lan b.
1.3 Model neurona s vie ulaza
Model neurona s R ulaza prikazuje slika 1.3.1.a. Pojedini ulaz P(j) optereen lanom W(1, j)
matrice teina W tvori optereeni ulaz aktivacijske funkcije F. Neuron raspolae lanom b i
ima izlaz a. Argument aktivacijske funkcije je zbroj optereenih ulaza w*p i lana b.
Polje teina W(1, j) i ulazno polje P(j) u vektorskom zapisu imaju oblik

W = [W (1,1) W (1,2) KW (1, R )]

P(1)
P ( 2)

P=
M

P ( R )

1-3

NEURONSKE MREE U PROMETU I TRANSPORTU


MODEL NEURONA I ARHITEKTURA NEURONSKE MREE

Zato se argument aktivacijske funkcije kao prolaz ulazne veliine kroz teine moe izraziti
skalarnim produktom W*P.
Neuronski sloj

Ulaz

Ulaz

a)

Neuronski sloj

b)

Slika 1.3.1 Model neurona s R ulaza: a) potpuni i b) skraeni oblik predstavljanja


Neuronski sloj s jednim neuronom predstavljen u skraenom obliku na slici 1.3.1.b, ine
teina, operatori mnoenja i zbrajanja (matrini umnoak W*P), lan b i aktivacijska funkcija
F. Ulazno polje P nije ukljueno u sloj.
1.4 Arhitektura neuronske mree
Dva ili vie povezana neurona ine neuronski sloj. Neuronska mrea sadri jedan ili vie
neuronskih slojeva. Jednoslojnu neuronsku mreu prikazuje slika 1.4.1.a. Skraeni oblik
predstavljanja jednoslojne mree sa S neurona prikazuje slika 1.4.1.b.
Ulaz

Neuronski sloj
Ulaz

Neuronski sloj

R = Broj ulaza
S = Broj neurona

a)

b)

Slika 1.4.1 Jednoslojna neuronska mrea: a) potpuni i b) skraeni oblik predstavljanja


Pojedini lan ulaznog vektora P je povezan na neuron preko matrice teina W. Svaki od S
neurona raspolae zbrajalom, a izlazi iz zbrajala tvore vektor N sa S lanova. Neposredni ulaz
u aktivacijsku funkciju je zbroj odgovarajuih optereenih ulaza w*p i lana b. Izlazi
neuronskog sloja tvore vektor A. U opem sluaju broj ulaza u sloj R je razliit od broja
neurona u sloju S.

1-4

NEURONSKE MREE U PROMETU I TRANSPORTU


MODEL NEURONA I ARHITEKTURA NEURONSKE MREE

lanovi ulaznog vektora ulaze u mreu preko matrice teina W.

W (1,1) W (1,2) L W (1, R )


W ( 2,1) W ( 2,2) L W ( 2, R )

W =
M
M
M

W ( S ,1) W ( S ,2) L W ( S , R )
Indeks retka u matrici teina oznaava neuron koji prima optereeni ulaz, a indeks stupca
oznaava ulaz u teinski lan. Npr., indeksi (1, 2) u matrici teina oznaavaju da jakost
signala od drugog ulaznog lana prema prvom i jedinom neuronu iznosi W(1, 2).
1.5 Vieslojne mree
Neuronska mrea moe sadravati vie slojeva. Pojedini sloj tvori matrica teina W, vektor
dodatnih lanova B, optereenih ulaza N i vektor izlaznih vrijednosti A. Za razlikovanje
veliina pojedinog sloja nazivima veliina se dodaju oznake sloja. Npr., matrica teina i
vektor izlaza prvog sloja oznaeni su kao W1 i A1, drugog sloja W2 i A2, itd.
Sloj iji izlazni vektor predstavlja ujedno i izlazni vektor cijele mree naziva se izlaznim
slojem. Ulazni vektor se najee ne promatra kao ulazni sloj ve samo kao sloj za razdiobu
ulaznih signala. Ostali slojevi ine unutarnje (skrivene) slojeve neuronske mree. Troslojnu
mreu s jednim izlaznim (sloj 3) i dva unutarnja sloja (sloj 1 i sloj 2) prikazuje slika 1.5.1.
Mrea na slici 1.5.1 ima R ulaza, S1 neurona u prvom sloju, S2 neurona u drugom i S3
neurona u treem sloju. Najee razliiti slojevi imaju razliite brojeve neurona.
Izlazi pojedinog sloja predstavljaju ulaze sljedeeg sloja. Sloj 2 se moe promatrati kao
jednoslojna mrea s R = S1 ulaza, S = S2 neurona i matricom teina W = W2 reda S*R..
Ulaz

Neuronski sloj 1

Neuronski sloj 2

R = Broj ulaza
S2 = Broj neurona 2. sloja

Neuronski sloj 3

S1 = Broj neurona 1. sloja


S3 = Broj neurona 3. sloja

Slika 1.5.1 Troslojna neuronska mrea

1-5

NEURONSKE MREE U PROMETU I TRANSPORTU


MODEL NEURONA I ARHITEKTURA NEURONSKE MREE

Skraeni oblik predstavljanja troslojne neuronske mree prikazuje slika 1.5.2.


Ulaz

Neuronski sloj 1

Neuronski sloj 2

R = Broj ulaza
S2 = Broj neurona 2. sloja

Neuronski sloj 3

S1 = Broj neurona 1. sloja


S3 = Broj neurona 3. sloja

Slika 1.5.2 Troslojna neuronska mrea prikazana u skraenom obliku


Svrsishodnost primjene vieslojnih mrea je da poslije poduavanja mogu modelirati
proizvoljne praktino upotrebljive funkcije.
1.6 Pokretanje programskog sustava MATLAB i programa iz vjebi
Modeli neurona i neuronskih mrea, naini poduavanja, kao i opisi ulaznih i izlaznih
podataka u vjebama Perceptron (Vjeba 2) i Prepoznavanje uzoraka (Vjeba 3), zapisani su
jezikom programskog sustava MATLAB i pohranjeni na disku. Iz grafikog korisnikog
suelja Windows 95, programski sustav MATLAB se pokree slijedom:
Start Programs MATLAB for Windows MATLAB with SIMULINK.
Kada se pojavi okno za zadavanje naredbi programskog sustava MATLAB (MATLAB
Command Window), pokretanje programa iz vjebi se postie slijedom:
File Run M-file U polje ispod teksta Enter M-file to run: (Unesite naziv programa
kojega elite pokrenuti:) treba upisati stazu na disku kojom se dolazi do datoteke i njezin
naziv, npr. c:\vnm\hperc1.m Pritisnuti tipku OK.

1-6

NEURONSKE MREE U PROMETU I TRANSPORTU


PERCEPTRON

2. PERCEPTRON
Perceptron je naziv niza prvih praktino upotrebljivih neuronskih mrea s mogunou
poduavanja, koje je razvio F. Rosenblatt i opisao u knjizi Principles of Neurodynamics,
Washington D.C., Spartan Press, 1961. Najjednostavniju arhitekturu predstavlja jednoslojna
mrea ije je teine i dodatni lan poduavanjem mogue prilagoditi tako da pri upotrebi za
ulazni uzorak (vektor) izraunava odgovarajui ciljni izlazni uzorak (vektor). Primjena
perceptrona je u rjeavanju jednostavnih zadataka prepoznavanja uzoraka.
2.1 Model neurona
Perceptron, slika 2.1.1, kao aktivacijsku funkciju neurona koristi funkciju skoka
Ulaz

Neuronski sloj

Ulaz

Neuronski sloj

R = Broj ulaza

Slika 2.1.1 Model neurona perceptrona (desno pojednostavljeni prikaz)


Aktivacijska funkcija skoka omoguava perceptronu klasifikaciju ulaznih vektora podjelom
ulaznog prostora u dva podruja. Zavisno o klasifikaciji ulaznih vektora, izlazni vektor ima
iznos 0 ili 1. Ulazni prostor dva neurona s aktivacijskom funkcijom skoka prikazuje slika
2.1.2.

Slika 2.1.2 Klasifikacija perceptrona


Klasifikacijska podruja utvruje pravac razdvajanja WP + b = 0. Pravac je okomit na vektor
teina W i pomaknut za b. Ulazni vektori iznad pravca razdvajanja rezultirat e u
neposrednom ulazu s iznosom veim od 0, te e vrijednost aktivacijske funkcije biti 1. Ulazni
vektori ispod pravca razdvajanja rezultirati e u vrijednosti aktivacijske funkcije neurona
jednakoj 0. S ciljem klasifikacije ulaznog prostora, izborom vrijednosti teina i dodatnog
lana mogue je usmjeriti i pomicati pravac razdvajanja.

2-7

NEURONSKE MREE U PROMETU I TRANSPORTU


PERCEPTRON

2.2. Arhitektura mree


Mrea perceptrona je jednoslojna mrea sastavljena od S neurona s aktivacijskom funkcijom
skoka povezanih na R ulaza preko vektora teina W(i, j), slika 2.2.1.
Ulaz

Neuronski sloj
Ulaz

Neuronski sloj

R = Broj ulaza
S = Broj neurona

Slika 2.2.1 Arhitektura jednoslojne mree - perceptrona


Perceptron ima samo jedan neuronski sloj jer pravilo poduavanja perceptrona moe poduiti
samo jedan sloj. To dovodi do ogranienja primjene perceptrona na klasifikaciju linearno
razdvojivih ulaznih vektora. Ako je pravcem razdvajanja ulazne vektore mogue ispravno
klasificirati u odgovarajue kategorije, ulazni vektori su linearno razdvojivi. Ako ulazni
vektori nisu linearno razdvojivi poduavanjem se nemoe postii tona klasifikacija, te
poduavanje treba prekinuti poslije odreenog broja pokuaja. Dokazano je da e u sluaju
linearno razdvojivih ulaznih vektora perceptron pronai rjeenje u konanom vremenu.
2.3 Pravilo poduavanja perceptrona
U postupku poduavanja perceptronu se predouje niz parova koje ine ulazni vektor i
odgovarajua binarna ciljna kategorija, tj. izlazni ciljni vektor ija je vrijednost lanova 0 ili
1.
Poetno se teinama W i dodatnim lanovima B pridruuju sluajno (engl. random) odabrane
male pozitivne i negativne vrijednosti. Npr., inicijalizacija teina i dodatnog lana
perceptrona s 4 ulazna i 8 neurona jedinog sloja moe se izraziti kao:
R = 4; S = 8;
[W, B] = rands(S, R);
Postupak poduavanja je postupak prilagoenja teina i dodatnog prilagodljivog lana na
zadovoljenje odnosa parova ulazni vektor i ciljni vektor. Promjene teina dW i dodatnog
lana dB izraunavaju se iz ulaznog vektora P, izlaznog vektora A (izraunatog iz izvornog
W) i ciljnog vektora T primjenom pravila uenja perceptrona (engl. learn perceptron)
[dW, dB] = learnp(P, A, T);

2-8

NEURONSKE MREE U PROMETU I TRANSPORTU


PERCEPTRON

Pravilo uenja perceptrona (learnp) sadri tri mogua sluaja:


Sluaj 1: Ako je poslije predoavanja ulaznog vektora, izlaz i-tog neurona jednak ciljnoj
vrijednosti, tj. A(i) = T(i), onda se vrijednost i-tog retka matrice teina i dodatnog lana
neurona ne mijenja.
Sluaj 2: Ako je izlaz i-tog neurona 0, a treba biti 1, tj. A(i) = 0, a T(i) = 1, onda je nova
vrijednost i-tog retka matrice teina W jednaka prethodnoj (staroj) vrijednosti i-tog retka
teina uveanoj za ulazni vektor P. Slino je i nova vrijednost dodatnog lana jednaka staroj
vrijednosti uveanoj za 1.
Sluaj 3: Ako je izlaz i-tog neurona 1, a treba biti 0, tj. A(i) = 1, a T(i) = 0, onda je nova
vrijednost i-tog retka matrice teina W jednaka prethodnoj (staroj) vrijednosti i-tog retka
teina umanjenoj za ulazni vektor P. Slino je i nova vrijednost dodatnog lana jednaka staroj
vrijednosti umanjenoj za 1.
Pravilo uenja perceptrona (learnp) mogue je zapisati za svaki i i svaki j kao

W (i, j ) novo = W (i, j ) staro + [T (i ) A(i )] P( j )


B (i ) novo = B(i ) staro + [T (i ) A(i )] 1

odnosno u vektorskom obliku kao


W = W + EPT
B=B+E
pri emu je E vektor pogreke.
Prilagoenje teina i dodatnog lana neuronskog sloja s aktivacijskom funkcijom skoka
(vrste granice, engl. hard limit), pravilom poduavanja perceptrona moe se izraziti kao
A = hardlim(W*P, B);
[dW, dB] = learnp(P, A, T);
W = W + dW;
B = B + dB;
2.4 Postupak poduavanja perceptrona
Glavni koraci u postupku poduavanja perceptrona jesu:
1. Predoavanje ulaznog vektora i izraunavanje izlaznog vektora.
2. Provjera jednakosti izraunatog izlaznog vektora i predoenog ciljnog vektora
pridruenog predoenom ulaznom vektoru. Postupak poduavanja zaustaviti ako svi
ulazni vektori izraunavaju izlazne vektore koji su jednaki odgovarajuim ciljnim
vektorima ili poslije zadanog najveeg broja prolaza (epoha, engl. epoch) svih parova
ulazno ciljnih vektora.
3. Poduavanje mree prilagoenjem teina i dodatnih lanova primjenom pravila
poduavanja perceptrona te povratak na korak predoenja novog ulazno ciljnog para.

2-9

NEURONSKE MREE U PROMETU I TRANSPORTU


PERCEPTRON

Postupak poduavanja perceptrona izraen algoritmom glasi:


% Predoavanje:
A = hardlim(W*P, B);
for epoch = 1:max_epoch
% Provjera:
if all (A == T)
epoch = epoch 1;
break
end
% Uenje:
[dW, dB] = learnp(P, A, T);
W = W + dW;
B = B + dB;
% Predoenje:
A = hardlim(W*P, B);
end
2.5 ZADACI
2.5.1 Jednostavna klasifikacija
Potrebno je klasificirati etiri ulazna uzorka u dvije skupine. Prva dva uzorka pridruena su
ciljnoj skupini 1, a ostala dva uzorka ciljnoj skupini 0. etverolani ulazni vektor glasi

0.5 0.5 0.3 0.


P=

0.5 0.5 0.5 1.0


dok odgovarajui etverolani ciljni vektor glasi

T = [1.0 1.0 0.0 0.0]


ZADATAK 2.1: U koordinatnom sustavu s apscisom Ulaz 1 i ordinatom Ulaz 2, nacrtati
poloaje vrijednosti ulaznih vektora za ciljni vektor 1 oznakom +, a za ciljni vektor 0
oznakom o. Povui pravac razdvajanja ulaznih uzoraka.
ZADATAK 2.2: Zadatak klasifikacije rijeiti neuronskom mreom perceptrona. U
programskom sustavu MATLAB izvesti program hperc1 uz razliite ponuene poetne
vrijednosti teina i dodatnog lana. Komentirati rezultate.
UPUTE ZA ZADATAK 2.2: Program hperc1 ine opis ulaznih i ciljnih uzoraka, model
neurona i arhitekture perceptrona, pravila poduavanja, prikazi meurezultata i konanih
rezultata.
%
%
%
%
%
%
%
%
%
%

PRIMJER HPERC1: JEDNOSTAVNI KLASIFIKACIJSKI ZADATAK


Potrebno je klasificirati 4 ulazna uzorka u dvije skupine. Dva
ulazna uzorka pridruena su ciljnoj skupini 1, a dva uzorka ciljnoj
skupini 0.
Sastavljena je jednoslojna mrea s dva ulaza i jednim neuronom s
aktivacijskom funkcijom skoka poduavana s pravilom za poduavanje
perceptrona s ciljem tone klasifikacije 4 ulazna vektora u 2
podruja.

2-10

NEURONSKE MREE U PROMETU I TRANSPORTU


PERCEPTRON

% M.H. Beale & H.B. Demuth, 1-31-92


% Copyright (c) 1992-93 by the MathWorks, Inc.
% Prilagodio za internu uporabu: H.Gold, 1997.
help hperc1
clf reset
pausetime = 2;
% POSTAVLJANJE ZADATKA
%======================
% Zadavanje etiri dvolana ulazna vektora
P = [-0.5 -0.5 +0.3 +0.0;
-0.5 +0.5 -0.5 +1.0];
% Zadavanje etiri pridruena jednolana vektora.
T = [1 1 0 0];
% PRIKAZ ULAZNIH VEKTORA
%=======================
disp('Za prikaz ulaznih vektora pritisnuti bilo koju tipku!')
pause, disp('')
V = [-2 2 -2 2];
plotpv(P,T,V);
axis('equal')
title('Prikaz ulaznih vektora')
xlabel('Ulaz 1')
ylabel('Ulaz 2')
pause
% INICIJALIZACIJA MREE
%=======================
% Zadavanje veliine R ulaznog vektora, veliine S sloja i broja
uzoraka Q.
[R,Q] = size(P); [S,Q] = size(T);
% Inicijalizacija teina i dodatnog lana.
z = menu('Poetno postaviti teine i dodatni lan na ', ...
'Vrijednosti iz uputa za vjebe', ...
'Sluajne vrijednosti');
disp('')
if z == 1
W0 = [-0.8161 0.3078];
else
[W0,B0] = rands(S,R);
end

B0 = [-0.1680];

% PRIKAZ POETNE KLASIFIKACIJE


%==============================
hold on
plotpc(W0,B0,'--');

2-11

NEURONSKE MREE U PROMETU I TRANSPORTU


PERCEPTRON
% PODUAVANJE MREE
%==================
% PARAMETRI PODUAVANJA
disp_freq = 1;
max_epoch = 20;
% NAPOMENA: Ostatak koda za poduavanje
%
mogue je zamijeniti naredbama
%
% TP = [disp_freq max_epoch];
% [W,B,epochs] = trainp(W0,B0,P,T,TP);
% PARAMETRI MREE
W = W0;
B = B0;
weight1s = [W(1,1)];
weight2s = [W(1,2)];
biases = [B];
flops(0);
% FAZA PREDOAVANJA:
A = hardlim(W*P,B);
for epoch=1:max_epoch
% FAZA PROVJERE:
if all(A == T), epoch=epoch-1; break, end
% FAZA UENJA:
[dW,dB] = learnp(P,A,T);
W = W + dW; B = B + dB;
% FAZA PREDOAVANJA:
A = hardlim(W*P,B);
% PRIKAZ RAUNANJA
if rem(epoch,disp_freq) == 0
temp = flops;
pause(pausetime)
plotpc(W,B,':');
flops(temp);
end
weight1s = [weight1s W(1,1)];
weight2s = [weight2s W(1,2)];
biases = [biases B];
end
totalflops = flops;
% PRIKAZ KONANE KLASIFIKACIJE
%=============================
plotpc(W,B);
pause
clf reset

2-12

NEURONSKE MREE U PROMETU I TRANSPORTU


PERCEPTRON
% CRTE TEINA I DODATNOG LANA PREMA EPOHAMA
%==============================================
plot(0:epoch,weight1s,0:epoch,weight2s,'--',0:epoch,biases,':');
title('Parametri prema epohama');
xlabel('Epohe');
ylabel('W1 ___ W2 _ _ B ...');
pause
% SAETAK REZULTATA
%==================
fprintf('\nKONANE VRIJEDNOSTI MREE:\n')
W
B
fprintf('Mrea je poduavana %.0f epoha.\n',epoch)
fprintf('Poduavanje zahtjeva %.0f realnih operacija u sekundi
(flops).\n',totalflops);
fprintf('Srednja vrijednost %.0f
flops/epoch.\n',round(totalflops/epoch));
fprintf('Mrea klasificira: ');
if all(hardlim(W*P,B) == T)
disp('Tono.')
else
disp('Netono.')
end

2.5.2 Sloeniji klasifikacijski zadatak


Potrebno je klasificirati deset ulaznih uzoraka u dvije skupine. Deseterolani ulazni vektor
glasi

+ 0.1 + 0.7 + 0.8 + 0.8 + 1.0 + 0.3 0.0 0.3 0.5 1.5
P=

+ 1.2 + 1.8 + 1.6 + 1.6 + 0.8 + 0.5 + 0.2 + 0.8 1.5 1.3
dok odgovarajui deseterolani ciljni vektor glasi

1 1 1 0 0 1 1 1 0 0
T =

0 0 0 0 0 1 1 1 1 1
ZADATAK 2.3: U koordinatnom sustavu s apscisom Ulaz 1 i ordinatom Ulaz 2, nacrtati
poloaje vrijednosti ulaznih vektora. Kod oznaavanja koristiti oznake: o za ciljni vektor 00,
* za ciljni vektor 01, + za ciljni vektor 10 i x za ciljni vektor 11. Povui pravac
razdvajanja ulaznih uzoraka.
ZADATAK 2.4: Zadatak klasifikacije rijeiti neuronskom mreom perceptrona. U
programskom sustavu MATLAB izvesti program hperc2 uz razliite ponuene poetne
vrijednosti teina i dodatnog prilagodnog lana. Komentirati rezultate.

2-13

NEURONSKE MREE U PROMETU I TRANSPORTU


PREPOZNAVANJE UZORAKA

3. PREPOZNAVANJE UZORAKA
3.1 Sustav za prepoznavanje uzoraka
Sustav za prepoznavanje uzoraka sastavljen je od podsustava za unos i obradu slike i
klasifikacijskog podsustava izvedenog neuronskom mreom, slika 3.1.1.
Vanjski
uzorak

PODSUSTAV ZA
UNOS I OBRADU
SLIKE

Ulazni
uzorak

NEURONSKA
MREA

Prepoznati
uzorak

Slika 3.1.1 Sustav za prepoznavanje uzoraka


Sustav za prepoznavanje mora klasificirati 26 slova engleske abecede koja podsustav za unos
i obradu slike (video kamera) digitalizira i prikazuje binarnim znamenkama (elementima
slike) u matrici 5*7. Npr., slovo A prikazano kao ulazni uzorak u neuronsku mreu:

Meutim radi nepreciznosti podsustava za unos i obradu slika slova na ulazu u neuronsku
mreu mogu biti oteena, odnosno optereena umom:

Poslije poduavanja, u svom radu, podsustav za klasifikaciju (neuronska mrea), mora


prepoznati ulazni uzorak (slovo) i u sluaju kada je uzorak oteen. Dakle, zadatak sustava je
tona klasifikacija neoteenog ulaznog uzorka i dobra klasifikacija oteenog ulaznog
uzorka.
3.2 Zadavanje ulaznih i ciljnih uzoraka (hprprob)
26 ulaznih vektora duljine 35 (=5*7) lanova koji odgovaraju binarno kodiranim uzorcima
slova engleske abecede i 26 ciljnih vektora duljine 26 lanova zapisano je u matrinom
obliku. Svaki ciljni vektor na mjestu lana koji odgovara ulaznom uzorku ima vrijednost 1, a
na svim ostalim mjestima iznos 0. Npr., budui je slovo A prvo slovo abecede, ciljni vektor
slova A ima iznos 1 na mjestu prvog lana, dok lanovi na mjestima od 2 do 26 imaju iznos 0.

3-14

NEURONSKE MREE U PROMETU I TRANSPORTU


PREPOZNAVANJE UZORAKA

%
%
%
%
%
%
%
%
%
%
%

HPPROB: ZADAVANJE UZORAKA (SLOVA ABECEDE)


Ulazni uzorak, slovo engleske abecede, prikazano je u tablici 5*7,
odnosno zapisano kao 35-lani vektor binarnih znamenaka.
Zadano je 26 ulaznih uzorak (slova) i 26 ciljnih uzoraka.
Ciljni uzorci su prikazani vektorom od 26 lanova pri emu je
lan ciljnog vektora koji odgovara i-tom ulaznom uzorku jednak 1,
dok su svi ostali lanovi jednaki 0.
Copyright (c) 1992-93 by the MathWorks, Inc.
Prilagodio za internu uporabu: H.Gold, 1997.

letterA =

[0
0
0
1
1
1
1

0
1
1
0
1
0
0

1
0
0
0
1
0
0

0
1
1
0
1
0
0

0
0
0
1
1
1
1

...
...
...
...
...
...
]';

letterB =

[1
1
1
1
1
1
1

1
0
0
1
0
0
1

1
0
0
1
0
0
1

1
0
0
1
0
0
1

0
1
1
0
1
1
0

...
...
...
...
...
...
]';

...............
letterZ =

[1
0
0
0
0
1
1

1
0
0
0
1
0
1

1
0
0
1
0
0
1

1
0
1
0
0
0
1

1
1
0
0
0
0
1

...
...
...
...
...
...
]';

% Matrica ulaznih uzoraka


alphabet =
[letterA,letterB,letterC,letterD,letterE,letterF,letterG,letterH,...
letterI,letterJ,letterK,letterL,letterM,letterN,letterO,letterP,...
letterQ,letterR,letterS,letterT,letterU,letterV,letterW,letterX,...
letterY,letterZ];
% Matrica ciljnih uzoraka
% eye() = Matrica identiteta (1 u dijagonali)
targets = eye(26);

3.3 Klasifikacijska mrea


Neuronska mrea za klasifikaciju 26 slova engleske abecede je dvoslojna mrea sastavljena
od 35 ulaznih neurona, 10 neurona s logistikom aktivacijskom funkcijom u unutarnjem sloju
i 26 neurona s logistikom aktivacijskom funkcijom u izlaznom sloju, slika 3.3.1. Izbor
logistike aktivacijske funkcije je rezultat njezine prikladnosti za uenje binarnih vrijednosti.
Izbor broja unutarnjih neurona je rezultat procjene i iskustva.

3-15

NEURONSKE MREE U PROMETU I TRANSPORTU


PREPOZNAVANJE UZORAKA

Ulaz

Neuronski sloj 1

Neuronski sloj 2

R = 35 ulaza
S1 = 10 neurona 1. sloja
S2 = 26 neurona 2. sloja

Slika 3.3.1 Neuronska mrea za klasifikaciju uzoraka


Klasifikacijska mrea se poduava tako da u izlaznom vektoru lan na mjestu ulaznog uzorka
bude jednak 1, a svi ostali lanovi za taj uzorak jednaki 0. Meutim, oteeni ulazni uzorak e
na izlazu dati izlazni vektor iji lan na odgovarajuem mjestu ima iznos manji od 1 ili vie
lanova ima razliite iznose. Zato je na izlazu klasifikacijska mrea proirena slojem neurona
s aktivacijskom funkcijom takmienja koja iznos 1 pridruuje lanu koji ima najvei iznos.
3.4 Poduavanje klasifikacijske mree (hprtrain)
Za poduavanje mree koriste se neoteeni i oteeni ulazni uzorci. Poduavanje se izvodi
postupkom povratnog rasprostiranja pogreke uz prilagodljivi koeficijent i moment uenja.
Mrea se prvo poduava na uzorcima bez uma 5000 epoha ili dok zbroj kvadratnih
pogreaka nije manji od 0.1. Vrijednosti teina i dodatnog lana se poslije poduavanja
pohranjuju u etiri datoteke pr1_w1.dat , pr1_w2.dat, pr1_b1.dat i pr1_b2.dat.
Zatim se mrea poduava na 10 skupina uzoraka bez i sa umom u 300 epoha ili dok pogreka
nije vea od 0.6. Iznos dozvoljene pogreke je povean da bi mrea nauila odgovarati na vei
broj uzoraka bez kao i na uzorke sa umom. Na taj nain mrea ui prepoznati i uzorke sa
umom.
Na temelju prethodnog poduavanja mrea e tono prepoznavati uzorke s dosta uma
nasuprot tonom prepoznavanju uzoraka bez uma. Zato se izvodi dodatno poduavanje na
ulaznim uzorcima bez uma. Vrijednosti teina i dodatnog lana se poslije ovog poduavanja
pohranjuju u etiri datoteke pr2_w1.dat, pr2_w2.dat, pr2_b1 i pr2_b2.dat. Izraunate
vrijednosti iz navedene 4 datoteke se koriste u radu mree za klasifikaciju slova engleske
abecede.
%
%
%
%
%
%
%
%
%
%
%
%
%
%

HPRTRAIN: PODUAVANJE NEURONSKE MREE ZA PREPOZNAVANJE UZORAKA


(SLOVA)
Poduava se dvoslojna neuronska mrea s logistikom aktivacijskom
funkcijom neurona u unutarnjem i izlaznom sloju. Mrea ima 35
ulaznih (distributivnih), 10 unutarnjih i 26 izlaznih neurona.
Prvo poduavanje mree se izvodi na ulaznim uzorcima (slovima
abecede)bez uma. Zatim se mrea poduava na uzorcima sa umom.
Na kraju se ponovno poduava na uzorcima bez uma. Poduena
neuronska mrea tono klasificira uzorke bez uma, a vrlo dobro
klasificira i uzorke sa umom.
Copyright (c) 1992-93 by the MathWorks, Inc.
Prilagodio za internu uporabu: H.Gold, 1997.

3-16

NEURONSKE MREE U PROMETU I TRANSPORTU


PREPOZNAVANJE UZORAKA
% PRIPREMA SLOVA
%===============
hprprob;
% POSTAVLJANJE ARHITEKTURE MREE
%================================
[R,Q] = size(alphabet); S1 = 10; [S2,Q] = size(targets);
[W1,B1] = nwlog(S1,R);
W2 = rands(S2,S1)*0.01;
B2 = rands(S2,1)*0.01;
% PODUAVANJE
%=============
% ULAZNO IZLAZNI UZORCI
P = alphabet;
T = targets;
% PARAMETRI PODUAVANJA MREE
disp_freq = 20;
max_epoch = 5000;
err_goal = 0.1;
lr = 0.01;
lr_inc = 1.05;
lr_dec = 0.7;
momentum = 0.95;
err_ratio = 1.04;
% PODUAVANJE MREE UZORCIMA BEZ UMA (ISTI UZORCI)
TP = [disp_freq max_epoch err_goal lr lr_inc lr_dec momentum
err_ratio];
[W1,B1,W2,B2] = trainbpx(W1,B1,'logsig',W2,B2,'logsig',P,T,TP);
% POHRANA PODUENE MREE S UZORCIMA BEZ UMA POHRANA W I B
%============================================================
save pr1_w1.dat W1 /ascii /double
save pr1_b1.dat B1 /ascii /double
save pr1_w2.dat W2 /ascii /double
save pr1_b2.dat B2 /ascii /double
% PARAMETRI PODUAVANJA
max_epoch = 300;
err_goal = 0.6;
TP = [disp_freq max_epoch err_goal lr lr_inc lr_dec momentum
err_ratio];
% PODUAVANJE SA UMOM (UZORCI SA UMOM)
for pass = 1:10
fprintf('Prolaz = %.0f\n',pass);
P = [alphabet, alphabet, ...
(alphabet + randn(R,Q)*0.1), ...
(alphabet + randn(R,Q)*0.2)];
T = [targets targets targets targets];
[W1,B1,W2,B2] = trainbpx(W1,B1,'logsig',W2,B2,'logsig',P,T,TP);
end

3-17

NEURONSKE MREE U PROMETU I TRANSPORTU


PREPOZNAVANJE UZORAKA
% ULAZNO IZLAZNI UZORCI
P = alphabet;
T = targets;
% PARAMETRI PODUAVANJA
max_epoch = 5000;
err_goal = 0.1;
% PONOVNO PODUAVANJE MREE S UZORCIMA BEZ UMA
TP = [disp_freq max_epoch err_goal lr lr_inc lr_dec momentum
err_ratio];
[W1,B1,W2,B2] = trainbpx(W1,B1,'logsig',W2,B2,'logsig',P,T,TP);
% POHRANA PODUENE MREE S UZORCIMA SA UMOM - POHRANA W I B
%============================================================
save pr2_w1.dat W1 /ascii /double
save pr2_b1.dat B1 /ascii /double
save pr2_w2.dat W2 /ascii /double
save pr2_b2.dat B2 /ascii /double
% SAETAK REZULTATA
%==================
A = logsig(W2*logsig(W1*P,B1),B2);
SSE = sumsqr(A-T);
fprintf('Konana zbirna kvadratna pogreka bez uma: %g.\n',SSE);

ZADATAK 3.1: U programskom sustavu MATLAB pokretanjem programa hprtrain


poduiti neuronsku mreu za prepoznavanje slova engleske abecede. Analizirati promjenu
kvadratne pogreke i prilagodljivog koeficijenta uenja u zavisnosti o epohi predoavanja
uzoraka.
3.5 Tonost rada klasifikacijske mree (hprtest)
Tonost rada mree provjerava se sposobnou mree kod prepoznavanja velikog broja
ulaznih uzoraka s razliitim iznosom uma, slika 3.5.1.

Slika 3.5.1 Postotak pogrenog prepoznavanja uzoraka mree poduene bez uma (Mrea 1) i
mree poduene sa umom (Mrea 2) u zavisnosti o razini uma od 0 do 0.5

3-18

NEURONSKE MREE U PROMETU I TRANSPORTU


PREPOZNAVANJE UZORAKA

Uz pojedinu razinu uma mrei se predouje 100 razliitih prikaza uzoraka i izraunava
izlazni vektor. Izlazni vektor se zatim proputa kroz aktivacijsku funkciju takmienja tako da
samo jedan od 26 lanova izraunatog vektora, koji odgovara predoenom ulaznom slovu,
poprimi iznos 1. Broj netonih klasifikacija se poveava za jedan i izraunava postotak
netonih klasifikacija dotine razine uma.
%
%
%
%
%
%
%
%

HPRTEST: PROVJERA ISPRAVNOSTI PREPOZNAVANJA UZORAKA


Provjerava se sposobnost klasifikacije mree, poduene na
prepoznavanje uzoraka (slova engleske abecede), uz razliite
iznose uma u ulaznom uzorku. Prikazuju se rezultati poduavanja
mree izraeni postotkom pogreke prepoznavanja za sluaj
prepoznavanja uzoraka bez i uz postojanje uma.
Copyright (c) 1992-93 by the MathWorks, Inc.
Prilagodio za internu uporabu: H.Gold, 1997.

% ULAZNO IZLAZNI UZORCI: alphabet (abeceda), targets (ciljni vektor)


hprprob
[R,Q] = size(alphabet);
[S2,Q] = size(targets);
% MREA 1: MREA PODUENA UZORCIMA BEZ UMA
load pr1_w1.dat
load pr1_b1.dat
load pr1_w2.dat
load pr1_b2.dat
% MREA 2: MREA PODUENA UZORCIMA SA UMOM I BEZ UMA
load pr2_w1.dat
load pr2_b1.dat
load pr2_w2.dat
load pr2_b2.dat
% POSTAVLJANJE VARIJABLI ZA PROVJERU RADA MREE
network1 = [];
network2 = [];
% POSTAVLJANJE PARAMETARA ZA PROVJERU RADA MREE
max_test = 100;
noise_range = 0:.05:.5;
% PROVJERA RADA MREE
for noiselevel = noise_range
fprintf('Provjera rada mree uz razinu uma uzorka =
%.2f.\n',noiselevel);
errors1 = 0;
errors2 = 0;
for i=1:max_test
P = alphabet + randn(R,Q)*noiselevel;
% PROVJERA MREE 1
A = logsig(pr1_w2*logsig(pr1_w1*P,pr1_b1),pr1_b2);
AA = compet(A);
errors1 = errors1 + sum(sum(abs(AA-targets)))/2;
% PROVJERA MREE 2
A = logsig(pr2_w2*logsig(pr2_w1*P,pr2_b1),pr2_b2);
AA = compet(A);
errors2 = errors2 + sum(sum(abs(AA-targets)))/2;
end

3-19

NEURONSKE MREE U PROMETU I TRANSPORTU


PREPOZNAVANJE UZORAKA

% BILJEENJE REZULTATA
network1 = [network1 errors1/max_test/Q];
network2 = [network2 errors2/max_test/Q];
end
% PRIKAZ REZULTATA
plot(noise_range,network1*100,'--',noise_range,network2*100);
title('Postotak pogrenog prepoznavanja');
xlabel('Razina uma');
ylabel('Mrea 1 _ _
Mrea 2 ___');

Vea tonost prepoznavanja uzoraka se moe postii duim vremenom poduavanja ili
poduavanjem s veim brojem neurona u unutarnjem sloju. Razluivost ulaznih uzoraka se
postie poveanjem ulazne matrice, npr., reda 10*14. Ako je ulazne uzorke potrebno
prepoznati uz vie razine uma mreu treba poduiti s uzorcima vie razine uma.
ZADATAK 3.2: U programskom sustavu MATLAB pokretanjem programa hprtest
analizirati tonost prepoznavanja uzoraka poduene mree u sluaju kada je poduena samo
neoteenim uzorcima i usluaju kada je pouena oteenim uzorcima.
3.6 Provjera prepoznavanja slova (hprtests)
%
%
%
%
%

HPRTESTS: PROVJERA TONOSTI PREPOZNAVANJA SLOVA


Provjerava se sposobnost klasifikacije mree da tono prepozna
ulazni uzorak (slovo J) uz prisustvo uma.
Copyright (c) 1992-93 by the MathWorks, Inc.
Prilagodio za internu uporabu: H.Gold, 1997.

% ULAZNO IZLAZNI UZORCI


hprprob; rand('normal');
% POSTAVLJANJE REZULTANTNE MREE
load pr2_w1.dat; load pr2_w2.dat; load pr2_b1.dat; load pr2_b2.dat;
disp('Za prikaz ulaznog uzorka s umom pritisnuti bilo koju tipku!')
pause; disp('');
% PRIKAZ SLOVA J SA UMOM
noisyJ = alphabet(:,10)+rand(35,1)*0.2;
plotchar(noisyJ);
% PREDOAVANJE SLOVA J SA UMOM REZULTANTNOJ MREI
A2 = logsig(pr2_w2*logsig(pr2_w1*noisyJ,pr2_b1),pr2_b2);
answer = find(compet(A2) == 1);
disp('Za prikaz prepoznatog uzorka pritisnuti bilo koju tipku!')
pause; disp('');
% ODZIV MREE - ISPRAVNO PREPOZNAVANJE
plotchar(alphabet(:, answer));

ZADATAK 3.3: U programskom sustavu MATLAB pokretanjem programa hprtests


provjeriti tonost prepoznavanja slova poduene mree.

3-20

You might also like