Ieva Ignatavičienė

48
LIETUVOS EDUKOLOGIJOS UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS INFORMATIKOS KATEDRA Ieva Ignatavičienė TIESIOGINIO SKLIDIMO NEURONINIŲ TINKLŲ SISTEMŲ LYGINAMOJI ANALIZĖ MAGISTRO BAIGIAMASIS DARBAS Darbo vadovas: dr. Olga Kurasova Vilnius, 2012

Transcript of Ieva Ignatavičienė

LIETUVOS EDUKOLOGIJOS UNIVERSITETAS

MATEMATIKOS IR INFORMATIKOS FAKULTETAS

INFORMATIKOS KATEDRA

Ieva Ignatavičienė

TIESIOGINIO SKLIDIMO NEURONINIŲ TINKLŲ SISTEMŲ

LYGINAMOJI ANALIZĖ

MAGISTRO BAIGIAMASIS DARBAS

Darbo vadovas: dr. Olga Kurasova

Vilnius, 2012

2

Turinys

1. Įvadas ....................................................................................................................................... 3

2. Tiesioginio sklidimo neuroninių tinklai .................................................................................. 4

2.1 Dirbtinių neuroninių tinklų pagrindai ................................................................................... 4

2.1.1 Biologinis neuronas ........................................................................................................ 4

2.1.2 Dirbtinio neurono modelis .............................................................................................. 5

2.1.3 Dirbtinių neuroninių tinklų klasifikacija ........................................................................ 6

2.1.4 Dirbtinių neuroninių tinklų mokymas ............................................................................ 7

2.2 Perceptronas ......................................................................................................................... 8

2.3 Daugiasluoksniai tiesioginio sklidimo neuroniniai tinklai .................................................. 10

2.3.1 Klaidos skleidimo atgal algoritmas .............................................................................. 11

2.4 Radialinių bazinių funkcijų neuroniniai tinklai ................................................................. 15

2.4.1 Autoasociatyvieji neuroniniai tinklai ............................................................................ 17

3. Tiesioginio sklidimo neuroninių tinklų sistemos ir jų klasifikacija ...................................... 19

3.1 Tiesioginio sklidimo neuroninių tinklų sistemos ................................................................ 19

3.2 Tiesioginio sklidimo neuroninio tinklo sistemų palyginimas ............................................. 28

4. Tiesioginio sklidimo neuroninių tinklų sistemų analizė ........................................................ 33

4.1. Tyrimo duomenys .............................................................................................................. 34

4.2 „DTREG“ sistema ............................................................................................................... 35

4.2.1 Daugiasluoksnis perceptronas „DTREG“ sistemoje .................................................... 35

4.2.2 Radialinių bazinių funkcijų neuroninis tinklas “DTREG” sistemoje ........................... 36

4.3 „Matlab“ sistema ................................................................................................................. 38

4.3.1 Daugiasluoksnis perceptronas „Matlab“ sistemoje ...................................................... 38

4.3.2 Radialinių bazinių funkcijų metodas „Matlab“ sistemoje ............................................ 39

4.4 „PathFinder“ sistema .......................................................................................................... 40

4.5 „Cortex“ sistema ................................................................................................................. 41

4.6 Programų palyginimas tarpusavyje ..................................................................................... 42

5. Išvados ................................................................................................................................... 44

6. Literatūra ............................................................................................................................... 45

Santrauka....................................................................................................................................... 47

Summary ....................................................................................................................................... 48

3

1. Įvadas

Daugelyje sričių kaip medicinoje, technikoje, biologijoje, ekonomikoje susiduriame su

duomenimis. Iš duomenų galima gauti nemaţai informacijos. Daţnai analizuojant duomenis yra

sprendţiami tokie uţdaviniai kaip klasifikavimas, klasterizavimas, optimizavimas,

prognozavimas. Norint išspręsti šiuos uţdavinius į pagalbą daţnai yra pasitelkiami dirbtiniai

neuroniniai tinklai, kurie veikia dirbtinio intelekto pagrindu. Jie yra skirstomi į tiesioginio ir

netiesioginio sklidimo neuroninius tinklus.

Tiesioginio sklidimo neuroninio tinklai yra vieni iš daţniausiai naudojamų neuroninių tinklų

dėl savo lengvai suprantamos struktūros. Jie daţnai yra taikomi klasifikavimo uţdaviniams

spręsti. Tokius neuroninius tinklus realizuoja įvairios programinės sistemos.

Norint išryškinti sistemų privalumus ir trūkumus, būtina atlikti sistemų lyginamąją analizę.

Darbo tikslas ir uždaviniai

Pagrindinis šio darbo tikslas – atlikti kelių tiesioginio sklidimo neuroninių tinklų sistemų

lyginamąją analizę siekiant įvertinti jų funkcionalumą.

Siekiant uţsibrėţto tikslo buvo sprendţiami šie uţdaviniai:

1. Apţvelgti pagrindinius tiesioginio sklidimo neuroninių tinklų mokymo metodus.

2. Išnagrinėti tiesioginio sklidimo neuroninių tinklų sistemas, bei suklasifikuoti jas pagal

kelis kriterijus: kainą, metodų taikymą, galimybę vartotojui keisti parametrus prieš

apmokant tinklą.

3. Įvertinti programas pagal tokius parametrus: mokymo metodų įvairumą, parametrų

keitimo galimybes, programos stabilumą, programos kokybę, kainos ir kokybės santykį.

4. Išsirinkti sistemas tolimesnei analizei.

5. Palyginti tiesioginio sklidimo neuroninių tinklų sistemas analizuojant kelias duomenų

aibes.

4

2. Tiesioginio sklidimo neuroninių tinklai

2.1 Dirbtinių neuroninių tinklų pagrindai

Dirbtiniai neuroniniai tinklai (DNT) pradėti tyrinėti kaip biologinių neuroninių sistemų

modelis. Tyrėjus neuroniniai tinklai domina gebėjimu pamėgdţioti ţmogaus smegenų veiklą ir

galimybe mokytis bei reaguoti į aplinką. Ateityje biologinio neurono modelio realizavimas gali

padėti sukurti „protingus“ kompiuterius.

Šiuo metu DNT vis plačiau naudojami dėl kelių pagrindinių prieţasčių.

Neuroninis tinklas yra galingas modeliavimo aparatas. Juo galima modeliuoti ypač

sudėtingas funkcijas;

Neuroniniai tinklai turi galimybę mokytis iš pavyzdţių. Turint duomenų pavyzdţius ir

naudojant mokymo algoritmus, neuroninis tinklas pritaikomas prie duomenų struktūros ir

išmoksta atpaţinti naujus duomenis, kurie nebuvo naudojami tinklo mokyme.

Šiuos neuroninius tinklus galima pritaikyti klasifikavimo, klasterizavimo, funkcijų

aproksimavimo, prognozavimo, optimizavimo ir daugelio kitų tipų uţdaviniams (Dzemyda ir kt.,

2008), (Verikas ir kt., 2003).

2.1.1 Biologinis neuronas

Prieš pradedant nagrinėti dirbtinius neuroninius tinklus, reikia suprasti biologinių neuroninių

tinklų modelį.

Kiekvienas neuronas yra specifinė biologinė ląstelė (2.1 pav.), galinti generuoti

elektrocheminį signalą, turinti ir informacijos apdorojimo galimybių savybę. Neuronas turi

išsišakojusią įėjimo struktūrą, vadinamą dendritais, ląstelės kūną, vadinamą soma ir

besišakojančią išėjimo struktūrą, vadinamą aksonu.

2.1 pav. Biologinis neurono modelis

Vienos ląstelės aksonas su kitos ląstelės dendritais jungiasi per sinapses. Kai suţadinama

pakankamai neuronų, prijungtų prie neurono dendritų, tai neuronas taip pat suţadinamas ir

generuoja elektrocheminį impulsą. Signalas per sinapses perduodamas kitiems neuronams, kurie

vėl gali būti suţadinami. Neuronas suţadinamas tik tuo atveju, jei bendras dendritais gautas

5

signalas viršija tam tikrą lygį, vadinamąjį sužadinimo slenkstį. Turint didţiulį skaičių visiškai

paprastų elementų, kurių kiekvienas skaičiuoja svorinę įeinančių signalų sumą ir generuoja

binarųjį signalą, jei suminis signalas viršija tam tikrą lygį, galima atlikti gana sudėtingas

uţduotis.

Turint didţiulį skaičių visiškai paprastų elementų, kurių kiekvienas skaičiuoja svorinę

įėjimo signalų sumą ir generuoja binarinį signalą, jei suminis signalas viršija tam tikrą lygį,

įmanoma atlikti palyginus sudėtingas uţduotis. Tokia ir yra dirbtinio neurono idėja. Neuronai

komunikuoja labai trumpais impulsais – milisekundţių trukmės. Pranešimas yra moduliuojamas

daţnumu, su kuriuo impulsai yra perduodami. Daţnis kinta nuo kelių iki kelių šimtų hercų –

milijoną kartų lėčiau negu greičiausias elektroninės grandinės persijungimo greitis. Tačiau

sudėtingiausi sprendimai, pavyzdţiui, veido atpaţinimas, vyksta labai greitai – per kelis šimtus

milisekundţių.

Šie sprendimai daromi tinklu neuronų, kurių atskirų veikimo greitis yra tik kelios

milisekundės. Tai leidţia manyti, jog skaičiavimai nesudaro daugiau nei 100 nuoseklių

ţingsnių. Kitaip tariant, smegenys vykdo lygiagrečias programas, kurios yra apie 100 ţingsnių

ilgio (taip vadinama šimto ţingsnių taisyklė).

Analogiškai – informacijos kiekis, persiunčiamas iš vieno neurono kitam yra labai maţas – tik

keli bitai. Tai sąlygoja, jog kritinė informacija nėra siunčiama tiesiogiai, bet surenkama ir

paskirstoma neuronų tarpusavio jungtyse (Dzemyda ir kt., 2008), (Groupe, 2007), (Terrence,

1999).

2.1.2 Dirbtinio neurono modelis

Praėjusio amţiaus ketvirtajame dešimtmetyje buvo pasiūlytas dirbtinio neurono modelis (2.2

pav.). Tai elementarus procesorius, skaičiuojantis įėjimo kintamojo netiesinę funkciją.

2.2 pav. Dirbtinio neurono modelis

Pirmasis formalus dirbtinio neurono apibrėţimas buvo pasiūlytas McCulloch:

1. Neuronas gauna keletą įėjimo reikšmių. Kiekviena įėjimo jungtis turi

savo perdavimo koeficientą (svorį) ir slenksčio reikšmę .

2. Skaičiuojama įėjimo ir svorių sandaugų suma:

6

3. Neuroną apibūdina aktyvacijos funkcija

( ) (∑

)

Pagal suţadinimo signalą naudojant aktyvacijos funkciją (neurono perdavimo funkciją ),

skaičiuojama neurono išėjimo reikšmė . Ši reikšmė tampa lygi vienam, jeigu suma viršija

slenkstinę reikšmę , nuliui – jeigu neviršija.

( ) {

Daţnai yra naudojamas suţadinimo signalas a, kuris aktyvuoja neuroną, kai a=0:

(∑

)

Šiuo atveju įvedamas nulinis įėjimas , kuris yra pastovus: Dirbtinio neurono modelyje gali būti naudojama ne tik slenkstinė funkcija, bet ir kitos

neurono aktyvacijos funkcijos, pavyzdţiui, sigmoidinė funkcija

( )

hiperbolinis tangentas

( ) ( )

ir kt.

Biologinis neuronas ir dirbtinio neurono modelis yra gana panašūs. Dirbtiniai neuronai yra

jungiami į dirbtinius neuroninius tinklus. Neuroninis tinklas gali būti pavaizduotas kaip grafas,

kurio viršūnės yra neuronai, o lankai (su svoriais) jungia neuronų išėjimus su kitų, o kartais ir tų

pačių, neuronų įėjimais (Groupe, 2007), (Yegnanarayana, 2006).

2.1.3 Dirbtinių neuroninių tinklų klasifikacija

Pagal jungimo konstrukciją neuroniniai tinklai sudaro dvi pagrindines grupes (2.3 pav.):

1) tiesioginio sklidimo (angl. feedforward) tinklai, kuriuose nėra grafo ciklų;

2) grįţtamojo ryšio (angl. feedback) tinklai, kuriuose yra grafo ciklų.

7

2.3 pav. Neuroninių tinklų klasifikacija

Daugumoje tiesioginio sklidimo tinkluose neuronai išdėstomi sluoksniais, kurie sujungiami

grieţtai viena kryptimi (Dzemyda ir kt., 2008).

2.1.4 Dirbtinių neuroninių tinklų mokymas

Galimybė mokytis yra esminė intelekto savybė. Dirbtinio neuroninio tinklo mokymo procesas

apibrėţiamas kaip tinklo struktūros ir jungčių svorių keitimo uţdavinys, siekiant, kad tinklas

galėtų atlikti jam skirtą uţduotį. Kiekviename neuroninio tinklo mokymo ţingsnyje keičiamos

svorių reikšmės atsiţvelgiant į įėjimo ir išėjimo reikšmes, gautas ankstesniame mokymo

ţingsnyje. Procesas kartojamas, kol pasiekiamas norimas rezultatas.

Skirtingos tinklų architektūros reikalauja skirtingų jų mokymo algoritmų. Yra trys pagrindinės

neuronų mokymo paradigmos:

1) Mokymo su mokytoju algoritmai (angl. supervised learning).

Mokymo su mokytoju algoritme yra vartojama sąvoka norimos išėjimo reikšmės (angl. target,

desired output). Tai iš anksto ţinomos reikšmės, pavyzdţiui, klasių numeriai, prognozuojamos

reikšmės ir pan. Mokymo su mokytoju atveju tinklo išėjimų reikšmės, skaičiuojamos kiekvienam

įėjimo vektoriui ( ) yra tiesiogiai susijusios su norimomis tų

išėjimų reikšmėmis. Tinklas koreguojamas keičiant svorių vektorių reikšmes ir siekiant gauti

kiek galima maţesnę paklaidą, t. y.ieškoma tokių svorių, kad skirtumas tarp norimų išėjimo

reikšmių ir reikšmių, gautų išmokius neuroninį tinklą, būtų kiek galima maţesnis.

Prie mokymo su mokytoju algoritmų priskiriamas perceptrono mokymas, „klaidos skleidimo

atgal“ algoritmas.

2) Mokymo be mokytojo algoritmai (angl. unsupervised learning).

Kai norimos gauti tinklo išėjimo reikšmės nėra ţinomos, tada naudojami mokymo be mokytojo

algoritmai. Šio tipo metoduose tinklas mokomas ieškoti koreliacijų ar panašumų tarp mokymo

aibės įėjimų. Čia nėra grįţtamojo ryšio, pasakančio, kuris atsakymas bus arba yra teisingas.

Mokymo be mokytojo algoritmuose nėra mokytojo signalo. Turima tik mokymo aibė X, kuri

8

sudaryta iš vektorių , i =1,…,m, priklausančių erdvei , t. y. ( ). Metodų

tikslas yra suskirstyti mokymo duomenis (vektorius) į tam tikras klases arba rasti juose kokius

nors reguliarumus ar ypatumus.

Gali būti sprendţiamas ir toks uţdavinys: vektorius , i =1,…,m, reikia atvaizduoti į

maţesnio matmenų skaičiaus erdvės vektorių rinkinį taip, kad , savybės būtų išlaikytos ir

naujos aibės vektoriams . Mokymo be mokytojo sėkmę garantuoja nuo mokytojo nepriklausomas

kriterijus, kuris mokymo metu optimizuojamas parenkant tinkamas tinklo jungčių svorių

reikšmes.

Pagrindinės mokymo be mokytojo strategijos yra Hebbo mokymas (angl. Hebbian learning),

varţytinių mokymas (angl. competitive learning) ir saviorganizuojantis mokymas (angl. self-

organizing learning).

3) Hibridinis mokymas (angl. hybrid learning).

Šios strategijos yra realizuojamos skirtingos struktūros neuroniniais tinklais ir todėl leidţia

spręsti skirtingus duomenų analizės uţdavinius.

Hibridinis mokymas apima mokymo su mokytoju ir be mokytojo algoritmus: dalis tinklo

svorių nustatomi pagal mokymą su mokytoju, kita dalis gaunama iš mokymo be mokytojo

(Dzemyda ir kt., 2008).

2.2 Perceptronas

Paprasčiausias tiesioginio sklidimo neuroninis tinklas yra perceptronas (2.4 pav.), sudarytas

iš vieno sluoksnio d neuronų, sujungtų su n įėjimų.

2.4 pav. Perceptronas

Neuronų skaičius d yra lygus išėjimų skaičiui. Kai kurie autoriai jau vieną neuroną vadina

perceptronu, tada d = 1. Kiekvienas perceptrono išėjimas yra įėjimų

funkcija, kuri skaičiuojama pagal šią formulę:

( ) (∑

)

čia yra jungties iš k-ojo įėjimo į j-ąjį neuroną svoris, - papildomas įėjimas, įprastai

9

.

Tegul turime m mokymo aibės vektorių ( ) Vektorius dar

vadinsime įėjimo vektoriais, nes jo komponenčių reikšmės bus pateikiamos į

neuroninį tinklą kaip įėjimai.

Įėjimo vektoriai ( ) yra susieti su norimų reikšmių vektoriais

( ) , čia - norimo j-ojo išėjimo reakcija į . Norimomis

reikšmėmis gali būti klasių numeriai, prognozuojamos reikšmės ir kt.

Perceptrono mokymo procese svoriai keičiami taip, kad tinkle išėjimo reikšmių vektorius

( ) gautas į įėjimą pateikus vektorių , būtų kiek galima artimesnis norimų

reikšmių vektoriui , t.y. perceptrono veikimo paklaida būtų kiek galima maţesnė.

Paklaidos matas E(W) apibrėţiamas kaip svorių matricos { }

funkcija. Jeigu paklaidos funkcija E(W) yra diferencijuojama pagal svorius , jos minimumą

galima rasti gradientiniais optimizavimo metodais. Geriausiai ţinomas yra gradientinio

nusileidimo algoritmas (angl. gradient descent). Daţniausiai pritaikoma paklaidos funkcija yra

kvadratinių paklaidų suma:

( )

∑∑( )

∑ ( )

( )

∑( )

Pradţiai generuojamos atsitiktinės svorių reikšmės. Tada gradientinio nusileidimo

algoritmu judama antigradiento kryptimi, svorių reikšmes keičiant pagal iteracinę formulę

( ) ( ) ( ) čia

( ) ( )

( )

( )

( )

( )

yra teigiamas daugiklis, kuris vadinamas mokymo greičiu (angl. learning rate) ir kuriuo

reguliuojamas gradientinio optimizavimo ţingsnio ilgis, t – iteracijos numeris.

Galimos dvi svorių keitimo strategijos. Vienu atveju svoriai pakeičiami pateikus į tinklą

visus mokymo aibės vektorius. Kitoje strategijoje svoriai pakeičiami po kiekvieno mokymo

aibės vektoriaus pateikimo į tinklą (Karayiamis ir kt., 1993), (Groupe, 2007), (Terrence, 1999),

(Verikas ir kt., 2003).

10

2.3 Daugiasluoksniai tiesioginio sklidimo neuroniniai tinklai

Turintys daugiau nei vieną neuronų sluoksnį tinklai, kuriuose galimi tik ryšiai į priekį iš

įėjimų į išėjimus, yra vadinami daugiasluoksniais perceptronais (angl. multilayer perceptrons),

arba daugiasluoksniais tiesioginio sklidimo neuroniniais tinklais (angl. multilayer feedforward

neural networks) (2.5 pav.). Kiekvienas toks tinklas sudarytas iš įėjimų aibės, išėjimų neuronų

sluoksnio ir paslėptųjų neuronų sluoksnių tarp įėjimų ir išėjimų.

2.5 pav. Daugiasluoksnis perceptronas

Tegul turime daugiasluoksnį neuroninį tinklą, kuriame yra L sluoksnių, paţymėtų

, kai sluoksnis l=0 ţymi įėjimus, o l=L – paskutinį (išėjimų) sluoksnį. Kiekviename

sluoksnyje l yra neuronų. Pirmojo sluoksnio j-ojo neurono išėjimo reikšmė yra

apskaičiuojama. Įėjimai į neuronus l-ajame sluoksnyje yra neuronų išėjimai (l-1)-ajame

sluoksnyje yra apskaičiuojama taip:

( ) (∑

)

čia f() yra neuronų aktyvacijos funkcija.

– svoriai jungčių, kurios jungia k-ąjį neuroną (l-1)-ajame sluoksnyje su j-uoju neuronu l-

ajame sluoksnyje;

– neuronų skaičius (l-1)-ajame sluoksnyje.

– l-ojo sluoksnio j-ojo neurono išėjimo reikšmė.

– l-ojo sluoksnio k-ojo neurono išėjimo reikšmė (Karayiamis ir kt., 1993), (Terrence,

1999), (Nakamura ir kt., 2010), (Hassoun, 1995).

11

2.3.1 Klaidos skleidimo atgal algoritmas

Daţniausiai daugiasluoksnis perceptronas yra realizuojamas „klaidos skleidimo atgal“

algoritmu (angl. back propagation error), todėl panagrinėsime šio algoritmo veikimo principą.

Mokymas grindţiama parenkant klaidos funkciją ir minimizuojant ją neuroninio tinklo svorių

atţvilgiu.

Prieš analizuojant neuroninio tinklo apmokymą, paminėsime tris svarbius kriterijus:

Jei neuroniniame tinkle neuronų perdavimo funkcijos diferencijuojamos, tai išėjimo

sluoksnio neuronų perdavimo funkcijos yra diferencijuojamos įėjimo kintamųjų

( ) ir svorių atţvilgiu.

Jei klaidos funkciją E parinksime diferencijuojamą neuroninio tinklo išėjimo

atţvilgiu, tai ši funkcija bus diferencijuojama ir svorių atţvilgiu (ir įėjimo

kintamųjų atţvilgiu).

Tad galima skaičiuoti klaidos išvestines svorių atţvilgiu ir naudoti jas svorių,

minimizuojančių klaidos funkciją, radimui (gradientiniu ar kitais optimizavimo

metodais).

Klaidos skleidimo atgal algoritmas taip vadinasi todėl, kad jis “paskirsto” klaidą

tarpneuroninio tinklo elemento pradedant nuo viršaus ir tolyn į apačią. Šį mokymą sudaro du

ţigsniai: įėjimo reikšmių „skleidimo pirmyn“ iš įėjimų į išėjimų sluoksnį ir paklaidos „skleidimo

atgal“ iš išėjimų į įėjimų sluoksnį.

Bendru tiesioginio sklidimo neuroninio tinklo atveju, kiekvienas elementas skaičiuoja svorinę

įėjimo elementų sumą:

– neuroniniame tinkle įėjimas (dar gali būti ţymimas kaip ) arba ţemesniojo sluoksnio i-

tojo elemento išėjimas (dar gali būti ţymimas kaip ). – jungtis tarp nagrinėjamo sluoksnio j-tojo neurono ir ţemesnio sluoksnio i-tojo elemento.

– svorinė suma visų neuronų išėjimų, sujungtų su j-tuoju nagrinėjamo sluoksnio elementu.

Suma transformuojama netiesinės perdavimo funkcijos f() pagalba

( )

Neuroniniame tinkle svoriai parenkami minimizuojant tam tikrą klaidos funkciją.

Nagrinėsime tokią klaidos funkciją (suma klaidų, skaičiuojamų kiekvienam duomenų vektoriui):

s – duomenų vektoriaus numeris.

išraiška turi būti diferencijuojama pagal neuroninio tinklo išėjimo kintamuosius.

Tikslas – rasti taisyklę, pagal kurią būtų galima skaičiuoti klaidos išvestinę neuroninio tinklo

svorių atţvilgiu. Jei turima klaidos funkcija, tai jos išvestinė bus suma klaidos išvestinių

12

kiekvienam įėjimo vektoriui. Todėl toliau formulėse nagrinėsime tik klaidos išvestinę vienam

įėjimo duomenų vektoriui.

Kai skaičiavimai pasiekia pabaigą, pamatome rezultatą ir įvertiname klaidą. Po to tą klaidą

padaliname tarp tinkle svorių pradedami nuo išėjimo ir baigdami įėjimu.

Pastaba. Įėjimo duomenų vektoriaus numerį s praleisime neuronų įėjimų, svorių, išėjimų

formulėse.

Klaida nuo svorio priklauso tik per svorinę įėjimų į j-tąjį elementų sumą :

( )

todėl

Paţymėkime

(∑ )

todėl

Jei nagrinėjame apatinį sluoksnį, į kurio įėjimą paduodame ( ), tai:

(∑ )

yra tam tikros rūšies neuron išėjimo klaida.

Matome, kad svorio įtaka klaidai yra tuo didesnė, kuo:

a) Didesnę klaidą daro j-tasis neuronas (didesnis );

b) Didesnis signalas perduodamas svorio jungtimi (didesnis ).

Dabar nagrinėsime atskirai išėjimo mazgams (ţymėsime tai ) ir paslėptų sluoksnių

neuronams (ţymėsime tai ).

Tada išėjimo mazgams, ţinant, kad ( )

( )

Paslėptiems mazgams:

13

čia s – sekančio sluoksnio (nei nagrinėjama mazgo j sluoksnis) neuronas.

Diferencialą galima išskaidyti todėl, kad aukštesnio sluoksnio visi , k=1,2,… priklauso nuo

ţemesnio sluoksnio fiksuoto

( )

Ţinant, kad

∑ ( )

( )

gauname

∑ ( )

( )∑

Matome, kad reikšmė tam tikram elementui (mūsų atveju j-tajam neuronui) gali būti gauta

skleidţiant reikšmes atgal iš aukščiau esančių mazgų: suskaičiuojame reikšmes išėjimo

neuronams, po to iš jų – ţemesnio sluoksnio neuronams ir taip iki pačio apatinio sluoksnio.

Apibendrinant,“klaidos skleidimo atgal“ algoritmas yra toks:

1. Į tinklą paduodamas vektorius ir suskaičiuojamas išėjimų reikšmės visiems

paslėpties ir išėjimo neuronams:

( )

2. Suskaičiuojamos reikšmės visiems išėjimo mazgams.

3. Skleidţiamos reikšmės, suskaičiuojamos reikšmės visiems neuroninio tinklo

paslėptiems neuronams.

4. Reikiamos išvestinės randamos pagal formulę:

5. Bendra klaida E gali būti randama kartojant 1-4 ţingsnius visai duomenų imčiai ir

susumuojant klaidas, gautas visiems duomenų taškams:

14

Pastaba. Nebūtinai visi sluoksnio neuronai turi turėti vienodą perdavimo funkciją. Algoritmui

tai nesvarbu – skaičiavimuose tik reikia sekti kokią perdavimo funkciją turi kiekvienas

elementas.

Ţinant išvestines

arba

reikia keisti svorius.

Vienas iš būdų ir daţniausiai naudojamų yra fiksuoto ţingsnio gradientinio nusileidimo

metodas.

Svoriai gali būti keičiami (perskaičiuojami) dviem būdais:

1. pateikus tinklui vieną vektorių :

aukštesnių sluoksnių atveju:

apatinio (pirmo) sluoksnio atveju:

2. pateikus tinklui visą imtį ir susumavus dalines išvestines pagal svorius visai

duomenų imčiai:

aukštesnių sluoksnių atveju:

apatinio (pirmo) sluoksnio atveju:

čia s – mokymo imties taško numeris (Groupe, 2007), (Gurney ir kt., 1997), (Priddy ir kt., 2005).

15

2.4 Radialinių bazinių funkcijų neuroniniai tinklai

Radialinių bazinių funkcijų (RBF) tinklus (2.6 pav.) vadiname neuroninius tinklus, kuriuose

kiekvienas tarpinio sluoksnio neuronas atitinka radialinę bazinę funkciją.

2.6 pav. RBF neuroninio tinklo schema

Čia ( ) – įėjimo vektorius, ( ) – išėjimo vektorius. Radialinių

bazinių funkcijų neuroninių tinklų pagrindinis tikslas yra apmokyti tinklą kuo geriau reaguoti į

įėjimo vektorius.

Jei ( ) – įėjimo vektoriai, ( ) –

tinkle išėjimo vektoriai, tai ( ) – trokštama tinkle reakcija į duomenų

vektorius .

Radialinių bazinių funkcijų tikslios interpoliacijos metodas naudoja rinkinį iš m bazinių

funkcijų, po vieną kiekvienam duomenų taškui ( ) Bazinės funkcijos uţrašomos kaip

( ), čia ϕ() yra tam tikra netiesinė funkcija. j-toji funkcija priklauso nuo atstumo

. Daţniausiai naudojamas Euklido atstumas tarp X ir . Interpoliuojanti funkcija

aprašoma kaip tiesinė bazinių funkcijų kombinacija:

( ) ∑ (|| ||)

kur

( )

Paţymėkime ( ) – kvadratinė matrica, kurios elementai:

(|| ||) ( )

16

Kai svorių reikšmės parenkamos pagal pateiktą formulę, tai funkcija h(X) nusako tolygų

diferencijuojamą paviršių, einantį tiksliai per visus duomenų taškus. Daţniausiai naudojama

bazinė funkcija – Gausinė, kuri turi ir analitiškai svarbių savybių.

( ) (

)

čia parametras yra vadinamas pločio parametru, nuo kurio labai priklauso interpoliuojančios

funkcijos glotnumas. Gausinė funkcija yra lokalizuota bazinė funkcija, turinti savybę, kad

( ) , kai .

Tinklo pagalba sudaroma interpoliuojanti funkcija, kurioje bazinių funkcijų skaičių

apsprendţia ne mokymo imties dydis (kaip tikslios interpoliacijos atveju), bet atvaizduojamos

funkcijos sudėtingumas.

Realizacijos ypatumai:

1. Bazinių funkcijų skaičius M parenkamas daug maţesnis uţ duomenų taškų skaičių m

(M<m).

2. Bazinių funkcijų centrų radimas – mokymo proceso dalis, tuo tarpu kai tikslios

interpoliacijos atveju jie sutampa su . 3. Kiekviena bazinė funkcija gali turėti savus specifinius parametrus (Gausinės bazinės

funkcijos atveju, plotis ), kurie taip pat nustatomi mokymo metu.

4. Į svorinę bazinių funkcijų sumą įtraukiami laisvieji nariai. Jie kompensuoja bazinių

funkcijų skaičiaus sumaţinimą.

Tuo būdu gaunama tokia RBF neuroninio tinklo perdavimo funkcija:

( ) ∑ ( )

Gausinės funkcijos atveju

( ) (

)

Čia yra bazinės funkcijos centro vektorius ( ) – atstumas tarp

vektorių X ir .

RBF neuroninių tinklų mokymas vyksta dviem etapais:

1. Vien tik tai duomenų vektorių pagalba nustatomi bazinių funkcijų

parametrai (Gausinėmis funkcijomis, tai ir ).

2. Fiksuojamos bazinės funkcijos ir randami svoriai .

Tegul bazinių funkcijų parametrai nustatyti. Matricinė forma atrodo taip:

( )

čia y(X) – d-matis vektorius, W – matrica, kurios elementai yra , o

– M - matis vektorius.

17

Kadangi bazinės funkcijos fiksuotos, RBF neuroninis tinklas yra ekvivalentiškas

vienasluoksniam neuroniniam tinklui. Svoriai optimizuojami minimizuojant klaidos funkciją.

Daţniausiai pasirenkama suminė kvadratinė klaida:

∑∑( ( ) )

čia yra trokštama tinkle reakcija k-tajame išėjime į duomenų vektorių .

Kadangi klaidos funkcija yra kvadratinė svorių funkcija, jos minimumas gali būti randamas

kaip tiesinių lygčių sprendinys.

Daţniausiai radialinių bazinių funkcijų neuroniniuose tinkluose antrojo sluoksnio neuronų

perdavimo funkcijos tiesinės, ir svorių optimizavimui naudojama suminės kvadratinės klaidos

išraiška. Naudojamos ir netiesines išėjimo neuronų perdavimo funkcijos, kaip ir kitokios klaidos

funkcijos. Tačiau tada antrojo sluoksnio svorių nustatymas tampa nebetiesine problema ir

reikalauja netiesinių optimizavimo metodų. Kaip jau minėta, vienas iš radialinių bazinių funkcijų

neuroninių tinklų privalumų tas, kad galima juos apmokyti nenaudojant tokių procedūrų

(Sundararajan ir kt., 1999), (Yee ir kt., 2001), (Howlett ir kt., 2001), (Cecile ir kt., 2007).

2.4.1 Autoasociatyvieji neuroniniai tinklai

Autoasociatyvieji neuroniniai tinklai (angl. autoassociative neural network) dar daţnai

vadinami autokoderių tinklais (2.8 pav.). Jie leidţia sumaţinti duomenų išskiriant d neuronų iš

vadinamojo „butelio kaklelio“ – (angl. bottleneck) sluoksnio, sudaryto iš maţiau elementų nei

įėjimo ir išėjimo sluoksniai, čia d yra dimensijų skaičius po sumaţinimo. Autoasociatyvusis

neuroninis tinklas sudarytas iš dviejų dalių: pirma dalis transformuoja pradinius analizuojamus

daugiamačius duomenis į maţesnio skaičiaus matmenų erdvę atvaizdavimo sluoksnis), o antroji

– rekonstruoja (atstato) pradinius duomenis iš gautų rojekcijų (atstatymo sluoksnis).

2.7 pav. Autoasociatyvusis neuroninis tinklas

Tinklo mokymo proceso metu yra minimizuojama vidutinė kvadratinė paklaida , gaunama

tarp tinklo įėjimo vektoriaus ( ) ir išėjimo vektoriaus

( ) atitinkamų komponenčių reikšmių:

18

∑∑( )

Neuroninis tinklas mokomas duomenų vektoriais , o tinkle vidurinio paslėptojo “butelio

kaklelio” sluoksnio neuronų išėjimuose gaunamos analizuojamų duomenų projekcijos d-matėje erdvėje, išlaikant tikslią pradinių duomenų struktūrą (Hassoun, 1995), (Priddy ir kt.,

2005), (Baek ir kt., 2002).

19

3. Tiesioginio sklidimo neuroninių tinklų sistemos ir jų

klasifikacija

3.1 Tiesioginio sklidimo neuroninių tinklų sistemos

Šiuo metu labai daugėja programų, kuriose realizuoti dirbtiniai neuuroniniai tinklai.

Tiesioginio sklidimo neuroninių tinklų programos yra labai įvairios. Jos viena nuo kitos skiriasi:

- kaina: brangios, pigios arba nemokamos;

- sudėtingumu: profesionalų sukurtos arba megėjų;

- pasirinkimų parametrų, bei mokymo metodų įvairove;

- neuroninių tinklų vizualizavimo galimybėmis;

- kt.

Šiame darbe yra pasirinktos 14 skirtingų tiesioginio sklidimo neuroninio tinklo programų

apţvalgai, kurios turi savų pliusų, bei minusų.

3.1.1. „Cortex“

„Cortex“ programa (3.1 pav.) susideda iš šešių kortelių, kurių pagalba įkeliamas tekstinis

failas su duomenimis, pasirenkama aktyvacijos funkcija ir neuronų sluoksnių skaičių. Papildomai

leidţia rinktis sustojimo kriterijų arba jų nepasirinkti. Tada apmokomas tinklas ir gaunamas

atsakymas su paklaida ir iteracijų skaičiumi.

Šios programos privalumas yra tai, kad turi paleidţiamąjį failą .exe ir be papildomų

instaliacijų galima naudotis iš karto. Didţiausias programos minusas yra tai, kad nėra pritaikytas

didelės apimties neuroniniams tinklams apmokyti (http://cortex.snowcron.com).

3.1. pav. „Cortex“ programa

20

3.1.2. „DTREG“

„DTREG“ programoje (3.2 pav.) taip pat yra kelios kortelės. Kai įkeliamas duomenų failas,

tada galima pereiti prie kitų kortelių, kur leidţia pasirinkti neuroninio tinklo kriterijus, kaip

aktyvacijos funkciją, paslėptų neurono sluoksnių skaičių. Apmokomas pasirinktas tinklas:

daugiasluoksnis perceptronas arba radialinių bazinių funkcijų neuroninis tinklas. Gautas

atsakymas išsaugomas faile .dtr plėtiniu.

Ši programa yra viena iš brangiausių programų, bet jei vartotojui nereikia pilno komplekto, tai

jis gali susimokėti tik uţ tai ko jam reikia. Nors ji yra brangi, bet labai išsami neuroninio tinklo

atţvilgiu. Pradţiai yra siuloma pabandyti 30 dienų bandomąją versiją, kurioje leidţia dirbti su

įvairiais skirtingais metodais (http://www.dtreg.com).

3.2. pav. „DTREG“ programa

3.1.3. „Grouper“

„Grouper“ programa (3.3 pav.) yra nedidelė, paprasta naudotis ir nereikia jos instaliuoti. Visas

programos veiksmas vyksta viename langelyje, t.y., tame pačiame langelyje įkeliamas failas su

duomenimis, pasirenkama aktyvacijos funkcija, neurono sluoksnio struktūra, tada apmokomas

neuroninis tinklas ir išsaugojamas naujame faile rezultatas. Duomenų kiekis neuroniniams

tinklams apmokyti yra ribotas (http://www.e-nuts.net).

21

3.3. pav. „Grouper“ programa

3.1.4. „NeuronDotNet“

„NeuronDotNet“ sistema (3.4 pav.) iš tiesioginio sklidimo neuroninio tinklų metodų naudoja

tik daugiasluoksnio perceptroną, kuris yra realizuojamas „klaidos skleidimo atgal“ algoritmu. Ši

programa yra nemokama ir atviro kodo, parašyta C# programavimo kalba. Pagrindiniame lange,

kai tinklas yra apmokamas, galima stebėti kaip kinta klaidos dydis nuo iteracijų skaičiaus. Nors

nėra galimybių savarankiškai pasirinkti sustojimo kriterijų, bet galima sustabdyti apmokymą, bet

kuriuo momentu, kai jau tenkina klaidos dydis ar iteracijų skaičius.

3.4. pav. „NeuronDotNet“ programa

22

3.1.5. „PathFinder“

Sistema „PathFinder“ (3.5 pav.) realizuoja tiesioginio sklidimo neuroninį tinklą su vienu

paslėptu neuronų sluoksniu. Nors sistema yra nedidelė ir ja lengvai galima išmokti naudotis, bet

didţiausias darbas yra tinkamai paruošti duomenis MS Excel faile ir pateikti juos programai.

Pateikiant ir dirbant su sistema, kartu turi būti paleistas ir MS Excel failas, kuriame yra

duomenys. Jei programa teisingai nuskaitė duomenis, toliau galima dirbti sekančiomis

aštuoniomis kortelėmis.

Kortelėse Variables, Design, Learning params yra pasirenkami parametrai, bei sustojimo

kriterijai vartotojo atţvilgiu. Train kortelėje vyksta tinklo apmokymas.

Skirtingai nuo kitų programų, šioje galima pamatyti gautus svorių reikšmes, kortelėje

Examine Wgts.

3.5. pav. „PathFinder“ programa

3.1.6. „Tiberius“

„Tiberius“ (3.6 pav.) programa yra mokama, bet galima parsiųsti bandomąją versiją, kurią

leidţiama naudotis 30 dienų. Šios programos kūrėjai didţiausią dėmesį sutelkė, į rezultatų

pavaizdavimą, pvz., sistema nubraiţo grafiką, kuriame matosi, kaip duomenys yra pasiskirstę

pagal klases. Nors grafikų yra daug, kurie yra braiţomi pagal norimus kriterijus, bet labai trūksta

parametrų keitimo įvairovės prieš apmokant neuroninį tinklą (http://www.tiberius.biz).

23

3.6. pav. „Tiberius“ programa

3.1.7. „Simbrain“

„Simbrain“ (3.7 pav.) yra sukurta megėjų programuotojų, kurie ją platina nemokamai.

Programa yra atviro kodo, parašyta „Java“ programavimo kalba. Kurdami programą,

programuotojai didţiausią dėmesį skyrė į jos pritaikymą skirtingoms operacinėms sistemoms,

kaip Mac OS X, Linux, bei Windows įvairioms versijoms.

Šioje sistemoje yra nemaţai esminių klaidų, nuo kurių sistema „lūţta“, bet vartotojui

nepranešama dėl kokios prieţasties. Dar vienas didelis minusas yra tai, kad pridėta daug

nereikalingų parametrų, o reikiamus sunku rasti. Kadangi ji yra atviro kodo, tai programuotojas

gali pakoreguoti „Simbrain“, bet paprastam vartotojui nėra pritaikyta (http://www.simbrain.net).

3.7. pav. „Simbrain“ programa

3.1.8. „Neuroph“

„Neuroph“ programa (3.8 pav.) yra sukurta megėjų, nemokamai platinama, atviro kodo,

parašyta „Java“ programavimo kalba. Ją galima nemokamai parsisiųsti arba paleisti iš tinklapio

neuroph.sourceforge.net, tik reikia turėti savo kompiuteryje įdiegtą „Java Run Environment“. Jos

veikimo principas panašus į „Simbrain“ sistemą, bet turinti daugiau funkcijų, pritaikytų

24

neuroniniams tinklams, pvz., metodo, aktyvacijos funkcijos, paslėptų neuronų sluoksnių

skaičiaus pasirinkimas.

Nors funkcijų daugiau ir didesnis neuroninių tinklų metodų ir parametrų pasirinkimas, bet,

kaip ir „Simbrain“ programoje, klaidų neišvengta.

3.8. pav. „Neuroph“ programa

3.1.9. „Multiple Back-Propagation“

„Multiple Back-Propagation“ programa (3.9 pav.) realizuoja daugiasluoksnį perceptroną

„klaidos skleidimo atgal“ algoritmu. Ji yra nedidelė, galima lengvai išmokti naudotis, bei

vaizdţiai pavaizduoja neuroninio tinklo struktūra.

Tokia sistema yra labiau pritaikyta pavaizduoti šio metodo veikimo principą, o ne dirbti, nes

yra maţas, vartotojo nuoţiūra, keičiamų parametrų pasirinkimas prieš apmokant tinklą, bei gali

dirbti tik su nedideliais kiekiais duomenimis (http://dit.ipg.pt/MBP).

3.9. pav. „Multiple Back-Propagation“

25

3.1.10. „NeuroSolutions“

„NeuroSolutions“ programa (3.10 pav.) yra pritaikyta įvairiems neuroninio tinklo metodams,

bei galima pasirinkti kokį uţdavinį spręsti: klasifikavimo, prognozavimo. Dar vienas privalumas

yra tai, kad šioje sistemoje galima kiekvienam paslėptam neuroniniam sluoksniui pasirinkti

skirtingas aktyvacijos funkcijas. Programinė įranga turi platų grafikų pasirikimą, bei nubraiţo

neuroninio tinklo modelį. Prieš nusiperkant šią programą, ją galima nemokamai parsisiųsti 30

dienų ir išbandyti ja.

Ji yra profesionalų sukurta, pritaikyta Windows 32 ir 64 bitų operacinėms sistemoms.

Pripaţinta net 66 skirtingose šalyse ir veikianti nuo 1995 metų. „Neuro Solutions“ gali būti

realizuojama su tokiomis programomis kaip MS Excel, Matlab (http://www.neurosolutions.com).

3.10. pav. „Neuro Solutions“ programa

3.1.11. „Sharky NN“

„Sharky NN“ programa (3.11 pav.) yra paprasta ir vaizdţiai pavaizduoja daugiasluoksnio

perceptrono relizuota „klaidos skleidimo atgal“ algoritmu neuroninį tinklą. Ji yra priimtina

vartotojui, nes lengva išmokti naudotis, nemaţai vaizdinių priemonių, bet vartotojui keisti tinklo

parametrus, kaip aktyvacijos funkciją, sustojimo kriterijus nėra įmanoma.

„Sharky NN“ sprendţia daugiasluoksnio perceptrono klasifikavimo uţdavinį, bei programos

lange galima matyti kaip mokymo metu duomenys yra pasiskirstę. Taip pat yra galimybė stebėti

mokymo metu paklaidos, epochų ir svorių kitimą

(http://www.sharktime.com/us_SharkyNeuralNetwork.html).

26

3.11. pav. „Sharky NN“ programa

3.1.12. „Matlab“

„Matlab“ (3.12 pav.) programoje yra sukurtas, neuroninių tinklų paketas (angl. Neural

Network Toolbox). Šis paketas gali apmokyti vienasluoksnį perceptroną, daugiasluoksnį

perceptroną, radialinių bazinių funkcijų neuroninius tinklus, bei pasirinkti sprendţiamo

uţdavinio tipą, pvz., klasifikavimo ar prognozavimo.

Didţiausias „Matlab“ privalumas yra tai, kad lengvai ir greitai išmokstama naudotis ir turi

daug parametrų, tiek prieš apmokant tinklą, tiek pasirenkant sustojimo kriterijus, kuriuos

vartotojas gali keisti. Tai profesionalų sukurta programa skirta dirbti su didelėmis duomenų

aibėmis (http://www.mathworks.se/products/matlab/index.html).

3.12. pav. „Matlab“programa

27

3.1.13. „Alyuda NeuroInteligence“

„Alyuda NeuroInteligence“ (3.13 pav.) taip pat priskiriama prie profesionalių programų, nes

padaryta be klaidų, didelis varotojui parametrų pasirinkimas, bei lengvai išmokstama. Šios

sistemos didţiausias privalumas yra tai, kad randa optimaliausią neuroninio tinklo išsidėstymą.

Gautą optimalų tinklą, analizuoja ir pritaiko naujiems duomenims.

Taip pat netrūksta priemonių pavaizduoti vizualiai gautus rezultatus, bei jos pagalba galima

atlikti norimas ataskaitas, susijusias su neuroniniais tinklais (http://www.alyuda.com/neural-

networks-software.htm).

1.13. pav. „Alyuda NeuroInteligence“ programa

3.1.14. „Statistica Automated Neural Networks“

„Statistica Automated Neural Networks“ programa (3.14 pav.) turi platų pasirinkimą

neuroninių tinklų tipų ir mokymo algoritmų. Pasirinkta tinklo struktūra yra pavaizduojama

pagrindiniame lange su įėjimo, išėjimo vektoriais ir visais paslėptais neuroniniais sluoksniais.

„Statistica Automated Neural Networks“ išskirtinumas nuo kitų nagrinėtų programų yra tai,

kad sistema atlieka išsamią analizę gautų rezultatų su įvairiais grafikais. Rezultatus galima

išsaugoti skirtingais formatais (http://www.statsoft.com/products/statistica-automated-neural-

networks/).

3.14. pav. „Statistica Automated Neural Networks“ programa

28

3.2 Tiesioginio sklidimo neuroninio tinklo sistemų palyginimas

Tiesioginio sklidimo neuroninių tinklų sistemų yra daug ir įvairių. Juos galima suskirstyti

pagal skirtingus kriterijus: kaina, metodų panaudojimą programose, sistemų keičiamius

parametrus.

Programas kuria profesonalai ir megėjai. Daţniausiai megėjai sistemą platiną nemokamai su

atviru kodu. Jose gali būti daug funkcijų (kartais ir nereikalingų neuroninių tinklų analizei), bet

daţnai „lūţta“ dėl klaidų ir nepraneša vartotojui dėl kokios prieţasties taip atsitiko.

Populiariausios programavimo kalbos yra Java ir C. Profesonalų programose nėra klaidų, jos

atlieka ţymiai daugiau funkcijų, bet jos yra daug sudėtingesnės ir mokamos.

Beveik kiekviena sistema turi savo oficialią svetainė ir kai kurios yra mokamos, nors

daţniausiai leidţia pabandyti apie 30 dienų bandomąją versiją. 3.1 lentelėje matome, programų

kainas ir oficialias svetaines, iš kurių galima nusipirkti, parsisiųsti programas, bei gauti

reikiamos informacijos.

3.1. lentelė. Programų kainos ir oficialios svetainės

Eil.

Nr. Programos Programos tinklalapis

Programos

kaina

1 Cortex http://cortex.snowcron.com 0

2 DTREG http://www.dtreg.com 5000$

3 Grouper http://www.e-nuts.net 0

4 NeuronDotNet - 0

5 Path Finder - 0

6 Tiberius http://www.tiberius.biz 264,70$

7 Simbrain http://www.simbrain.net 0

8 Neuroph - 0

9 Multi Back-

Propagation http://dit.ipg.pt/MBP 0

10 Neuro Solutions http://www.neurosolutions.com 295$

11 Sharky NN http://www.sharktime.com/us_SharkyNeuralNetwork.html 0

12 Matlab http://www.mathworks.se/products/matlab/index.html 99$

13 Alyuda

NeuroInteligence http://www.alyuda.com/neural-networks-software.htm 497$

14

Statistica

Automated Neural

Networks (SANN)

http://www.statsoft.com/products/statistica-automated-

neural-networks/ 1290$

Pastaba. Lentelėje surašytos kainos yra daţniausiai skirtos studentui, vienam vartojui ir

pilnas komplektas, o ne dalis programos.

Kurdami programas pardavimui, stengiamasi, kad jų funkcionalumas atitiktų kainą, todėl

bandoma įtraukti kuo daugiau metodų ir parametrų, nors ir megėjų sukurtose programose taip pat

galima pastebėti platų metodų pasirinkimą. 3.2 lentelėje yra pateikti, kokie metodai yra taikomi

programose.

29

3.2. lentelė. Metodų pritaikymas programose

Eil.

Nr. Programos

Tiesioginio sklidimo neuroninių tinklų metodai

Vienasluoksnis

Perceptronas

Daugiasluoksnis

perceptronas

Radialinių bazinių

funkcijų metodas

1 Cortex - + -

2 DTREG - + +

3 Grouper - + -

4 NeuronDotNet - + -

5 Path Finder - + -

6 Tiberius + - -

7 Simbrain + + -

8 Neuroph + + +

9 Multi Back-Propagation - + -

10 Neuro Solutions - + +

11 Sharky NN - + -

12 Matlab + + +

13 Alyuda NeuroInteligence - + -

14 Statistica Automated Neural

Networks (SANN) - + +

Iš pateiktos lentelės, matosi, kad labiausiai paplitęs yra „daugiasluoksnis perceptronas“ (angl.

Multilayer Perceptron (MLP), bet visuose nagrinėtose sistemose šis metodas yra realizuojamas –

„klaidos skleidimo atgal“ algoritmu. Rečiausiai nagrinėjamas metodas yra vienasluoksnis

perceptronas.

3.3. lentelė. Sistemų keičiami parametrai

Eil. Nr. Programos

Tiesioginio sklidimo neuroninių tinklų sistemų keičiami

parametrai

Aktyvacijos

funkcija

Neuroninio

tinkle paslėptų

sluoksnių

skaičius

Sustojimo kriterijus

Paklaida Iteracijų

skaičius

1 Cortex + + + +

2 DTREG + + + +

3 Grouper - + - -

4 NeuronDotNet - + - +

5 Path Finder + + - +

6 Tiberius - - + +

7 Simbrain - + - -

8 Neuroph + + + +

9 Multi Back-Propagation - - + +

10 Neuro Solutions + + - +

11 Sharky NN - + - -

12 Matlab + + + +

13 Alyuda NeuroInteligence + + + +

14 Statistica Automated Neural

Networks (SANN) + + - -

30

Prieš pateikiant į tinklą duomenis, vartotojas daţniausiai nori pats pasirinkti tam tikrus

parametrus, nuo kurių priklauso neuroninio tinklo apmokymas. 3.3 lentelėje yra pateikiami

daţniausiai pasitaikantys parametrai, kuriuos vartotojas gali keisti savo nuoţiūra.

3.3 lentelėje, matosi, kad nėra tokio kriterijaus, kurio būtų visose programose. Beveik visur

galima pasirinkti neuroniniame tinkle paslėptų sluoksnių skaičių, bet jis būna ribotas ir nedidelis.

Nors kai kurios programos turi didelį metodų, bei parametrų keitimo įvairovę, bet taip pat turi

ir daug klaidų arba yra labai sudėtingos ir nepatrauklios vartotojui. 3.4 lentelėje programos yra

palyginamos tarpusavyje savo sudėtingumu, paţeidţiamumu, bei programų veikimu operacinėse

sistemose. Palyginimui pasirinktos trys populiariausios operacinės sistemos skirtos asmeniniams

kompiuteriams: Windows, Mac OS, Linux.

3.4. lentelė. Techninis programų įvertinimas

Eil.

Nr. Programos

Programos

sudėtingumas

Programos

stabilumas

Operacinės sistemos, kuriose

veikia programa

Windows Mac Linux

1 Cortex Paprasta Stabili + - -

2 DTREG Sudėtinga Stabili + - -

3 Grouper Paprasta Stabili + - -

4 NeuronDotNet Paprasta Yra klaidų + - -

5 Path Finder Paprasta Stabili + - -

6 Tiberius Sudėtinga Yra klaidų + - -

7 Simbrain Paprasta Yra klaidų + + +

8 Neuroph Paprasta Yra daug klaidų + + +

9 Multi Back-Propagation Paprasta Yra klaidų + - -

10 Neuro Solutions Sudėtinga Stabili + - -

11 Sharky NN Paprasta Stabili + - -

12 Matlab Sudėtinga Stabili + + +

13 Alyuda NeuroInteligence Sudėtinga Stabili + - -

14 Statistica Automated

Neural Networks (SANN) Sudėtinga Stabili + - -

Įvertinus programos išmetamų klaidų kiekį, bei sudėtingumą vartotojo atţvilgiu, galima daryti

išvadą, kad programos stabilumas nepriklauso nuo jos sudėtingumo. Daţniausiai tiesioginio

sklidimo neuroninių tinklų programos yra skirtos Windows operacinei sistemai ir tik trys iš

keturiolikos nagrinėtų programų yra pritaikytos ir kitoms operacinėms sistemoms.

31

3.5. lentelė. Programų įvertinimas

Eil.

Nr. Programos

Mokymo

metodų

įvairumas

Parametrų

ketimo

galimybės

Programos

stabilumas

Programos

kokybė

Kainos ir

kokybės

santykis

Viso

1 Cortex 0 2 1 2 2 7

2 DTREG 1 2 2 2 1 8

3 Grouper 0 0 2 2 2 6

4 NeuronDotNet 1 1 1 1 1 5

5 Path Finder 0 1 2 2 2 7

6 Tiberius 0 1 1 2 0 4

7 Simbrain 1 0 1 1 2 5

8 Neuroph 2 2 0 0 0 4

9 Multi Back-

Propagation 0 1 2 1 2 6

10 Neuro Solutions 1 1 2 2 0 6

11 Sharky NN 0 0 2 0 0 2

12 Matlab 2 2 2 2 2 10

13 Alyuda

NeuroInteligence 0 2 1 2 1 6

14

Statistica

Automated Neural

Networks (SANN)

1 1 2 2 0 6

Kiekviena tiesioginio sklidimo neuroninių tinklų programa yra įvertinama balu. Programos

įvertinimas yra sudarytas iš penkių pagrindinių kriterijų, kurie yra pateikti 3.5 lentelėje. Balai yra

gaunami iš pateiktų ankstesnių lentelių (3.1, 3.2, 3.3, 3.4 lentelės), kuriose buvo aptartos

programos įvairiais aspektais, bei palygintos tarpusavyje. Maksimalus kiekvieno kriterijaus

įvertinamas yra 2 balai, jei programa tuo atţvilgiu yra geriausia palyginus su kitomis

nagrinėtomis programomis ir minimalus įvertinimas yra 0, jei pateikti parametrai yra prasčiausi.

Remiantis 3.5 lentelėje esančia informacija, matosi, kad daugiausiai balų teko „Matlab“

programai, kuri surinko maksimalų įvertinimą, o maţiausiai balų teko „Sharky NN“ programai,

kuri du balus gavo tik uţ programos stabilumą.

Vizualiai programų įvertinimai yra pavaizduoti 3.15 pav. stulpelinėje diagramoje.

32

3.15. pav.

Tiesioginio sklidimo neuroninio tinklų metodams pritaikytos program pasirinkimas yra

nemaţas ir jos labai įvairios. Buvo analizuojama 14 skirtingų programų ir palygintos tarpusavyje,

bei įvertintos balu dešimtbalėje balų vertinimo sistemoje pagal penkis parinktus skirtingus

kriterijus. Nors daug yra sukurtų profesonalių programų, bet nemaţai atsiranda ir megėjų, kurie

taip pat parašo kuria nors programavimo kalba (daţniausiai pasitaikanti kalba yra „Java“), bei

platina nemokamai su atviru kodu. Šios programos nėra stabilios ir daţnai stringa. Profesonalų

programos yra galingos ir reikalauja daugiau kompiuterio resursų, bet jos ne tik apmoko

neuroninį tinklą, grafiškai ir išsamiai pateikia rezultatus, bet ir atlieka kitas funkcijas

(pavyzdţiui, sprendţia matematinius uţdavinius).

10

8 7 7

6 6 6 6 6 5 5

4 4

2

0

2

4

6

8

10

12

Programų įvertinimai

33

4. Tiesioginio sklidimo neuroninių tinklų sistemų analizė

Toliau nagrinėtos keturios tiesioginio sklidimo neuroninių tinklų sistemos analizuojant

įvairius duomenis, taikant skirtingus metodus. Šios sistemos pasirinktos pagal kelis kriterijus:

1. Pagal 3.15 lentelėje esančią informaciją, pasirinktos tokios sistemos, kurios turi

daugiausiai balų („Matlab“ (10 balų), „DTREG“ (8 balai), „Cortex“ (7 balai),

„PathFinder“ (7 balai)).

2. Dvi sistemos turi būti profesionalios ir mokamos („Matlab“, „DTREG“), kitos dvi

paprastos ir nemokamos („Cortex“, „PathFinder“).

3. Visos keturios sistemos turi apmokyti daugiasluoksnį perceptroną ir bent dvi dar ir

radialinių bazinių funkcijų metodą („Matlab“, „DTREG“).

Gauti rezultatai palyginti tarpusavyje. Visi tiesioginio sklidimo neuroninio tinklo apmokymo

uţdaviniai yra klasifikavimo tipo, kur norimos reikšmės yra duomenų aibių klasės.

Neuroninio tinklo kokybės vertinimui daţnai naudojamos kelios paklaidos:

1. RMSE (angl. Root Mean Square Error);

∑( )

čia – išėjimo reikšmių vektorius, – trokštamų reikšmių vektorius.

2. MSE (angl. Mean Square Error);

∑( )

Atitinkamai naudojamos ir normuotos paklaidos:

1. NRMSE (angl. Normalized Root Mean Square Error);

√ ∑ ( )

2. NMSE (angl. Normalized Mean Square Error);

34

∑ ( )

4.1. Tyrimo duomenys

Tolimesnei duomenų analizei, pasirinkti keturi duomenų rinkiniai: irisai (angl. iris), vyno

(angl. wine), pusiausvyros (angl. balance-scale), krūtų vėţio (angl. breast-cancer), kurie yra

paimti iš tinklapio http://archive.ics.uci.edu/ml.

1. Irisai [150; 4]. Fišerio irisų duomenys (Fisher, 1936), kurie buvo išmatuoti 150-ies

irisų ţiedų:

1) vainiklapių plotis (angl. petal weight);

2) vainiklapių ilgis (angl. petal height);

3) taurėlapių plotis (angl. sepal weight);

4) taurėlapių ilgis (angl. sepal height).

Pirmi keturi stulpeliai yra ţiedų parametrai, matuojami milimetrais. Penktas stulpelis yra irisų

klasė, kurios sudaro trijų veislių irisų ţiedai: Iris Setosa (1 klasė), Iris Versicolor (2 klasė), Iris

Virginica (3 klasė).

2. Vyno sudėtis [178; 13]. Vyno duomenys surinkti Italijos regione iš trijų ţemdirbių.

Buvo tyrinėjama vyno sudėtis. Vyno sudėtį sudaro 13 pagrindinių elementų:

1) Alkoholio laipsnis (angl. alcohol);

2) Obuolių rūgštis (angl. malic acid);

3) Ash;

4) Alkalinity of ash;

5) Magnis (angl. magnesium);

6) Grynoji karbolio rūgštis (angl. total phenols);

7) Flavanoidai (angl. flavanoids);

8) Ne flavanoidinis fenolis (angl. nonflavanoid phenols);

9) Proanfosianinas (angl. proanthocyanins)

10) Spalvos intensyvumas (angl. color intensity);

11) Atspalvis (angl. hue)

12) Atskiesto vyno OD280/OD315 (angl. OD280/OD315 of diluted wines)

13) Prolinas (angl. Proline).

Visi duomenys yra suskirstyti į tris klases pagal ţemdirbius. Pirma klasė sudaro duomenys iš

pirmo ţemdirbio ir atitinkamai kitų klasių.

3. Balansas [625; 4]. Šie duomenys sudaro keturi stulpeliai:

35

1) Kairėje svoris (angl. left-weight);

2) Kairėje atstumas (angl. left-distance);

3) Dešinėje svoris (angl. right-weight);

4) Dešinėje atstumas (angl. right-distance).

Šių keturių stulpelių duomenys yra sudaryti iš skaičių intervale [1;5]. Klasifikavimas vyksta

pagal balansą, į kurią pusę labiau pakrypusi: kairę ( 1 klasė, L), dešinę (2 klasė, R) ar lygu (3

klasė, B). Balansas randamas sudauginus atitinkamus elementus (kairėje svoris * kairėje

atstumas) ir (dešinėje svoris * dešinėje atstumas).

4. Krūties vėţys [699; 10]. Duomenys apie krūtų vėţį surinkta iš gydytojo Volbergo

(dr. Wolberg) klinikos. Jo surinkti duomenys susideda iš tokių parametrų:

1) Id skaičius (angl. id number);

2) Klampumas (angl. clump thickness);

3) Ląstelės dydţio vienodumas (angl. uniformity of cell size);

4) Ląstelės formos vienodumas (angl. uniformityof cell shape);

5) Kraštinis sulipimas (angl. marginal adhesion);

6) Vieno epitelio ląstelės dydis (angl. single epithelial cell size);

7) „Nuogas“ branduolys (angl. bare nuclei);

8) Švelnus chromatinas (angl. bland chromatin);

9) Normalus branduolėlis (angl. normal nucleoli);

10) Mitozės (angl. mitoses).

Visų parametrų reikšmės, išskyrus id, svyruoja intervale [1;10]. Duomenys yra suskirstomi į

dvi klases: gerybinį arba piktybinį vėţį (2 – gerybinis, 4 - piktybinis).

4.2 „DTREG“ sistema

Programa „DTREG“ apmoko neuroninį tinklą keliais metodais. Nagrinėjami du pagrindiniai

tiesioginio sklidimo metodai:

Daugiasluoksnis perceptronas, kuris yra realizuojamas „klaidos skleidimo atgal“

algoritmu;

Radialinių bazinių funkcijų neuroninis tinklas.

4.2.1 Daugiasluoksnis perceptronas „DTREG“ sistemoje

Šiame skyrelyje nagrinėtas tiesioginio sklidimo neuroninio tinklo apmokymo efektyvumas,

panaudojant daugiasluoksnio perceptroną metodą. 4.1 lentelėje pateikiami programos pradiniai

duomenys prieš apmokant neuroninį tinklą ir gauti rezultatai.

Lyginami gauti rezultatai keičiant aktyvacijos funkciją išoriniams ir paslėptiems neuronų

sluoksniams, bei pateikiant skirtingus duomenis į tinklą.

Prieš apmokant tinklą sistemai pateikti tokie parametrai, kurie nebus keičiami:

36

Tiesioginio sklidimo neuroninio tinklo metodas: „klaidos skleidimo atgal“;

Sprendţiamas uţdavinys: klasifikavimo;

Pradinių visų svorių reikšmės: 0;

Paslėptų neuronų sluoksnių skaičius: 2;

Antrame paslėptame sluoksnyje neuronų skaičius:100;

Maksimalus iteracijų skaičius: 10 000.

Gaunami tokie rezultatai:

Kvadratinė paklaida (angl.Root mean squared error (RMSE));

Normuota kvadratinė paklaida (angl.Normalized mean squared error(NMSE)).

4.1. lentelė. Įėjimo parametrai ir gauti rezultatai daugiasluoksnio perceptrono atveju

Įėjimo parametrai Gauti rezultatai

Duomenys Aktyvacijos

funkcija

Neuronų

skaičius

antrame

paslėptame

sluoksnyje

Normuota

paklaida

(NMSE)

Paklaida(RMSE) Laikas

(sekundėmis)

Irisai

Sigmoidinė 100 0,048171 0,1792037 10,76

Sigmoidinė 1 0,069442 0,2151621 1,33

Tiesinė 1 0,069782 0,2156873 1,25

Tiesinė 100 0,069788 0,2156972 17,89

Vyno

sudėtis

Sigmoidinė 100 0,002625 0,0395943 29,08

Sigmoidinė 1 0,268601 0,4005453 4,13

Tiesinė 1 0,106934 0,2527296 1,74

Tiesinė 100 0,127738 0,2762221 4,56

Balansas

Sigmoidinė 100 0,386049 0,3894943 118,63

Sigmoidinė 1 0,637077 0,5003523 3,82

Tiesinė 1 0,605280 0,4877061 2,23

Tiesinė 100 0,604172 0,4872595 21,76

Krūties

vėţys

Sigmoidinė 100 0,095200 0,2933005 50,33

Sigmoidinė 1 0,121223 0,3309683 4,98

Tiesinė 1 0,161526 0,3820459 3,41

Tiesinė 100 0,162508 0,3832051 94,67

Vidurkis 0,221007 0,315573 23,16

Iš 4.1 lentelės matosi, kad kuo didesnis duomenų skaičius, tuo didesnę paklaidą gauna.

Maţesnius paklaidos rezultatus, nors ir per ilgesnį laiką, gauna, kai naudojama sigmoidinė

aktyvacijos funkcija.

4.2.2 Radialinių bazinių funkcijų neuroninis tinklas „DTREG“ sistemoje

37

Kitas nagrinėjamas metodas yra radialinių bazinių funkcijų neuroninis tinklas. Radialinių

bazinių funkcijų neuroninio tinklo metodo apmokymo metu, programa pati randa optimaliausią

neuronų skaičių, spindulių intervalus kiekvienai RBF funkcijai, bei RBF funkcijų svorių

intervalus.

Prieš apmokant tinklą pasirenkami tokie parametrai:

Bazinė funkcija: gausinė funkcija;

Didţiausias iteracijų skaičius: 10 000;

Didţiausias neuronų skaičius: 100;

Į tinklą pateikiami duomenys keturis kartus su tais pačiais duomenimis ir 4.2 lentelėje,

matome, kad kiekvieną kartą gaunami skirtingi rezultatai.

4.2. lentelė. Gauti RBF tinklo rezultatai

Duomenys

Gauti RBF tinklo parametrai

Laikas

(sekundėmis) Neuronų

skaičius

Spindulių

intervalai

kiekvienai RBF

funkcijai

RBF funkcijų

svorių intervalai

Normuota

paklaida Paklaida

Irisai

2 [0,044 ; 247,984] [1,435 ; 3,119] 0,075283 0,2240289 5,20

7 [0,043 ; 0,093] [0,093 ; 63,557] 0,043081 0,1694723 14,58

15 [0,1 ; 38,806] [0,096 ; 8,835] 0,026348 0,1325341 30,08

12 [0,01 ; 2215,88] [0,085 ; 8,957] 0,035257 0,153313 18,66

Vyno

sudėtis

5 [0,482 ; 392,139] [0,195 ; 5,704] 0,095365 0,2386672 15,18

26 [0,314 ; 422,339] [0,045 ; 73,266] 0,039802 0,1541888 1761,88

30 [0,01 ; 424,44] [0,195 ; 6,742] 0,024157 0,1201217 90,78

31 [0,1 ; 113,428] [0,134 ; 6,436] 0,017984 0,1036443 95,31

Balansas

4 [1,884 ; 365,832] [0,031 ; 9,643] 0,605363 0,4877393 61,92

21 [0,01 ; 482,901] [0,031 ; 9,979] 0,537415 0,4595521 72,73

22 [0,01 ; 401,47] [2,167 ; 63,985] 0,540932 0,4610535 1878,84

22 [0,01 ; 401,47] [2,167 ; 63,985] 0,540932 0,4610535 1878,84

Krūties

vėţys

7 [0,758 ; 394,876] [1,176 ; 9,603] 0,143718 0,3603714 42,42

35 [0,01 ; 445,572] [0,052 ; 80,905] 0,089618 0,284571 682,93

46 [0,01 ; 949,253] [0,028 ; 9,603] 0,088233 0,2823639 607,78

71 [0,1 ; 49,899] [0,06 ; 9,825] 0,057148 0,2272451 513,80

Vidurkis 0,18504 0,269995 485,6831

Matosi, kad pateikiant į tinklą didesnį duomenų kiekį, panaudojama daugiau neuronų, nors ir

apmokymo laikas pailgėja.

Pasinaudodami pateikta 4.2 lentelėje esančia informacija, paanalizuokime paklaidos kitimą,

keičiantis neuronų skaičiui.

38

4.1 pav. Gautos paklaidos priklausomybė nuo neuronų skaičiaus

Remdamiesi 4.1 pav., pastebime, kad visiems duomenims didėjant neuronų skaičiui,

radialinių bazinių funkcijų neuroninis tinklas geriau apsimoko ir gauna maţesnę paklaidą.

4.3 „Matlab“ sistema

Matlab programos pakete „Neural Network Toolbox“ yra nemaţas metodų pasirinkimas

neuroniniui tinklui apmokyti. Iš tiesioginio sklidimo metodų, nagrinėjami du populiariausi

mokymo metodai: daugiasluoksnis perceptronas ir radialinių bazinių funcijų neuroninis tinklas.

4.3.1 Daugiasluoksnis perceptronas „Matlab“ sistemoje

Naudojant daugiasluoksnį perceptroną yra taikomas labiausiai paplitęs „klaidos skleidimo

atgal“ algoritmas.

Neuroniniui tinklui yra paduodami tokie parametrai:

Mokymo funkcija: Gradientinio nusileidimo;

Epochų skaičius: 10 000;

Aktyvacijos funkcija:

1. TanSig (TanSig), kurios formulė yra:

;

2. LogSig (LogSig), kurios formulė yra:

;

Neuronų skaičius: 1 arba 10.

Daugiasluoksnio perceptrono nagrinėjimui, pateikiama 4.3 lentelė, kurioje matosi laiko ir

paklaidos kitimas, keičiant duomenis, aktyvacijos funkcijai, bei neuronų skaičiui.

0

0,1

0,2

0,3

2 7 12 15

Irisai

Irisai

0

0,1

0,2

0,3

5 26 30 31

Vyno sudėtis

Vynosudėtis

0

0,2

0,4

7 35 46 71

Krūties vėžys

Krūtiesvėžys

0,35

0,4

0,45

0,5

4 21 22 31

Balansas

Balansas

39

4.3.lentelė. Įėjimo parametrai ir gauti rezultatai daugiasluoksnio perceptrono atveju

Įėjimo parametrai Gauti rezultatai

Duomenys Aktyvacijos

funkcija

Neuronų skaičius

paslėptame

sluoksnyje

Klaidos

paklaida

(MSE)

Laikas

Irisai

TanSig 10 0,0177 11:54

TanSig 1 0,0292 05:38

LogSig 1 0,0315 06:09

LogSig 10 0,0155 16:24

Vyno

sudėtis

TanSig 10 1,15e-19 10:08

TanSig 1 0,0563 08:17

LogSig 1 0,0561 10:39

LogSig 10 4,76e-18 20:43

Balansas

TanSig 10 0,00184 21:38

TanSig 1 0,107 18:26

LogSig 1 0,116 07:49

LogSig 10 0,00787 21:37

Krūties vėţys

TanSig 10 6,67e-16 37:12

TanSig 1 8,25e-10 25:32

LogSig 1 2,12e-13 27:08

LogSig 10 5,67e-25 45:51

Vidurkis 0,299986 18:26

Iš 4.3 lentelės, matosi, kad gautos paklaidos yra ţymiai maţesnės, palyginus su „DTREG“

sistemos rezultatais, nors ir laiko yra sugaišta daugiau.

4.3.2 Radialinių bazinių funkcijų metodas „Matlab“ sistemoje

„Neural Network Toolbox“ reikia pasirinkti minimalią klaidos paklaidą, kaip sustojimo

kriterijų. Rezultate gaunama, kelintoje epochoje įgijama norima paklaida.

4.4. lentelė. RBF įėjimo parametrai ir gauti rezultatai

Įėjimo parametrai Gauti rezultatai

Duomenys Sustojimo klaidos paklaida Epochų skaičius

Irisai 0,1 3

0,001 133

Vyno

sudėtis

0,1 94

0,001 119

Balansas 0,1 190

0,001 617

Krūties vėţys 0,1 220

0,001 238

40

4.4 lentelėje matosi, kaip maţėjant paklaidai ir didėjant duomenų kiekiui, didėja epochų

skaičius.

4.4 „PathFinder“ sistema

„PathFinder“ programa skaičiuoja tiesioginio sklidimo neuroninio tinklo daugiasluoksnį

perceptroną su vienu paslėptu neuronų sluoksniu. Neuroninis tinklas yra realizuojamas „klaidos

skleidimo atgal“ algoritmu.

Programai duomenų klasės turi būti sumaišytos ir suskirstytos į tris dalis:

Mokymo duomenys (angl. Training Data) – duomenys, kuriais bus apmokytas neuroninis

tinklas (Irisai – 50, Vyno sudėtis – 100, Balanso – 225, Krūties vėţio – 299 duomenys).

Testavimo duomenys (angl. Test Data) – duomenys, kuriais bus tikrinama, kaip tiksliai

apsimokė tinklas (Irisai – 50, Vyno sudėtis – 35, Balanso – 200, Krūties vėţio – 200

duomenų).

Validavimo duomenys (angl. Validate Data) – duomenys, kurie bus paduoti į tinklą, iš

kurių suţinosime jų išėjimo reikšmes iš jau apmokyto (Irisai – 50, Vyno sudėtis – 45,

Balanso – 200, Krūties vėţio – 200 duomenų).

Prieš apmokant tinklą yra pateikiami tokie parametrai, kurie yra pastovūs:

Didţiausias epochų skaičius: 10 000;

Aktyvacijos funkcija: Sigmoidinė.

4.5. lentelė. „PathFinder“ programos įėjimo parametrai ir gauti rezultatai

Įėjimo parametrai Gauti rezultatai

Duomenys Mokymo greitis

intervale [0,1; 0,9]

Neuronų skaičius

paslėptame sluoksnyje Paklaida (RMSE)

Irisai

0,2 1 0,0647

0,2 50 0,0520

0,9 1 0,0547

0,9 50 0,0524

Vyno

sudėtis

0,2 1 0,0972

0,2 50 0,0422

0,9 1 0,1001

0,9 50 0,0488

Balansas

0,2 1 0,1361

0,2 50 0,1104

0,9 1 0,1338

0,9 50 0,1103

Krūties

vėţys

0,2 1 0,1086

0,2 50 0,1052

0,9 1 0,1085

0,9 50 0,1056

Vidurkis 0,089413

41

Remdamiesi 4.5 lentelėje esančia informacija, matosi, kaip kinta paklaidos reikšmė, keičiant

mokymo greitį, bei neuronų skaičių vidiniame sluoksnyje. Paklaida būna maţesnė, kai imamas

maţesnis mokymo greitis ir panaudojama daugiau neuronų paslėptame sluoksnyje. Rezultatui

didesnę įtaką turi neuronų skaičiaus parinkimas, palyginus su mokymo greičiu.

4.5 „Cortex“ sistema

„Cortex“ programa yra panaši į „PathFinder“ programą. Abi programos yra nedidelės ir

skaičiuoja tik vieną tiesioginio sklidimo neuroninio tinklo metodą: daugiasluoksnį perceptroną

su vienu paslėptu neuronų sluoksniu. Tinklas yra realizuojamas „klaidos skleidimo atgal“

algoritmu.

Šioje sistemoje galima neuronų skaičių paslėptame sluoksnyje pasirinkti iki 300

(„PathFinder“ tik iki 50). Dar vienas privalumas – galima keisti aktyvacijos funkciją į tangentą

arba į sigmoidinę, o „PathFinder“ yra tik sigmoidinė aktyvacijos funkcija.

Prieš apmokant tinklą yra pateikiami tokie parametrai:

Didţiausias epochų skaičius: 10 000;

Aktyvacijos funkcija: Sigmoidinė arba Tangentas.

Nagrinėta „Cortex“ programos paklaidų kitimąas, keičiant aktyvacijos funkciją ir neuronų

skaičių paslėptame sluoksnyje. Gauti rezultatai pateikti 4.6 lentelėje.

4.6. lentelė. „Cortex“ programos įėjimo parametrai ir gauti rezultatai

Duomenys

Įėjimo parametrai Gauti rezultatai

Aktyvacijos

funkcija

Neuronų skaičius

paslėptame

sluoksnyje

Maţiausia mokymo

paklaida

Maţiausia testavimo

paklaida

Irisai

Sigmoidinė 150 0,164914 0,169399

Sigmoidinė 300 0,00274712 0,00252169

Tangentas 150 0,12053 0,119554

Tangentas 300 0,162693 0,17565

Vyno

sudėtis

Sigmoidinė 150 0,154541 0,113412

Sigmoidinė 300 0,151097 0,127502

Tangentas 150 0,152927 0,124833

Tangentas 300 0,145596 0,148373

Balansas

Sigmoidinė 150 0,0663131 0,062163

Sigmoidinė 300 0,0731284 0,089934

Tangentas 150 0,0817859 0,0743016

Tangentas 300 0,0756524 0,0768899

Krūties

vėţys

Sigmoidinė 150 0,145568 0,14494

Sigmoidinė 300 0,131787 0,127002

Tangentas 150 0,106296 0,104648

Tangentas 300 0,115517 0,119347

Vidurkis 0,115693 0,111279

42

Pastaba. 80% visų duomenų pateikiama į tinklą apmokymui, o su likusiais 20%,

testuojamas tinklas.

Iš 4.6 lentelėje pateiktos informacijos matosi, kad irisų [150; 4] ir balansų [625; 4] duomenų

atveju klaidos paklaida yra maţesnė, kai aktyvacijos funkciją parenkama sigmoidinę, o vyno

sudėties [178; 13] ir krūties vėţio [699; 10] atveju paklaida yra maţesnė su tangento aktyvacijos

funkcija. Išvada yra tokie, kad sigmoidinę funkciją reikia rinktis, kai duomenys turi maţiau

kriterijų (irisų ir balanso atveju tik po 4), o kai yra daugiau parametrų, geriau apsimoko su

tangento funkcija (vyno sudėties 13, o krūties vėţio 10). Į tinklą pateikus didesnį neuronų

skaičių, rezultate gaunami maţesni paklaidos rezultatai.

4.6 Programų palyginimas tarpusavyje

Analizuojant programas, atlikta 16 neuroninio tinklo apmokymo kartų ir kiekvieną kartą

gaunami skirting rezultatai. Neuroninis tinklas turi apsimokyti per 10 000 epochų, tai yra šis

pagrindinis kriterijus pritaikytas visoms programoms, pagal kurį yra palyginami tarpusavyje

gauti rezultatai.

4.7 lentelėje pateikti gautų testavimo paklaidų vidurkiai, dispersijos, bei pasikliautinieji

intervalai, kai pasikliovimo lygmuo yra 0,95.

4.7.lentelė. Programų gautų paklaidų vidurkiai, dispersijos ir pasikliautinieji intervalai

Eil.

Nr. Programos Metodas Vidurkiai Dispersijos

Pasikliautinasis

intervalas

1 „DTREG“ Daugiasluoksnis

perceptronas 0,299986 0,014014 [0,292519; 0,307452]

2 „DTREG“ Radialinių bazinių funkcijų

neuroninis tinklas 0,267867 0,016503 [0,259075; 0,276659]

3 „Matlab“ Daugiasluoksnis

perceptronas 0,026718 0,001353 [0,027438; 0,028159]

4 „PathFinder“ Daugiasluoksnis

perceptronas 0,118925 0,011812 [0,112632; 0,125218]

5 „Cortex“ Daugiasluoksnis

perceptronas 0,111279 0,00176 [0,110342; 0,112217]

Nors duomenys ir epochų skaičius daugiasluoksnio perceptrono atveju yra toks pat, bet

naudojant skirtingas programas, gaunami skirtingi rezultatai. 4.2 pav. pavaizduota, paklaidų

reikšmių ir jų pasikliautiniųjų intervalų išsidėstymas.

43

4.3. pav. Programų paklaidų vidurkiai ir pasikliautinieji intervalai

Iš duomenų apskaičiuoti vidurkiai yra maţai išsibarstę apie tikrąjį vidurkį, o neuroninis

tinklas, geriausiai yra apmokamas su „Matlab“ programa (4.3 pav.). „PathFinder“ ir „Cortex“

paklaidų reikšmės yra panašios, nors „Cortex“ sistemoje yra naudojama daugiau neuronų skaičių

paslėptame sluoksnyje. Prasčiausius rezultatus gaunami su „DTREG“ programa. Šioje sistemoje

radialinių bazinių funkcijų neuroninis tinklas geriau apsimoko, negu naudojant daugiasluoksnį

perceptroną.

0

0,05

0,1

0,15

0,2

0,25

0,3

0,35

0 1 2 3 4 5 6

Pak

laid

ų r

eikš

mės

Programos

Programų paklaidų vidurkiai ir pasikliautinieji intervalai

44

5. Išvados

Šiame darbe atlikta tiesioginio sklidimo neuroninių tinklų sistemų lyginamoji analizė. Buvo

apţvelgta 14 skirtingų programų, jos suskirstytos pagal kainą, metodų panaudojimą, bei

parametrų keitimo galimybes. Nagrinėtose sistemose populiariausias tiesioginio sklidimo

neuroninio tinklo metodas yra daugiasluoksnis perceptronas, realizuotas „klaidos skleidimo

atgal“ algoritmu. Rečiausiai yra naudojamas vienasluoksnis perceptronas.

Visos programos buvo įvertintos dešimtbalėje sistemoje pagal mokymo metodų įvairumą,

parametrų keitimo galimybes, programos stabilumą, programos kokybę, kainos ir kokybės

santykį. Aukščiausiu balu įvertinta „Matlab“ (10 balų), ţemiausias balas skirtas „SharkyNN“ (2

balai).

Detalesnei analizei pasirinktos keturios programos („DTREG“, „Matlab“, „PathFinder“,

„Cortex“) pagal kelis kriterijus:

1. Pagal 3.15 lentelėje esančią informaciją, pasirinktos tokios sistemos, kurios įvertintos

aukščiausiu balų („Matlab“ (10 balų), „DTREG“ (8 balai), „Cortex“ (7 balai),

„PathFinder“ (7 balai)).

2. Dvi sistemos turi būti profesionalios ir mokamos („Matlab“, „DTREG“), kitos dvi

paprastos ir nemokamos („Cortex“, „PathFinder“).

3. Visos keturios sistemos turi apmokyti daugiasluoksnį perceptroną ir bent dvi dar ir

radialinių bazinių funkcijų metodą („Matlab“, „DTREG“).

Neuroninis tinklas buvo apmokytas keturiomis duomenų aibėmis: irisai, vyno sudėties,

pusiausvyros ir krūties vėţio. Kiekvienai programai ir metodui buvo atliekama 16 skirtingų

apmokymų keičiant: aktyvacijos funkciją, duomenų aibes, neuronų skaičių paslėptame

sluoksnyje. Naudojant programose apmokytą neuroninį tinklą, gauti rezultatai buvo palyginami

tarpusavyje. Iš gautų rezultatų galima daryti tokias išvadas:

1. Kuo daugiau yra panaudojama neuronų paslėptame sluoksnyje, tuo tinklas yra geriau

apmokamas.

2. Naudojant tą patį epochų skaičių, maţesnes paklaidas gaunama, kai analizuojami

didesnės duomenų aibės, nors laiko ir sugaištama daugiau.

3. Iš keturių nagrinėtų programų, geriausiai tinklas buvo apmokytas naudojant „Matlab“, o

prasčiausiai su „DTREG“.

45

6. Literatūra

1. Cecile, P. (2007). Analytic and Numerical Advances in Radial Basis Functions.

2. DTREG - Predictive Modeling Software. (n.d.). Nuskaityta iš www.dtreg.com

3. Dzemyda, G., Kurasova, O., Ţilinskas, J. (2008). Daugiamačių duomenų vizualizavimo

metodai. Vilnius.

4. FOREX-An Introduction to Neural Networks. (n.d.). Nuskaityta iš

http://cortex.snowcron.com

5. Graupe D. (2007). Principles Neural Networks. Singapore.

6. Grouper. (2007). Nuskaityta iš http://www.e-nuts.net

7. Gurney, K., Gurney, N. K. (1997). An Introduction to Neural Networks.

8. Hassoun Mohamad H. (1995). Fundamentals of Artificial Neural Networks.

9. Howlett, R. J., Jain, L. C. (2001). Radial Basis Function Networks 1 - Recent

Developments in Theory and Applications. New York.

10. Yee, P. V., Haykin, S. S. (2001). Regularized radial basis function networks - theory and

applications.

11. Yegnanarayana B. (2006). Artificial Neural Network.

12. Jinwoo, B., Sungzoon, C. (2002). An Up-Trend Detection Using an Auto-Associative

Neural Network: KOSPI 200 Futures. Intelligent Data Engineering and Automated

Learning - IDEAL 2002, (p. 359-366). Springer.

13. Karayiamis, N., Venetsanouls. (1993). Artificial Neural Networks: Learnings Algorithms,

Performance Evaluation and Applications. Springer.

14. MathWorks Nordic – MATLAB – The Language of echnical Computing. (2012).

Nuskaityta iš http://www.mathworks.se/products/matlab/index.html

15. Multiple Back-Propagation. (n.d.). Nuskaityta iš http://dit.ipg.pt/MBP

16. Nakamura, Y., Nakagawa, M. (2010). Three-Layer Feedforward Structures Smoothly

Approximating Polynomial Functions. Artificial Neural Networks ICANN 2010, (p. 411-

417). Springer.

17. NeuroIntelligence - Artificial Neural Network Software, Neural Network Simulator and

Classifier, Neuro Nets Solution for Data Mining. (2012). Nuskaityta iš

http://www.alyuda.com/neural-networks-software.htm

18. NeuroSolutions. (2011). Nuskaityta iš www.neurosolutions.com

19. Priddy, K. L., Keller, P. E. (2005). Artificial Neural Network - An Introduction.

Washington.

20. SharkTime Software – Sharky Neural Network – Classification neural network in Action.

(2012). Nuskaityta iš http://www.sharktime.com/us_SharkyNeuralNetwork.html

21. Simbrain. (n.d.). Nuskaityta iš http://www.simbrain.net

22. Sundararajan, N., Saratchandran, L. Y. (1999). Radial Basis Function Networks with

Sequential Lerning. Singapore.

46

23. STATISTICA - Automated Neural Networks. (2012). Nuskaityta iš

http://www.statsoft.com/products/statistica-automated-neural-networks/

24. Terrence Fine L. (1999). Feedforward Neural Network Methodology. Springer.

25. Tiberius – Predictive Modelling Software. (n.d.). Nuskaityta iš http://www.tiberius.biz

26. UCI Machine Learning Repository. (n.d.). Nuskaityta iš http://archive.ics.uci.edu/ml

27. Verikas, V., Gelţinis, A. (2003). Neuroniniai tinklai ir neuroniniai skaiciavimai.

Kaunas.

47

Santrauka

Pagrindinis darbo tikslas – atlikti kelių tiesioginio sklidimo neuroninių tinklų sistemų

lyginamąją analizę siekiant įvertinti jų funkcionalumą.

Šiame darbe apţvelgiama: biologinio ir dirbtinio neuronų modeliai, neuroninių tinklų

klasifikacija pagal jungimo konstrukciją (tiesioginio sklidimo ir rekurentiniai neuroniniai

tinklai), dirbtinių neuroninių tinklų mokymo strategijos (mokymas su mokytoju, mokymas be

mokytojo, hibridinis mokymas). Analizuojami pagrindiniai tiesioginio sklidimo neuroninių

tinklų metodai: vienasluoksnis perceptronas, daugiasluoksnis perceptronas realizuotas „klaidos

skleidimo atgal” algoritmu, radialinių bazinių funkcijų neuroninis tinklas.

Buvo nagrinėjama 14 skirtingų tiesioginio sklidimo neuroninių tinklų sistemos. Programos

buvo suklasifikuotos pagal kainą, tiesioginio sklidimo neuroninių tinklo mokymo metodų

taikymą, galimybę vartotojui keisti parametrus prieš apmokant tinklą ir techninį programos

įvertinimą. Programos buvo įvertintos dešimtbalėje vertinimo sistemoje pagal mokymo metodų

įvairumą, parametrų keitimo galimybes, programos stabilumą, kokybę, bei kainos ir kokybės

santykį. Aukščiausiu balu įvertinta „Matlab” programa (10 balų), o prasčiausiai – „Sharky NN”

(2 balai).

Detalesnei analizei pasirinktos keturios programos („Matlab“, „DTREG“, „PathFinder“,

„Cortex“), kurios buvo įvertintos aukščiausiais balais, galėjo apmokyti tiesioginio sklidimo

neuroninį tinklą daugiasluoksnio perceptrono metodu ir bent dvi radialinių bazinių funkcijų

tinklą. „Matlab“ ir „DTREG“ programos buvo profesionalios ir mokamos, o „PathFinder“,

„Cortex“ nemokamos ir paprastos. Naudojant šias programas buvo apmokytas neuroninis tinklas

su duomenimis (irisai, vyno sudėties, balansos, krūties vėţio). Gauti rezultatai palyginami

tarpusavyje. Nustatyta, kad geriausiai neuroninį tinklą apmoko “Matlab” programa, o

prasčiausiai – „DTREG“.

48

Summary

The main aim – to perform a comparative analysis of several feedforward neural system

networks in order to identify its functionality.

The work presents both: biological and artificial neural models, also classification of neural

networks, according to connections’ construction (of feedforward and recurrent neural

networks), studying strategies of artificial neural networks (with a trainer, without a trainer,

hybrid). The main methods of feedforward neural networks: one-layer perceptron, multilayer

perceptron, implemented upon “error feedback” algorithm, also a neural network of radial base

functions have been considered.

The work has included 14 different feedforward neural system networks, classified according

its price, application of study methods of feedforward neural networks, also a customer’s

possibility to change parameters before paying for the network and a technical evaluation of a

program. The programs have been evaluated from 1 point to 10 points according to the

following: variety of training systems, possibility to change parameters, stability, quality and

ratio of price and quality. The highest evaluation has been awarded to “Matlab” (10 points), the

lowest – to “Sharky NN” (2 points).

Four programs (”Matlab“, “DTREG“, “PathFinder“,”Cortex“) have been selected for a detail

analysis. The best evaluated programs have been able to train feedforward neural networks using

multilayer perceptron method, also at least two radial base function networks. “Matlab“ and

“DTREG“ were professional paid programs, while “PathFinder“ and “Cortex“ – free and

simple. The mentioned programs helped to train neural data ( iris, wine, balance – scale, breast –

cancer) network. After comparing the results it has been obvious, that the best training of neural

network is provided by “Matlab”, while the worst – “DTREG”.