Drago mi je da ustupim prostor blogeru pod nickom alselone. On se bavi neuralnim mrežama. Uživajte!
Jedan od nepresušnih izvora inspiracije za široki spektar naučnika u ljudskoj istoriji je formalizacija ljudskog razmišljanja i zaključivanja. Još od starogrčkih silogizama, preko svih matematičkih teorija verovatnoće i logike do današnjih modela veštačkih neuronskih mreža želja se svodila na razumevanje razmišljanja i dizajniranje samostalnih inteligentnih „agenata" koji su sposobni razumeti svet oko sebe i maksimizovati verovatnoću svog uspeha. Da bi se jedan „agent" uspešno snašao u svom „svetu" potrebno mu je da ima veliki dijapazon osobina i mogućnosti, kao što su: zaključivanje, pamćenje, učenje, planiranje, komuniciranje, neki vid percepcije okoline i slično.
Nauka o veštačkoj inteligenciji se zasniva na verovanju da se ljudski mozak može modelovati i simulirati, da u pozadini inteligencije stoje jasne matematičke formule pomoću kojih možemo napraviti mašinu ili obučiti softver.
Alan Turing, otac modernih računara, izjavio je da ako se mašina ponaša inteligentno kao čovek tada ona jeste inteligentna kao čovek. Turing je zaključio da o inteligenciji zaključujemo samo u odnosu na ponašanje. Ova ideja je osnova poznatog Turingovog testa inteligencije: „sudija" istovremeno razgovara sa računarom i sa čovekom. I računar i čovek se trude da zvuče ljudski. Ako sudija nije u močućnosti pouzdano da kaže ko je čovek a ko mašina možemo reći da smo imamo veštačku inteligenciju. (Da bi se test ograničio na procenu inteligencije a ne mogućnosti renderovanja zvuka podrazumeva se da se razgovor vodi elektronski, u formi četa.)
Veštačke neuronske mreže
Veštačke neuronske mreže su pokušaj modelovanja obrade podataka od strane nervnog sistema. Priroda prethodi matematici. Hajde da se podsetimo kako izgleda jedna nervna ćelija:
Dakle, imamo jednu malu procesnu jedinicu. Informacije ulaze preko dendrita, ćelijsko telo obrađuje podatke i obezbeđuje gorivo za život naše male ćelije, ultrabrzi kabel u formi aksona posleđuje informacije sledećima ćelijama.
Dizajn veštačkog neurona:
Svaki neuron poseduje sledeće elemente:
VNM:
Dve osnovne klase osobina VNM su:
VNM može da se sastoji od jednog neurona za prosta matematička zaključivanja (osnove binarne logike) ili od više slojeva neurona kod kompleksnijih zadataka.
Tipična trojslojna VNM se sastoji iz ulaznog sloja (prima ulaze iz „okoline"), skrivenog sloja i izlaznog sloja (izlazi iz njega su rezultat mreže):
Šta dobijamo povećanjem broja neurona i slojeva:
Recimo da imamo problem klasifikacije.
Na poligonu imamo dve plave i dve crvene kuglice raspoređene kao na slici. Naša mreža bi trebala da podeli naš poligon na delove sa plavim i delove sa crvenim kuglicama.
Kada bi kuglice bile malo drugačije raspoređene, kada bi zamenili mesta bilo koje plave i bilo koje crvene naš neuron bi mogao da podeli poligon na jasno definisana dva dela ali ovako ne može. Sve što je u mogućnosti je da „opali" jednu pravu liniju po poligonu pa šta „za'vati".
Ako imamo dvoslojnu mrežu, onda vidimo da je situacija mnogo lepša po nas, da smo uspeli dobiti dva jasna skupa. Situacija bi se ovde komplikovala ako bi smo ubacili jednu plavu u sredinu. Naša mreža više ne bi bila toliko pametna ali to bi bio mačiji kašalj za jednu troslojnu VNM.
Ovaj problem je poznat u literaturi kao EXOR problem.
Učenje VNM:
Kao što smo rekli učenje je proces podešavanja težina sinapsi u cilju postizanja željenog ili dovoljno dobrog izlaza iz neurona za date ulazne signale.
Postoje dva osnovna tipa algoritama učenja:
Kod nadgeldanog učenja VNM se u svakoj iteraciji postupka učenja predstavljaju i ulazni podaci („pitanje") i željeni izlaz („odgovor"). Težine sinapsi se podešavaju tako da bi mreža mogla što tačnije da ponovi željeni izlaz za date ulaze. (Posebna grupa algoritama sa učiteljem je grupa u kojoj se ne predstavlja rešenje problema već samo kritika na rezultat koji je mreža dala)
Na primer, potrebno je napisati softver koji, na datoj slici, broji koliko krugova ima na njemu.
VNM predstavljamo svaki od prva tri crteža kao i ispravan odgovor.
1. Slika - jedan krug
2. Slika - dva kruga
3. Slika - dva kruga
Ako bi smo našoj mreži, u zavisnosti od njene veličine i kompleksnosti zadatka, predstavili dovoljan broj puta dovoljan skup poznatih, rešenih, situacija ona bi „naucila", generalizovala, problem i veoma lako „rekla" da na četvrtoj slici (ili bilo kojoj drugoj mogućoj kombinaciji jednog ili dva kruga na crtežu) ima dva kruga.
Klasa ovakvih problem naziva se pattern recognition i navešću vam samo par primera gde se uspešno upotrebljava: automatska identifikacija broja leukocita u nalazu krvi, provera da li je flaša dobro izgleda i da li je nalepnica ispravno zalepljena u pivarskoj industriji, automatsko javljanje alarma u odnosu na „sumnjivu" situaciju sa sigurnosne kamere, OCR, prepoznavanje otkucanog ili napisanog teksta...
Jedan od najpoznatijih i najčešće korišćenih algoritama je backpropagation algoritam:
1. Inicijalizujemo mrežu slučajnim vrednostima
2. Predstavimo mreži prvi trening skup podataka
3. Poredimo izlaz iz mreže sa željenim izlazom
4. Računamo grešku za svaki izlazni neuron
5. Računamo faktor skaliranja, koliko treba da se poveća ili smanji izlaz da bi bio ispravan
6. Menjamo težine sinapsi na izlaznim neuronima u odnosu na faktor skaliranja
7. Dodeljujemo veličinu „krivice" za svaki neuron iz sloja pre. Koliko je svaki neuron „kriv" što je neuron iz izlaznog sloja pogrešio. Najkrivlji je onaj koji je dao najveći izlaz, tj. najveći ulaz u izlazni neuron
8. U odnosu na krivicu menjamo težine
9. Idemo u nazad dok ne popravimo sve slojeve
10. Predstavljamo sledeći skup podataka
11. Ako je greška na izlatu manja od maksimalno dozvoljene završavamo obuku
Kod nenadgledanog učenja nemamo tutora koji će našoj mreži da kaže šta je ispravno ili da li je dobro uradila zadatak već mreža procenjuje strukturu podataka na kojoj se nalazi ili odnose između podataka i u odnosu na njih određuje svoje rešenje. Mreža ocenjuje promenu svoje „okoline" posle svakog koraka, da li je bliže ili dalje od rešenje (na primer kretanje u 2D koordinatnom sistemu) i tako ocenjuje svoje ponašanje i stiče znanje.
Probajte da četujete sa A.L.I.C.E. : http://www.alicebot.org/
Toliko za ovaj put...