FAKULTET INFORMACIONIH TEHNOLOGIJA BEOGRAD
NASTAVNI PREDMET:
VEŠTAČKA INTELIGENCIJA
Predmetni nastavnik: Prof.dr Nebojša Denić
1.UVOD 1.1 Istorijat Veštačke inteligencije Od davnina ljude privlaĉi inteligencija - kako sam pojam inteligencije tako i mogućnost konstruisanja ―inteligentnih mašina‖ koje bi mogle samostalno da rade. Takve primere možemo pratiti kroz istoriju. U staroj Grĉkoj ljudi su se bavili pitanjima inteligencije, znanja i pravilnog zakljuĉivanja, a meĊu njima se naroĉito istakao Aristotel. U XIII veku je Ramon Lull (1235-1316) opisao sistem Ars Magna kojim je pokušao da pomoću mehaniĉkog kombinovanja, simboliĉke notacije i kombinatornih dijagrama ostvari "inteligentan" sistem. Tokom XVII veka, G. V. Leibnitz (1646-1716) i Blaze Pascal (16231662) pokušavali su da konstruišu mehaniĉku raĉunsku mašinu za sabiranje. Cifarska raĉunska mašina koju je konstruisao Charles Babbage, bila je u stanju da po odreĊenom algoritmu izvršava operacije sa dekadnim brojevima. Sredinom 19-tog veka George Bool razraĊuje algebru logike u kojoj se algebarska simbolika koristi za operisanje pojmovima pri logiĉkom izvoĊenju. Englez Alan Turing i Amerikanac Post, 1936-te godine, nezavisno jedan od drugoga objavljuju radove iz oblasti matematiĉke logike i iznose mogućnosti konstruisanja univerzalnog transformatora informacija. MeĊutim, tek pojavom prvog raĉunara "Electronic Numerical Integrator And Computer" (ENIAC) koga su 1945-te godine izmislili Mauchly i J. Presper Eckert, može se govoriti o inteligentnim mašinama. U poĉetku su raĉunari bili prvenstveno namenjeni za izvršavanje raĉunskih operacija ali vrlo brzo je uoĉeno da oni imaju daleko veće sposobnosti. Već prvi rezultati u primeni raĉunara upućivali su na mogućnost raĉunara da preuzme vršenje odreĊenih intelektualnih sposobnosti. Povoljni rezultati istraživanja naveli su neke od nauĉnika da daju preuranjene izjave da se ubrzo može konstruisati "misleća mašina" ili "elektronski mozak". Zbog ovih preuranjenih izjava su se vodile brojne debate. Krajem 50-tih, sve do sredine 60-tih godina, problematika veštaĉke inteligencije bila je dosta rasplinuta izmeĊu fantastike, mašte, potencijalnih mogućnosti i praktiĉnih ostvarenja. Zanemarivanje razlike izmeĊu potencijalne ostvarljivosti i obima praktiĉnih problema, koji se nalaze na putu do ostvarivanja ideje, je jedan od ĉestih uzroka nerazumevanja mogućnosti veštaĉke inteligencije. Ostvarivanjem praktiĉnih rezultata koji su našli primenu u privredi, veštaĉka inteligencija postaje interesantna za veliki broj nauĉnika razliĉitih oblasti. Danas postoje realizovani sistemi koji su u stanju da autonomno obavljaju kompleksne probleme, kakve su jedino ljudi bili u stanju da obavljaju. Nije redak sluĉaj da takvi sistemi obavljaju te zadatke i daleko uspešnije od ljudi. U sprezi sa raĉunarima, mašine postaju sposobne da rade samostalno, da upravljaju same sobom i da proizvode druge mašine, oslobaĊajući ĉoveka fiziĉkog i monotonog rada, prepuštajući mu rad na složenijim i kreativnijim poslovima. Veštaĉka inteligencija (AI1) je jedna od oblasti raĉunarstva koja se poslednjih decenija najbrže razvija. Paralelno sa tim burnim razvojem rastu i oĉekivanja od ove discipline. Dok se za neke oblasti raĉunarstva već smatra da su zaokružene i da se u njima ne oĉekuju novi znaĉajni prodori, od veštaĉke inteligencije se rezultati tek oĉekuju, uprkos tome što su već razvijeni mnogi „inteligentni― sistemi koji funkcionišu izuzetno dobro. Ovo možda možemo da objasnimo time što ti „inteligentni― sistemi i pored varljivih spoljnih manifestacija funkcionišu na 1
AI - artificial intelligence (Veštaĉka Inteligencija)
2
principima koje najĉešće ne možemo smatrati zaista inteligentnim. Time naravno veštaĉka inteligencija samo dobija na atraktivnosti, a novi eksperimenti i teorijska istraživanja predstavljaju put ka novim primenama u najrazlišcitijim oblastima. Kako je razvoj veštaĉke inteligencije oduvek bio zasnovan na komplementarnom povezivanju teorije i eksperimenata tako i budući razvoj zahteva proširivanje i uĉvršćivanje teorijskih znanja, pre svega matematiĉkih ali i znanja o specifiĉnim oblastima primene, kao i njihovu adekvatnu formalizaciju. Uobiĉajeno pod inteligencijom podrazumevamo sposobnost usvajanja, pamćenja i obrade odreĊenjih znanja. Ipak, nijedna definicija veštaĉke inteligencije nije opšte prihvaćena barem ne neka koja bi odgovarala uobiĉajenom, svakodnevnom. U svakom sluĉaju možemo smatrati da inteligencija podrazumeva bar dve sposobnosti: sposobnost pamćenja (skladištenja znanja) i mogućnost njegove obrade. Osoba (ili mašina) bez ikakvog znanja ne može biti smatrana inteligentnom. TakoĊe, inteligentnom ne može biti smatrana ni osoba (ili mašina) sa ogromnom koliĉinom „statiĉkog― znanja odnosno podataka, ali bez sposobnosti da to znanje obraĊuje i primeni. Postoje i drugi aspekti inteligencije. Jedan od njih je brzina obrade znanja koja je kada su u pitanju raĉunari zavisna ne samo od procedura za zakljuĉivanje već naravno i od tehniĉkih karakteristika pojedinog raĉunara. Sposobnost uĉenja / usvajanja novih znanja takoĊe je jedan od aspekata inteligencije. Aspektom inteligencije možemo smatrati i sposobnost komunikacije sa drugim inteligentnim bićima (mašinama). Ako se radi o mašini odnosno ureĊaju bilo koje vrste sa navedenim svojstvima govorićemo o veštaĉkoj inteligenciji. „Ako su u odvojene dve prostorije smeštene jedna ljudska osoba i neka naprava i ako na identične probleme one pružaju odgovore na osnovu kojih se ne može pogoditi u kojoj sobi je čovek, a u kojoj naprava, onda možemo smatrati da ta naprava ima atribute veštačke inteligencije.“ Bez obzira na sve manjkavosti ovih opisa nećemo pokušavati da pronaĊemo bolje opise pojmova o kojima je reĉ. Nakon svega, dobro je navesti i jednu rigorozniju i možda suvoparniju, ali verovatno najbolju definiciju veštaĉke inteligencije: „To je disciplina koja se bavi problemima u kojima se javlja kombinatorna eksplozija. „ Pojam veštaĉka inteligencija nastaje 1956. godine u Dartmudu2 na skupu istraživaĉa zainteresovanih za teme inteligencije, neuronskih mreža i teorije automata. Skup je organizovao Džon Mekarti, zajedno sa C. Šanonom, M. Minskijem i N. Ročesterom. Na skupu su stvorene osnove koncepta i trasiran je put za dalji razvoj veštaĉke inteligencije. Ranije 1950. godine Alan Tjuring3 je objavio jedan ĉlanak u ĉasopisu Majnd (Mind), pod naslovom Računari i inteligencija u kojem govori o konceptu veštaĉke inteligencije i postavlja osnove jedne vrste eksperimenta, preko kojeg bi se utvrdilo da li se odreĊeni raĉunarski sistem ponaša u skladu sa onim što se podrazumeva pod veštaĉkom inteligencijom ili ne. Kasnije će ta vrsta eksperimenta dobiti ime Tjuringov test. Nevil i Simon su na njemu predstavili svoj program za automatsko razumevanje Logic Theorist koji je napravio senzaciju. 2 3
Hanover SAD Alan Matison Tjuring ( 23. jun 1912 — 7. jun 1954) engleski matematiĉar, logiĉar i kriptograf.
3
Danas se smatra da su koncept veštaĉke inteligencije postavili V. Mekulok i M. Pits 1943.godine, delom u kojem se predstavlja model veštaĉkih neurona. Nekoliko godina kasnije stvoren je prvi neuronski raĉunar SNARC. Zaslužni za poduhvat su studenti Prinstona, M. Minski i D.Edmons 1951. godine. Negde iz iste epohe su i prvi programi za šah, ĉiji su autori Šanon4 i Tjuring. Iako se ova istraživanja smatraju kao poĉetak veštaĉke inteligencije, postoje mnoga druga koji su bitno uticala na razvoj ove oblasti. Neka potiĉu iz oblasti kao što su filozofija, matematika ili psihologija. 1.2 Pojam Veštačke Inteligencije:: Pojam veštaĉke inteligencije uveo je John McCarthy 1956 godine. Tako je nazvao svoja istraživanja. Iako naziv nije najpogodniji on je ipak i dan danas u upotrebi. Ova nauka pod inteligencijom podrazumeva one principe inteligentnog ponašanja, u koje spada sposobnost komunikacije, razvoja, prilagoĊavanja, osetljivost prema problemima, sposobnost rešavanja problema, ciljno orijentisana delatnost, samostalni izbor cilja. U veštaĉkoj inteligenciji se ne radi o inteligenciji o kojoj se govori u sluĉaju ĉoveka ili životinje. U sluĉaju životinje podrazumeva se stvaranje unutrašnje slike o svetu, manipulacija sa simbolima koji stvaraju sliku, sposobnost za prilagodjavanje i uĉenje, komunikaciju putem simbola, i dodaje se još i „namera―, kao i pojam „osećaj― dok se kod ĉoveka još dodaje i samorefleksija, sposobnost za raspoznavanje i prevazilaženje sopstvenih ograniĉenja. Raĉunarska tehnika u nekim oblastima prevazilazi efikasnost ĉovekovog uma u brzini, taĉnosti a pruža i druge prednosti. Raĉunar na ovim podruĉjima može dati iznenadjujuće i uspešne rezultate ali je isto tako u nekim drugim podruĉjima potpuno neuspešan, kao što je naprimer sposobnost pravilnog reagovanja u nekim neoĉekivanim odnosno nepredvidivim situacijama barem ne za sada.
1966 John McCarthy hosted a series of four simultaneous computer chess matches carried out via telegraph against rivals in Russia.
4
Klod Elvud Šenon (30. april 1916 — 24. februar 2001) ameriĉki nauĉnik i inženjer.
4
U godinama koje slede posle skupa u Dartmudu, postižu se znaĉajni napreci. Konstruišu se programi koji rešavaju razliĉite probleme. Na primjer, studenti Minskog će krajem šezdesetih godina implementirati program Analogy, koji je rešavao geometrijske probleme, sliĉne onima koji se javljaju u testovima inteligencije, i program Student, koji rešava algebarske probleme napisane na engleskom jeziku. Nevil i Simon će razviti General Problem Solver (GPS), koji pokušava imitirati ljudsko razmišljanje. Samuel je napisao programe za igru checkers, koji su bili osposobljeni za uĉenje te igre. Mekarti implementira programski jezik Lisp 1958. godine. Iste godine je napisao ĉlanak Programs with Common Sense, gde opisuje jedan hipotetiĉki program koji se smatra prvim kompletnim sistemom veštaĉke inteligencije. Ova serija uspjeha se lomi sredinom šezdesetih. Do tada implemetirani sistemi su funkcionisali u ograniĉenim domenima, poznatim kao mikro-svetovi (microworlds). Transformacija koja bi omogućila njihovu primenu u stvarnom okruženju nije bila tako lako izvodljiva. Do tog momenta rešavanje problema je bilo bazirano na jednom mehanizmu opšte pretrage preko kojeg se pokušavaju povezati, korak po korak, elementarne osnove razmišljanja da bi se došlo do konaĉnog rešenja. Naravno takav pristup podrazumeva i velike izdatke, te da bi se smanjili, razvijaju se prvi algoritmi za potrebe kontrolosinja troškova istraživanja. U isto vreme, u vezi programa za igre, definiše se pretraga alfa-beta. Tvorac ideje je Mekarti 1956. godine. Važnost shvatanja znanja u kontekstu primene, dovela je do detaljnijih studija metoda predstavljanja znanja. IzmeĊu ostalih definisale su se semantiĉke mreže i. U istom periodu poĉinju da se koriste odreĊene vrste logike za predstavljanje znanja odnosno uĉenja. Paralelno s tim, nastavljaju se istraživanja za stvaranje sistema za igru checkers, za koji je zaslužan Samuel, orijentisan na implementaciju neke vrste metode uĉenja. E.B. Hunt, J. Martin i P.T. Stone 1969. godine konstruišu hijerarhijsku strukturu odluka. Kilijan 1979. predstavlja metod ID3. S druge strane, P. Vinston, 1979. godine, razvija vlastiti program za uĉenje deskripcija složenih objekata. Kasnije sredinom 80-ih ponovna primena metode uĉenja sa neuronskim mrežama, dovodi do ponovnog oživljavanja ove oblasti. Konstrukcija aplikacija za stvarna okruženja dovela je do potrebe razmatranja aspekata kao što su neizvesnost ili nepreciznost (koji se takoĊe javljaju prilikom rešavanja problema u igrama). Na osnovu ovih istraživanja poĉev od osamdesetih godina, konstruišu se prvi komercijalni sistemi veštaĉke inteligencije uglavnom tako-zvani, ekspertni sistemi.
5
Humanoidni robot. Predstavljen 2000 god. ASIMO (Advanced Step in Innovative Mobility)
Danas osnovni problemi koji se javljaju u istraživanjima veštaĉke inteligencije vezani su za nastojanja konstruisanja kooperativnih sistema na bazi agenata, ukljuĉujući sisteme za upravljanje podacima, utvrĊivanje redosleda iskorišćavanja podataka i pokušaja imitacije ljudskog jezika. 1.3 Definicije VI - Veštačke Inteligencije •
Kod struĉnjaka koji se bave problematikom VI postoje razna shvatanja i definicije.
•
Pre svega, postoje razmimoilaženja u vezi toga da li je VI samo oblast, deo neke nauke - nauĉna disciplina ili je to samostalna nauka
•
Što se tiĉe problematike kojom se VI bavi, tu su razne definicije uglavnom u saglasnosti i odnose se na problematiku konstruisanja mašina - ureĊaja koji će ispoljavati takve vrste ponašanja, koje bi da su rezultat ljudskog ponašanja, bile okarakterisane kao inteligentne 6
•
1983 godine bilo je preko 140 definicija VI
Najrasprostranjena definicija Veštaĉke Inteligencije je ona koju je dao Marvin Minsky 5: „Veštačka inteligencija je ona nauka, koja osposobi računar za obavljanje takvih radnji, koje se obeleže kao inteligentne, kada ih čovek izvršava.“ Postoje i mnoge druge teorije koje se koriste da definišu Veštačku Inteligenciju: „Bilo koji problem za koji ne postoji efikasno algoritamsko rešenje je problem veštačke Inteligencije.“ Ovakva definicija daje praktiĉniji i bolji pogled na pojam VI od uobiĉajene Makartijeve definicije da je to oblast raĉunarstva ĉiji je cilj rezonovanje na raĉunaru na naĉin koji je sliĉan ljudskom. Postoji mnogo definicija za veštaĉku inteligenciju: Veštačka inteligencija je deo nauke koja se bavi dizajniranjem inteligentnih kompjuterskih sistema, to jest sistema koji pokazuju karakteristike koje povezujemo sa inteligencijom u ljudskom ponašanju, razumevanje govora, učenje, rešavanje problema i tako dalje. Veštačka inteligencija je naučna oblast u kojoj se izučavaju izračunavanja da bi se izračunavanjem omogućila percepcija, rezonovanje i činjenje. VI6 se bavi programiranjem kompjutera za izvoĎenje zadataka koje trenutno bolje izvršavaju ljudi, jer se pri tome koriste viši mentalni procesi kao što je perceptualno učenje, organizacija memorisanog, rasuĎivanje. AI se bavi proučavanjima kako da kompjuteri rade ono što ljudi trenutno rade bolje. Veštačka inteligecija je naučna oblast u kojoj se izučavaju izračunavanja da bi se izračunavanjem omogućila percepcija, rezonovanje, i činjenje. Veštačka inteligencija je naučna oblast u kojoj se istražuje kako da se naprave računari koji bi uspešno radili stvari koje u ovom momentu rade bolje ljudi. AI je disciplina usmerena na razumevanje čovekove inteligencije kroz konstruisanje računarskih programa koji oponašaju inteligentno ponašanje. Termin veštaĉka inteligencija (engleski artificial inteligence) potiĉe od John-a McCarty7-ja. Mnogi autori se ne slažu da termin veštaĉka inteligencija opisuje najbolje ovu oblast nauke. Mnoge od oblasti informatike u osnovi imaju inteligentno ponašanje ali ne pripadaju veštaĉkoj inteligenciji u užem smislu. 5
Marvin Minski roĊen 9. avgusta 1927. godine u Njujorku, ameriĉki matematiĉar, jedn od najznaĉajnijih nauĉnika na polju veštaĉke inteligencije. Osnivaĉ laboratorije veštaĉke inteligencije Instituta tehnologije Masaĉusets (MIT) 6 Veštaĉka inteligencija (AI) 7 Džon Makarti (engl. John McCarthy, roĊen 4. septembra 1927. u Bostonu, Masaĉusets, SAD — 23. oktobar 2011), ameriĉki nauĉnik koji je 1971. dobio Tjuringovu nagradu za veštaĉku inteligenciju.
7
Neke od mogućih definicija veštaĉke inteligencije: Veštačka inteligencija je naučna oblast u kojoj se izučavaju izračunavanja da bi se izračunavanjem omogućila percepcija, rezonovanje i činjenje. Veštačka inteligecija je naučna oblast u kojoj se izučavaju izračunavanja da bi se izračunavanjem omogućila percepcija, rezonovanje, i činjenje. Veštačka inteligencija je naučna oblast u kojoj se istražuje kako da se naprave računari koji bi uspešno radili stvari koje u ovom momentu rade bolje ljudi. Evo još nekih definicija: •
VI je deo kompjuterske nauke koja se bavi dizajniranjem inteligentnih kompjuterskih sistema, to jest sistema koji pokazuju karakteristike koje povezujemo sa inteligencijom u ljudskom ponašanju - razumevanje govora, uĉenje, rešavanje problema i tako dalje
•
VI se bavi programiranjem kompjutera za izvoĊenje zadataka koje trenutno bolje izvršavaju ljudi, jer se pri tome koriste viši mentalni procesi kao što je perceptualno uĉenje, organizacija memorisanog, rasuĊivanje
•
VI je prouĉavanje mentalnih moći kroz upotrebu modela kompjutacije. Pri tome je fundamentalna radna pretpostavka da "Ono što mozak ĉini može biti zamišljeno na nekom nivou kao vrsta kompjutacije
•
VI je disciplina usmerena na razumevanje ĉovekove inteligencije kroz konstruisanje raĉunarskih programa koji oponašaju inteligentno ponašanje
•
VI se bavi prouĉavanjima kako da kompjuteri rade ono što ljudi trenutno rade bolje
•
Sve ove definicije VI raznih autora uglavnom se odnose na osnovni aspekt VI, a to je imitacija inteligentnog ponašanja kod ljudi. Oblast VI je multidisciplinarna, jer koristi rezultate i povezana je sa raznim drugim naukama kao psihologija, sociologija, fiziologija, programiranje, teorija sistema itd
Poznat je Turing - ov test koji predstavlja kriterijum za inteligentno ponašanje mašine (raĉunara). Test se sastoji u tome da ĉovek vodeći konverzaciju preko terminala treba da zakljuĉi da li je sagovornik ĉovek ili mašina. Mašina se po ovom testu smatra inteligentnom ako ĉovek na osnovu odgovora mašine ne može da napravi razliku izmeĊu živog sagovornika i mašine Termin veštaĉka inteligencija (engleski artificial inteligence) potiĉe od John-a McCarty-ja. Mnogi autori se ne slažu da termin veštaĉka inteligencija opisuje najbolje ovu oblast nauke. Mnoge od oblasti informatike u osnovi imaju inteligentno ponašanje ali ne pripadaju veštaĉkoj inteligenciji u užem smislu. 8
Dva glavna pravca razvoja veštaĉke inteligencije su:
Prouĉavanje prirodne inteligencije (spoznavanje funkcija mozga, modeliranje rada mozga, simuliranje ĉovekovog ponašanja, reagovanja i rezonovanja). Postizanje inteligentnog ponašanja primenom drugaĉijih pristupa, kakvi se ne mogu sresti u prirodnim sistemima.
Veštaĉku inteligenciju prema pristupu rešavanja problema možemo klasifikovati na tri glavna pristupa i to su:
neuronske mreže, modeliranje evolucije i heuristiĉko programiranje.
Klasifikacija veštaĉke inteligencije prema vrsti rešavanja problema:
sistemi za rešavanje ĉovekovih uobiĉajenih zadataka: - prepoznavanje slika i govora, - razumevanje, generisanje i prevoĊenje prirodnih jezika, - snalaženje u svakodnevnim situacijama, - primena u robotici.
sistemi za rešavanje formalnih zadataka: - logiĉke igre, - matematiĉka logika, geometrija, integralni raĉun, - osobine programa.
sistemi za rešavanje ekspertnih zadataka: - konstruisanje, nalaženje grešaka, planiranje proizvodnje, - nauĉne analize i dijagnostika (biologija, medicina, hemija, pravo), - finansijska analiza, - programi za razvoj ovakvih sistema.
Tehnike koje pripadaju veštaĉkoj inteligenciji morale bi da koriste znanja koje su organizovana tako da omogućavaju:
generalizaciju, predstavljanje i preslikavanje u formi razumljivoj ljudima, lako modifikovanje, da se koriste informacije koje nisu kompletne, 9
da pomažu u smanjenju broja mogućnosti koje bi inaĉe morale biti razmatrane (heuristike).
Prepoznavanje oblika je kljuĉno za snalaženje u svakodnevnim situacijama, kako za žive tako i veštaĉke sisteme. Pri rešavanju problema vezanih za prepoznavanje oblika nastaju velike teškoće jer analogne signale koje primaju senzori/receptori sadrže veliki broj informacija, od kojih dobar deo sadrži šum, pa ti signali ĉesto nisu dovoljno jasni. Ovo otežava primenu raĉunara za snalaženje u svakodnevnim situacijama, pa nije ni ĉudo što su i životinje, za koje se smatra da su manje inteligentne od ljudi, sposobne za daleko kvalitetniju vizuelnu i zvuĉnu percepciju i obradu takvih signala nego današnji raĉunari. •
Da li postoji veštaĉka inteligencija?
•
Da li je podela na ―prirodnu‖ i ―veštaĉku‖ inteligenciju opravdana?
•
Nastanak ―klasiĉne‖ veštaĉke inteligencije – druga polovina XX veka
•
Period od nekih desetak godina:
•
sredinom 50 - tih godina, ranih 60-tih godina ili u savremenoj formi oko 1965
•
Civilizacijski koreni veštaĉke inteligencije:
•
U antiĉkom periodu znaĉajan je grĉki filozof Aristotel (384-322 p.n.e) koji se bavio zakonitostima logiĉkog mišljenja
•
Teofrast (372-287 p.n.e) i Krisip (281-205 p.n.e)
•
Aristotel je postavio osnovne zakonitosti logiĉkog mišljenja koje je nazvao silogizmima
•
Silogizmi su pravila izvoĊenja posrednih zakljuĉaka na osnovu osnovnih sudova ili premisa
•
Primer za silogizam je izvoĊenje zakljuĉka iz sledećih sudova: •
Operativni sistem je osnovni raĉunarski program.
•
Windows je operativni sistem.
Zakljuĉak: Windows je osnovni raĉunarski program. U prethodnom primeru može da se uoĉi: •
subjekat – S, predikat – P i srednji pojam – M koji ne figuriše u zakljuĉku, ali služi da poveže subjekat i predikat u zakljuĉku
•
Windows je S, osnovni raĉunarski program je P, dok je operativni sistem M i ne figuriše u zakljuĉku. Ovakva silogistiĉka figura bi mogla da se predstavi na sledeći naĉin:
•
M–P 10
•
S–M
•
S–P
Osim ove Aristotel daje još dve silogistiĉke figure: •
P–M
•
S–M
•
S–P
•
Silogistiĉka figura
•
P–M
•
M–S
•
S–P
•
Potiĉe od Galena (131 – 200 p.n.e), grĉkog lekara i filozofa.
•
Istorija koja sledi nije tako znaĉajna sa aspekta ideja veštaĉke inteligencije, bar ne neposredno.
•
Za neke probleme je potrebno da proĊe veoma dugo vreme dok se ne krene dalje.
•
Mnogo kasnije filozof i matematiĉar G. V. Lajbnic (1646-1716)
•
Mašina za zakljuĉivanje koja bi mogla samostalno da vrši dokazivanje u raznim nauĉnim oblastima na univerzalan naĉin
•
Šreder, 1890, anticipira nastanak ―Mislećih mašina‖ koje će ĉoveka osloboditi dela napornog umnog rada analogno kao što su to mašine uĉinile sa fiziĉkim radom
•
Realne mogućnosti za konkretno ostvarivanje takvih i sliĉnih ideja naravno nastaju sa pojavom prvih digitalnih elektronskih raĉunara 40 - tih godina 20. veka.
•
Istovremeno sa nastankom prvih raĉunara ameriĉki matematiĉar Džon fon Nojman (1903-1957) daje svoj ĉuveni opšti model raĉunara na kome se zasniva praktiĉno svaki ikada napravljeni digitalni raĉunar sve do današnjih dana
•
Iako su prvi raĉunari uglavnom bili namenjeni i koristili se za numeriĉka izraĉunavanja, brzo je shvaćeno da su raĉunari mašine sa daleko širim mogućnostima primene
•
Prvi pokušaji primene raĉunara u oblasti VI bili su na polju igara (šah), dokazivanja teorema (jednostavnije teoreme), i opšteg rešavanja problema (jednostavniji zadaci)
•
Mogućnost opšteg rešavanja problema se pokazala kao izuzetno težak zadatak, teži nego što se to oĉekivalo
M-P i
M-S S-P
11
•
Istraživaĉi nisu bili u stanju da metode i sredstva VI primene na zadatke koje rešavaju eksperti u raznim oblastima
•
Zbog toga se u daljim istraživanjima pažnja poklanja sistemima za rešavanje specifiĉnih problema u odreĊenim uskim oblastima
•
Domen VI obuhvata prouĉavanja u oblastima: •
Matematika (teorija igara)
•
Razni praktiĉni aspekti primene: •
Percepcija
•
Robotika
•
Razumevanje jezika
•
Zdravorazumsko razmišljanje •
Struĉna problematika u raznim oblastima:
•
Finansijska analiza
•
Dijagnostika i terapija u medicini
•
Analiza nauĉnih problema
•
Itd
1.4 Najvaţnije odrednice sistema VI sa aspekta realizacije na računarskim sistemima su: •
težište raĉunarskih programa u oblasti VI je više na obradi simboliĉkih podataka, a manje na numeriĉkoj obradi
•
cilj programa je rešavanje problema
•
do rešenja se uglavnom dolazi nekom vrstom pretraživanja, a reĊe direktno
•
programski jezici specifiĉno razvijeni i namenjeni za primenu u oblasti VI su LISP (LISt Processing), PROLOG (PROgraming in LOGic), objektno orijentisani jezici - Smalltalk i dr.
• Oblast VI obuhvata sledeća bitna područja: •
Rešavanje problema
•
Razumevanje prirodnih jezika 12
•
Robotika i viĊenje
•
Sistemi zasnovani na znanju (Knowledge Based Systems - KBS), ukljuĉujući i ekspertne sisteme
•
Mašinsko uĉenje
•
Logiĉko zakljuĉivanje
•
Programiranje
Rešavanje problema •
Rešavanje problema predstavlja zadatak koji se najĉešće rešava tako da se postupak rašĉlani na proste zadatake ili postupke ĉije je rešavanje rutinsko
•
Mogućnosti za rešenje može biti veoma mnogo, tako da se može zahtevati nalaženje optimalnog rešenja
•
Mora se definisati poĉetno stanje - od ĉega se polazi u rešavanju problema i opisati ciljno stanje koje odgovara rešenju
•
Stanje predstavlja svaka situacija koja može nastupiti pri rešavanju problema
Razumevanje govornog jezika •
Razumevanje govornog jezika od strane mašine je važno zbog mogućnosti znaĉajnog unapreĊenja komunikacije ĉovek – raĉunar
•
Tu postoje veliki problemi zbog složenosti govornog jezika i ĉesto prisutnih simbola, fraza koji se ne tumaĉe neposredno i ĉesto su ako se doslovce tumaĉe besmisleni, zatim zbog rasplinutosti i nedovoljne odreĊenosti jeziĉkih konstrukcija
Roboti Roboti su mašine koje samostalno obavljaju razne mehaniĉke radnje i operacije VI se u ovoj oblasti bavi pre svega: •
Kontrolisanjem pokreta robota
•
Problematikom prepoznavanja okoline
•
Uĉenje
•
Razumevanje govora
Da bi funkcionisanje robota bilo svrsishodno, pokreti moraju biti adekvatni trenutnom stanju neposrednog okruženja 13
Preko senzora se dobijaju informacije na primer vizuelne, koje dalje treba obraditi tako da se "prepoznaju" i razlikuju objekti i senke iz neposredne okoline 1.5 Oblasti Istraţivanja Veštačke Inteligencije: Inteligentnim sistemima nazivamo programske sisteme i druge praktiĉne rezultate veštaĉke inteligencije, odnosno posledicu jedne od neformalnih definicija VI: entiteti koji imaju sposobnost inteligentnog ponašanja koje srećemo kod ljudi. MeĊutim, ovakav pristup definisanju ima dodatnu slabost i to u oblastima kakve su mašinsko uĉenje ili ekspertni sistemi, javlja se potreba za rešavanjem problema kojima treba prevazići neki ljudski nedostatak. Na primer, velika koliĉina znanja kojim je teško upravljati ĉak i uz pomoć većeg broja ljudi. Većina definicija ne ostavlja nedoumice u tom pogledu, ali ne objašnjavaju potrebu i naĉin na koji ljudi žele da upravljaju znanjem. Oblasti veštaĉke inteligencije sa nekim podoblastima i tipovima inteligentnih sistema su: Ekspertni sistemi - sistemi kojima se ĉuva i eksploatiše znanje na naĉin sliĉan ljudskim ekspertima; Mašinsko uĉenje - metode klasifikacije, otkrivanja znanja (DataMining), prikupljanje informacija (information retrieval), indukcija, prepoznavanje šablona (pattern recognition) Igre - teorija igara i primene, šah; Predstavljanje znanja - jezici predstavljanja znanja, strukture; RasuĊivanje (rezonovanje) - pretraživanje, razliĉite metode rasuĊivanja i automatsko dokazivanje teorema,formalno automatsko dokazivanje ispravnosti; Obrada prirodnog jezika - mašinsko prevoĊenje, razumevanje i analiza dijaloga, automatsko ispravljanje i generisanje; Govor - problemi prepoznavanje, generisanje i razumevanja govora, prepoznavanje govornika i autentifikacija; Vizija - problemi interpretacije i razumevanja slika; Raĉunska inteligencija (soft computing) - fazi logika i sistemi, neuronske mreže, genetski algoritmi, primene u automatskom odluĉivanju i upravljanju; Robotika; Edukacija - inteligentni tutorski sistemi; Inteligentni interfejsi - modeliranje korisnika, dijaloga i objašnjenja, veza sa tehnologijom; Filozofski aspekti, etiĉke i društvene implikacije. U daljem tekstu biće reĉi o samo nekim od oblasti Veštaĉke Inteligencije.
14
2. EКСПЕРТСКИ СИСТЕМИ: Predstavljaju softvere koji sadrže veliku koliĉinu/masu znanja (informacija) u nekoj oblasti, a koje su bile preporuĉene od jednog ili više eksperata iz te oblasti. Kroz ovu koliĉinu/masu znanja sistem je sposoban da rešava zadate probleme na isti naĉin kao i ĉovek-ekspert. Konstrukcija jednog ekspertskog sistema podrazumeva dve vrste ekspertize. Prva je ĉovekova ekspertiza, a druga je inženjerskoekspertsko znanje da ĉovekovu ekspertizu kodifikuje i prilagodi u deskrtetne kompjuterske instukcije. Vremenom su se ova dva domena nezavisno razvijala, tako da imamo sa jedne strane postupke prikazivanje znanja, a sa druge logiĉke mehanizme procesiranja i interpretacije znanja. Ovo dalje omogućanva da se znanje jednostavno modifikuje. Ekspertni sistemi se koriste u brojnim situacijama: predvidjanja, interpretacije, planiranja, monitoringa, popravljanja, davanja instrukcija itd. U medicini, simptomi i bolesti nisu uvek u jednostavnom i direktnom odnosu. Sliĉno je i sa ekspertskim sistemima. Naime dok je ĉovek osposobljen da iznosi zakljuĉke na osnovu nepotpunih podataka, ekspertski sitem mora da prevazidje ovu nesigurnost na konkretan naĉin. U tom smislu najĉešće se pominje Bayers-ovo pravilo koje za osnovu ima statistiku uĉestalosti „simptoma― koji uzrokuju „bolest―. Napominje se da postoji više interpretacija Bayers-ovog pravila. Ekspertski sistemi u principu prate hibridnu arhitekturu kroz ĉetiri modula:
Implantacija expertize u bazu znanja; Povratak ekspertize iz baze znanja ka korisniku; Održavanje tj. podržavanje integriteta i konsistencije baze znanja; Testiranje i provera sistema.
2.1 Mašinsko Učenje: Mašinsko uĉenje kao oblast veštaĉke inteligencije predstavlja skup para-digmi, algoritama, teorijskih rezultata i primena iz razliĉitih oblasti veštaĉke inteligencije i evolucionih modela (u smislu pretraživanja) ali i drugih oblasti: statistike i verovatnoće i drugih oblasti matematike, teorije izraĉunljivosti (mora postojati svest o složenosti problema i ograniĉenjima koja proistiĉu iz toga), teorije (adaptivnog) upravljanja, informacione teorije, psihlogije i neurobiologije (neuronske mreže), filozofije, i drugih nauka. Cilj je napraviti programe koji bi bili u stanju da uĉe. Jedna preciznija defnicija pojma mašinskog uĉenja bi bila: „Program (mašina) M uči iz iskustva E u odnosu na klasu zadataka T i meru performansi P (mera je defnisana nad osobinom ili skupom osobina koje takoĎe moraju biti defnisane), ako se mera performansi P programa poboljšava u vezi zadataka T nakon iskustva E.“ Osnova podela tipova uĉenja vezuje se za uĉenje funkcija, ali se uoĉava sliĉno i sa drugim objektima uĉenja: Nadgledano (supervised) - kada su zadate vrednosti funkcije u skupu obuĉavanja 15
Nenadgledano (unsupervised) - kada nisu zadate vrednosti funkcije u skupu obuĉavanja (obiĉno se svodi na neki problem )
2.2 Igre – Teorije Igara: Teorija igara predstavlja matematiĉku teoriju i metodologiju koja se koristi za analizu i rešavanje konfliktnih i delimiĉno konfliktnih situacija u kojima uĉesnici imaju suprotstavljene interese. Razmatranje situacija u kojima dva ili vise subjekata donose odluke u uslovima sukoba interesa nazvano je teorijom igara zato što tipiĉne primere ovakvih situacija predstavljaju razliĉite društvene igre, kao što su sportske utakmice, kartaške igre (poker, bridz, i sl.), šah, itd. Naravno, iako je veći deo termina koji se koriste u okviru matematiĉke teorije igara sliĉan terminologiji društvenih igara, teorija igara ima mnogo širu primenu i koristi se za modeliranje konfliktnih situacija u matematici, politici, ekonomiji, vojnoj strategiji, itd. Pri tome, neophodno je istaći da metodi teorije igara služe za analizu i rešavanje takvih konfliktnih situacija koje karakteriše višekratno ponavljanje pojedinih odluka o mogućem razrešenju sukoba interesa izmedju uĉesnika, tj. igraĉa. Osnovna karakteristika teorije igara sadržana je u ĉinjenici da veliĉina rezultata koji će pojedini igraĉi ostvariti u igri ne zavisi samo od njihovog izbora mogućeg pravila ponašanja u igri, već i od izbora ostalih igraĉa. Svaki od igraĉa unapred poznaje moguće alternative koje mu stoje na raspolaganju u toku igre, koje nazivamo njegovim strategijama. Postoje razliĉite vrste igara, pri ĉemu se kao kriterijumi za klasifikaciju igara obiĉno uzimaju sledeći kriterijumi: broj igraĉa, broj strategija, karakter funkcije plaćanja i meĊusobna povezanost igraĉa. Za potrebe matematiĉkog modeliranja, analize i rešavanja, igra može biti predstavljena na razliĉite naĉine. Jedan postupak primenjuje se za igre kod kojih ne postoji potpuna informisanost igraĉa o potencijalnim odgovorima protivnika na njihov izbor pojedinaĉnih strategija. Za takve igre je karakteristiĉno da se rezultat svih poteza u toku neke igre obraĉunava tek na kraju igre, kada se obavi predviĊeni broj poteza, odnosno realizuje jedna partija. Ovakva vrsta igre, koju koju nazivamo igrom ekstenzivnog (opšteg) oblika, predstavlja se obiĉno preko odgovarajućeg stabla igre, u kome se predstavljaju odabrani potezi igraĉa. Drugi postupak predstavljanja i analiziranja igre primenjuje se u situaciji tzv. pune informisanosti o potencijalnim rezultatima odabranih strategija od strane igraĉa.
2.3 Robotika: Roboti su mašine koje samostalno obavljaju razne mehaniĉke radnje i operacije VI se u ovoj oblasti bavi pre svega:
Kontrolisanjem pokreta robota ; Problematikom prepoznavanja okoline; Uĉenje; Razumevanje govora.
16
Da bi funkcionisanje robota bilo svrsishodno, pokreti moraju biti adekvatni trenutnom stanju neposrednog okruženja.Preko senzora se dobijaju informacije na primer vizuelne, koje dalje treba obraditi tako da se „prepoznaju― i razlikuju objekti i senke iz neposredne okoline. 2.4 Neuronske mreţe: Neuronske mreže (Neural Networks - NN) predstavljaju novu generaciju sistema za informaciono procesiranje koje pokazuju osobinu uĉenja, memorisanja i generalizacije na osnovu podataka kojima se obuĉavaju. Pokazuje se da su vrlo efikasne u zadacima kao što su meĉovanje i klasifikacija oblika, aproksimacija funkcija, optimizacija, vektorska kvantizacija, klasterizacija podataka, dok su konvencionalni raĉunari, zbog svoje arhitekture vrlo neefikasni, pogotovo u domenu meĉovanja oblika. Istini za volju, konvencionalni raĉunari su brži u raĉunskim algoritmima i preciznim aritmetiĉkim operacijama.
Izgled biološke neuronske ćelije Neuronske mreže se sastoje od velikog broja gusto povezanih procesorskih elemenata (takozvanih ĉvorova, „nodes―) koji uobiĉajeno rade u paraleli (jednovremeno) i koji su organizovani po nekim regularnim arhitekturama. Razvoj neuralnih mreža je nastao motivacijom da se modeliuje ponašanje (bioloških) neurona u mozgu. Zbog toga se vrlo ĉesto neuralnim mrežama dodaje atribut „veštaĉke― neuronske mreže (Artificial Neural Networks - ANN), pa se stoga i ĉvorovi odnosno procesorski elementi ĉesto nazivaju veštaĉkim neuronima, ili samo neuronima. Ljudski mozak se sastoji od otprilike 10^11 neurona razliĉitih tipova.U skladu sa napred reĉenim neuralna mreža se može definisati kao paralelna distribuirana struktura za procesiranje podataka (informacija) koja poseduje sledeće osobine:
To je matematiĉki model inspirisan biološkim nervnim sistemom; Sastoji se od velikog broja vrlo povezanih elemenata za procesiranje; Znanje je sadržano u težinama odnosno vezama izmeĊu ĉvorova; 17
Element za procesiranje dinamiĉki odgovara na ulazni stimulus, i pri tome je ovaj odgovor kompletno zavisan od lokalne informacije sadržane u njegovom okruženju; NN ima osobinu da uĉi, pamti i generalizuje na osnovu obuĉavajućeg skupa; Zajedniĉko ponašanje svih delova mreže predstavlja kompjutersku snagu, ali to svojstvo ne sadrže usamljeni ĉvorovi ponaosob. Model neuronske mreže je odreĊen sa tri svojstva. Prvo od njih je model elemenata za procesiranje odnosno ĉvorova, drugo je veza izmeĊu ĉvorova i njihova struktura i treće važno svojstvo koje definiše prirodu mreže je pravilo za obuĉavanje kojim se podešavaju težine na pojedinim vezama. Neuralna mreža se sastoji od velikog broja ĉvorova koji su gusto povezani kako sa drugim ĉvorovima, tako i sa samim sobom, pri ĉemu je dozvoljeno i kašnjenje u propagaciji signala kroz ĉvorove.
Model veštaĉke neuronske mreže Za neuronsku mrežu se kaže da je potpuno povezana ako je svaki ĉvor iz prethodnog vezan za svaki ĉvor iz sledećeg sloja. Dalje se može primetiti da se u navedenim strukturama razlikuju dva tipa mreža. Prvi tip mreža su takozvane feedforward mreže kod kojih se izlazi iz ĉvorova ne vraćaju kao ulazi u ĉvorove iz istog ili prethodnih slojeva. Za razliku od feedforward mreže, feedback mreže (mreže sa povratnom spregom) imaju tu osobinu da se izlazi iz ĉvorova vraćaju kao ulazi u ĉvorove istog ili prethodnih slojeva. Povratna sprega u kojoj se izlazi iz ĉvorova vraćaju na ulaze ĉvorova iz istog sloja se naziva lateralna povratna sprega. Feedback neuronske mreže koje imaju zatvorene petlje se nazivaju rekurentnim neuralnim mrežama. 18
3. NEURONSKE MREŢE
3.1 Početak neuronskih mreţa Poĉetak neuro-raĉunarstva obiĉno se vezuje za 1943. godinu i ĉlanak Warrena McCullocha i Waltera Pittsa ―Logiĉki raĉun ideja svojstvenih nervnoj aktivnosti‖. Ovaj ĉlanak je ĉesto citiran. Kibernetiĉar Norbert Winer i matematiĉar John von Neumann su smatrali da bi istraživanja na polju raĉunarstva, inspirisana radom ljudskog mozga, mogla biti izuzetno zanimljiva. Knjiga Donalda Hebb-a iz 1949. godine ―The Organization of behavior‖ (Organizacija ponašanja) iskazuje ideju da je klasiĉno psihološko uslovljeno ponašanje prisutno kod svih životinja, jer je ono svojstvo neurona. Ova ideja nije bila nova, ali ju je Hebb više razradio od prethodnika, predlažući odreĊeni zakon uĉenja za sinapse, a pomoću njega je izveo kvalitativno objašnjenje nekih eksperimentalnih rezultata iz psihologije. Poĉetkom pedesetih godina, najviše uticaja na dalji razvoj neuronskih mreža je imao rad Marvin Minsky-a koji je u tom periodu konstruisao neuroraĉunar pod imenom Snark (1951). Frank Rosenblatt je zaslužan za otkriće jednoslojne neuronske mreže, zvane perceptron. Ovaj raĉunar je mogao uspešno da podešava težinske koeficijente, meĊutim ovaj raĉunar nije postigao znaĉajnije praktiĉne rezultate. Tek krajem pedesetih godina (1957-1958), Frank Rosenblatt i Charles Wightman sa svojim saradnicima su uspeli da razviju raĉunar pod nazivom Mark I koji predstavlja prvi neuroraĉunar.
Nešto posle Rosenblatta, Bernard Widrow je sa svojim studentima (najpoznatiji je Ted Hoff, kasnije tvorac mikroprocesora) razradio novi tip ―neurona‖ - ADALINE (ADAptivini LINearni Element, prenosna funkcija f(x)=x) i odgovarajući zakon uĉenja. U periodu od 1950-tih do ranih 1960-tih godina napisano je nekoliko knjiga i osnovano nekoliko kompanija koje se bave neuroraĉunarima. MeĊutim, sredinom 1960-tih godina došlo je do zastoja zbog dva oĉigledna problema. Prvo, većina istraživaĉa je prišla problemu sa kvalitativne i eksperimentalne strane, zanemarujući analitiĉki pristup. Drugo, poĉetni entuzijazam je bio toliko jak da su uveliko publikovana predviĊanja da nas od veštaĉkog mozga deli samo nekoliko godina istraživanja. Ovakav zanos je dalje diskreditovao ovu oblast i odbio veliki broj istraživaĉa. Mnogi od ovih ljudi su napustili neuroraĉunarstvo i prešli u srodna polja. Sredinom 1960-ih godina je pristup rešavanja problema neuronskih mreža okarakterisan kao pogrešan, nakon što Marvin Minsky i Seyour Papert u knjizi ―Perceptrons‖ objavljuju matematiĉki dokaz da jednoslojna neuronska mreža ―Perceptron‖ ne može da nauĉi funkciju XOR, uz pretpostavku da dodavanjem više slojeva neurona taj problem neće biti prevaziĊen. Taĉno je da neuron nije u stanju da 19
izvede pomenutu funkciju, ali za iole složeniju mrežu od nekoliko neurona to predstavlja veoma jednostavan zadatak. Njihov dokaz je diskreditovao istraživanja neuronskih mreža, a finansiranja su preusmerena na druge oblasti veštaĉke inteligencije. U periodu izmeĊu 1967. do 1982. godine pojavljuju se istraživaĉi koji daju znaĉajan doprinos razvoju ove oblasti kao što su Teuvo Kohonen, Kunihiko Fukushima i Stephnen Grossberg. Naroĉito se istakao Teuvo Kohonen, koji je otkrio nekoliko tipova neuronskih mreža koje su po njemu dobile naziv. U ovom periodu se pojavio i backpropagation algoritam. U radu na ovom algoritmu su se posebno istakli sledeći naĉunici: Amari (1967.) dodaje unutrašnje slojeve perceptronskoj mreži, Bryson i Ho (1969.) razvijaju algoritam sliĉan backpropagation algoritmu, Werbos (1974) nezavisno od prethodnika razvija backpropagation algoritam, a Parker (1982) unapreĊuje backpropagation algoritam. Poĉetkom 80-ih, ameriĉka vojna agencija DARPA (Agencija za odbrambene istraživaĉke projekte) postala je zainteresovana za NM i finansiranja su ponovo zapoĉela. Sredinom 80-tih, poznati fiziĉar John Hopfield dao je veliki doprinos popularizaciji neuronskih mreža, objavljujući rad u kome je napravio paralelu izmeĊu neuronskih mreža i odreĊenih fiziĉkih sistema. Poĉetkom devedesetih, Bart Kosko u knjizi ―Neural Networks and Fuzzy Systems‖ dokazuje da neuronske mreže i fuzzy logika opisuju isti skup problema i samim tim otvara novu oblast koja se naziva soft computing. Rumenel, Hinton i Williams (1986) dokazuju veliku promenljivost i potencijal backpropagation algoritma. Krajem 80-tih i poĉetkom 90-tih, neuronske mreže i neuro raĉunarstvo se uvodi kao predmet na nekoliko elitnih univerziteta u SAD, dok se danas neuronske mreže gotovo mogu sresti na svim univerzitetima.
3.2 Šta su neuronske mreţe Postoje dve kategorije neuronskih mreža: veštačke i biološke neuronske mreže. Predstavnik bioloških neuronskih mreža je nervni sistem živih bića. Veštaĉke neuronske mreže su po strukturi, funkciji i obradi informacija sliĉne biološkim neuronskim mrežama, ali se radi o veštaĉkim tvorevinama. Neuronska mreža u raĉunarskim naukama predstavlja veoma povezanu mrežu elemenata koji obraĊuju podatke. One su sposobne da izaĊu na kraj sa problemima koji se tradicionalnim pristupom teško rešavaju, kao što su govor i prepoznavanje oblika. Jedna od važnijih osobina neuronskih mreža je njihova sposobnost da uĉe na ograniĉenom skupu primera. U ovom radu, kada se govori o neuronskim mrežama, misli se prvenstveno na ―veštaĉke neuronske mreže‖ (engleski termin Artificial Neural Networks skraćeno ANN), zbog toga što se uglavnom govori o modelima neuronskih mreža (skraćeno NM), realizovanim na raĉunarima. U struĉnoj literaturi, nije redak sluĉaj da se izostavlja reĉ ―veštaĉke‖ iako se misli na njih. Biološke neuronske mreže su daleko komplikovanije od svojih matematiĉkih modela koji se koriste za veštaĉke neuronske mreže. NM predstavljaju sistem sastavljen od veoma velikog broja jednostavnih elemenata za obradu 20
podataka. Ovakvi sistemi su sposobni za prikupljanje, memorisanje i korišćenje eksperimentalnog znanja. Ne postoji jedinstvena definicija neuronskih mreža. MeĊutim, većina ljudi bi neuronske mreže definisala na sledeći naĉin: Neuronska mreža je sistem sastavljen od više jednostavnih procesora (jedinica, neurona), svaki od njih ima lokalnu memoriju u kojoj pamti podatke koje obraĊuje. Te jedinice su povezane komunikacionim kanalima (vezama). Podaci koji se ovim kanalima razmenjuju su obiĉno numeriĉki. Jedinice obraĊuju samo svoje lokalne podatke i ulaze koje primaju preko konekcije. Ograniĉenja lokalnih operatora se mogu otkloniti tokom treninga. Veliki broj NM su nastale kao modeli bioloških neuronskih mreža. Istorijski gledano, inspiracija za razvoj NM proizilazi iz želje da se konstruiše veštaĉki sistem sposoban za prefinjeno, možda ―inteligentno‖, izraĉunavanje na sliĉan naĉin kao što to ljudski mozak rutinski izvodi. Potencijalno, NM nam pružaju mogućnost za razumevanje rada ljudskog mozga.
Veštaĉke neuronske mreže su kolekcija matematiĉkih modela koji simuliraju neke od posmatranih osobina bioloških nervnih sistema i povlaĉe sliĉnosti sa prilagodljivim biološkim uĉenjem. Saĉinjene su od velikog broja meĊusobno povezanih neurona (obraĊujućih elemenata) koji su, sliĉno biološkim neuronima, povezani svojim vezama koje sadrže propusne (težinske) koeficijente, koje su po ulozi sliĉne sinapsama. Uĉenje se kod bioloških sistema obavlja putem regulisanja sinaptiĉkih veza koje povezuju aksone i dendrite neurona. Uĉenje tipiĉnih dogaĊaja putem primera se ostvaruje preko treninga ili otkrića do taĉnih setova podataka ulaza-izlaza koji treniraju algoritam ponavljanjem podešavajući propusne (težinske) koeficijente veza (sinapse). Ove veze memorišu znanje neophodno za rešavanje specifiĉnog problema. Većina NM ima neku vrstu pravila za ―obuĉavanje‖, ĉime se koeficijenti veza izmeĊu neurona podešavaju na osnovu ulaznih podataka. Drugim reĉima, NM ―uĉe‖ preko primera (kao što deca uĉe da prepoznaju konkretan predmet, objekat, proces ili pojavu preko odgovarajućih primera) i poseduju sposobnost za generalizaciju posle trening podataka. Veliki potencijal NM se nalazi u mogućnosti paralelne obrade podataka, tokom izraĉunavanja komponenti koje su nezavisne jedne od drugih. Neuronske mreže su sistemi sastavljeni od više jednostavnih elemenata (neurona) koji obraĊuju podatke paralelno. Funkcije koje su NM u stanju da obraĊuju odreĊene su strukturom mreže, jaĉinom konekcije a obrada podataka se izvodi u neuronima. Svaki elemenat operiše samo lokalnim informacijama. Svaki elemenat radi asinhronizovano, kao da nema sistemskog sata. Iako NM postoje od 1940-tih godina, one nisu imale znaĉajniju praktiĉnu primenu sve do 1980-tih, kada su algoritmi postali dovoljno prefinjeni za opštu upotrebu (aplikacije). Danas se NM primenjuju za rešavanje sve većeg broja svakodnevnih problema sa znaĉajnom kompleksnošću. U programiranju 21
se mogu koristiti kao ―generator‖ (engleski engine) koji je u stanju da vrši razliĉita prepoznanja i klasifikacije i koji ima sposobnost da izvrši generalizaciju prilikom odluĉivanja pri nepreciznim ulaznim podacima. NM nude idealno rešenje za raznovrsno klasifikovanje problema, kao što je prevoĊenje teksta u govor, prepoznavanje slova, rešavanje problema za koje ne postoji algoritamsko rešenje. Pokazuju dobre rezultate prilikom predviĊanja i modelovanja sistema gde fiziĉki procesi nisu jasni ili su veoma kompleksni. Prednost NM leži u visokoj elastiĉnosti prema poremećajima u ulaznim podacima i u sposobnosti da uĉi. NM ĉesto uspešno rešava probleme koji su previše kompleksni za konvencionalne tehnologije (na primer, problem koji nema algoritamsko rešenje ili za koji je algoritam previše komplikovan da bi bio pronaĊen) i one su ĉesto dobra pratnja problemima koje ljudi rešavaju. U ovom delu se pod neuronska mreža podrazumeva veštaĉka neuronska mreža. Veštaĉke neuronske mreže su inspirisane prirodnim neuronskim mrežama, tj. nervnim sistemima živih bića. Na Slici 1 je dat izgled jednog prirodnog neurona. Prirodni neuron ulazne signale dobija preko dendrita, obiĉno kraćih nervnih završetaka koji primljene signale dovode do tela ćelije. Telo ćelije vrši neku funkciju nad njima i proizvodi izlazni signal, koji se putem dugog nervnog završetka axon-a dostavljaju do sinapsi. Sinapse su veze sa drugim neuronima. Ono što je interesantno za sinapse je da one imaju odreĊeno pojaĉanje (odnosno slabljenje) signala.
22
Neuronska mreža je skupina neurona povezana težiranim vezama. Ovo nije definicija, jer je pojam neuronske mreže takoĊe dosta opširan, pa je teško dati preciznu definiciju koja bi obuhvatila sve postojeće neuronske mreže. Iako su NM imale neobiĉnu istoriju, one su još uvek u ranoj fazi razvoja. Možda se sad može reći da smo na kraju poĉetka. Danas NM nalaze veoma širok spektar primena u razliĉitim praktiĉnim oblastima.
Slika 2: Model veštačkog neurona
Ono što je zajedniĉko za sve neuronske mreže je neuron. Tipiĉna struktura veštaĉkog neurona data je na slici 2. Neuron ima nekoliko ulaza (uopšteno to može biti mešavina vanjskih ulaza i izlaza iz nekih drugih neurona). Svaki ulaz ima svoju specifiĉnu težinu. Ulazi, pomnoženi svojim težinama, se sabiraju (ukljuĉujući i prag ako postoji), a zatim se taj zbir propušta kroz funkciju aktivacije. Rezultat funkcije aktivacije je ujedno i izlaz iz neurona. 3.3 Podela neuronskih mreţa prema smeru prostiranja informacija Neuronske mreže se mogu podeliti prema smeru prostiranja informacija kroz mrežu:
Feedforward (nerekurzivne, nerekurentne ili nepovratne) - Viši slojevi ne vraćaju informaciju u niže slojeve. Vrše prostiranje signala samo u jednom smeru (od ulaza pre23
ma izlazu) odnosno propagaciju signala. Predstavnici: Višeslojni perceptron sa primenjenim backpropagation algoritmom.
Feedback (rekurzivne ili rekurentne ili povratne) - Viši slojevi vraćaju informacije nazad u niže slojeve. Izlaz iz neurona se vraća u niže slojeve ili u isti sloj. Predstavnici: Hopfildove, Celularne neuronske mreže, Kohonenove neuronske mreže, dvostruko asocijativne neoronske mreže. Feedback mreţe imaju mnogo veće procesne sposobnosti od Feedforward mreţa.
3.4 Podela neuronskih mreţa prema vrsti podataka Prema vrsti podataka koje obraĊuju neuronske mreže se mogu podeliti na:
analogne i
diskretne.
Ova podela se retko koristi pošto su gotovo sve neuronske mreže diskretne. 3.5 Podela neuronskih mreţa prema vrsti učenja i pravcu prostiranja signala- Problemi učenja Postoje dve glavne formulacije problema uĉenja:
Nadgledano učenje je pristup problemu uĉenja koji se odnosi na situacije u kojima se algoritmu zajedno sa podacima iz kojih uĉi daju i željeni izlazi. Algoritam treba da nauĉi da za date podatke (ne nužno trening podatke) pruži odgovarajuće izlaze.
Nenadgledano učenje je pristup problemu uĉenja koji se odnosi na situacije u kojima se algoritmu koji uĉi pruzžaju samo podaci bez izlaza. Od algoritma koji uĉi oĉekuje se da sam uoĉi neke zakonitosti u podacima koji su mu dati.
Naravno, ovi drastiĉno razliĉiti pristupi se ne odnose na iste vrste problema. Kao primer nadgledanog uĉenja možemo pomenuti klasifikacija ĉlanaka na raĉunarske i ostale, kod koje su unapred poznati primeri za razliĉite kategorije. Primer nenadgledanog uĉenja je takozvano klasterovanje – uoĉavanje grupa na neki naĉin sliĉnih objekata kada nemamo prethodno znanje o tome koliko grupa postoji ili koje su njihove karakteristike. Jedan primer primene klasterovanja bi mogao da bude redukcija skupa boja slike. Pikseli slike se mogu grupisati klasterovanjem po njihovoj blizini u RGB prostoru boja, a potom se iz svakog klastera može izabrati po jedna boja koja bi ga predstavljala i kojom bi bili obojeni svi pikseli koji pripadaju tom klasteru. U daljem tekstu će biti više reĉi o navedenom primeru.
Vrste neuronskih mreža podeljene prema vrsti uĉenja i pravcu prostiranje signala: 3.5.1 Nenadgledano učenje Nenadgledano uĉenje služi za rešavanje klase problema ĉiji cilj je odreĊivanje naĉina na koji su podaci organizovani. Ono predstavlja spontano uĉenje, bez uĉitelja, tj. bez invervencije eksperi24
mentatora. Ovakav naĉin uĉenja pogodan je kod zadataka kod kojih se koristi set podataka (―training set‖) i kada je potrebno odrediti uzajamnu vezu izmeĊu tih podataka. Tipiĉni problemi za ĉije rešavanje se koristi nenadgledano uĉenje su klasterovanje i generalizacija. MeĊu neuronskim mrežama, ĉesto korišćeni algoritmi, koji koriste nenadgledano uĉenje, su samoorganizujuće mape i teorija adaptivne rezonance.
Feedback mreže 1) Aditivna Grossbergova - Additive Grossberg (AG) 2) Grossbergova sa odlaganjem - Shunting Grossberg (SG) 3) Teorija binarne adaptivne rezonancije - Binary Adaptive Resonance Theory (ART1) 4) Teorija analogne adaptivne rezonancije - Analog Adaptive Resonance Theory (ART2, ART2a) 5) Diskretna Hopfildova - Discrete Hopfield (DH) 6) Kontinualna Hopfildova - Continuous Hopfield (CH) 7) Diskretna bidirekciona asocijativna memorija - Discrete Bidirectional Associative Memory (BAM) 8) Privremena asocijativna memorija - Temporal Associative Memory (TAM) 9) Adaptivna bidirekciona asocijativna memorija - Adaptive Bidirectional Associative Memory (ABAM) 10) Kohenove samoorganizujuće mape - Kohonen Self-organizing Map/Topology-preserving map (SOM/TPM) 11) Kompetitivno uĉenje - Competitive learning Feedforward mreže: 1) Matrice sa mogućnošću uĉenja- Learning Matrix (LM) 2) PobuĊeno-primorano uĉenje - Driver-Reinforcement Learning (DR) 3) Linearna asocijativna memorija - Linear Associative Memory (LAM) 4) Optimizovana linearna asocijativna memorija - Optimal Linear Associative Memory (OLAM) 5) Slabo rasporeĊena distribuirana asocijativna memorija - Sparse Distributed Associative Memory (SDM) 6) Fuzzy ascocijativna memorija - Fuzzy Associative Memory (FAM) 7) Counterpropagation (CPN)
25
3.5.2 Nadgledano učenje Feedback mreže 1) Brain-State-in-a-Box (BSB) 2) Fuzzy kongitivne mape - Fuzzy Congitive Map (FCM) 3) Bolcmanova mašina - Boltzmann Machine (BM) 4) Mean Field Annealing (MFT) 5) Rekurzivno kaskadno povezivanje - Recurrent Cascade Correlation (RCC) 6) Povratna propagacija kroz vreme - Backpropagation through time (BPTT) 7) Povratno uĉenje u realnom vremenu - Real-time recurrent learning (RTRL) 8) Recurrent Extended Kalman Filter (EKF) Feedforward mreže: 1) Perceptron 2) Adaline, Madaline 3) Backpropagation (BP) 4) Košijeva mašina - Cauchy Machine (CM) 5) Adaptivni heuristiĉki kriterijum - Adaptive Heuristic Critic (AHC) 6) Neuronske mreže sa vremenskim zadržavanjem - Time Delay Neural Network (TDNN) 7) Asocijativno nagraĊivanje - Associative Reward Penalty (ARP) 8) Avalanche Matched Filter (AMF) 9) Backpercolation (Perc) 10) Artmap 11) Adaptivne logiĉke mreže - Adaptive Logic Network (ALN) 12) Kaskadne veze- Cascade Correlation (CasCor) 13) Prošireni Kalman-ov filter - Extended Kalman Filter(EKF) 14) Kvantizacija vektora uĉenja - Learning Vector Quantization (LVQ) 15) NM zasnovane na verovatnoći- Probabilistic Neural Network (PNN) 16) Opšte regresione neuronske mreže - General Regression Neural Network (GRNN)
26
3.6. Samoorganizujuće mape Samoorganizujuća mapa je tip veštaĉke neuronske mreže ĉija obuka se vrši nenadgledanim uĉenjem kako bi se dobila niskodimenzionalna (najĉešće dvodimenzionalna), diskretna reprezentacija ulaznih uzoraka. Ovakva diskretna reprezentacija podataka zove se mapa. Samoorganizujuće mape razlikuju se od drugih tipova neuronskih mreža po tome što ĉuvaju informaciju o topološkim svojstvima ulaza pomoću funkcije susednih neurona. Osobine samoorganizujuće mape omogućuju joj vizualnu predstavu niskodimenzionog pogleda na visokodimenzione podatke, tj. višedimenziono skaliranje. Ovaj model je prvi put kao neuronsku mrežu opisao finski profesor Teuvo Kohonen, stoga se ove mreže zovu i Kohonenove mape. Samoorganizujuće mape rade u dve faze: učenje i mapiranje. Učenje izgraĊuje mapu pomoću ulaznih uzoraka. Ovaj proces je kompetitivan i naziva se i kvantizacija vektora. Mapiranje vrši klasifikaciju ulaznog vektora. Samoorganizujuća mapa sastoji se iz komponenti koje se nazivaju ĉvorovi ili neuroni. Svaki neuron ima vektor težina, istih dimenzija kao i vektor ulaznih podataka, i poziciju u prostoru mape. Procedura smeštanja vektora iz prostora podataka u mapu sastoji se iz:
pronalaženja neurona ĉiji vektor težina ima vrednosti najbliže vektoru iz prostora podataka i
dodeljivanja koordinata mape ovog neurona vektoru.
3.6.1 Treniranje samoorganizujuće mape Cilj obuke samoorganizujuće mape je izazivanje sliĉne reakcije razliĉitih delova mape na odreĊene šablone sa ulaza. Ovakva reakcija je analogna naĉinu na koji se obraĊuju vizualne, auditorne i ostale ĉulne informacije u mozgu ĉoveka. Težine neurona se najĉešće inicijalizuju malim, sluĉajnim vrednostima. Mrežu je potrebno obuĉiti sa velikim brojem vektora uzoraka koji predstavljaju, što je moguće bliže, vektore koji se oĉekuju u toku faze mapiranja. Obiĉno se obuĉavanje sa istim uzorcima vrši više puta, kroz nekoliko iteracija. Kohonenova mapa se obuĉava kompetitivnim učenjem8. Kada se mreži preda uzorak za uĉenje, raĉuna se njegovo odstojanje od vektora težina svih neurona mreže. Neuron ĉije su vrednosti vektora težina najbliže ulazu je neuron sa najvećim podudaranjem. Vrednosti ovog neurona i njegovih suseda u SOM rešetki se potom približavaju vrednostima ulaza. Uticaj ulaza na vrednosti vektora težina neurona opada sa vremenom i udaljenošĉu od neurona sa najvećim podudaranjem. Formula kojom se vrši ažuriranje vrednosti vektora težina neurona Wv(t) je: Wv(t + 1) = Wv(t) + Θ (v, t) α(t)(D(t) - Wv(t)), 8
Kompetitivno učenje je proces nenadgledanog učenja veštačkih neuronskih mreža pri kojem se neuroni takmiče za dozvolu da se aktiviraju za određeni skup ulaznih podataka.
27
gde je α(t) monotono opadajući koeficijent uĉenja, a D(t) je ulazni vektor. Funkcija susednih neurona Θ (v, t) zavisi od rastojanja izmeĊu neurona sa najvećim podudaranjem i neurona v. Postoje dva naĉina za ažuriranje vrednosti:
Najjednostavniji naĉin je ažuriranje sa istom vrednosti svih neurona koji se nalaze dovoljno blizu neurona sa najvećim podudaranjem, dok vrednosti ostalih ostaju nepromenjene.
Drugi naĉin je ažuriranje suseda upotrebom gausove funkcije.
Bez obzira koji je naĉin ažuriranja, funkcija susednih neurona smanjuje radijus svog delovanja tokom vremena. To znaĉi da će na poĉetku obuke, kada je široko ―susedstvo‖, samoorganizacija biti vršena na nivou cele mreže. Vremenom će se ―susedstvo‖ suziti na samo nekoliko neurona ĉije težine konvergiraju lokalnim srednjim vrednostima. Ovaj postupak ponavlja se za svaki ulazni vektor isti broj puta. Obiĉno je broj iteracija velik (λ). Na kraju obuke, mreža pravi veze izlaznih neurona sa grupama ili šablonima ulaznih podataka. Tokom mapiranja postoji samo jedan ―pobedniĉki neuron‖. To je neuron ĉiji vektor težina ima vrednosti najbliže ulaznom vektoru. 3.7 Kvantizacija Kvantizacija vektora je tehnika kojom se iskorišćava struktura ulaznih vektora u svrhu kompresije podataka. Taĉnije, ulazni prostor deli se u odreĊeni broj regiona i za svaki region definiše se rekonstrukcioni vektor. Kada kvantizator dobije novi ulazni vektor, prvo se utvrĊuje region kojem on pripada. Dalje se u algoritmu taj ulazni vektor predstavlja reprodukcionim vektorom za dati region. Ovim postupkom, upotrebom kodirane verzije reprodukcionog vektora umesto originalnog ulaza, ostvaruje se znaĉajna ušteda u memorijskom prostoru koji je potreban za ĉuvanje podatka, na raĉun taĉnosti (kvaliteta) podatka. Kolekcija reprodukcionih vektora naziva se ―code book‖, a njeni ĉlanovi ―code words‖. Kvantizator vektora sa najmanjom deformacijom, tj. gubitkom kvaliteta podataka zove se ―Voronoi‖ ili ―najbliži-sused‖ kvantizator. Voronoi ćelije su grupe taĉaka ulaznog prostora koje odgovaraju odreĊenom regionu tog prostora primenom pravila ―najbliži sused‖, prema Euklidskoj metrici. Algoritam SOM-a sadrži približan metod za nenadgledano izraĉunavanje Voronoi vektora pri ĉemu se aproksimacija odreĊuje vektorima težina sinapsi neurona. 3.8 Topologija Kohonenove samoorganizujuće mape Korišćena Kohonenova samoorganizujuća mapa ima dva sloja, ulazni i izlazni, bez skrivenih slojeva. Setimo se da smo u ranijem delu teksta kao primer nenadgledanog uĉenja naveli takozvano klasterovanje – uoĉavanje grupa na neki naĉin sliĉnih objekata kada nemamo prethodno znanje o tome koliko grupa postoji ili koje su njihove karakteristike. Kao primer primene klasterovanja smo naveli re28
dukciju skupa boja slike. Pikseli slike se mogu grupisati klasterovanjem po njihovoj blizini u RGB prostoru boja, a potom se iz svakog klastera može izabrati po jedna boja koja bi ga predstavljala i kojom bi bili obojeni svi pikseli koji pripadaju tom klasteru. Svaki neuron u ulaznom sloju predstavlja jedan piksel iz bloka slike dok svaki neuron u izlaznom sloju predstavlja jedan ili više blokova slike. Shodno tome, povećavanjem veliĉine bloka povećava se i broj neurona u ulaznom sloju. Broj neurona u izlaznom sloju ne zavisi direktno od veliĉine bloka ili veliĉine slike, jer su ĉesto blokovi u slikama sliĉni, pa se više blokova može aproksimirati jednim izlaznim neuronom. Iako neuroni u izlaznom sloju na prvi pogled imaju samo dva suseda (krajnji samo jednog), logiĉki ih posmatramo kao matricu u kojoj svaki neuron ima ĉetiri suseda (krajnji po dva). Dijagonalne susede ne posmatramo. Ovo ima znaĉaja pri obuĉavanju mape. Za svaki neuron prenosna funkcija je linearna. 3.9 Obučavanje Prilikom kreiranja Kohonenove samoorganizujuće mape broj neurona u ulaznom sloju se odreĊuje na osnovu broja piksela u svakom bloku. Što je blok veći, više neurona će postojati u ulaznom sloju. Broj neurona u izlaznom sloju odreĊuje korisnik. Što je broj neurona veći, obuĉavanje traje duže. Obuĉavanje se vrši tako što se na ulaz mape dovede element kojim se vrši obuĉavanje i odredi se neuron koji se aktivirao. Da bi se mapa valjano obuĉila potrebno je izvršiti obuĉavanje u više iteracija. 3.10 Kompresija pomoću obučene mape Kada je Kohonenova samoorganizujuća mapa obuĉena moguće ju je iskoristiti kao kodnu knjigu za kompresiju slike. Na ulaz obuĉene mape dovode se jedan po jedan blok i sa izlaza se oĉita aktiviran neuron. Indeksi bloka dovedenog na ulaz i aktiviranog neurona potom se zapamte. Prilikom dekompresije se za svaki od zapamćenih indeksa blokova uzme odgovarajući neuron i njegov težinski vektor koji se rekonstruiše u blok. Slika se dobija slaganjem blokova u odgovarajućem redosledu.
3.11 Primena samoorganizujućih mapa Samoorganizujuće mape nalaze praktiĉnu primenu u mnogim oblastima savremene nauke i inženjerstva. Najznaĉajniju primenu imaju u analizi, klasterovanju i vizuelizaciji podataka. Neka od konkretnih rešenja su:
prepoznavanje govora (za šta je samoorganizujuće mape Teuvo Kohenen prvobitno koristio), 29
bibliografska klasifikacija,
medicinska dijagnostika,
tumaĉenje seizmiĉkih aktivnosti,
sistemi za manipulaciju i skladištenje slika,
kompresija podataka.
Kroz prethodno navedeni primer, nastala su mnoga aplikativnog rešenja za kompresiju slike pomoću Kohenenove samoorganizujuće mape.
Teoretski se neuronske mreže mogu obuĉiti za izraĉunavanje svake izraĉunljive funkcije. One mogu uraditi sve što može normalan digitalan raĉunar da uradi. MeĊutim u praksi, neuronske mreže najbolje rezultate pokazuju na podruĉju klasifikacije, funkcije aproksimacije, na problemima mapiranja ĉija je tolerancija neprecizna, na problemima koji imaju dosta dostupnih podataka za trening ili na problemima koji zahtevaju brzu primenu odgovarajućeg pravila u zavisnosti od ulaznih podataka. Isto tako mapiranje vektora izmeĊu prostora može se aproksimirati precizno putem neuronskih mreža. Neuronske mreže ne mogu da stvore informaciju koju ne sadrže trening podaci. Sa ljudske strane posmatrano, uĉenje je menjanje individue. Bliže odredba uĉenja je sazrevanje. Da li naše sazrevanje zavisi od razvoja veštaĉke inteligencije, vreme će pokazati
3.12 Sistemi zasnovani na znanju (KBS) •
Sistemi zasnovani na znanju (Knowledge Based Systems - KBS) treba da omoguće pre svega simboliĉko predstavljanje znanja, nalaženje rešenja i eventualno samostalno uvećavanje znanja na osnovu iskustva
•
Za razliku od podataka kojima raĉunarski programi uobiĉajeno operišu i koji su uglavnom numeriĉke prirode, pri predstavljanju znanja karakteristiĉno je da se koriste pretežno nenumeriĉki podaci
•
Postoji više naĉina za predstavljanje znanja i to su produkciona pravila, semantiĉke mreže, frejmovi, objekti, itd. o ĉemu će više reĉi biti u poglavlju o ekspertnim sistemimaOd posebnog interesa je rešavanje problema kada nije poznato algoritamsko rešenje problema, kada odgovarajući algoritam ne postoji, ili kada je algoritam poznat, ali implementacija na raĉunaru prevazilazi resurse raĉunara
•
U tom sluĉaju se koriste heuristike, pravila za rešavanje kojima se na osnovu prethodnog znanja, iskustva i intuicije sužava i usmerava podruĉje traganja za rešenjem
30
•
Primena heuristika ne mora da garantuje nalaženje rešenja u opštem sluĉaju za bilo koji mogući skup ulaznih podataka, kao što je sluĉaj sa algoritmom
•
Ipak, vrednost ovih pravila je neosporna i pre svega je praktiĉne prirode, ako se u praksi do rešenja može doći u velikom broju sluĉajeva
•
Sliĉno ovome, mogu se razmatrati i sluĉajevi kada se ne raspolaže sa svim potrebnim podacima o datom problemu, ili kada su podaci poznati sa izvesnim stepenom verovatnoće
•
U tom sluĉaju su i dobijeni zakljuĉci prihvatljivi samo sa izvesnom verovatnoćom, pa se sistem koristi za procenu izvesnosti pojedinih mogućnosti Važna je i provera logiĉke konzistentnosti podataka, jer se može desiti da podaci budu takvi da ne mogu nikako da odgovaraju realno mogućem sluĉaju
•
Automatsko usvajanje i korišćenje prethodnog iskustva pri rešavanju srodnih i sliĉnih problema je nešto što ne bi sasvim eliminisalo potrebu za daljim dodavanjem i usavršavanjem znanja koje sistem poseduje, od strane ĉoveka, ali bi sigurno tu potrebu umanjilo
3.13 Logičko zaključivanje •
Logiĉko zakljuĉivanje je od velikog interesa u VI, i do sada su razvijeni sistemi koji se baziraju uglavnom na deduktivnom zakljuĉivanju
•
Ali da bi deduktivno zakljuĉivanje uopšte i bilo moguće, potrebno je da se primenjuje u teorijski potpuno poznatoj i izuĉenoj oblasti koja ima zatvoren sistem znanja
•
Deduktivno zakljuĉivanje ima tu prednost nad induktivnim, da je jednoznaĉno, pa samim tim i lakše ostvarljivo
•
Ovakvi sistemi mogu dokazivati razna tvrĊenja, teoremeSa induktivnim zakljuĉivanjem već nije tako, jer se induktivno zakljuĉivanje bazira na generalizaciji iskustva, i zakljuĉci se mogu prihvatiti sa nekom verovatnoćom
Dakle, automatizacija induktivnog zakljuĉivanja treba da bude "predlagaĉkog" karaktera
3.14 Programiranje •
Programiranje o kome je ovde reĉ, nije aktivnost ljudi programera, već automatizovano programiranje koje realizuje sistem VI
Od interesa je razvoj programa za odreĊene svrhe, kao i usavršavanje već postojećih programa
31
3.15 Veza sa intelektualnim procesima •
Jedno od važnih stanovišta sa kojih se vrši istraživanje i razvoj oblasti VI je mogućnost saznavanja i istraživanja u oblasti intelektualnih procesa kod ljudi (ispitivanje funkcija mozga) pri ĉemu se polazi od pretpostavke da mogu da postoje analogije
•
Prirodnije bi bilo suprotno, tj. da se na osnovu poznavanja funkcionisanja ljudskog mozga grade sistemi VI
•
MeĊutim, zbog nedovoljnog poznavanja intelektualnih procesa, na sve naĉine se pokušava da se doĊe do odreĊene predstave ili modela u ovoj oblastiNaravno, postoje i protivnici ovakvog gledišta, J. Searle, M. Boden.... Boden smatra da se iz ĉinjenice da sistem VI na pr. uspešno reši neki problem, ne može zakljuĉiti da se i mozak ponaša na isti naĉin, i to povezuje sa ĉinjenicom da to što je neka teorija u saglasnosti sa eksperimentom, ne mora da iskljuĉi i mogućnost da i neka drugaĉija teorija takoĊe bude u saglasnosti sa istim eksperimentalnim ĉinjenicama
•
Nezavisno od ove dileme, sistemi VI su definitivno našli svoju primenu i svoje mesto u mnogim oblastima nauke, tehnike, socijalno-ekonomskim problemima, pa će sa tog aspekta i biti tretiraniJedan od efekata razvoja VI je da korišćenje raĉunara postaje moguće sa manje znanja programiranja nego ranije, što omogućava da se više vremena posveti problemu koji se rešava
•
Analogno kao što spreadsheet programi omogućavaju raĉunanje bez potrebe programiranja, razni sistemi VI treba da omoguće korišćenje i primenu znanja u drugim oblastima rešavanja problema
•
Sa preuzimanjem zadataka koje su prethodno iskljuĉivo ljudi obavljali, raĉunarske nauke dalje napreduju
•
Kada neka nova tehnika VI postane dovoljno usavršena, stabilna za primenu i dostupna, ĉesto gubi svoju pripadnost VI
•
Na osnovu prethodnog izlaganja i definicija, može se reći da je naziv VI uslovan i da pre svega oznaĉava oblast istraživanja, jer je za sada inteligencija pre svega svojstvo živih bić
32
4. MAŠINSKO UČENJE Uĉenje je dosta širok pojam pa ga je zbog toga teško precizno opisati. Definicije uglavnom koriste fraze kao ―sticanje znanja, razumevanja ili vještine prouĉavanjem, sleĊenjem uputstava ili kroz iskustvo‖ i ―izmena uobiĉajnog ponašanja kroz iskustvo‖. Postoje mnoge paralele izmeĊu mašinskog i životinjskog/ljudskog uĉenja. Razlog je jednostavan: mnoge tehnike mašinskog uĉenja su zasnovane na teorijama životinjskog uĉenja (i uĉenja kod ljudi) koje razvijaju psiholozi. Mašine uĉe, uopšteno reĉeno, kad god promene svoju strukturu, program ili podatke tako da poboljšaju oĉekivane performanse u budućnosti. Neke od ovih promena, kao na primer zapisivanje sloga u bazi podataka, se obiĉno i ne nazivaju uĉenje. Ali, ako se uspešnost softvera za prepoznavanje govora poboljša nakon nekoliko ―istreniranih‖ reĉenica, tada opravdano kažemo da je ―mašina nauĉila‖. Mašinsko učenje: •
Mašinsko uĉenje, dakle uĉenje koje nije vezano za neposrednu intervenciju ĉoveka je jedna od karakteristika sistema kojima se odlikuju sistemi VI
•
Većina sistema je takva da zahteva direktnu intervenciju ĉoveka za izmenu postojećeg, ili dodavanje novog znanja, a postoje i takvi sistemi VI koji mogu da formiraju neku vrstu iskustva, kao što je u prethodnoj taĉki pomenuto
•
Sa svakim rešenim problemom uvećava se znanje sistema VI
Mašinsko uĉenje se obiĉno odnosi na promene u sistemima u oblasti veštaĉke inteligencije. 4.1 Zašto mašinsko učenje Postavlja se pitanje zašto bi se neko uopšte bavio mašinskim uĉenjem. Dostignuća u oblasti mašinskog uĉenja mogu pomoći u shvatanju kako životinje i ljudi uĉe, a pored toga postoji I nekoliko inžinjerskih razloga: Neke zadatke ne možemo dobro opisati osim pomoću primera, tj. možemo navesti primere ulaza i odgovarajućeg izlaza, ali ne i taĉne relacije izmeĊu ulaza i izlaza. U tom sluĉaju želimo da mašina uĉenjem na primerima izmeni svoju unutrašnju strukturu/podatke/program tako da njena prenosna funkcija što bolje odgovara implicitnoj relaciji sadržanoj u trenažnom skupu primera. Moguće je da se u velikoj hrpi podataka nalaze važne relacije. Mašinsko uĉenje se ĉesto može koristiti za pronalaženje ovih relacija. To je poznato kao ―data mining‖ - ―rudarenje za podacima‖. Dizajneri (ljudi) ĉesto naprave mašine koje ne rade taĉno onako kako to neko želi. OdreĊene karakteristike radnog okruženja možda nisu poznate u vrieme dizajniranja. A i radno okruženje se stalno menja. Mašinsko uĉenje može pomoći da se mašine (bar delimiĉno) prilagoĊavaju radnom okruženju u cilju postizanja željenog ponašanja.
33
Koliĉina dostupnih podataka o nekom problemu može biti prevelika da bi ga ĉovek eksplicitno izmodelirao/isprogramirao. Mašine koje nauĉe ovo znanje mogu s vremenom da ga prikupe i više nego što bi ljudi bili voljni ĉak i da zapišu. Ljudsko znanje se proširuje i produbljuje. Stalni redizajn sistema veštaĉke inteligencije je nepraktiĉan, ali bi se pomoću mašinskog uĉenja moglo da ―stane u kraj‖ barem dielu problema.
4.2 Izvori mašinskog učenja Radovi u mašinskom uĉenju se meĊusobno približavaju (konvergiraju), a potiĉu iz nekoliko glavnih izvora: Statistika: interpolacija i ekstrapolacija vriednosti funkcija na osnovu nekoliko poznatih taĉaka i sliĉni problemi. Može se smatrati mašinskim uĉenjem jer se procene baziraju na uzorcima podataka iz problemskog okruženja. Modeli mozga: nelinearni elementi sa težiranim ulazima su predloženi kao jednostavni model biološkog neurona, i osnova su za neuronske mreţe. Psihologe zanima koliko dobro ovi modeli aproksimiraju živi mozak (sa aspekta uĉenja). Ova oblast se ponekad zove i konekcionizam, Adaptivna teorija upravljanja: upravljanje procesom koji ima nepoznate parametre koji se u toku rada moraju procjenjivati. Ovi parametri se ĉesto i menjaju u toku rada, i upravljanje procesom mora voditi brigu i o tome. Primer su neki aspekti upravljanja robotom na bazi senzorskih ulaza. Psihološki modeli: izmeĊu ostalog drvo odluĉivanja i semantiĉke mreže. Veštačka inteligencija: od poĉetka su se istraživanja u ovoj oblasti bavila mašinskim uĉenjem. Evolucijski modeli: modeliranje programa u analogiji sa teorijom evolucije. Najpoznatiji su genetski algoritmi i genetsko programiranje.
34
5. AUTOMATSKO UČENJE 5.1 Automatsko rezonovanje Automatsko rezonovanje je oblast raĉunarstva posvećena razumevanju razliĉitih aspekata rezonovanja na koji omogućava pravljenje softvera pomoću koga raĉunari mogu da rezonuju potpuno ili skoro potp uno automatski. Kao takvo, automatsko rezonovanje se obiĉno smatra podoblašću veštaĉke inteligencij e, ali ova oblast ima jake veze i sa teorijskim raĉunarstvom , pa i filozofijom. Najrazvijenije oblsti automatskog rezonovanja su verovatno automatsko dokazivanje teorema (i manjea utomatska, ali pragmatiĉnija podoblast, interaktivno dokazivanje teorema) i automatska provera dokaza (za koju se smatra da garantuje korektno rezonovanje pod fiksnim pretpostavkama), ali su znaĉajni nap ori uloženi i u razvijanje rezonovanja analogijom, indukcijom i abdukcijom. Druge važne teme su rezo novanje pod nesigurnim okolnostima i nemonotono rezonovanje. Alati i tehnike koje automatsko rezonovanje koristi ukljuĉuju aparaturu klasiĉne logike i raĉuna za aut omatsko dokazivanje teorema, ali i fazi logiku, bajesovsko uĉenje, rezonovanje sa maksimalnom entropijom i veliki broj manje formalnih ad hok tehnika. Dva kljuĉna problema vezana su za razvoj veštaĉke inteligencije i automatsko rezonovanje: • mogućnost formalizacije neformalno postavljenih zadataka, •nalaženje dovoljno efikasnih strategija i procedura pretraživanja u mnoštvu varijanata. Od uspeha u njihovom rešavanju zavisi praktiĉno ostvarivanje potencijalnih mogućnosti. Bitna kompon enta svakog rezonovanja je sposobnost zakljuĉivanja. Na zakljuĉivanju se temelje sposobnosti uĉenja, o tkrivanja primera i kontraprimera, uoĉavanje analogija, prepoznavanje objekata i druge. Posebno znaĉaj no mesto u tome pripada logiĉkom zakljuĉivanju, tj. izvoĊenju posledica iz datog skupa premisa. Logiĉko izvoĊenje se može svesti na problem dokazivanja teorema. Zato je jedan od kljuĉnih aspekata formalizacije rezonovanja, razrada deduktivnih sistema koji omogućuju realizaciju automatskog dokazi vanja teorema. Cilj automatskog dokazivanja teorema jeste projektovanje i implementacija raĉunarskih programa koji dokazuju ili pomažu pri dokazivanju teorema. U poĉetku je primena programa za dokazivanje teorema bila iskljuĉivo u oblasti matematike a posle I u oblastima kao što su: korektnost programa, generisanje programa, upitni jezici nad relacionim bazam a podataka, projektovanje elektronskih kola, izgradnja ekspertnih sistema itd.
5.2 Učenje Uĉenje može u celosti da se definiše kao glavna sposobnost inteligentnih sistema. Inteligencija je odreĊ ena: Mehanizmima uĉenja i Rezultatima uĉenja. 35
Mehanizam uĉenja može da se predstavi kroz algoritam procesa uĉenja. Ovde treba napomenuti da pos toje dva dela procesa uĉenja: heuristiĉko i logiĉko. Proces uĉenja se sastoji iz: • prikupljanja ulaznih podataka iz okruženja, • indukcije, • dedukcije i • analize informacija. Uĉenje može da se definiše kao upravljanje faktorima, koji utiĉu na rešavanje postavljenog problema i koji ne mogu da se uzmu u obzir u klasiĉnim algoritmima. Modeliranje simbolima – U VI se koriste simboli ( umesto algoritama ) pomoću kojih se predstavljaju realni predameti, njihove karakteristike i relacije koje postoje meĊu njima. Induktivno zakljuĉivanje je takav oblik zakljuĉivanja kod koga se polazi od empirijskih (iskustvenih) ĉi njenica, a zakljuĉak, koji se izvodi iz tih ĉinjenica, prevazilazi granice onoga što te ĉinjenice kažu. Indukcija je pretpostavka. (Opažam /―znam― da je A, na osnovu toga pretpostavljam da je i B. Jeste ? N ije ? Hajde da vidimo. Da pokušamo da naĊemo naĉin da se uverimo da je B, kao sto smo se uverili da j e A na osnovu ĉega smo i pretpostavili B. A ne garantuje B logiĉki, vec se mora proveriti empirijski.) Deduktivno zakljuĉivanje je takav oblik zakljuĉivanja kod koga se neki stav (koji zovemo zakljuĉak) iz vodi iz nekakvih drugih stavova (koje zovemo premise ili pretpostavke). Za izvlaĉenje zakljuĉka nije bitno da li su premise istinite ili nisu. (Ukoliko je A onda nuzno mora da sl edi B. To ne znaci da jeste A i da jeste B. To samo znaci da B govori isto što i A /nema novih informacija/ sa mo na drugaĉiji naĉin. Da li je A i da li je B, nije bitno za tvrĊenje u kome se kaže „ako A onda nuzno B―) Primer: 1)Ako Pera ima 5 dinara i 2)Ako Mika ima 3 dinara onda 3)Pera i Mika zajedno imaju 8 dinara Da bi se diskutovalo o validnosti zakljuĉka 3) nije vazno da li Pera stvarno ima 5 dinara i Mika 3. Nece mo da gledamo Peri i Miki u džepove. Vazno je samo da li, ukoliko je to tako kako se iznosi u 1) i 2) o
36
nda nužno sledi 3). Ukoliko sledi, zakljuĉivanje je ispravno, ukoliko ne sledi zakljuĉivanje nije ispravn o (validno). Zakljuĉak validne dedukcije nikada ne sadrži više informacija nego što je sadržano u pretpostavkama.
To je razlog zašto dedukcija uvek sadrži sigurnost i moze se logiĉki proveriti (nikada ne govori ništa no vo), a zašto je indukcija uvek u nekom pogledu nesigurna i ne može se logiĉki proveriti već samo empi rijski. Dedukcijom se ne može doći do novih informacija, samo indukcijom. Ako na osnovu iskustva donesemo zakljuĉak koji prevazilazi naše iskustvo, jedini naĉin da se on prove ri je opet (novo) iskustvo. Ispitivanje novih informacija, dobijenih indukcijom se ne može dokazati dedukcijom. Indukcija može samo biti jaka ili slaba, za razliku od dedukcije koja je sigurno ispravna ili neispravna. Indukcija je pretpostavka, putokaz, upućuje na šta da se obrati pažnja u sledecim iskustvima. Istraživanja u Veštaĉkoj inteligenciji su fokusirana na sledeće komponente inteligencije: • uĉenje, • razmišljanje, • rešavanje problema, • percepcija i razumevanje prirodnog jezika.
Postoji više razliĉitih oblika uĉenja koji su primenjeni na oblast veštaĉke inteligencije. Najjednostavniji se odnosi na uĉenje na greškama preko pokušaja. Na primer, najjednostavniji raĉunaraski program za r ešavanje problema matiranja u jednom potezu u šahu, je istraživanje mat pozicije sluĉajnim potezima. Jednom iznaĊeno rešenje, program može zapamtiti poziciju i iskoristiti je sledeći put kada se naĊe u ide ntiĉnoj situaciji. Jednostavno pamćenje individualnih poteza i procedura ‐ poznato kao mehaniĉko uĉen je ‐ je vrlo lako implementirati u raĉunarski sistem. Prilikom pokušaja implementacije tzv., uopštavanja , javljaju se veći problemi i zahtevi. Uopštavanje se sastoji od primene prošlih iskustava na analogne no ve situacije. Na primer, program koji uĉi prošla vremena glagola na srpskom jeziku mehaniĉkim uĉenje m, neće biti sposoban da izvede prošlo vreme, recimo glagola skoĉiti, dok se ne naĊe pred oblikom gla gola skoĉio, gde će program koji je sposoban za uopštavanje nauĉiti "dodaj ‐o i ukloni ‐ti" pravilo, te t ako formirati prošlo vreme glagola skoĉiti, zasnivajući se na iskustvu sa sliĉnim glagolima. Uĉenje stabala odluĉivanja
37
Razmotrimo igru sa 20 pitanja. Jedan igraĉ zamišlja neki predmet, a drugi treba da pogodi o kom je pre dmetu reĉ. Kako bi pogodio o kom predmetu se radi igraĉ koji pogaĊa ima pravo da postavi 20 pitanja na koje odgovor može biti da ili ne. Kada misli da je postavio dovoljno pitanja, igraĉ može dati svoj su d o kom predmetu se radi i igra se završava. Oĉito, proces ispitivanja se može predstaviti u vidu stabla koje u svakom ĉvoru ima po jedno pitanje, osim u listovima u kojima se nalazi sud igraĉa o nepoznato m predmetu. Svaki ĉvor osim listova ima dve grane oznaĉene sa da ili ne koje vode u podstablo koje od govara nastavku ispitivanja posle razmatranog pitanja. Ovo je primer stabla odluĉivanja. Ovakva stabla se mogu uopštiti zanemarivanjem ograniĉenja na 20 pitanja i tako što bi se dozvolilo da odgovori ne moraju biti samo da ili ne, već da mogu pripadati odreĊenom unapred definisanom skupu z a dato pitanje. Ovakva stabla se mogu automatski nauĉiti iz primera koji za svaku instancu ukljuĉuju vr ednosti njenih atributa i vrednost ciljne funkcije za tu instancu. Uĉenje stabala odluĉivanja je metod aproksimacije diskretnih ciljnih funkcija u kome se nauĉena funkc ija predstavlja u vidu stabla. Sliĉno igri 20 pitanja, svakom ĉvoru stabla odgovara test nekog atributa in stance, a grane koje izlaze iz ĉvora razliĉitim vrednostima tog atributa. Listovima odgovaraju vrednosti ciljne funkcije. Instance su opisane vrednostima svojih atributa. Klasifikuju se polazeći od korena, spuš tajući se niz granu koja odgovara vrednosti testiranog atributa instance koju klasifikujemo. Klasa se do deljuje instanci kad se doĊe do lista. Uĉenje stabala odluĉivanja je već primenjeno u razliĉitim problemima. Jedan primer se odnosi na predv iĊanje buduće potražnje za knjigama u bibliotekama, na osnovu nekih njihovih atributa (npr. jezik, datu m objavljivanja, datum poslednjeg iznajmljivanja itd.). Knjige za koje se predviĊa da neće biti skoro tra žene se mogu smestiti u magacin. Istraživanje je raĊeno u biblioteci univerziteta Harvard. Sredinom de vedesetih godina stabla odluĉivanja su primenjena u klasifikaciji tumora i prognozi njihovog ponašanja . Svaka instanca je opisivana pomoću 31‐og atributa, a klasifikacije su date nezavisno od strane više stru ĉnjaka. U astronomiji stabla odluĉivanja su primenjena u cilju razlikovanja zvezda i tragova kosmiĉkih zraka na snimcima teleskopa Habl. Na osnovu 20 numeriĉkih karakteristika, sa stablima dubine do 9 ĉv orova, postignuta je preciznost klasifikacije od 95%. TakoĊe postoje primene i u ekonomiji i drugim ob lastima. Korišćenje stabla odluĉivanja nije podjednako pogodno za sve probleme uĉenja. Potrebno je da se insta nce predstavljaju pomoću vrednosti fiksnog broja atributa. Skup vrednosti bi trebalo da bude diskretan i mali, mada se na kontinualne atribute može primeniti diskretizacija tako što bi se skup podelio u podin tervale. Svakom podintervalu se pridružuje oznaka koja zamenjuje vrednosti atributa iz tog intervala u zapisima instanci. Stabla odluĉivanja se pokazuju posebno primenljiva u sluĉaju kada je neophodno predstavljanj e disjunkcija uslova, kada podaci za trening sadrže greške i kada u trening skupu postoje instance kojim a nedostaju vrednosti nekih atributa.
38
Ukoliko stablo odluĉivanja instanci dodeljuje neku klasu, to znaĉi da instanca ispunjava sve uslove koji su definisani putanjom od korena do odgovarajućeg lista kroz stablo i oblika su atribut=vrednost. Stog a putanje kroz stablo predstavljaju konjunkcije ovakvih uslova. Za svaku klasu moguće je uoĉiti putanj e koje se završavaju listovima koji odgovaraju toj klasi. Disjunkcija svih takvih konjunkcija definiše in stance koje pripadaju datoj klasi prema datom stablu. Jedan od najpoznatijih algoritama za uĉenje stabl a odluĉivanja je ID3. Ovaj algoritam konstruiše stablo od korena, naniže, pitajući se u svakom ĉvoru ko ji je najbolji atribut koji se u datom ĉvoru može testirati. Ovose odreĊuje statistiĉkim kriterijumom koji meri koliko dobro neki atribut sam klasifikuje podatke. Atribut ne može biti dva puta korišćen u jednoj putanji od korena do lista. Za sve vrednosti odabranog atributa kreiraju se grane do ĉvorova naslednika, a podaci za treniranje se dele izmeĊu ovih ĉvorova tako da svaki od njih nasleĊuje primere koji imaju odgovarajuću vrednost prethodno testiranog atributa. Za svaki od ĉvorova naslednika ovaj postupak se rekurzivno primenjuje sve dok nije ispunjen bar jedan od sledeća dva uslova: 1. u putanji od korena do trenutnog ĉvora iskorišćeni su svi atributi, 2.sve instance za trening koje su pridružene trenutnom ĉvoru imaju istu vrednost ciljnog atributa. Svak om listu se pridružuje najĉešća oznaka instanci za trening koje su mu pridružene. Algoritam je preciznije dat na slici 11.2.
39
Treba primetiti da ID3 preferira stabla sa manjom dubinom, kao i stabla u kojima se atributi koji nose v eći dobitak informacije nalaze bliže korenu. Ovo je posledica toga što izgradnja stabla poĉinje od praznog stabla pri ĉemu se dodaje nivo po nivo i naĉina na koji se biraju atributi koji se pridružuju ĉvorovima. Afinitet prema kraćim stablima je zanimljiva pretpostavka jer je u skladu sa odavno poznatim filozofskim principom kojim se ĉesto vode i nauĉnici ‐ Okamovom oštricom: entitete ne treba umnožavati preko potrebe, odnosno najjednostavnije objašnjenje je verovatno i najbolje.
40
Pravilo rezolucije – teorema potpunosti Rezolucija je primer metode zakljuĉivanja koja se može efikasno automatizovati, i u odreĊenim sluĉaje vima se pokazuje da je to ispravna i kompletna procedura zakljuĉivanja. Definicija rezolvente (zakljuĉak principom rezolucije) Neka za sastavke D1 i D2, koji ne sadrže zajedniĉke promenljive (to se uvek može postići preoznaĉava njem promenljivih), i za literale L1⊆D1, L2⊆D2 važe uslovi: (1) Skupovi L1 i L2 nisu prazni, (2) Za skup A svih atomiĉnih formula sadržanih u L1∪L2 postoji NOU σA, (3) Elementi jednoĉlanih skupova L1σA i L2σA obrazuju komplementaran par. Rezolventa sastavaka D1 i D2 je sastavak (D1\L1)σA∪(D2\L2)σA. Definicija rezolucije Metod rezolucije se zaustavlja za svaku iskaznu formulu i u završnom skupu klauza postoji prazna klauza ako i samo ako je polazna formula nezadovoljiva. Metod rezolucije može na razne naĉine biti modifikovan tako da bude efikasniji. U svom osnovnom obliku, metod rezolucije proverava da li je dati skup klauza (ne)zadovoljiv. MeĊuti m, metod rezolucije može se koristiti i za ispitivanje valjanosti.
41
Neka su D1 i D2 sastavci za koje su ispunjeni uslovi (1) ‐ (3) i R njihova rezolventa. Pravilo izvoĊenja: zove se rezolucija. Neka je ℜ(C) def C∪F , gde F skup svih rezolventi elemenata skupa C. Za skup sastavaka S, skup ℜn(S) definiše se na sledeći naĉin: 1.
ℜ0(S) = S ;
2.
ℜn+1(S) = ℜ(ℜn(S)), n≥0. Teorema o rezoluciji
Konaĉan skup sastavaka S je nezadovoljiv ako skup Ân(S) za neko konaĉno n³0 sadrži prazan sastavak Pobijanje (opovrgavanje) datog skupa sastavaka S je konaĉan niz sastavaka B1,...Bk, takav da za svaki ĉlan Bi, 1≤i≤k, važi: 1.
Bi∈S ili Bi je rezolventa neka dva prethodna ĉlana niza,
2.
Bk je prazan sastavak.
Sledi, pobijanje datog skupa sastavaka S je izvoĊenje praznog sastavka iz skupa S, pri ĉemu skup pravila izvoĊenja sadrži samo pravilo rezolucije. Iz teoreme o rezoluciji sledi: Konaĉan skup sastavaka S je nezadovoljiv ako postoji pobijanje za S. Zato je teorema o rezoluciji ujedno i teorema o potpunosti ovog logiĉkog sistema. Specifiĉne forme rezolucije (OL rezolucija): ureĊena linearna rezolucija sa markiranim literalima Povećanje efikasnosti linearne rezolucije, bez narušavanja potpunosti, postiže se uvoĊenjem ureĊenih s astavaka i informacije o rezolviranim literalima.Informacija o rezolviranim literalima ĉuva se tako što s e prilikom rezolucije ne odbacuju komplementarni literali, već se u rezolventi zadržava literal koji prip ada prvom sastavku. Taj literal se na neki naĉin markira.Sada se celokupan postupak odreĊivanja OL‐re zolvente može opisati na sledeći naĉin. Neka je D1 centralni sastavak i D2 boĉni sastavak. 1.
Preoznaĉavanje promenljivih (tako da u sastavcima ne bude zajedniĉkih promenljivih).
2. OdreĊivanje NOU za poslednji literal u D1 i k‐ti (k=1,2,...) iz D2 za neko k, ako ne postoji onda se OL‐rezolventa datih sastavaka ne može odrediti).
(ako postoji
3. Formiranje rezolvente markiranjem poslednjeg literala u D1θ i dopisivanjem ostatka sastavka D2θ bez k‐tog literala. 42
4. Iskljuĉivanje nemarkiranih literala identiĉnih mlaĊem literalu u rezolventi i ispitivanje tautologiĉno sti. 5.
Operacija skraćivanja (brisanje svih markiranih literala iza kojih nema nemarkiranih).
6. Operacija sažimanja (brisanje poslednjeg nemarkiranog literala kada je on komplementaran nekom markiranom za neki unifikator λ). 7. Ponovna primena koraka 5 i 6 sve dok je to moguće (dok se na poslednji nemarkirani literal ne bude mogla primeniti operacija sažimanja, ili dok se ne dobije prazan sastavak p).
Šta se uči? Pored ostalih kriterijuma, postoji i pitanje ―šta se treba (na)uĉiti‖. Najĉešće su to funkcije, i njima se i bavimo u ovom radu. TakoĊe je moguće uĉiti i druge raĉunske strukture: 1. Logiĉki programi i skupovi pravila 2. Konaĉni automati 3. Gramatike 4. Sistemi za rešavanje problema. 4.3 Učenje funkcija Postoji takozvano supervizijsko i samostalno uĉenje. Samostalno uĉenje je ograniĉeno na klasifikaciju uzoraka u podskupove, na neki prikladan naĉin. Supervizijsko uĉenje je mnogo korisnije, mogu se uĉiti nepoznate funkcije ili aproksimirati poznate (kompleksne) funkcije. Kod nepoznatih funkcija imamo nekoliko poznatih uzoraka (taĉaka, vektora), na osnovu kojih pokušavamo napraviti funkciju koja će se što bolje slagati sa nepoznatom u poznatim taĉkama (i nadamo se da će se dobro slagati i u ostalim taĉkama nepoznate funkcije). Kod funkcija koje treba aproksimirati, mi biramo uzorke kako nam najviše odgovara: minimalan broj koji rezultuje odgovarajućom aproksimacijom, takav raspored da imamo što uniformniju preciznost na domenu, itd…
43
6. LOGIČKO PROGRAMIRANJE I OPTIMIZACIJA Istraživanja vezana za obradu prirodnih jezika i automatsko dokazivanje teorema dovela su do stvaranja oblasti koja je nazvana logiĉko programiranje. U ovom seminarskom radu biće prestavljene osnove na kojima su razvijene ideje logiĉkog programiranja, a deo pažnje biće posvećen i Prologu, najpopularnijem jeziku proizašlom iz tih ideja. Analiziraće se i karakteristike Prologa, njegova sintaksa i semantika, mehanizam izvoĊenja i razlike u odnosu na konvencionalne programske jezike kao što su: Pascal, C, Fortran itd. Biće razmotreno u kolikoj je meri Prolog zaista jezik logiĉkog programiranja i kakve su njegove primene u oblasti veštaĉke inteligencije.
6.1 Elementi logičkog programiranja Prolog je skraćenica nastala iz reĉi programiranje u logici (engleski termin: programming in logic). Logika je pre pojave Prologa upotrebljavana za opisivanje problema. MeĊutim, kada je pokazano da skup formula može imati i proceduralnu interpretaciju, logika je iskorišćena i kao programski jezik. Osnovna ideja logiĉkog programiranja izražena je takozvanom jednaĉinom Kowalskog: algoritam = logika + kontrola pri ĉemu je pod logikom podrazumevan opis problema dat formulama, dok je kontrola formalni mehanizam izvoĊenja, tj. zakljuĉivanja, koji ostvaruje sam raĉunar (odnosno odgovarajući program). Zadatak programera je da opiše šta je problem, a na raĉunaru je da odgovori kako da se taj problem reši. Odatle logiĉki jezici po pravilu imaju dva posebna dela:
deo za prihvatanje opisa problema, tj. korisniĉki interfejs i deo za automatsko izvršavanje programa, tj. mehanizam izvoĊenja
Oĉito je da je ideja logiĉkog programiranja bliska veštaĉkoj inteligenciji. Logiĉko programiranje omogućava pisanje programa u raznim njenim oblastima, ali i sam razvoj jezika logiĉkog programiranja je znaĉajno polje istraživanja u veštaĉkoj inteligenciji. Ideja formulisana jednaĉinom Kowalskog nije u potpunosti postignuta, pošto jezici koji pretenduju da su jezici logiĉkog programiranja poseduju i neke nelogiĉke elemente, na primer kontrolne komponente. Pa ipak i ti postojeći jezici donose niz pogodnosti:
sintaksa i semantika jezika su relativno jednostavne (logiĉki jezici nemaju naredbu goto, naredbe pridruživanja, naredbe ciklusa i if-then-else naredbe), rezonovanje o logiĉkim programima je lakše nego o proceduralnim, veliki broj problema se može rešiti metodologijom logiĉkog programiranja (ekspertni sistemi, baze podataka, obrada prirodnih jezika itd.) postoje znaĉajne olakšice u paralelizaciji logiĉkih u odnosu na proceduralne programe razvoj logiĉkih programa je obiĉno znatno brži nego razvoj proceduralnih programa 44
Osnovni problem logiĉkog programiranja je efikasnost izraĉunavanja. Jezici logiĉkog programiranja pokušavaju da taj problem reše na razne naĉine, pre svega korišćenjem nekih elemenata kontrole i paralelizacijom izvršavanja.
6.2 Logičke promenljive Promenljive koje se koriste u logiĉkim jezicima su nazivi memorijskih lokacija. Zbog toga su dozvoljene naredbe pridruživanja oblika X :=X+1, kao i dodeljivanje vrednosti promenljivoj na više mesta u programu. Ovo za posledicu ima takozvane boĉne efekte i inherentnu sekvencijalnost. Boĉni efekat je situacija u kojoj funkcija ne samo da vraća rezultat, već menja i sadržaje nekih memorijskih lokacija kojima odgovaraju globalne promenljive. Sekvencijalnost proizilazi iz ĉinjenice da rezultat rada programa direktno zavisi od redosleda navoĊenja naredbi u programu.
Primer 1. Neka su data dva segmenta proceduralnih programa: x := 3;
x := 2;
z := x;
z := x;
x := 2;
x := 3;
Naredbe ovih segmenata su iste, ali se razlikuju u redosledu navoĎenja, pa je vrednost promenljive z na kraju njihovog izvršavanja različita. Promenljive koje se koriste u logiĉkim jezicima su bliže pojmu promenljivih u logici. Osnovni mehanizam manipulacije podacima u logiĉkim programima je unifikacija. Promenljive vrednost dobijaju jedino unifikacijom i to samo jednom, pri ĉemu ta vrednost može biti konstanta, ali i promenljive, ili term koji sadrži neku promenljivu. Zatim, iako je u logiĉkim jezicima moguće napisati sintaksno ispravan analogan naredbe X := X + 1, to nema smisla, pošto se X nikada ne može unifikovati sa X + 1.
6.3 Odnos logike i logičkog programiranja Na osnovu iznetog u elementima logiĉkog programiranja, zajedniĉko za logiĉko programiranje i automatsko dokazivanje teorema je:
logiĉki jezik se koristi za opis znanja i formalno izvoĊenje se koristi pri nalaženju rešenja problema.
MeĊutim, logiĉko programiranje se ne svodi na automatske dokazivaĉe, pošto:
logiĉko programiranje koristi formalni logiĉki jezik za definisanje izraĉunljivih funkcija 45
logiĉko programiranje koristi proceduru izvoĊenja koja je voĊena ciljem za izvršavanje takvih definicija kao programa.
6.4 Neke osobine Prologa Prolog je najviše korišćen programski jezik inspirisan idejom logiĉkog programiranja. Popularnost Prologa proistiĉe iz niza njegovih osobina, od kojih će biti navedene neke od najvažnijih. Prolog poseduje snažnu mogućnost manipulacije simbolima, ukljuĉujući unifikaciju logiĉkih promenljivih. Unifikacija služi i kao mehanizam prenosa parametara i vrši selektovanje i konstrukciju objekata. Automatski backtracking9 omogućava generisanje i testiranje kao osnovu upravljanja tokom izvršenja programa, a ako ovaj model kontrole nije pogodan za neku aplikaciju, moguće je isprogramirati pogodniji mehanizam. Program, odnosno klauze, i podaci imaju istu formu. Zato je olakšano pisanje programa koji kao podake obraĊuju neke druge programe, što je posebno pogodno u primenama u kojima je podržano mašinsko uĉenje. TakoĊe, Prolog program se može shvatiti i kao relaciona baza podataka koja sadrži pravila i ĉinjenice, i gde je omogućeno lako dodavanje i uzimanje informacija iz baze i postavljanje složenih pitanja. Kako osnovnu celinu jezika ĉine relacije, Prolog pruža mogućnost definisanja procedura koje se koriste za više od jedne namene. Recimo, u Prologu je lako napisati program koji zavisno od postavljenog upita pronalazi zbir dva broja, ili sve moguće sabirke koji daju željeni rezultat. Prolog, kao jezik logiĉkog programiranja, nema naredbe dodeljivanja, petlji, bezuslovnog prelaska itd. Ovaj jezik za predstavljanje osobina i meĊusobnih veza objekata koristi predikate. Predikati se definišu procedurama, tj. skupovima Hornovih klauza koje u glavi imaju isti predikat. Složenije strukture podataka mogu simulirati slogove (kao u Pascalu) i liste (kao u Lispu). Uifikacija predstavlja osnovni mehanizam za manipulaciju podacima. Izvršavanje prološkog programa zapoĉinje postavljanjem upita i odvija se prema strategiji SLD-rezolucije. Prolog poseduje skup takozvanih ugraĊenih predikata za aritmetiku, ulaz/izlaz i sistemske servise, kao i kontrolne komponente fail i cut. Sve ove karakteristike obezbeĊuju da Prolog bude univerzalni programski jezik, odnosno da se u Prologu može izraĉunati bilo šta što može biti izraĉunato i u drugim programskim jezicima. MeĊutim, naĉina na koji to ĉini Prolog je potpuno razliĉit u odnosu na konvencionalne jezike. Pre svega, problem se opisuje, dok se postupak rešavanja prepušta sistemu. Za opis znanja prevashodno se koristi rekurzivni postupak. Zbog toga programer koji radi u Prologu mora prihvatiti sasvim novi naĉin mišljenja.
6.5 Predstavljanje znanja Znanje koje se predstavlja u Prologu može se podeliti u:
9
Ne postoji prevod koji bi zadovoljio i opisao funkciju koja predstavlja vraćanje na prethodne korake, stoga se koristi u jednostavnom obliku kao engleska reĉ
46
ĉinjenice, tj. jednostavne iskazne reĉenice i pravila, tj. uslovne iskazne reĉenice.
Zajedno, sve ove reĉenice predstavljaju bazu znanja, odnosno prološki program. Ĉinjenice se zapisuju kao jediniĉne definitne klauze: predikat(Arg1, Arg2,...,Argn), kojima se predstavljaju odnosi izmeĊu objekata, ili svojstva tih objekata. Odnos (odnosno svojstvo) je nazvan imenom predikata10, a argumenti su ono izmeĊu ĉega postoji taj odnos, tj. što ima to svojstvo. Ĉinjenice koje ne sadrže promenljive se nazivaju osnovne ĉinjenice. Primer 2. Osnovnom činjenicom otac(miodrag, vladimir). se tvrdi da je Miodrag Vladimirov otac. Činjenicom voli(X, Y). se tvrdi da svi vole sve, dok se tvrdnja da svako voli samog sebe zapisuje sa: voli(X, X). Kako se pretpostavlja da su promenljive univerzalno kvantifikovane, ĉinjenica voli (X, Y), je zapravo zapis formule (∀X)(∀Y)voli(X,Y), pa je njeno tumaĉenje upravo onako kako je dato u primeru 2. Promenljive iz razliĉitih reĉenica, ĉak i kada su jednake po imenu, su sasvim nezavisne, pa ako recimo promenljiva X u jednoj klauzi programa dobije neku vrednost, to se ni na koji naĉin ne odražava na promenljivu X iz neke druge klauze. Pravilima odgovaraju nejediniĉne definitne klauze, koje se za ovu priliku zapisuju u obliku: zakljuĉak : - pretpostavke. Zakljuĉak je atomska formula, glava klauze, dok su pretpostavke jedan, ili više literala zajedno koji obrazuju telo klauze. Literali tj. atomske formule i njihove negacije, su obiĉno konjuktivno povezane, što se oznaĉava navoĊenjem zareza izmeĊu njih. Primer 3. Pravila roditelj(X,Y) :- otac(X,Y). roditelj(X,Y) :- majka(X,Y). kažu da je X roditelj od Y, ako mu je bilo otac, bilo majka. Slično tome, pravilom deda(X,Y) :- otac(X,Z), roditelj(Z,Y). 10
Add, is, cut, kao i nestandardne reĉi, se upotrebljavaju kao predikati
47
se kaže da je X deda od Y, ako je X otac od Z, a Z roditelj od Y. Veza izmeĊu literala u telu klauze može biti i disjunktivna, što se oznaĉava navoĊenjem taĉke zareza izmeĊu literala. Primer 4. Pravilo roditelj(X,Y) :- otac(X,Y); majka(X,Y). ima isto značenje kao i prva dva pravila iz prošlog primera kojima je u potpunosti ekvivalentno. Kao u prethodnom primeru, svaki zapis sa disjunktivnom vezom izmeĊu literala ima ekvivalentan zapis u kojima su literali konjuktivno povezani. U prologu je zato uobiĉajeno da se uglavnom koristi konjuktivni zapis. Kada ĉinjenicama i pravilima definišemo neki predikat, možemo ga koristiti i u klauzama za druge predikate, kao što je uraĊeno sa predikatima deda, otac i roditelj u primeru 3. Ovim postupkom ostvaruje se bogata hijerarhija klauza koje ĉine opis našeg znanja, odnosno prološki program. U klauzama se isti predikat može nalaziti i u glavi i u telu, a takav pristup se naziva rekurzivni pristup. Primer 5. Relaciju predak definišemo sledećim pravilima, od kojih je drugo rekurzivno: predak(X,Y) :- roditelj(X,Y). predak(X,Y) :- roditelj(X,Z), predak(Z,Y). pravila imaju jednostavno značenje, naime X je predak od Y, ako mu je roditelj, ili ako je X roditelj nekog pretka od Y.
6.6 Ciljevi u Prologu Cljevi su upitne reĉenice. Postavljanjem cilja zapoĉinje akcija, odnosno izvršavanje prološkog programa. Cilj je spisak literala razdvojenih zarezom i obiĉno se unosi preko tastature kada se pojavi prompt korisniĉkog interfejsa sistema (najĉešće upitnik). Tada sistem cilj tumaĉi kao pitanje „Da li je taĉno da...?― i pomoću mehanizma izvoĊenja traži odgovor na to pitanje. Odgovor11 je ĉesto samo „da―, ili „ne―, ali ako u cilju postoje promenljive daju se i vrednosti promenljivih za koje je utvrĊeno da je cilj zadovoljen. Primer 6. Neka je dat prološki program koji se odnosi na meĎusobne roĎačke veze i koji se sastoji od činjenica i pravila. otac(gojko, brana). 11
odnosno „yes―, ili „no―
48
otac(brana, miroslav). otac(brana, mara). otac(miroslav, aca). otac(miroslav, jelena). otac(rajko, vera). majka(vera, aca). majka(vera, jelena). majka(stana, miroslav). majka(stana, mara). majka(slavka, vera). roditelj(X,Y) :- otac(X,Y). roditelj(X,Y) :- majka(X,Y). predak(X,Y) :- roditelj(X,Z). predak(X,Y) :- roditelj(X,Z), predak(Z,Y).
Postavljanjem upita, na osnovu znanja predstavljenog programima dobijaju se odgovori. Recimo: ?- otac(gojko, brana). yes Ovde je upit bio jednostavno pitanje da li je Gojko Branin otac, na šta je sistem, na osnovu činjenice prisutne u programu odgovorio da jeste. Slično, ?- otac(gojko, mara). no Ovde sistem meĎu činjenicama nije našao potvrdu pitanja, a kako cilj nije ni posledica klauza iz programa, odgovor je negativan. Kada se postavi pitanje ko je Marin otac ?- otac(X, mara). X = brana
49
na osnovu činjenice otac(brana, mara) koja se nalazi u bazi, prološki sistem pronalazi odgovor da je to Brana. Ako se upita čija je majka Vera: ?- majka(vera, X). X = aca; X = jelena; no dobiće se odgovor das u to Aca i Jelena I da ih nema više. Zapravo, najpre će se ustanoviti da je Vera Acina majka, a nakon što se otkuca tačka-zarez i kraj reda (što predstavlja zahtev za pronalaženje sledećeg rešenja), sistem će pronaći i drugi odgovor, tj. da je Vera Jelenina majka. Kada se nakon toga ponovi zahtev za pronalaženje sledećeg rešenja, sistem će ustanoviti da takvih rešenja više nema i odgovoriće sa “no”. Za odgovor na pitanje da li je Gojko Acin predak analizira se rekurzivno pravilo iz procedure predak: ?- predak(gojko, aca). yes a odgovor se dobija na osnovu toga što je Gojko Branin otac, dok je Brana Acin predak. Ovo opet važi pošto je Brana Miroslavov otac, koji je Acin predak. I konačno, Miroslav je Acin predak, pošto mu je otac, a time i roditelj. Odgovor na pitanje da li je Rajko Jelenin predak bi bio da, ali odgovor na pitanje da li je Aca Jelenin predak bi bio ne. Postavljanjem pitanja da li je i Aca nečiji brat: ?- brat(aca, X). No dobio bi se odgovor “no”, pošto u program predikat “brat” nije definisan. Ali ako bi se dodalo sledeće pravilo: brat(X,Y):-otac(O,X), otac(O,Y), majka(M,X), majka(M,Y), pol(X,musko), not(X=Y). i ponovo postavilo isto pitanje, odgovor bi bio “yes”, dok bi X dobilo vrednost Jelena. Iz prethodnog primera se vidi da dobijanje odgovora ―no‖ na pitanje da li je Aca neĉiji brat ne znaĉi da Aca nije neĉiji brat, već da se takav odnos ne može izvesti iz postojeće baze znanja. Odatle bi preciznije tumaĉenje odgovora ―no‖ na bilo koji postavljeni upit nekom prološkom program bilo ―koliko ja znam to nije sluĉaj‖, ili ―nisam uspeo izvesti‖.
6.7 Sintaksa prologa 50
Azbuku kojom se pišu reĉi i reĉenice u Prologu saĉinjavaju velika i mala engleska slova, dekadne cifre i pomoćni znaci (taĉka, zarez, taĉka,-zarez, dvotaĉka, minus, zvezdica, plus, donja crta itd). Nizanjem ovih simbola dobijaju se konstante, promenljive i strukture koje se sve zajedno nazivaju termi. Definicija 1. Konstanta je atom ili broj. Atomi su: 1. niz slova, cifara i donjih crta koji počinje malim slovom, 2. niz znakova izmeĎu apostrofa i 3. niz pomoćnih znakova Brojevi su dekadni celi ili realni brojevi. Brojevi mogu imati znak, a mogu bit ii neoznačeni. Primer 7. Atomi su prema pravilu (1) petar, x_ i a3. Prema pravili (2) atomi su ’mika’ i ’zika’, dok su prema pravilu (3) atomi ==>, ;, ***, :- itd. Brojevi su 120, -120, -0,123 itd. Definicija 2. Promenljivu predstavlja niz slova, brojeva i posebnih znakova ”_”. Promenljive počinju velikim slovom ili posebnim znakom ”_”. Primer 8 Promenljive su A,Ab, _A, _, __, _314, X, itd. Promenljive za koje nije od znaĉaja koju će vrednost dobiti nazivaju se anonimne promenljive i ne moraju se imenovati, npr., zaljubljen(X) :- voli(X,_). Ĉime se želi reći da je neko zaljubljen, ako voli nekoga, bez obzira ko to bio (jer je drugi argument predikata voli anonimna promenljiva). Opseg važenja imena promenljive je pravilo, odnosno ĉinjenica, u kome se promenljiva pojavljuje, tako da su promenljive istog imena iz razliĉitih reĉenica meĊusobno nezavisne. Definicija 3. Struktura je konstrukcija dobijena od jednostavnih termova. Opšti oblik structure je: funktor(Argument1, Argument2,…, Argumentn) Funktor je atom koji povezuje argument strukture u celinu. Argument su termi, bilo prosti (atom ii promenljive), bilo i sami strukture. Funktor strukture je odreĊen imenom i arnošću12. Zapis mu je Ime/BrojArgumenata. Primer 9. Sledeći termi su structure: dob(jelena, 14) datum(Dan, Mesec, Godina) zaposlen (ime(nikola), roĎen(1960), zanimanje(programer)) 12
Ako je f operacija koja preslikava An u A, tada prirodni broj n nazivamo njenom arnošću. Drugim reĉima, arnost je broj argumenata operacije, tj. broj njenih operanada.
51
formirani redom pomoću funktora dob/2, datum/3, ime/1, roĎen/1, zanimanje/1 i zaposlen /3. Strukture p(a) i p(a,b) su formirane različitim funktorima p/1 i p/2. Ĉesta je grafiĉka prezentacija struktura pomoću drveta, kada se u koren postavlja funktor najvišeg prioriteta, a iz svakog ĉvora polazi onoliko grana kolika je arnost funktora. Prva struktura iz prošlog primera bi bila predstavljena kao na slici 1.
Slika 1. Grafiĉki prikaz strukture13
U proceduralnim jezicima strukturama odgovaraju slogovi (u Pascalu: records). Tako bi poslednjoj strukturi iz primera 9 odgovarao slog: zaposlen = Record ime: string; roĊen: integer; zanimanje: string; end; Kao što je reĉeno, u Prologu podaci i klauze imaju istu formu, odnosno i klauze su termi. Recimo, klauza p(x) :- q(X), r(X). se prezentuje drvetom kao term na slici 2:
Slika 2. Grafiĉki prikaz klauze 13
Grafiĉki prikaz se koristi radi lakšeg snalaženja prilikom pisanja koda procedure
52
6.8 Strukture podataka U prološkim programima se ĉesto koriste podaci koji imaju strukturu liste i koji sup o znaĉenju analogni povezanim listama koje se javljaju u proceduralnim programskim jezicima kakav je Pascal, s tim da je njihova prezentacija i manipulacija u Prologu specifiĉna. Iskustvo pokazuje das u ove structure podataka, kao i sve ostale structure koje se pomoću njih realizuju, pogodne za predstavljanje znanja id a se njima relativno jednostavno manipuliše, pre svega rekurzivnim postupcima. Lista je niz podataka u kojem se zna kojim redosledom se javljaju podaci, a jedan isti podatak se može u listi pojaviti više puta. Pošto su podaci ureĊeni prema pojavljivanju, u listi se zna koji je element prvi i on se naziva glava liste, kao i koji su sve elemnti iza njega, a oni se zajedno nazivaju rep liste. Lista može da ne sadrži ni jedan element, a u tom sluĉaju se naziva prazna lista. U prologu se lista uokviruje uglastim zagradama, izmeĊu kojih se pišu ĉlanovi liste razdvojeni zarezom. Prazna lista se zapisuje sa []. Lista koja sadrži samo jedan element, recimo a, se zapisuje sa [a], a lista koja sadrži tri elementa a, b i c sa [a,b,c]. Jedna lista može biti ĉlan neke druge liste, recimo lista [a,b] je drugi ĉlan liste [a, [a,b], c, d]. Simbol uspravne crte (―ǀ―) se koristi da razdvoji izvestan broj ĉlanova sa poĉetka liste od ostatka liste koji je takoĊe lista. Primer 10. Činjenica p([a,aǀZ]) važi za one liste koje na početku imaju dva člana a, za kojima sledi ostatak liste, dok činjenica p([aǀZ]) važi za one liste koje na početku imaju član a, za kojim sledi ostatk liste. Osnovne operacije u radu sa listama su:
proveravanje da li se neki objekat nalazi u listi, proveravanje da li su dve liste jednake, sortiranje listi, nadovezivanje listi, obrtanje liste itd.
One se realizuju rekurzivnim postupcima u kojima se po pravilu odgovarajuća akcija uradi za glavu liste, a zatim se ceo postupak ponovi za rep liste.
Primer 11. Sledeći program rešava problem ispitivanja pripadanja nekog objekta listi: element(X, [XǀRep]). element(X, [YǀRep]):- element(X,Rep). Ovaj program se tumači na sledeći način. Prva klauza se može pročitati kao: proizvoljni objekat X se nalazi u listi, ako je jednak njenoj glavi. Druga klauza se tada čita: ako objekat X nije jednak glavi liste, on se u listi nalazi samo ako se nalazi u njenom repu. 53
Pomoću listi se može realizovati veoma mnogo drugih struktura podataka. Recimo, binarno drvo se može prikazati troĉlanom listom ĉiji je prvi ĉlan koren drveta, drugi ĉlan odgovara levom, a treći desnom poddrvetu. Naravno, moguće su i raznorazne druge realizacije. Primer 12. Binarnom drvetu sa slike 3 odgovara lista [a, [b, [],[]],[c, [d, [],[]],[e, [],[]]]].
Slika 3. Grafiĉki prikaz liste
5.9 Negacija u prologu Upotreba negacije u Prologu zasniva se na principu formulisanom kao ―negacija kao konaĉni neuspeh―. Cilj ?-not A je taĉan samo ako je drvo izvoĊenja u ĉijem je korenu A, konaĉno i bez ijednog ĉvora uspeha. Drugim reĉima, not A je zadovoljeno, ako A nije zadovoljeno. Odavde se formula ¬A koja odgovara upitu ne dokazuje neposredno, kako je to sluĉaj u formalnim sistemima matematiĉke logike. U sledećem primeru je ilustrovano to odstupanje od ―standardnog― pristupa u matematiĉkoj logici. Primer 13. Neka program sadrži samo jednu klauzu: b. i neka je postavljen upit: ?-a. no Dobijeni odgovor je negativan, što znači da sistem ne može izračunati da je upit zadovoljen. Ali na upit: ?-not a. yes
54
se dobija pozitivan odgovor, što bi značilo da sistem raspolaže saznanjima da a nije tačno. MeĎutim, odgovor “yes“ u ovom slučaju znači da sistem nije bio u stanju da izračuna zadovoljenje upita ?-a, a ne da je izračunao zadovoljenje upita ?-not a, kako bi se dogodilo da je postavljen upit ?-b. yes
5.10 UgraĎeni predikati u prologu Prolog je dovoljno izražajan da je moguće definisati sve funkcije ne koristeći ugraĊene predikate. Ali u praksi ugraĊena podrška nekim funkcijama je potrebna zbog:
lakšeg i efikasnijeg programiranja, poboljšanja aritmetiĉkih operacija i pristupa okolini sistema, kao što su izlazno/ulazna opsluženja, komande operativnog sistema itd.
Dok su korisniĉki predikati definisani procedurama koje piše programer, ugraĊeni predikati se isporuĉuju uz sistem. Njihovo izvršavanje je zbog toga optimizovano. Primeri ugraĊenih predikata su aritmetiĉki predikati (+, - , / ,...), predikat is, predikati za izlaz/ulaz (write, read), predikati za brisanje klauza iz baze znanja i za ubacivanje klauza u bazu znanja (retract, assert), predikat za ispitivanje uspeha cilja (call), takozvani predikat drugog reda za pronalaženje svih, odnosno svih razliĉitih rešenja nekog cilja (setof, bagof) i konaĉno kontrolni predikati (cut, fail, repeat). Ovde će biti prikazano nekoliko ovih predikata kao ilustracija. U prološkom programu mogla bi se napisati procedura ĉiji je predikat arnosti tri, dok su mu argumenti sabirci i odgovarajući zbir. Takva procedura bi se mogla sastojati od veoma dugaĉkog niza ĉinjenica oblika: add(0,1,1). add(0,2,2). ... ili bi se mogla definisati rekurzivno, pravilima oblika: add(0,Y,Y). add(X,Y,Z) :- X1 is X-1, Z1 is Z-1, add(X1, Y, Z1). MeĊutim, oĉigledno je do kakvih implementacionih problema vodi ovakav pristup. U prvom sluĉaju bila bi zauzeta ogromna memorija, dok bi u drugom sluĉaju, za izraĉunavanje zbira iole većih brojeva bilo potrebno veoma puno koraka izvoĊenja. 55
Dakle, bez obzira koji pristup izabrali, dobijeno rešenje biće krajnje neefikasno. UgraĊeni aritmetiĉki predikati, a ovde konkretno predikat +, rešava ovakve probleme i u kombinaciji sa predikatom is, koriste se u raĉunanju vrednosti izraza kao što je prikazano u sledećem primeru. Primer 13. Pri postavljanju sledećih upita, dobijaju se odgovarajući odgovori: ?- X is 3+2. X=5 ?- X is 2*5, Y is 4+X X = 10 Y = 14
U prethodnim odeljcima su analizirane karakteristige Prologa. Na osnovu njih se može steći utisak o ovom jeziku i oceniti njegova pogodnost za primenu u veštaĉkoj inteligenciji. Prolog je zamišljen kao jezik logiĉkog programiranja i po nizu osobina on to jeste, ali ipak ne u potpunosti. Na primer, u Prologu je bitan redosled navoĊenja klauza i predikata u njima, što zbog komutativnosti dusjunkcije i konjukcije, ne bi trebalo da bude sluĉaj. Dalje, razmatranjem drveta izvoĊenja jasno se uoĉava da ako je neka grana drveta beskonaĉna, sistem nikada neće naći eventualna rešenja koja se javljaju u granama koje se javljaju desno od nje. Upotreba kontrolnih predikata, poput fail i cut, narušava zahteve formulisane u jednaĉini Kowalskog prema kojima se u logiĉkom programiranju kontrola izvoĊenja poverava sistemu, a od programera zahteva samo da opiše problem. Konaĉno, ni tretman negacije u Prologu nije u duhu logiĉke negacije. Sa druge strane Prolog i zadovoljava neke karakteristike logiĉkih jezika: poseduje deklarativnost, ne koristi promenljive kako ih koriste proceduralni jezici, nema naredbi petlje, bezuslovnog skoka itd. Sve ove primedbe ne znaĉe da je Prolog loš jezik. Naprotiv, on je zbog svoje deklarativne prirode, relativno jednostavne semantike, velike izražajnosti i lakoće baratanja sa drvoidnim strukturama kojima se pogodno prezentuje znanje, široko prihvaćen kao programski jezik opšte namene, a pogotovo kao sredstvo za razvoj aplikacija u oblastima veštaĉke inteligencije. Najĉešći primer za to su ekspertni sistemi. Treba napomenuti da je zbog ―inteligencije― prološkog sistema pisanje u Prologu znaĉajno brže nego u proceduralnim jezicima.
56
7 ПРИМЕНА ВЕШТАЧКЕ ИНТЕЛИГЕНЦИЈЕ:
Veštaĉka inteligencija koja se razvija relativno brzo, već naširoko se koristi u sledećim aplikacijama: Inteligentno rukovanje bazom podataka. U ovim sistemima korisniku je omogućen pristup ne samo onim podacima do kojih se može doći direktno nego i onim izvedenim podacima do kojih se dolazi nakon analize direktno dobijenih podataka. To je moguće sa korisniĉkim modelima, koji opisuju razne potrebe korisnika, oĉekivanja i mogućnosti. Robotika. Nauka i tehnologija za razvoj i upotrebu „inteligentnih‖ sredstava. Obavlja se fiziĉki, konstruktivni posao sa izvesnim stepenom prilagodjavanja. Znaĉajna je sposobnost identifikacija pozicije objekta i okolnosti da bi se izabrala odgovarajuća metoda za ostizanje unapred datog cilja. Iz osnovnih radnji sastavlja se plan aktivnosti, koji su potrebni za prelaz iz jednog stanja robota u drugo. Ima veliki uticaj na dalji razvoj industrije. Obrada prirodnih i veštačkih jezika. Vrši se prevod, ili priprema za prevod sa jednog jezika na drugi. Inteligentna komunikacija sa računarom. Tokom rada raĉunara ĉovek oĉekuje jasnu komunikaciju u vezi zadatka. Razumevanje i generisanje ţivog jezika. Sa skromnom koliĉinom reĉi i jednostavnom gramatikom je ovo moguće na nekim moćnijim raĉunarima. Raĉunar, sem znaĉenja pojedinaĉnih reĉi, mora da poznaje i relacije izmedju njih, gramatiku jezika i pojmove pridružene objektima, kao i relacije medju reĉenicama. Iz toga proizilaze tri funkcije jeziĉke analize: - leksiĉka analiza (analiza reĉi), - sintaktiĉka analiza (analiza mesta reĉi u reĉenici) - semantiĉka (analiza znaĉenja reĉenice u kontekstu i kao zasebne celine) Automatsko programiranje. Programski zadatak, koji je napisan na nekom specifiĉnom jeziku (npr. Predikatum-kalkulus), prevede na neki programski jezik, ili na izvršni kod. Program, koji to izvršava mora poznavati sintaksu izvornog (na kome je data specifikacija) i izvršnog jezika, kao i moguće probleme podataka, konvencije za rukovanje input-outputom. •
Sistemi zasnovani na znanju. Sistemi zasnovani na znanju (Knowledge Based Systems - KBS) treba da omoguće pre svega simboliĉko predstavljanje znanja, nalaženje rešenja i eventualno samostalno uvećavanje znanja na osnovu iskustva. Za razliku od podataka kojima raĉunarski programi uobiĉajeno operišu i koji su uglavnom numeriĉke prirode, pri predstavljanju znanja karakteristiĉno je da se koriste pretežno nenumeriĉki podaci. Postoji više naĉina za predstavljanje znanja i to su produkciona pravila, semantiĉke mreže, frejmovi, objekti, itd. o 57
ĉemu će više reĉi biti u poglavlju o ekspertnim sistemima. Od posebnog interesa je rešavanje problema kada nije poznato algoritamsko rešenje problema, kada odgovarajući algoritam ne postoji ili kada je algoritam poznat ali implementacija na raĉunaru prevazilazi resurse raĉunara. U tom sluĉaju se koriste heuristike. •
Heuristika - To su pravila za rešavanje kojima se na osnovu prethodnog znanja, iskustva i intuicije sužava i usmerava podruĉje traganja za rešenjem. Primena heuristika ne mora da garantuje nalaženje rešenja u opštem sluĉaju za bilo koji mogući skup ulaznih podataka, kao što je sluĉaj sa algoritmom. Ipak, vrednost ovih pravila je neosporna i pre svega je praktiĉne prirode, ako se u praksi do rešenja može doći u velikom broju sluĉajeva.
7.1 Rešavanje i pojam problema:
Problema postajemo svesni kada želimo da nešto postignemo ali ne znamo kako da do toga doĊemo, ne znamo njegovo rešenje (ili postupak, algoritam kojim bismo došli do toga). Problem uvek podrazumeva i neko rešenje ili potragu za rešenjem. Za razliku od problema u svakodnevnom životu, problemi školskog tipa su obiĉno precizno opisani zajedno sa ponuĊenim podacima neophodnim za njegovo rešavanje, pogotovu matematiĉki problemi ili igre. U realnom svetu problem može biti opisan prirodnim jezikom (ĉije razumevanje u smislu interpretacije predstavlja jedan od osnovnih primera problema VI) koji sa taĉke gledišta rešavanja problema ima barem ĉetiri ozbiljna nedostatka: nekompletnost (bez konteksta lako može doći do nesporazuma u razgovoru), redundantnost, nejasnoća tj. višesmislenost i gramatiĉka neispravnost. Potrebno je zato najpre naći formu zapisa problema tako da se ovi nedostaci izbegnu. Uobiĉajen redosled koraka u rešavanju problema mogao bi biti:
Proĉitaj ili upamti problem s razumevanjem Izvedi neposredne zakljuĉke o problemu ako je moguće; Porazmisli o svemu, ostavi da proĊe malo vremena; Potraži bolju formulaciju, uoĉi zatvoren izraz; NaĊi delimiĉno rešenje; Proveri ispravnost rešenja, potraži moguće uopštenje; Poigraj― se sa dobijenim zakljuĉcima i upamćenim ĉinjenicama (veoma bitan korak ljudima).
58
PRIMER: Šahovski meč Kasparov - DEEP BLUE Razmotrimo ĉuveni šahovski meĉ odigran u maju 1997 izmedju svetskog šahovskog šampiona Garija Kasparova i IBM-ovog superraĉunara DEEP BLUE Preuzeto sa IBM ovog site-a : •
WWW.CHESS.IBM.COM
•
Da li DEEP BLUE uopšte i koliko koristi veštaĉku inteligenciju ?
DEEP BLUE je specijalno dizajniran raĉunar koji je namenjen igranju šaha na najvišem svetskom nivou, i bazira se na paralelnom sistemu RS/6000 SP DEEP BLUE Osim za šah, raĉunarski sistem na kome se bazira DEEP BLUE nalazi primenu i u nekim sasvim drugaĉijim oblastima kao što su na primer: •
Ĉišćenje i dekontaminacija mesta za odlaganje otrovnih otpadaka
•
Vremensku prognozu
•
Modelovanje finansijskih podataka
•
Automobilski dizajn
•
Razvoj novih medikamentoznih terapija
•
Server za Web site-ove
•
IBM-ov site WWW.CHESS.IBM.COM upravo koristi raĉunar baziran na istoj tehnologiji kao i DEEP BLUE
Šahovski meč Kasparov - DEEP BLUE •
U meĉu odigranom 1997 godine raĉunar DEEP BLUE je pobedio Kasparova sa rezultatom od 3.5 prema 2.5
•
Samo godinu dana ranije u februaru 1996 u prethodnom meĉu takodje protiv Garija Kasparova, DEEP BLUE je izgubio
•
Interesantno je da je IBM-ov istraživaĉki tim koji stoji iza razvoja raĉunara DEEP BLUE uspeo da ga u tako kratkom roku usavrši u meri dovoljnoj za pobedu nad svetskim šahovskim šampionom
•
Osnovne izmene su se prema reĉima direktora IBM-ovog istraživaĉkog tima odnosile na program koji može da menja parametre izmedju dve partije, zatim dodato je još šahovskog znanja i sam sistem je jaĉi od prethodnog, pre svega brži je približno dva puta
•
Prema izveštajima sa meĉa, i to u poslednjoj šestoj partiji Gari Kasparov je proživljavao zaista teške trenutke 59
•
Na osnovu prvih nekoliko poteza, mogla se oĉekivati strategijska borba i pozicija je za crnog, tj. Kasparova bila veoma solidna
•
Dramatiĉan preokret je nastao već posle sedmog poteza Kasparova, kada je DEEP BLUE odigrao interesantan potez naizgled dosta neuobiĉajen za mašinu
•
DEEP BLUE je naime inicirao neravnopravnu razmenu, tj. žrtvovao je konja za pešaka
•
Ovakav potez je u datoj situaciji poznat kao vrlo jak, jer statistika pokazuje da samo jedan od devet igraĉa koji prihvati ovakvu žrtvu može da izbegne poraz, i to ako ima sreće
•
Posle ovog poteza koji mu je onemogućio rokadu, Kasparov je promenio stil igre i poĉeo da igra odbrambeno otvaranje Karo Kan kao njegov stari protivnik Anatolij Karpov
•
Medjutim već u 19 potezu partija je završena u korist raĉunara, što je istovremeno znaĉilo i pobedu u meĉu
•
Jedno od merila važnosti ovog meĉa je da je razvojni tim IBM-ovih struĉnjaka podelio $700.000 nagrade za osvojeno prvo mesto, dok je za drugo mesto Kasparov dobio $400.000
•
Šah se već dugo vremena smatra za jednu od igara kod koje pre svega dolaze do izražaja ĉovekove intelektualne sposobnosti, što ovom dogadjaju i daje najveću težinu
•
Svojevremeno je u filmu Odiseja u svemiru 2001 snimljenom 1968, šahovska partija izmedju raĉunara HAL na svemirskom brodu Discovery, i jednog od astronauta trebalo da pokaže intelektualnu moć raĉunara
•
Zanimljivo je da ime HAL predstavlja svojevrsnu skraćenicu od Heuristically programmed ALgorithmic computer. Heuristike i heuristiĉko programiranje su danas veoma važni u VI i biće detaljnije objašnjeni u vezi Ekspertnih Sistema.
Nakon tri sata igranja, svetski šahovski prvak Gari Kasparov izgubio je prvu od šest partija u meĉu protiv IBM-ovog kompjutera Deep Blue 10. februara 1996. godine. Ovaj dogaĊaj je (ponovo) otvorio mnoga pitanja i dileme. Da li postoji veštaĉka inteligencija (engl. Artificial Intelligence - AI) tj. da li je ona stvarno moguća? Pitanje koje muĉi generacije raĉunarskih i drugih nauĉnika. A ako je moguća, da li nam treba? Da li, osim što može biti korisna, može postati i opasna? Pitanje se, na prvi pogled, ĉini kao tehniĉko ali istovremeno ima vrlo znaĉajne društvene, etiĉke, religijske, pravne i druge aspekte. Da li u budućnosti inteligentne mašine mogu biti zloupotrebljene ili ĉak nadvladati i pokoriti ĉoveĉanstvo? Odavno se lome koplja u nauĉnom svetu oko toga da li je veštaĉka inteligencija moguća. Da li mašine (raĉunari) mogu da misle, donose odluke, opažaju, interaguju sa okolinom? A postoje neslaganja i oko baziĉne stvari: šta je to veštaĉka inteligencija u suštini tj. kako je precizno definisati. Veštaĉka inteligencija u raĉunarskom svetu oznaĉava oponašanje ljudskog procesa razmišljanja. Cilj primene veštaĉke inteligencije u razliĉitim raĉunarski baziranim sistemima jeste da se automatizuje proces korelacije, koju inaĉe ljudski mozak može veoma dobro da obavi.
60
8. Modifikovani Turing-ov test •
Da bi se pomenuti Turing-ov test za dokazivanje inteligentnog ponašanja mašine mogao praktiĉno koristiti, potrebno je uvesti odredjena ograniĉenja
•
Pre svega potrebno je ograniĉiti oblast konverzacije izmedju ĉoveka i mašine
•
Jedno od vrlo praktiĉnih rešenja u tom smislu je šahovsko ograniĉenje
•
Da bi se raĉunaru pružila što veća šansa, test se ne sastoji u tome da se na osnovu direktne partije preko terminala donese zakljuĉak o prirodi nevidljivog protivnika
•
U direktnoj partiji bi se na osnovu nekih neuobiĉajenih poteza koji nisu povuĉeni sa ciljem da se pobedi već da se na osnovu reakcije protivnika zakljuĉi da li je ĉovek ili raĉunar
•
Umesto toga, test se sastoji u tome da se analiziranjem zapisanih poteza već odigrane partije zakljuĉi o prirodi igraĉa, pri ĉemu je moguće da raĉunar ili ĉovek budu jedan ili oba igraĉa
•
U jednom takvom eksperimentu, Gari Kasparov je s vremena na vreme ali ne pouzdano mogao da zakljuĉi o kakvim se protivnicima radi
•
Šah se naravno ne može uzeti kao neki opšti pokazatelj ili kriterijum inteligentnog ponašanja, iz prostog razloga što je to jedna veoma specifiĉna aktivnost
•
Ĉak šta više, može se reći da šah ne predstavlja tako veliki problem za primenu na raĉunaru kao što su to neki drugi problemi, na primer prepoznavanje oblika, razumevanje govora, planiranje, itd
•
Ljudi i raĉunari jednostavno nemaju isti pristup šahu
•
Osnovne prednosti raĉunara su ogromna brzina i mogućnost memorisanja ogromnog broja razliĉitih pozicija
•
Osim toga, svesno ili nesvesno ljudi mogu menjati stil igre za vreme jedne partije, i time koristiti uoĉene slabosti raĉunara
•
Sa druge strane, postoje situacije kada je izraĉunavanje velikog broja poteza unapred izuzetno važno, na primer u šahovskim završnicama kada ostane malo figura
•
Na primer, kralj i pion protiv kralja, konja i lovca može da predstavlja vrlo tešku završnicu
•
Primenom raĉunara za analizu u ovakvim sluĉajevima došlo se do rešenja koja su imala i po nekoliko stotina potezaPojedini šahisti su ĉak probali da nauĉe potreban niz poteza, što predstavlja svojevrsno oponašanje raĉunara
•
Šah spada u red problema u kojima su raĉunari danas uporedivi sa ljudima
61
•
Prema tvrĊenju Kloda Šenona osnivaĉa teorije informacija, šah je dobro definisan kako u dozvoljenim potezima tako i u konaĉnom cilju
•
Nije ni suviše jednostavan da bi bio trivijalan, a ni suviše komplikovan za postizanje zadovoljavajućeg rešenja
•
Igra go sa dalekog istoka se smatra komplikovanijom od šaha, i za sada ĉak ni raĉunar kao što je DEEP BLUE ne bi mogao da postigne zadovoljavajuće rezultate u takvoj igri
•
Postoji veliki broj težih problema u kojima raĉunari zaostaju za ljudima kao što su prepoznavanje oblika, razumevanje govora, uĉenje, složeno planiranje
•
U ovakvim problemima je primenjivanje metoda koji se zasnivaju na sirovoj snazi raĉunara neadekvatno
Pobeda raĉunara nad svetskim šahovskim šampionom bazira se pre svega na primeni prednosti koje pruža sirova snaga raĉunara, a manje na primeni metoda koje imitiraju ponašanje ljudi, ili možda nekih još uspešnijih metoda •
Inteligentno ponašanje je (još uvek) svojstvo vezano za najviše oblike života, za ljude pre svega
•
Suštinsko razumevanje inteligencije i funkcije mozga bi moglo da bude povezano sa razvojem raĉunara i koncepata VI analogno kao što je to bio sluĉaj sa upoznavanjem funkcije nekih drugih organa
•
Na primer, ljudi su kroz vekove imali prilike da vide srce ubijene životinje, ali nisu znali funkciju tog organa
•
Danas, vrlo jednostavno objašnjavamo funkciju srca tako što ga poredimo sa neĉim poznatim, a to je pumpa, i kažemo da je srce u stvari jedna vrsta pumpe
•
Sliĉno tome, oko poredimo sa mraĉnom komorom ili foto kamerom
•
Funkcija nerava nam može biti jasna ako ih uporedimo sa žicom koja provodi elektriĉne impulse
•
Ali da bi razumeli kako funkcioniše mozak, da li ćemo prethodno morati da napravimo neki veštaĉki sistem baziran na raĉunarima koji će koristiti neke sliĉne kljuĉne koncepte kao i mozak?
62
http://www.opera-17.com/showbiz/2010/02/21/opera17-vam-cita-misli-cik-pokusaj-da-slazes/
63
64
Literatura 1) Veštaĉka inteligencija,dr Predrag Janiĉić, vanredni profesor Matematiĉkog fakulteta u Beogradu Mladen Nikolić, asistent na Matematiĉkom fakultetu u Beogradu 2) .Osnove veštaĉke inteligencije IPopović Zoran, Tanja Vuković Centar za multidisciplinarne stu dije Univerzitet u Beogradu 3) Mašinsko uĉenje,inteligentni agenti Popović Zoran Centar za multidisciplinarne studije Univerz itet u Beogradu 4) http://sr.wikipedia.org 5) Simon Haykin, ―Neural Networks a Comprehensive Funfations‖, McMaster University, Canada, 1999. 6) Mihael Janĉić, ―Norme za kompresiju mirnih slika‖, Sveuĉilište elektrotehnike i raĉunarstva, Fakultet u Zagrebu, Zagreb, 2002. 7) Christophe Amerijckx, Michael Verleysen, Philippe Thissen, Jean-Didier Legat, ―Image compression by self-organized Kohonen map‖, IEEE Transactions on neural networks, vol. 9, 1998. 8) Wikipedia, ―Dynamic range‖, http://en.wikipedia.org/wiki/Dynamic_range 9) Wikipedia, ―JPEG‖, http://en.wikipedia.org/wiki/JPEG 10) Wikipedia, ―Discrete cosine transform‖, http://en.wikipedia.org/wiki/Discrete_cosine_transform 11) Wikipedia, ―Java Virtual Machine‖, http://en.wikipedia.org/wiki/Java_Virtual_Machine 12) Steve Manley, ―Java DCT Compression Libraries Documentation‖, http://www.nyx.net/~smanley/dct/DCT.html, 2006. 13) Wikipedia, ―Neuroph documentation‖, http://neuroph.sourceforge.net/documentation.html 14) Wikipedia, ―Lenna‖, http://en.wikipedia.org/wiki/Lenna 15) Christophe Amerijckx, Michael Verleysen, Philippe Thissen, Jean-Didier Legat, ―Image compression by self-organized Kohonen map‖, IEEE Transactions on neural networks, vol. 9, 1998. 16) Simon Haykin, ―Neural Networks a Comprehensive Funfations‖, McMaster University, Canada, 1999. 17) Mašinsko učenje,inteligentni agenti Popović Zoran Centar za multidisciplinarne studije Univerz itet u Beogradu 18) Primena Veštačke inteligencije KARLO T. RAIĆ Tehnološko metalurški fakultet, Beograd www.wikipedia.org http://www.sk.rs/
65