Vous êtes sur la page 1sur 59

1

Univerzitet u Beogradu
Fakultet organizacionih nauka

Diplomski rad

Beograd, 2004

Univerzitet u Beogradu
Fakultet organizacionih nauka

Aplikacioni okvir za razvoj neuronskih mrea


Diplomski rad

Profesor
Vladan Devedi

Student
Zoran evarac

__________________

__________________

Beograd 2004

SADRAJ
Uvod ....................................................................................
1. Neuronske mree definicije i osnovni pojmovi ...........
2. Osnovni modeli ...............................................................
2.1. Model neurona .............................................................
2.2. Modeli neuronskih mrea .............................................
2.2.1. Arhitekture ................................................................
2.2.2. Algoritmi za uenje ...................................................
2.3. Konceptualni model .....................................................
2.4.1. Adaline ......................................................................
2.4.2. Perceptron .................................................................
2.4.3. Vieslojni perceptron ................................................
2.4.4. Hopfield-ova mrea ...................................................
2.4.5. Kohonenova samo-organizujua mapa .....................
3. Dizajn i implementacija framework-a za razvoj NM .....
3. 1. Definisanje funkcionalnih i strukturnih zahteva .........
3. 2. Konceptualni model ....................................................
3. 3. Dijagram klasa ............................................................
3. 4. Klase aplikacionog okvira ...........................................
4. Postojei aplikacioni okviri za razvoj NM ......................
4.1. JOONE .........................................................................
4.2. OpenAi NNet ...............................................................
5. Primena ...........................................................................
6. Zakljuna razmatranja .....................................................

1
2
4
4
7
7
8
10
11
13
15
17
19
21
21
21
22
23
33
33
37
39
45

PRILOG
Dokumentacija za najvanije klase aplikacionog okvira ....

46

Literatura .............................................................................

56

1
UVOD
Cilj diplomskog rada je razvoj aplikacionog okvira (framework), koji e omoguiti
jednostavno kreiranje i simulaciju raznih modela neuronskih mrea (NM). Na taj
nain stvorie se osnova za razvoj NM u obliku softverskih komponenti,
eksperimentalno istraivanje i praktinu primenu ove tehnologije.
Ideja je da se definie skup osnovnih softverskih klasa iz kojih e se izvoditi svi
modeli. Pri tom treba uzeti u obzir sve strukturne i funkcionalne specifinosti koje
odlikuju razliite modele. Da bi se to postiglo potrebno je izvriti analizu glavnih
predstavnika razliitih modela, definisati zahteve za svaki od njih, a potom
projektovati odgovarajue reenje.
Rad je organizovan u est celina:
1. U prvom delu su ukratko izloene definicije i osnovni pojmovi iz ove oblasti.
2. U drugom delu su analizirani razni modeli neurona i arhitekture NM, a kao
rezultat analize dobijeni su matematiki i konceptualni model.
3. U treem delu su isprojektovane klase aplikacionog okvira.
4. U etvrtom delu je izvrena je analiza i poreenje sa nekim postojeim
aplikacionoim okvirima iste namene.
5. U petom delu prikazana je simulacija Kohonen-ove samoorganizujue mree, i
dati su primeri primene iste.
6. U estom delu data su zakljuna razmatranja
U prilogu je data dokumentacija za najvanije klase okvira.

1. NEURONSKE MREE DEFINICIJE I OSNOVNI POJMOVI


DARPA: Neuronska mrea je sistem koji se sastoji od velikog broja meusobno
povezanih, jednostavnih elemenata procesiranja koji rade paralelno. Funkcija NM je
odreena strukturom mree, teinom veza, i obradom u elementima procesiranja.
Haykin: Neuronska mrea je paralelni distribuirani procesor koji ima prirodnu
sposobnost uvanja i korienja iskustvenog znanja. Slinost sa mozgom se ogleda
kroz dve osobine:
- mrea stie znanje kroz proces uenja
- znanje se uva u vezama izmeu neurona (sinaptikim teinama)
Zurada: Vetaki neuro sistemi ili neuronske mree, su elijski sistemi koji mogu da
stiu, uvaju i koriste iskustveno znanje.
U navedenim definicijama data su osnovna strukturna i funkcionalna svojstva NM, a
to je da:
1) se sastoje od meusobno povezanih osnovnih jedinica (elemenata, elija)
procesiranja, koje vre neku jednostavnu, elementarnu obradu
2) jedinice procesiranja rade paralelno
3) imaju sposobnost uenja, uvanja i korienja znanja
Vetake neuronske mree inspirisane su biolokim neuronskim mreama, i
predstavljaju njihov matematiki odnosno raunarski model. Neuroni su predstavljeni
elementima procesiranja, a sinapse teinom veze. Dendriti su ulazi a akson je izlaz
elementa procesiranja. Elementi procesiranja povezani su u mreu tako to je izlaz
svakog vezan na ulaz bar jednog od ostalih. Obrada koja se vri u telu neurona
predstavljena je funkcijama ulaza i prenosa.
Analogija izmeu biolokog i vetakog neurona prikazana je na slikama 1a. i 1b.

Slika 1a.Bioloki neuron

Ulazi

Teine veza

u1

w1

u2

w2
Ulazna
Funkcija

u3

Prenosna
Funkcija

Izlaz

w3

u4
w4
Slika 1.b.Vetaki neuron

Slika 2.Vetaka neuronska mrea

Algoritam za trening (uenje) mree je proces u kome se vri podeavanje teina


ulaznih veza kako bi mrea imala eljeno ponaanje. Podeavanje teina veza se vri
na osnovu odreenog skupa podataka - uzoraka odnosno primera. NM dakle ue na
osnovu primera, a ispoljavaju sposobnost generalizacije i van podataka koji su
korieni za uenje.

2. OSNOVNI MODELI
2.1. MODEL NEURONA
Osnovna komponenta neuronskih mrea je neuron (element procesiranja). U skladu sa
slikom 1.b. imamo sledei matematiki model:
u ulazni vektor [u1, u2, ...un]T
w vektor teina [w1, w2wn] T
net ukupni ulaz iz mree
g ulazna funkcija
f prenosna funkcija
y izlaz
Izlaz neurona definisan je jednainom

y = f(net)

(1)

Ukupni ulaz iz mree za pojedinani neuron je vektorska funkcija teina veza i ulaza

net = g(u, w)

(2)

Najee se rauna se kao suma ulaza pomnoenih odgovarajuom teinom

net = u i wi

(3)

i predstavlja skalarni proizvod vektora ulaza i vektora teina.

Za funkciju prenosa se biraju funkcije ograniene na intervalima [0, 1] , [-1, 1]


U tabeli 1 prikazane su esto koriene funkcije prenosa.

Linearna

y=ax

Odskona

1, x > 0
y=
0, x 0

y=

Sigmoidna

1
1 + ex

Tabela 1. Prenosne funkcije


Ovako definisan model neurona funkcionie na sledei nain:
1. Ulazna funkcija nalazi sumu proizvoda ulaznih signala i teina odgovarajuih
ulaznih veza
2. Ova suma je ulaz za funkciju prenosa, iji izlaz predstavlja izlaz iz neurona
U osnovnom modelu esto se pominje i prag (threshold) koji predstavlja minimalnu
ili maksimalnu vrednost ulazne sume da bi neuron bio aktivan. Ovakvo ponaanje je
karakteristino za odskonu funkciju Ako je
T prag
tada je
a, net T
- ekscitorni neuron
y=
b, net < T

(4)

a, net < T
- inhibitorni neuron
y=
b, net T

(5)

Uobiajni parametri su a=1 i b=0

Kod nekih modela imamo i unutranju pobudu (bias), koja predstavlja konstantnu
vrednost koja se dodaje ulaznoj sumi. Ako sa B oznaimo bias, tada je za neuron sa
bias-om:
y=f(net+B)

(6)

Negativan bias ima istu ulogu kao prag u nekim sluajevima (ekscitorni neuron sa
odskonom funkcijom prenosa kod koga je T=0).
Navedeni model naziva se McCulloch-Pitts (MP) model neurona. Pored njega postoje
i razne varijante tzv. modifikovanog MP modela. Originalni MP model ima odskonu
funkciju prenosa, a modeli sa sigmoidnom funkcijom su tzv. modifikovani MP
neuroni.
Kod kohonenove samoorganizujue mree neuroni umesto funkcije sume imaju
funkciju rastojanja - euklidske metrike. Ova funkcija predstavlja intenzitet razlike
vektora ulaza i vektora teina.

d = uw =

(u

wi ) 2

(7)

Jo i da napomenemo da ukoliko uvedemo vremensku dimenziju, tada jednaine (1) i


(3) postaju
y(t)=f(net(t))
net (t ) = u i (t ) wi

(8)
(9)

Na izlazu neurona se moe nai element za kanjenje, kojim se odlae uticaj izlaza na
ostale neurone u mrei.
Poto je raunarska simulacija NM na jednoprocesorskim sistemima sekvencijalna,
koristiemo modele u diskretnom vremenu i umesto t imati k koje oznaava tekuu
iteraciju. Na taj nain e se reiti problem sinhronizacije izraunavanja.

Dati matematiki model i uvedeni pojmovi bie osnov za dalju analizu i formiranje
konceptualnog modela. Pre toga bie analizirane osnovne arhitekture i algoritmi za
uenje na konkretnim modelima.

2.2. MODELI NEURONSKIH MREA


2.2.1. ARHITEKTURE
Neuroni u mrei grupisani su u slojevima (layers). U zavisnosti od uloge u mrei,
slojevi se mogu biti:
1) Ulazni prima podatke iz okoline
2) Izlazni daje rezultate obrade
3) Skriveni nalaze se izmeu ulaznog i izlaznog sloja. Nazivaju se skriveni jer
njihovi ulazi i izlazi nisu dostupni iz 'spoljnog sveta', ve se koriste za interne
veze.

skriveni
ulazni

izlazni

Slika 2.Vieslojna mrea sa prostiranjem signala unapred


Veze u mrei mogu da budu izmeu neurona iz razliitih slojeva, ili izmeu neurona
iz istog sloja.
Veze izmeu slojeva mogu biti:
1) Jednosmerna veza unapred - feedforward
Izlazi neurona u svim slojevima alju signal (vezani su) iskljuivo na neurone u
narednim slojevima.
2) Povratna sprega feedback
Izlazi neurona u nekim slojevima alju signal unazad, na neurone iz prethodnih
slojeva.
Za dva sloja kae se da su
- potpuno povezana - ako je svaka elije prvog sloja, povezana na sve elije
drugog sloja.
- delimino povezana ako svaka elija prvog sloja ne mora obavezno da bude
povezana na sve elije drugog sloja
- hijerarhijski povezana ako su elije svakog sloja povezane samo na elije iz
sledeeg susednog sloja
Pored navedenih postoji i tzv. rezonantna veza, koja predstavlja dvosmernu vezu kod
koje elije alju signale sve dok nije zadovoljen odreeni uslov.

Veze izmeu elija u istom sloju mogu biti:


1) Rekurentne veze su realizovane tako da neuroni prvo prime pobudu iz drugog
sloja, a zatim komuniciraju meusobno dok ne dostignu stabilno stanje. Kada
dostignu stabilno stanje alju signal sledeem sloju.
2) Inhibitorne veze ka okolini (on center/off soround) - kada neuron ima
ekscitornu vezu ka samom sebi i neuronima iz susednog sloja, a inhibitornu
vezu ka neuronima iz istog sloja.
2.2.2. ALGORITMI ZA UENJE
Postoje dva osnovna tipa algoritma za uenje NM:
1) Uenje sa nadgledanjem (supervised learning) - zahteva uitelja. Uitelj je
spoljni kontroler koji vri podeavanje teina na osnovu razlike stvarnog i
eljenog izlaza mree. Ova razlika predstavlja greku i algoritam tei da je
minimizuje.
2) Uenje bez nadgledanja (unsupervised learning) mrea samostalno bez
spoljnog uticaja kreira internu reprezentaciju ulaznih podataka po nekom
pravilu koje je ugraeno u mreu. Ovaj oblik uenja zasniva se na ideji
samoorganizacije.
Pored ova dva osnovna postoje i mnogi drugi algoritmi koje razliiti autori
tretiraju kao jedan od navedenih, ili kao posebnu vrstu. Postoji osnov za oba
pristupa. Pomenuemo neke:

Uenje pojaavanjem eljenog ponaanja (reinforcement learning) zahteva


uitelja. Uitelj ocenjuje rezultate (ponaanje) mree. Kod ovih algoritama se
ponanje blie eljenom ocenjuje viom ocenom. Ovakav oblik
uenja zasnovan je na genetskim algoritmima, pomou kojih se esto i
realizuje. Zbog postojanja uitelja svrstavaju ga u uenje sa nadgledanjem.

Kompetitivno uenje (competitive learning) se zasniva na principu da se


grupe neurona meusobno 'nadmeu' (compete) da postanu aktivne. Kada
jedan od neurona prevlada, on deaktivira ostale oko sebe. Zatim se vri
pojaavanje teina veza za vor koji je prevladao i slabljenje teina za ostale
vorove u istoj grupi. Na taj nain stanja izazvana zadavanjem ulaza postaju
dominirajua i stabilna. Zbog nepostojanja uitelja svrstavaju ga u algoritme
bez nadgledanja.
Opti matematiki model za uenje sa nadgledanjem glasi:
w ji (k + 1) = w ji ( k ) + w ji ( k ) = w ji (k ) + E ( y j (k ), d j (k ))

(1)

gde je:
w ji (k ) - teina veze od i-og do j-og elementa, u k-oj iteraciji
w ji (k ) - promena teine veze u k-oj iteraciji
uji ulaz j-og elementa, uji=yi

yj(k) - stvarni izlaz j-og elementa


dj(k) - eljeni izlaz j-og elementa
- mala pozitivna konstanta koja se naziva koeficijent uenja
E(yj(k), dj(k)) - funkcija greke koja obino sadri i uji
Uenje je zavreno kada korekcija teine w ji (k ) , nakon konanog broja iteracija k
tei nuli. To se deava kada se svi podaci za trening propuste nekoliko puta u
sluajnom redosledu.
Opte pravilo za uenje bez nadgledanja matematiki se izraava na sledei nain:
w ji (k + 1) = w ji ( k ) + w ji ( k ) = w ji ( k ) + y j ( k )u ji (k )

(2)

Ova formula predstavlja tzv. Hebovo pravilo za uenje bez nadgledanja. Prema ovom
pravilu teina se ne menja na osnovu eljenog izlaza, ve srazmerno prema stvarnom
izlazu i ulazu. Proces se ponavlja za isti ulaz sve dok se teine menjaju. Kada teine
prestanu da se menjaju znai da je mrea postala stabilna, tj. da je zapamtila zadati
ulaz.
Pomenuemo jo i opte Hebovo pravilo (Hebbian learning) koje ima veliki uticaj u
neuro-raunarstvu. Prema ovom pravilu, teina veze se poveava ukoliko prva elija
ima ekscitorno dejstvo na drugu, i ako je stalno (ili dovoljno esto) aktivna. Time se
pojaavaju veze grupe aktivnih neurona.

Nakon uvoenja osnovnih pojmova definisaemo opti konceptualni model, a zatim u


definisanom okviru analizirati konkretne modele. Modeli koji e biti analizirani
izabrani su tako da obuhvate prethodno navedene sluajeve u pogledu arhitekture i
algoritama za uenje. Svaki model bie analiziran kroz dva aspekta:
1) Arhitektura
2) Algoritam za uenje

2. 3. KONCEPTUALNI MODEL
Na osnovu dosadanje analize moemo izvesti sledei konceptualni model:

Neuronska
mrea

Sloj neurona

Neuron
Algoritam za
uenje
Veza

Slika 3.Konceptualni model neuronske mree

1) Neuronska mrea sastoji se od jednog ili vie slojeva meusobno


povezanih neurona
2) Sloj neurona skup neurona koji se u simulaciji tretira kao celina
3) Neuron osnovni element obrade u NM. Karakteriu ga ulazna i prenosna
funkcija
4) Veza izmedju neurona svaki neuron ima skup ulaza koji su povezani na
izlaze drugih, ili sopstveni izlaz. Svaku vezu karakterie teina, koja
predstavlja faktor koji mnoi ulazni signal.
5) Algoritam za uenje pravilo po kome se vri podeavanje teina kako bi
mrea imala eljeno ponaanje

10

2. 4. 1. ADALINE (ADAptive LInear NEuron)


Arhitektura
Ukoliko je funkcija prenosa y=net tj. izlaz neurona je jednak ukupnom ulazu, takva
komponenta se naziva adaptivni linearni kombinator (adaptive linear combiner ALC). Jednaina ovog elementa je
y = wu + B
gde je
w = [w0, w1 ...wm] vektor teina
u = [u0, u1, ...um]T vektor ulaza
B unutraanja pobuda (bias)
Radi jednostavnosti se uzima da je u0=1 a w0=B tako da je y=wu
Ukoliko mu na izlazu stavimo prag ili signum funkciju imaemo:
wu , wu T
y=
0, wu < T
odnosno
y = sgn(wu)
Adaline ima dva sloja ovakvih neurona, pri emu ima samo jedan neuron u izlaznom
sloju. Prvi sloj je ulazni i njegova uloga je samo da prosledi ulaze do izlaznog
neurona.

Slika 4. Adaline
Adaline se moe proiriti u Madaline (Many Adalines) kombinovanjem nekoliko
adaline komponenti.

11

Algoritam za uenje: Widrow-Hoff (LMS) rule


Algoritam se zasniva na metodi najmanjih kvadrata (Least Mean Squares) pa se
naziva i MNK metoda. Matematika osnova je metoda opadanja gradijenta kojom se
vri iterativno pretraivanje i nalazi minimum funkcije srednje-kvadratnog
odstupanja.
Razmotriemo prvo trening jednog elementa sa linearnom funkcijom prelaza, a zatim
dobijeni model uoptiti za vie elemenata i nelinearne izlaze.
LMS pravilo se moe izraziti kroz sledee jednaine:
p=dp-yp

E=

1 n
p2

2 p =1

(1) greka izlaznog neurona za p-ti uzorak iz skupa za trening

(2) ukupna greka za sve uzorke iz skupa za trening

w ji (k + 1) = w ji (k ) + (k )u ji (k )

(3) promena teine

(k + 1) = (k )

(4) promena koeficijenta uenja

Jednaina (1) predstavlja greku razlika izmeu eljenog i stvarnog izlaza.


Jednaina (2) je izraz sa srednje kvadratno odstupanje i izraunava ukupnu greku
svih uzoraka za trening. Ukoliko je greka nula ili manja od dozvoljene trening je
zavren.
Jednaina (3) izraunava i vri promenu teine veze.
Jednaina (4) postepeno smanjuje koeficijent uenja i na taj nain obezbeuje bolju
konvergenciju treninga. Koeficijent uenja moe biti i konstantan, ali se ovako postiu
bolji rezultati.
Ukoliko imamo vie elemenata u izlaznom sloju tada jednaini (2) dodajemo sumu po
elementima izlaznog sloja, a jednaina (3) prelazi u vektorski oblik.
Za elemente sa nelinearnim izlazom, pravilo se primenjuje pre nelinearne funkcije
prenosa. U sluaju kada imamo prag i/ili odskonu funkciju, greka se izraava kao
razlika nivoa aktivacije i praga.

12

2. 4. 2. PERCEPTRON
Arhitektura
Perceptron se sastoji od dva potpuno povezana sloja neurona ulaznog i izlaznog.
Veza izmeu slojeva je jednosmerna unapred (slika 5).

Slika 5. Perceptron
Elementi procesiranja u perceptronu su ekscitorni neuroni sa pragom, ulaznom
funkcijom sume i odskonom funkcijom prenosa.

Ponaanje neurona u perceptronu opisuje se sledeim jednainama:

net = u i wi

- ulazna suma

1, net T
y=
0, net < T

- izlaz neurona

Iz matematikog modela se vidi da je izlaz neurona jednak 1 ako je ulazna suma vea
od praga, a 0 u suprotnom.

Algoritmi za uenje: Delta pravilo


Prvobitni algoritam za trening perceptrona koji je predloio Rosenblatt - perceptron
learning glasi ovako:
Teina aktivne veze se poveava kada neuron nije aktivan a treba da bude, a smanjuje
kada je aktivan a ne treba da bude. Matematiki oblik je:
w( k + 1) = w( k ) + ( d ( k ) y ( k ))u ( k )

Algoritam je skoro identian LMS algoritmu, ali bitna razlika je to se pri


izraunavanju greke uzima izlaz nelinearne funkcije prenosa a ne ukupni ulaz.

13

Zbog problema i ogranienja koji su uoeni, iz ovoga je proisteklo delta pravilo koje
predstavlja proirenje LMS pravila za nelinearne sisteme sa glatkim diferencijabilnim
funkcijama prenosa.
w( k + 1) = w( k ) + (k )u (k ) f ' ( net ( k ))
Delta pravilo dobijeno je primenom pravila za izvod sloene funkcije pri
izraunavanju parcijalnih izvoda funkcije srednje-kvadratnog odstupanja po teinama.
Time se zapravo dobija osetljivost funkcije greke na promenu teina.
Za primenu ovog algoritma potrebno je odabrati pogodnu funkciju prenosa, kojoj se
lako (sa malo izraunavanja) moe odrediti izvod. Zato se koriste sigmoidne funkcije:

y=

1
1 + ex

y=

1 ex
= tanh( x)
1 + e x

y ' = y (1 y )

y ' = 0.5(1 y 2 )

Ukupna greka mree, jednaka je sumi srednje-kvadratnih greaka pojedinanih


neurona iz izlaznog sloja za sve elemente iz skupa za trening:
E=

1 n m
2
E pj

2 p =1 j =1

pri emu je :
p - indeks elementa za trening
j indeks neurona u izlaznom sloju

14

2. 4. 3. VIESLOJNI PERCEPTRON
Arhitektura
Vieslojni perceptron (Multi layer perceptron) pored ulaznog i izlaznog ima i
najmanje jedan skriveni sloj neurona. U praksi se koriste mree sa najvie 3 skrivena
sloja.

Slika 6. Vieslojni perceptron

Algoritam za uenje: Prostiranje greke unazad (Backpropagation of error)


Backpropagation algoritam predstavlja generalizaciju delta pravila i odnosi se na
mree sa skrivenim slojevima.
Promena teina u izlaznom sloju vri se isto kao kod delta pravila, i koristi se isti
izraz za ukupnu greku. Promena teina u skrivenom sloju (pre izlaznog) izraunava
se po sledeem obrascu:

w ji (k + 1) = w ji ( k ) + f ' ( net j ( k )) a ( k ) f ' ( net a (k )) waj ( k ) u ji

a
Izraz u zagradi je suma lokalnih greaka pomnoenih teinom veze, od svih izlaznih
neurona. Izraz predstavlja greku koja se sa izlaznog prenosi na skriveni sloj. To se
radi zato jer ne postoji eljena vrednost za skriveni sloj, pa nije mogue neposredno
izraunati greku za neurone iz ovog sloja.

15

Analiza do sada predstavljenih algoritama za uenje


Svi do sada navedeni algoritmi zasnivaju se na metodi opadanja gradijenta i promena
teine ima istu strukturu:
wji(k) = j(k)uji(k)
pri emu je lokalna greka
U zavisnosti da li je prenosna funkcija linearna ili nelinearna, i da li je neuron u
izlaznom ili skrivenom sloju imamo imamo sledee sluajeve:
1) Funkcija prenosa je linearna i neuron je u izlaznom sloju
j(k) = j(k)
2) Funkcija prenosa je nelinearna i neuron je u izlaznom sloju
j(k) = j(k)f(netj(k))
3) Funkcija prenosa je nelinearna i neuron je u skrivenom sloju

j (k ) = f ' (net j (k )) a waj (k )


a

16

2. 4. 4. HOPFIELD-OVA MREA
Arhitektura
Hopfield-ova mrea je rekurentna mrea u kojoj je svaki neuron povezan sa svim
ostalim neuronima u mrei sem sa samim sobom. Mrea nema slojevitu strukturu,
odnosno svi neuroni se nalaze u istom sloju.

Slika 7. Hopfield-ova mrea

Neuroni imaju prag (negativan bias) i signum funkciju prenosa, a mogue je i


korienje sigmoidnih funkcija.
Broj uzoraka koje mrea moe da zapamti je 15% od broja neurona.
Osnovni princip funkcionisanja je da mrea kroz niz interakcija tei stabilnom stanju.
Uvodi se pojam energije mree, i mrea tei stanju sa minimumom energije. Stanja sa
minimumom energije su odreena teinama, i to su stanja u kojima mrea 'raspoznaje
ulaz.

Uenje
Uenje moe da se realizuje iterativno preko Hebbian-ovog pravila, ili se teine mogu
izraunati unapred na osnovu podataka koje e skladititi.
Teine veza su simetrine i mogu se izraunati na sledei nain:
M

w ji = u j u i , i j
a

a =1

wji = wij

pri emu je
u=[u1, un] ulazni vektor odnosno uzorak
M broj uzoraka

Ukoliko se koristi Hebbian-ovo pravilo tada je:


wji(k+1) = wji(k)+wji(k)
w ji ( k + 1) = y j u ji = y j y i

17

Jednaina neurona u Hopfield-ovoj mrei je


y j ( k + 1) = f (

ji

y i ( k ) b j + u j ( k ))

i =1,i j

Ulaz uj se pojavljuje u jednaini samo prilikom zadavanja ulaza (u k-oj iteraciji),


nakon ega nestaje i puta mreu da pree u stabilno stanje.
Jednaina za ukupnu energiju mree je:
E (k ) =

1
w ji y j (k ) yi (k ) + j y j (k )b j
2 j i j

Moe se dokazati da se posle svake iteracije ukupna energija mree se smanjuje:


E(k+1)<E(k)

18

2. 4. 5. KOHONENOVA SAMO-ORGANIZUJUA MAPA


Arhitektura
Kohenenove SOM su zasnovane na kompetitivnom uenju, ureuju i prepoznaju skup
ulaznih vektora. Mrea ima samo dva sloja neurona - ulazni sloj i mapu. Broj ulaza
odnosno neurona u ulaznom sloju predstavlja dimenziju mree. Sloj mape je najee
1D ili 2D, a moe biti i vei. Na slici 8 je data struktura ovog modela sa est elija u
sloju mape.

mapa

X1

X2

ulaz

Slika 8. Kohenenova samo-organizujua mapa

Algoritam za uenje
Kohenenova mapa koristi euklidsku metriku odnosno funkciju rastojanja, za izbor pobednika
tj. dominirajue elije:

d j = x wj =

(x w
i

ji

)2

(1)

U nekim implementacijama se radi pogodnosti u izraunavanju koristi kvadrat funkcije


rastojanja, to je jednaina (1) bez korena.
Dominirajua elija c je ona sa najmanjim rastojanjem d, od ulaznog vektora.
dc= min dj

(2)

Podeavanje teina se vri po formuli

wj (k + 1) = wj ( k ) + hcj ( k )[x( k ) wj ( k )]

(3)

gde je
k diskretna celobrojna vremenska koordinata odnosno iteracija treninga
hcj funkcija susedstva koja se definie kao

19

(k ), j Nc ( k )
hcj ( k ) =
0, drugacije

(4)

gde je (k ) koeficijent uenja, linearna monotono opadajua funkcija.


Kroz trening pored podeavanja teina dominirajueg neurona vri se i podeavanje teina
njemu susednih neurona.Uobiajna susedstava su pravougaona ili estougaona (slika 9)

Slika 9. Pravougaono i estougaono susedstvo

Poetne vrednost za koeficijent uenja je obino 0.9 i vremenom postepeno opada, a


veliina susedstva odgovara polupreniku mape i takoe se smanjuje vremenom.
U sloju mape se koristi princip kompetitivnog uenja (lateralna inhibicija), meutim
zbog brzine se u praksi koristi spoljni kontroler koji odreuje najbliu eliju.
Umesto funkcije rastojanja mogue je koristiti i skalarni proizvod vektora, ali
potrebno je prethodno izvriti normalizaciju vektora teina i ulaza.

20

3. DIZAJN I IMPLEMENTACIJA FRAMEWORK-A ZA RAZVOJ NM


3. 1. Definisanje funkcionalnih i strukturnih zahteva
Na osnovu date strukturne i funkcionalne specifikacije glavnih predstavnika razliitih
NM, definisaemo opti model koji e posluiti kao osnova za njihovo izvoenje.
Neke stavke iz prethodnih analiza bie ponovljene kako bi na jednom mestu imali
kompletan zahtev.
Neuronska mrea se sastoji iz jednog ili vie slojeva neurona
Sloj je strukturni element mree i sastoji se od jednog ili vie neurona
Neuron je osnovni element obrade.
Obrada koju neuron vri odreena je funkcijama ulaza i prenosa.
Neuroni u mrei povezani su teinskim vezama.
Svaka vrsta NM ima odgovarajui algoritam za uenje.
Algoritam za uenje vri podeavanje teina veza kako bi mrea imala eljeno
ponaanje.
8) Algoritmi za uenje sa koriste skup elemenata za trening.
9) Skup elemenata za trening sa nadgledanjem je skup parova (u, y) koji
predstavljaju ulaz i eljeni izlaz, odnosno skup ulaznih vektora U kod treninga
bez nadgledanja.
10) Prilikom simulacije potrebno je omoguiti sekvencijalno, sluajno, paralelno i
predefinisano izraunavanje.

1)
2)
3)
4)
5)
6)
7)

3. 2. Konceptualni model
Iz prethodno navedene specifikacije izveden je konceptualni model koji predstavlja
osnov za definisanje odgovarajuih klasa.
Neuronska
mrea

Sloj neurona

Funkcija
ulaza
Neuron
Algoritam za
uenje

Funkcija
prenosa

Veza

Skup
za trening

Slika 10. Konceptualni model

21

3. 3. Dijagram klasa
Na slici 11 dat je dijagram klasa neposredno proizaao iz konceptualnog modela.

NeuralNetwork

Layer

InputFunction
Neuron
LearningRule

TrainingSet

TransferFunction

Connection

TrainingElement

Slika 11. Dijagram klasa

Klasa
NeuralNetwork
Layer
Neuron
InputFunction
TransferFunction
Connection
Weight
LearningRule
TrainingSet
TrainingElement

Uloga
Neuronska mrea
Sloj neurona
Neuron
Ulazna funkcija
Prenosna funkcija
Veza
Teina veze
Algoritam za uenje
Skup za trening
Primer za trening

22

Weight

3. 4. Klase aplikacionog okvira


Klasa NeuralNetwork
Neuronska mrea je kolekcija slojeva povezanih neurona.
Neuronsku mreu moemo posmatrati kao adaptivni ulaznoizlazni sistem, koji ui
pomou odgovarajueg algoritma koji je odreen strukturom mree.
Klasa NeuralNetwork je kontejner za slojeve neurona i agregira objekat koji realizuje
algoritam za uenje. Takoe obezbeuje interfejs za izvrenje osnovnih operacija nad
mreom. Realizuje osnovne funkcionalnosti zajednike za sve modele i predstavlja
baznu klasu za konkretne modele.

Slika 12. Klasa NeuralNetwork

23

Klasa Layer
Sloj neurona je kolekcija neurona.
Klasa Layer realizuje sloj neurona. Sadri kolekciju neurona, metode za dodavanje,
izbacivanje i pristup neuronima, i metode za inicijalizaciju i izraunavanje sloja.

Slika 13. Klasa Layer

24

Klasa Neuron
Neuron je osnovni strukturni i funkcionalni element NM.
Svaki neuron sadri:
- kolekciju ulaznih veza i metode za dodavanje i izbacivanje veza
- ulaznu i prenosnu funkciju i metode za pristup i postavljanje istih
- atribute koji predstavljaju ukupan mreni ulaz, metodu za izraunavanje izlaza i
metode za pristup navedenim atributima
- bias vrednost, bafer za greku - error, baffer za kanjenje

Slika 14. Klasa Neuron

25

Klase Connection i Weight


Svaka ulazna veza ima teinu, i predstavlja spoj izmeu izlaza i ulaza dva neurona.
Klasa Connection realizuje vezu izmeu neurona. S obzirom na ulogu i znaaj koji
teina veze ima kod neuronskih mrea modelovaemo je posebnom klasom.
Klasa Connection sadri objekat klase Weight koji predstavlja teinu veze i referencu
na neuron koji je sa druge strane veze.
Klasa Weight ima atribut koji predstavlja vrednost teine i metode za pristup i
modifikaciju teine.

Slika 15. Klase Connection i Weight

26

Klasa InputFunction
Ulazna funkcija neurona predstavlja funkciju vektora teina ulaznih veza i vrednosti
ulaza. Kod MP neurona to je skalarni proizvod vektora, a kod SOM euklidska
metrika. Mogue su i razne varijacije npr. logike funkcije. Kako bismo izbegli
ponavljanje koda i omoguili realizaciju svih navedenih sluajeva, ulaznu funkciju
emo dekomponovati na dve komponente:
1. Funkciju ulaza mree NetInFunction
2. Ulaznu vektorsku funkciju InVectFunction
Funkcija ulaza mree je vektorska funkcija iji su argumenti vektor teina i vektor
ulaza. Kao rezultat vraa vektor koji je njihova razlika, linearna transformacija ili
neto drugo u zavisnosti od konkretne implementacije.
Argument ulazne vektorske funkcije je vektor dobijen od funkcije ulaza mree.
Ova funkcija vraa sklar koji predstavlja ukupni ulaz iz mree net. Ova vrednost je
argument za funkciju prenosa. Konkretne implementacije mogu biti npr. L1 ili L2
norma.

Slika 16. Klasa InputFunction

27

Slika 17. Naslednici klase NetInFunction


Klase koje nasleuju InVectFunction:
Diference razlika vektora teina i ulaznog vektora
IProduct Mnoenje vektora teina dijagonalizovanim vektorom ulaza

Slika 18 Naslednici klase InVectFunction


Klase koje nasleuju InVectFunction:
Intensity intenzitet vektora
Sum suma
SumSqr suma kvadrata
Or logiko ili
And logiko i

28

Klasa TransferFunction
TransferFunction realizuje funkciju prenosa. Ova klasa je apstrakcija funkcije prenosa
i ima metode koje vraaju vrednost funkcije i izvod. Takoe ima i metod koji vraa
istinitosnu vredost u zavisnosti od toga da li funkcija ima prag. Prag funkcije prenosa
bie realizovan pomou decorater paterna klasa ThresholdFunction.

Slika 19. Naslednici klase TransferFunction

29

Klase TrainingSet i TrainingElement


Skup elemenata za trening je skup vektora ulaza, odnosno skup parova vektora (u, y)
koji predstavljaju ulaz i eljeni izlaz.
Svaka komponenta vektora je vrednost ulaza (izlaza) elije iz ulaznog (izlaznog)
sloja.

Slika 20. Klase TrainingSet i TrainingElement

30

Klasa LearningRule
Klasa LearningRule je generalizacija algoritma za uenje. Sadri:
- referencu na mreu na koju se primenjuje
- skup elemenata za trening i metodu za postavljanje ovog skupa
- metod learn kojim inicira uenje
Naslednici ove klase implementiraju konkretne algoritme. Implementirani su svi
razmatrani algoritmi.

Slika 21. Algoritmi za uenje

31

NeuralNetwork
layers: Vector
learningRule: LearningRule

Layer
neurons:Vector

addLayer()
removeLayer()
layers()
setInput()
calculate()
getOutput()
learn()

addNeuron()
removeNeuron()
neurons()
calculate()

LearningRule

Neuron

trainingSet:TrainingSet

inputs:Vector
inputFunc:InputFunction
transferFunc:TransferFunction
bias: double

learn()

calculate()
getOutput()
TrainingSet
elements:Vector
InputFunction

addElement()
elements()
elementAt()
removeElementAt()

getOutput()

TransferFunction
TrainingElement

getOutput()
getPrime()

inputPattern:Vector
inputPattern()

Connection
Weight
value:double

connected:Neuron
weight:Weight
delay:Integer

inc()
dec()
randomize()
value()

connected()
weight()
getInput()
getWeightedInput()

Slika 22. Globalni pogled - osnovne klase framework-a

32

4. POSTOJEI APLIKACIONI OKVIRI ZA RAZVOJ NM


4. 1. JOONE
JOONE - Java Object Oriented Neural Engine
Aplikacioni okvir za razvoj neuronski mrea kod koga je osnovna ideja da se omogui
paralelno testiranje i trening vie mrea kako bi se odabrala najbolja za odreeni
problem.
Akcenat je dat na distribuiranoj simulaciji zbog potrebe paralelnog izvravanja.
Osnovne klase su Layer i Synapse koje modeliraju sloj neurona i teinske veze
izmeu slojeva respektivno.
Klasa Layer podrava izraunavanje u posebnom procesu i time je podrana
distribuiranost.
Klasa Monitor je kontroler koji prati i upravlja radom slojeva.
Na slici je dat dijagram osnovnih klasa JOONE-a.

Slika 23. Dijagram klasa framework-a JOONE


U strukturnom pogledu ima slian pristup kao programski paket NeuroSolutions jer je
sloj (Layer) osnovni element NM. Time je pojednostavljena konstrukcija mrea,
meutim sve elije u sloju imaju iste karakteristike i ne moe se kontrolisati struktura
i funkcionalnost na elijskom nivou. Razliiti slojevi nasleuju osnovnu klasu i
implementiraju specifine funkcije, koje bi po mom miljenju trebalo da budu
pridruene neuronima iz prethodno navedenih razloga .

33

NM se kreira tako to se slojevi neurona i sinaptikih teina 'slau' jedan na drugi.

Slika 24. JOONE model neuronske mree


Dat je detaljniji princip funkcionisanja klase Layer.

Slika 25. Prostiranje signala kroz sloj

Slika 26. Trening

34

JOONE ima jako dobro reenje za ulazni/izlazni interfejs tako to iz osnovnih


ulazno/izlaznih klasa izvodi specifine klase koje odgovaraju ulazu iz fajla ili URL-a,
odnosno izlazu u Excel fajl ili double matricu.
Implementiran je interfejs za finansijske izvetaje sa Yahoo-a.

Slika 27. Ulazno/izlazne klase


.

35

Dat je dijagram glavne klase NeuralNetwork koja predstavlja kontejner za slojeve i


agregira kontroler i uitelja.

Slika 28. Klasa NeuralNetwork


U dokumentaciji se kae da okvir podrava sve arhitekture, meutim detaljnije su
obraene samo mree sa prostiranjem signala unapred sa Backpropagation
algoritmom.

36

4. 2.OPENAI NNET
Java NeuralNet je projekat OpenAi grupe i predstavljao je uzor u poetnim fazama
razvoja. Po mom miljenju je veoma dobro koncipiran aplikacioni okvir samo to je
ostao na nivou apstrakcije - nisu razvijene biblioteke konkretnih klasa.
Dati su glavni dijagrami klasa i sekvenci.

Slika 29. Dijagram osnovnih klasa

37

Slika 30. Dijagram sekvenci jedne iteracije

Neuroph je u strukturnom pogledu veoma slian, s tim to su osnovne


funkcionalnosti svih klasa proirene u skladu sa zahtevima konkretnih modela, i
sadri gotove modele.

38

5. PRIMENA
Na realizovanom aplikacionom okviru izgraena je aplikacija SmartNet, koja
demonstrira osnovne mogunosti okvira u radu sa razliitim neuronskim mreama.
Aplikacija omoguava kreiranje razmatranih NM putem arobnjaka , a zatim trening
mree. Tokom kreiranja i treninga mogue je praenje i kontrolisanje svih relevantnih
parametara mree i procesa preninga.

Slika 31. Aplikacija SmartNet

Od podranih NM najzanimljivija je Kohonenova samoorganizujua mrea, koja je


prikazana na slici 31.
Osnovna funkcionalnost mree je da ureuje skup visokodimenzionalnih ulaznih
vektora. Sutina navedene funkcionalnosti se moe najbolje uoiti iz primera koji je
implementiran u sklopu aplikacije [Samples> Kohonen].
Primer demonstrira kako od poetnog neureenog skupa sluajnih vektora mrea
kreira ureenu strukturu.
Evolucija mree je prikazana u nekoliko faza tokom treninga: na poetku, posle 10
iteracija i posle 50 iteracija.

39

Slika 32. Vektori teina elija pre poetka treninga

Slika 33. Vektori teina elija nakon 10 iteracija treninga

40

Slika 34. Vektori teina elija nakon 50 iteracija treninga

Ova mrea ima veliku praktinu primenu u mnogim oblastima, za reavanje problema
vezanih za klasifikaciju, prepoznavanje, optimizaciju, vizuelizaciju i interpretiranje
velikih skupova visokodimenzionalnih podataka. Poznate primene ove mree su
1) Svetska mapa ivotnog standarda
2) WebSom

Svetska mapa ivotnog standarda


Ovde je SOM (samo-organizujua mapa) upotrebljena za prikazivanje sloenih
relacija u statistikim podacima. Skup za trening su bili podaci o standardu izabranih
zemalja. Podaci su se odnosili na 39 parametara kao to su zdravlje, obrazovanje,
ishrana itd. To znai da je dimenzija ulaznog vektora 39. Upotrebljen je
dvodimenzionalni sloj mape i nakon treninga u sloju mape grupisale su se zemlje sa
slinim parametrima. Svakoj eliji je zatim dodeljena odreena boja, tako da svaka
susedna elija predstavlja blagi prelaz odnosno nijansu svojih suseda.
Dobijene boje su zatim preneene na geografsku kartu i tako je dobijena svetska mapa
ivotnog standarda.

41

Slika 35. Zemlje ureene pomou SOM

Slika 36. Svetska mapa ivotnog standarda

42

WebSom
WebSom je projekat u kome je samoorganizujua mrea upotrebljena za pretraivanje
dokumenata na Internetu. Osnovni princip je da se povezani (slini) dokumenti
nalaze 'jedni blizu drugih. Koriste se dve SOM. Jedna za predstavljanje rei i jedna
za predstavljanje dokumenata. Dokumenti se razvrstavaju u kategorije na osnovu rei
koje sadre u naslovu. Projekat je zapoet 1996 i jo uvek je u razvoju.

Slika 37. WebSom I nivo

43

Slika 38. WebSom II nivo

44

6. ZAKLJUNA RAZMATRANJA
Razvijeni aplikacioni okvir u potpunosti je odgovorio na postavljene zahteve.
Aplikacija SmartNet demonstrira osnovne mogunosti okvira i NM izvedenih iz
njega. Uspeno su realizovane dve najee koriene mree: vieslojni perceptron i
samo-organizujua mapa. Pored njih, okvir se moe koristiti bez ikakvih izmena za
izvoenje mrea bilo koje druge arhitekture to je pokazano na primeru Hopfieldove
mree.
Osnovne klase iste su za sve NM, a razlike su na nivou implementacije konkretnog
modela.Pored osnovnih klasa definisane su i pomone (utility) klase koje uglavnom
pojednostavljuju korienje osnovnih i obezbeuju dodatne funkcionalnosti vezane za
realizaciju konkretnih aplikacija.
Aplikacioni okvir je primenljiv u svim situacijama kada je za reavanje odreenog
problema potrebna neuronska mrea. To su problemi koje karakteriu:
1)
2)
3)
4)

nelinearnost
visokodimenzionalnost
um i neprecizni podaci
nedostatak odgovarajueg matematikog reenja ili algoritma

Ponaanje karakteristino za neuronske mree takoe upuuje na mogunosti


primene. Kao najbitnije stavke se izdvajaju:
-

Uenje
Asocijacija
Klasifikacija
Generalizacija
Optimizacija

Dalji razvoj okvira e biti usmeren na praktinu primenu. Cilj je razvoj gotovih
komponenti istreniranih za odreene probleme.
to se tie samog okvira, potrebno mu je dodati razne ulazno/izlazne interfejsa, npr.
podrka za ulaz preko mree, iz baze podataka, analizu dokumenata i podataka u
razliitim formatima, grafiko predstavljanje rezultata itd.
XML se moe upotrebiti za specifikaciju mree i rezultata.Potrebno je omoguiti
serializaciju svih objekata, ime se omguava slanje gotovih komponenti preko
mree.
Uz navedena poboljanja razvijeni aplikacioni okvir bi naao veliku primenu u
tehnologijama kao to su inteligentni agenti, obrada jezika, reprezentacija i otkrivanje
znanja.

45

PRILOG
DOKUMENTACIJA ZA NAJVANIJE KLASE APLIKACIONOG OKVIRA
neuroph.nnet

Class NeuralNetwork
public class NeuralNetwork
extends Observable
Neuronska mreza

Constructor Detail
NeuralNetwork
public NeuralNetwork()

Inicijalizuje praznu neuronsku mrezu

Method Detail
addLayer
public void addLayer(Layer layer)

Ubacuje u mrezu zadati sloj neurona


Parameters:
layer - Layer Sloj neurona koji treba dodati

addLayer
public void addLayer(int idx,
Layer layer)

Ubacuje zadati sloj neurona na odredjenu poziciju


Parameters:
layer - Layer Sloj neurona koji treba dodati
idx - int Pozicija u mrezi na koju treba ubaciti sloj

removeLayer
public void removeLayer(Layer layer)

Izbacuje sloj iz mreze


Parameters:
layer - Layer Referenca na sloj koji treba izbaciti

46

removeLayerAt
public void removeLayerAt(int idx)

Izbacuje iz mreze sloj na zadatoj poziciji


Parameters:
idx - int Pozicija na kojoj se nalazi sloj koji se izbacuje

layers
public Enumeration layers()

Vraca interfejs za sekvencijalni pristup slojevima u mrezi


Returns:
Enumeration Interfejs za pristup celijama u sloju

getLayers
public Vector getLayers()

Vraca referencu na kolekciju slojeva


Returns:
Vector Kolekcija slojeva

layerAt
public Layer layerAt(int idx)

Vraca referencu na sloj koji se nalazi na zadatoj poziciji


Parameters:
idx - int Pozicija na kojoj se nalazi trazeni sloj
Returns:
Referenca na trazeni sloj

indexOf
public int indexOf(Layer layer)

Vraca poziciju (indeks) sloja


Parameters:
layer - Layer Sloj ciji se indeks trazi
Returns:
int indeks sloja

layerNum
public int layerNum()

Vraca broj slojeva u mrezi


Returns:
Broj slojeva u mrezi

47

setInput
public void setInput(Vector inVect)

Zadaje ulaz mrezi


Parameters:
inVect - Vector Ulazni vektor

getOutput
public Vector getOutput()

Vraca izlaz mreze


Returns:
Vector Izlazni vektor

calculate
public void calculate()

Racuna izlaz mreze

learn
public void learn(TrainingSet trainingSet)

Inicira ucenje sa zadatim skupom elemanata


Parameters:
trainingSet - TrainingSet - Skup elemenata za trening

stopTraining
public void stopTraining()

Zaustavlja trening

getTypeId
public Integer getTypeId()

Vraca kod tipa mreze


Returns:
Integer kod tipa mreze

setTypeId
public void setTypeId(int typeId)

Postavlja kod tipa mreze


Parameters:
typeId - int - kod tipa mreze

48

getInputCells
public Vector getInputCells()

Vraca referencu na kolekciju ulaznih celija


Returns:
Vector

setInputCells
public void setInputCells(Vector inputCells)

Postavlja kolekciju ulaznih celija


Parameters:
inputCells - Vector - Kolekcija ulaznih celija

getOutputCells
public Vector getOutputCells()

Vraca referencu na kolekciju izlaznih celija


Returns:
Vector Kolekcija izlaznih celija

setOutputCells
public void setOutputCells(Vector outputCells)

Postavlja kolekciju izlaznih celija


Parameters:
outputCells - Vector - Kolekcija izlaznih celija

getLearningRule
public LearningRule getLearningRule()

Vraca algoritam za ucenje mreze


Returns:
LearningRule - algoritam za ucenje

setLearningRule
public void setLearningRule(LearningRule learningRule)

Postavlja algoritam za ucenje mreze


Parameters:
learningRule - LearningRule - algoritam za ucenje

notifyChange
public void notifyChange()

Obavestava observere o promeni stanja

49

neuroph.nnet

Class Layer
public class Layer
Sloj neurona

Constructor Detail
Layer
public Layer()

Inicijalizuje prazan sloj neurona

Method Detail
setParentNetwork
public void setParentNetwork(NeuralNetwork parent)

Postavlja referencu na nmrezu u kojoj se sloj nalazi


Parameters:
parent - nmreza u kojoj se sloj nalazi

parentNetwork
public NeuralNetwork parentNetwork()

Vraca referencu na nmrezu u kojoj se sloj nalazi


Returns:
referencu na nmrezu u kojoj se sloj nalazi

neurons
public Enumeration neurons()

Vraca interfejs za sekvencijalni pristup celijama u sloju


Returns:
interfejs za pristup celijama u sloju

addNeuron
public void addNeuron(Neuron neuron)

Dodaje neuron u sloj, kao poslednju celiju u nizu


Parameters:
neuron - celija koja se dodaje

50

addNeuron
public void addNeuron(int idx,
Neuron neuron)

Dodaje neuron u sloj, i ubacuje ga na zadati indeks


Parameters:
idx - indeks na koji se ubacuje
neuron - celja koja se dodaje

setNeuron
public void setNeuron(int idx,
Neuron neuron)

Zamenjuje celiju u sloju novom zadatom celijom


Parameters:
idx - indeks celija koja se zamenjuje
neuron - nova celija

removeNeuron
public void removeNeuron(Neuron neuron)

Izbacuje celiju iz sloja


Parameters:
neuron - celija koja se izbacuje

removeNeuronAt
public void removeNeuronAt(int idx)

Izbacuje iz sloja celiju sa zadatim indeksom


Parameters:
idx - indeks celije koja se izbacuje

neuronAt
public Neuron neuronAt(int idx)

Vraca neuron pod zadatim indeksom u sloju


Parameters:
idx - indeks neurona
Returns:
neuron sa zadatim indeksom

indexOf
public int indexOf(Neuron neuron)

Vraca indeks celije


Parameters:
neuron - celija ciji se indeks trazi
Returns:
indeks celije

51

neuronNum
public int neuronNum()

Vraca broj neurona u sloju


Returns:
broj neurona u sloju

52

neuroph.nnet.neuron

Class Neuron
public class Neuron
extends Object

Constructor Detail
Neuron
public Neuron(InputFunction inFunc,
TransferFunction transFunc)

Parameters:
transFunc

- prenosna funkcija

Method Detail
calculate
public void calculate()

Racuna izlaz celije

setInput
public void setInput(double input)

Postavlja ukupni ulaz za celiju


Parameters:
input - vrednost ulaza

getNetInput
public double getNetInput()

Vraca ukupni ulaz za celiju


Returns:
ukupni ulaz za celiju

getOutput
public double getOutput()

Vraca izlaz celije


Returns:
izlaz celije

hasInputs
public boolean hasInputs()

Proverava da li celija ima ulaznih veza


Returns:
true ako ima ulaznih veza, false u suprotnom

53

inputs
public Enumeration inputs()

Vraca Enumeration interfejs za pristup ulaznim vezama


Returns:
interfejs za pristup ulaznim vezama

addInput
public void addInput(Connection conn)

Dodaje ulaznu vezu


Parameters:
conn - ulazna veza

removeInput
public void removeInput(Neuron from)

Izbacuje ulaznu vezu


Parameters:
from - ulazna celija sa kojom se prekida veza

setInputFunc
public void setInputFunc(InputFunction in)

Postavlja ulaznu funkciju


Parameters:
in - ulazna funkcija

setTransferFunc
public void setTransferFunc(TransferFunction trans)

Postavlja prenosnu funkciju


Parameters:
trans - prenosna funkcija

inputFunc
public InputFunction inputFunc()

Vraca ulaznu funkciju


Returns:
ulaznu funkciju

transferFunc
public TransferFunction transferFunc()

Vraca prenosnu funkciju


Returns:
prenosnu funkciju

54

setParentLayer
public void setParentLayer(Layer parent)

Postavlja referencu na sloj u kome se celija nalazi


Parameters:
parent - referenca na sloj u kome se celija nalazi

getParentLayer
public Layer getParentLayer()

Vraca referencu na sloj u kome se celija nalazi


Returns:
Layer sloj u kome se celija nalazi

55

LITERATURA
[1] Introducing Neural Networks, Alison Carling, Sigma Press, Wilmslow, United
Kingdom (1992)
[2] Neural Networks for Intelligent Signal Processing, Anthony Zaknich, World
Scientific Publishing Co. Pte Ltd. Singapore (2003)
[3] Neural and Adaptive Systems: Fundamentals Through Simulations, Principe,
Euliano, and Lefebvre, John Wiley and Sons (1999)

56

Vous aimerez peut-être aussi