Pastaraisiais metais vis svarbesnės tampa intelektinės sistemos, kurios plačiąja prasme remiasi programiniais skaičiavimais (soft computing). Tradicinio aparatinio skaičiavimo (hard computing) operacijoms būdingas tikslumas ir apibrėžtumas, tuo tarpu programiškai skaičiuojama su tam tikrais tikslumo nuostoliais.
Programiniai skaičiavimai imituoja žmogaus suvokimą ir sąmoningumą. Tokios sistemos geba mokytis iš patirties, todėl gali būti taikomos net tose srityse, apie kurias dar nesukaupta tiesioginių žinių. Be to, pasitelkusios lygiagrečias skaičiavimo architektūras, modeliuojančias biologinius procesus, jos gautus įvesties signalus gali susieti su išvesties signalais daug greičiau, nei taikant nuoseklius analitinius metodus.
Dažniausiai tokios sistemos remiasi neraiškia logika, skaičiavimais neuroniniais tinklais, bendriniais algoritmais ir tikimybiniu pagrindimu. Taigi metodologijos prasme jos yra hibridinės.
Daug dešimtmečių mokslininkai siekė sukurti mašinas, sudarytas iš daugybės paprastų komponentų. Užuominų šia tema galima rasti net XIX amžiaus mokslinėje literatūroje. Stengdamiesi atkartoti žmogaus smegenų veiklą, praėjusio amžiaus ketvirtojo dešimtmečio tyrinėtojai sukūrė paprastą techninę (vėliau – ir programinę) įrangą biologiniams neuronams ir jų sąveikai modeliuoti. Šeštajame dešimtmetyje, apibendrinus biologinių ir fiziologinių neuronų sampratą, buvo sukurtas pirmasis dirbtinis neuroninis tinklas. Iš pradžių tai buvo elektroninė schema, o vėliau neuroninis tinklas perkeltas į lengviau manipuliuojamą kompiuterinio modeliavimo lygmenį.
Tačiau vėliau dėl daugelio priežasčių vietoj neuroninių tinklų pradėtas naudoti simbolius apdorojantis Von Neumanno kompiuterio tipas. Ir nors septintajame dešimtmetyje vis dar buvo tyrinėjami dirbtiniai neuroniniai tinklai, jiems buvo skiriama per mažai dėmesio. Pastaraisiais metais padaugėjo darbų, kuriuose aprašomas daugiasluoksnių tinklų mokymas, taip pat buvo sukurta matematinė teorija, padedanti suprasti svarbios neuroninių tinklų klasės dinamiką. Neuroniniais tinklais susidomėta dar ir dėl to, kad dabartiniai kompiuteriai daug spartesni nei penktajame ir šeštajame dešimtmečiuose.
Tyrėjus neuroniniai tinklai domina gebėjimu pamėgdžioti žmogaus smegenų veiklą ir galimybe mokytis bei reaguoti. Prisitaikymas arba mokymasis –pagrindinis neuroninių tinklų tyrimų objektas. Užduotims atlikti neuroniniai tinklai išmoksta įvesčių ir išvesčių rinkinį, o paskui pritaiko savo žinias aproksimuodami arba prognozuodami įvesčių ir išvesčių priklausomybę.
Biologinis neurono modelis
Žmogaus nervų sistema – labai sudėtingas neuronų tinklas. Pagrindinis šios sistemos elementas – smegenys, sudarytos iš beveik 1010 biologinių neuronų, tarpusavyje sujungtų potinkliais. Kiekvieną neuroną sudaro ląstelės branduolys, vienas aksonas ir daugybė dendritų. 1 pav. pavaizduoto neurono modelio pavyzdžiu sukurtas dirbtinis neuronas. Dendritas priima signalus iš kitų neuronų. Aksoną galima įsivaizduoti kaip ilgą vamzdelį su atšakomis. Maži tarpai tarp išsišakojusių aksono galų ir dendritų vadinami sinapse.
1 pav. Biologinio neurono sandara
Vieno neurono aksonas sudaro sinapsinius ryšius su daugeliu kitų neuronų. Atsižvelgiant į neurono tipą, sinapsinių ryšių skaičius svyruoja nuo kelių šimtų iki dešimties tūkstančių. Ląstelės branduolys sumuoja signalus, gautus iš dendritų ir daugybės sinapsių. Neuronas, gavęs pakankamai įvesties signalų, stimuliuojančių neuroną iki slenkstinio (threshold) lygio, išsiunčia impulsą savo aksonui. Tačiau jei įvesties signalai nepasiekia reikiamo slenkstinio lygio, jie greitai nuslopsta taip ir nesukėlę jokių veiksmų.
Neuroninių tinklų elementai
Dirbtinis neuronas (2 pav.) yra svarbiausias neuroninio tinklo elementas. Jį sudaro trys pagrindiniai komponentai: svoriai, slenksčiai ir viena aktyvavimo funkcija.
W =[W1, W2, ..., Wn] yra svorio koeficientai, rodantys stiprumus atskirų įvesčių, aprašytų vektoriumi X =[x1 x2 x3, ..., xn]. Kiekvienos įvesties signalas dauginamas iš svorio koeficiento. Tokiu būdu gaunama neuroninė jungtis XW.
Jei svorio koeficientas teigiamas, XW sužadina signalą išvestyje y, o jei neigiamas – XW slopina išvesties signalą.
Vidinis neurono slenkstis veikia neurono y išvesties aktyvavimą štai tokiu būdu:
2 pav. Dirbtinio neurono sandara
Aktyvavimo funkcija –tai matematinės operacijos su išvesties signalu. Kokio sudėtingumo aktyvavimo funkcija taikoma, priklauso nuo neuroninio tinklo sprendžiamo uždavinio. Populiariausios – tiesinė, slenksčio, Piecewise'o tiesinė, sigmoidinė ir hiberbolinė tangento aktyvavimo funkcijos.
Neuroninių tinklų klasifikacija
Skiriami vienasluoksnių ir daugiasluoksnių perceptronų neuroniniai tinklai. Dažniausiai naudojamą daugiasluoksnių perceptronų tipo neuroninį tinklą (3 pav.) sudaro:
- Įvesties sluoksnis –neuronai, priimantys informaciją iš išorinių šaltinių ir siunčiantys ją apdoroti tinklui. Tai gali būti arba jutiklių įvestys, arba tinklo išorėje esančių sistemų siunčiami signalai.
- Paslėptasis sluoksnis –neuronai, priimantys informaciją iš įvesties sluoksnio ir apdorojantys ją tik jiems žinomu būdu. Šis sluoksnis tiesiogiai nesusijęs su išoriniu pasauliu, t. y. jungiasi tik su kitais neuroninio tinklo sluoksniais.
- Išvesties sluoksnis – neuronai, gaunantys apdorotą informaciją ir siunčiantys ją iš neuroninio tinklo.
Atsižvelgiant į tai, kokia kryptimi siunčiami signalai, skiriami vienkrypčiai (asociatyvūs) ir grįžtamojo ryšio (autoasociatyvūs) tinklai.
Vienkrypčio ryšio neuroniniuose tinkluose vieno sluoksnio išvestys gali jungtis tik su kito sluoksnio įvestimis. Neegzistuoja ryšiai tarp vieno sluoksnio išvesčių ir to paties ar prieš tai einančio sluoksnio įvesčių. 4 pav. pateiktas vienkrypčio tinklo pavyzdys. Vieno sluoksnio išvestys susijusios su paskui einančio sluoksnio įvestimis. Jeigu šakos svoris lygus nuliui, laikoma, kad tarp šakos jungiamųjų neuronų ryšio nėra. Paskutinio sluoksnio išvestys laikomos tinklo išvestimis.
4 pav. Vienkrypčio ryšio neuroninis tinklas
Grįžtamojo ryšio neuroninio tinklo (5 pav.) įvestis sudaro išorinės įvestys ir paties tinklo išvestis, kuriai būdingas tam tikras vėlinimas. Puikūs grįžtamojo ryšio architektūros pavyzdžiai – Hopfieldo tinklas ir Boltzmano mašina.
5 pav. Grįžtamojo ryšio neuroninis tinklas
Skiriami du neuroninių tinklų mokymo tipai – prižiūrimas ir neprižiūrimas.
Prižiūrimam mokymui reikalingas išorinis mokytojas, valdantis mokymosi procesą ir teikiantis informaciją. Tai gali būti mokyti skirtų duomenų rinkinys arba stebėtojas, vertinantis neuroninio tinklo našumą. Prižiūrimo mokymo algoritmams skiriami mažiausio kvadratinio vidurkio, atgalinio skleidimo bei radialinės bazės funkcijos algoritmai. Prižiūrimo mokymo tikslas – priversti neuroninį tinklą pakeisti neuroninių jungčių svorius pagal pavyzdines įvestis ir išvestis. Mokymas baigiamas tinklui išmokus (galima minimali paklaida) sieti įvestis su išvestimis. Svarbus veiksnys – mokymo duomenų aibė, kuri turi būti suprantama ir privalo aprėpti visas praktines tinklo taikymo sritis. Taigi tinklas veiks gerai tik parinkus tinkamą mokymo aibę.
Neprižiūrimas mokymas neturi išorinio mokytojo. Remdamasi vidiniais kriterijais ir tinklo informacija, sistema pati save turi suderinti.
Tokiems neuroniniams tinklams pateikiami tik įvesčių pavyzdžiai, o sistema pati pagal požymius turi suklasifikuoti įvestis. Neprižiūrimo mokymo pavyzdys –Kohoneno tinklai.
Neuroniniai tinklai taikomi:
- Procesams modeliuoti ir valdyti: fizinės sistemos neuroninių tinklų modelis taikomas geriausiems valdymo parametrams nustatyti.
- Mašinų diagnostikai: stebi mašiną ir jai sugedus įspėja sistemą.
- Vertybinių popierių portfeliui formuoti: neuroniniai tinklai surenka tokį rinkinį, kad būtų galima gauti didžiausią vertybinių popierių pelną ir kiltų mažiausia rizika.
- Taikiniui atpažinti: karinėse programose padeda apdoroti paprastą arba infraraudonųjų spindulių vaizdą priešo taikiniui nustatyti.
- Medicininei diagnozei: analizuodami simptomus ir vaizdo duomenis, pavyzdžiui, rentgeno nuotraukas, tinklai padeda gydytojams nustatyti diagnozę.
- Finansinėms galimybėms vertinti: atsižvelgdami į kompanijos ar individualaus asmens finansines galimybes, tinklai nusprendžia, ar suteikti jiems kreditą.
- Tikslinei rinkodarai: padeda nustatyti vartotojų, kuriuos labiausiai turėtų sudominti tam tikra rinkodaros akcija, demografinius duomenis.
- Balsui atpažinti: tariamus žodžius verčia ASCII tekstu.
- Finansinėms prognozėms: remiantis senesniais duomenimis, prognozuojami būsimi akcijų kursai.
- Kokybei valdyti: pasitelkus vaizdo kamerą ar jutiklį, įtaisytą gamybos linijoje, analizuojama gaminių kokybė.
- Intelektinei paieškai: neuroniniai tinklai taikomi kuriant interneto paieškos variklius, besiremiančius ankstesnės vartotojo elgsenos analize ir pateikiančius vartotojui rezultatus.
- Sukčiavimams nustatyti: automatiškai nustato ir užblokuoja bandymus neteisėtai atsiskaityti kreditine kortele.