92
FAKULTET INFORMACIONIH TEHNOLOGIJA BEOGRAD NASTAVNI PREDMET: VEŠTAČKA INTELIGENCIJA

VEŠTAČKA INTELIGENCIJA

Embed Size (px)

DESCRIPTION

Vestacka inteligencija

Citation preview

Page 1: VEŠTAČKA INTELIGENCIJA

FAKULTET INFORMACIONIH TEHNOLOGIJA

BEOGRAD

NASTAVNI PREDMET:

VEŠTAČKA INTELIGENCIJA

Predmetni nastavnik:

Prof.dr Nebojša Denić

Page 2: VEŠTAČKA INTELIGENCIJA

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 (1623-1662) 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

Page 3: VEŠTAČKA INTELIGENCIJA

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 verovatnonajbolju 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 Hanover SAD3 Alan Matison Tjuring ( 23. jun 1912 — 7. jun 1954) engleski matematičar, logičar i kriptograf.

3

Page 4: VEŠTAČKA INTELIGENCIJA

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

Page 5: VEŠTAČKA INTELIGENCIJA

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

Page 6: VEŠTAČKA INTELIGENCIJA

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

Page 7: VEŠTAČKA INTELIGENCIJA

• 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

Page 8: VEŠTAČKA INTELIGENCIJA

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

Page 9: VEŠTAČKA INTELIGENCIJA

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

Page 10: VEŠTAČKA INTELIGENCIJA

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

Page 11: VEŠTAČKA INTELIGENCIJA

• S – M

• S – P

Osim ove Aristotel daje još dve silogističke figure:

• P – M M - P

• S – M i M - S

• S – P 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

11

Page 12: VEŠTAČKA INTELIGENCIJA

• 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

• Robotika i viđenje 12

Page 13: VEŠTAČKA INTELIGENCIJA

• 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

Page 14: VEŠTAČKA INTELIGENCIJA

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

Page 15: VEŠTAČKA INTELIGENCIJA

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ženjersko-ekspertsko 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

Page 16: VEŠTAČKA INTELIGENCIJA

Nenadgledano (unsupervised) - kada nisu zadate vrednosti funkcije u skupuobuč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

Page 17: VEŠTAČKA INTELIGENCIJA

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

Page 18: VEŠTAČKA INTELIGENCIJA

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žeZa 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

Page 19: VEŠTAČKA INTELIGENCIJA

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

Page 20: VEŠTAČKA INTELIGENCIJA

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

Page 21: VEŠTAČKA INTELIGENCIJA

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

Page 22: VEŠTAČKA INTELIGENCIJA

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

Page 23: VEŠTAČKA INTELIGENCIJA

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 neu-rona data je na slici 2. Neuron ima nekoliko ulaza (uopšteno to može biti mešavina vanjskih ulaza i iz-laza iz nekih drugih neurona). Svaki ulaz ima svoju specifičnu težinu. Ulazi, pomnoženi svojim težina-ma, 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 in-formaciju u niže slojeve. Vrše prostiranje signala samo u jednom smeru (od ulaza pre-

23

Page 24: VEŠTAČKA INTELIGENCIJA

ma izlazu) odnosno propagaciju signala. Predstavnici: Višeslojni perceptron sa prime-njenim backpropagation algoritmom.

Feedback (rekurzivne ili rekurentne ili povratne) - Viši slojevi vraćaju informacije na-zad 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 aso-cijativne 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 algo-ritmu 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 al-goritmu 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 una-pred 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 reduk-cija 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 eksperi-

24

Page 25: VEŠTAČKA INTELIGENCIJA

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 ko-rišćeni algoritmi, koji koriste nenadgledano učenje, su samoorganizujuće mape i teorija adaptivne rezo-nance.

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 Me-mory (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

Page 26: VEŠTAČKA INTELIGENCIJA

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

Page 27: VEŠTAČKA INTELIGENCIJA

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 raz-likuju 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 po-gleda na visokodimenzione podatke, tj. višedimenziono skaliranje. Ovaj model je prvi put kao neuron-sku 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 po-moć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. Sva-ki 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 poda-taka 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če-kuju u toku faze mapiranja. Obično se obučavanje sa istim uzorcima vrši više puta, kroz nekoliko itera-cija.

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ži-na 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 do-zvolu da se aktiviraju za određeni skup ulaznih podataka.

27

Page 28: VEŠTAČKA INTELIGENCIJA

gde je α(t) monotono opadajući koeficijent učenja, a D(t) je ulazni vektor. Funkcija sused-nih neurona Θ (v, t) zavisi od rastojanja između neurona sa najvećim podudaranjem i neurona v. Posto-je dva načina za ažuriranje vrednosti:

Najjednostavniji način je ažuriranje sa istom vrednosti svih neurona koji se nalaze do-voljno blizu neurona sa najvećim podudaranjem, dok vrednosti ostalih ostaju neprome-njene.

Drugi način je ažuriranje suseda upotrebom gausove funkcije.

Bez obzira koji je način ažuriranja, funkcija susednih neurona smanjuje radijus svog delo-vanja 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 ve-lik (λ). 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 “co-de 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 odgo-varaju 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 skrive-nih 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 re-

28

Page 29: VEŠTAČKA INTELIGENCIJA

dukciju skupa boja slike. Pikseli slike se mogu grupisati klasterovanjem po njihovoj blizini u RGB pro-storu 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 pik-sel iz bloka slike dok svaki neuron u izlaznom sloju predstavlja jedan ili više blokova slike. Shodno to-me, 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 od-redi 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 ak-tiviran 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 neu-ron i njegov težinski vektor koji se rekonstruiše u blok. Slika se dobija slaganjem blokova u odgovara-juć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 ko-ristio),

29

Page 30: VEŠTAČKA INTELIGENCIJA

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 sli-ke 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 sazre-vanje. 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

• 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

30

Page 31: VEŠTAČKA INTELIGENCIJA

• 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

3.15 Veza sa intelektualnim procesima

31

Page 32: VEŠTAČKA INTELIGENCIJA

• 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ć

4. MAŠINSKO UČENJE

32

Page 33: VEŠTAČKA INTELIGENCIJA

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.

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.

33

Page 34: VEŠTAČKA INTELIGENCIJA

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.

5. AUTOMATSKO UČENJE

5.1 Automatsko rezonovanje  

34

Page 35: VEŠTAČKA INTELIGENCIJA

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 potpuno automatski. Kao takvo, automatsko rezonovanje se obično smatra podoblašću veštačke inteligencije, ali ova oblast ima jake veze i sa teorijskim računarstvom , pa i filozofijom. 

Najrazvijenije oblsti automatskog rezonovanja su verovatno automatsko dokazivanje teorema (i manjeautomatska, 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 napori uloženi i u razvijanje rezonovanja analogijom, indukcijom i abdukcijom. Druge važne teme su rezonovanje pod nesigurnim okolnostima i nemonotono rezonovanje. 

 Alati i tehnike koje automatsko rezonovanje koristi uključuju aparaturu klasične logike i računa za automatsko 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 komponenta svakog rezonovanja je sposobnost zaključivanja. Na zaključivanju se temelje sposobnosti učenja, otkrivanja primera i kontraprimera, uočavanje analogija, prepoznavanje objekata i druge. Posebno značajno 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 dokazivanja 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 bazama 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. 

 Mehanizam učenja može da se predstavi kroz algoritam procesa učenja. Ovde treba napomenuti da postoje dva dela procesa učenja: heurističko i logičko. 

35

Page 36: VEŠTAČKA INTELIGENCIJA

 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) činjenica, 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 ? Nije ? Hajde da vidimo. Da pokušamo da nađemo način da se uverimo da je B, kao sto smo se uverili da je 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) izvodi 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 sledi B. 

To ne znaci da jeste A i da jeste B. To samo znaci da B govori isto što i A /nema novih informacija/ samo 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. Necemo da gledamo Peri i Miki u džepove. Vazno je samo da li, ukoliko je to tako kako se iznosi u 1) i 2) onda nužno sledi 3). Ukoliko sledi, zaključivanje je ispravno, ukoliko ne sledi zaključivanje nije ispravno (validno). 

Zaključak validne dedukcije nikada ne sadrži više informacija nego što je sadržano u pretpostavkama.  

 

36

Page 37: VEŠTAČKA INTELIGENCIJA

To je razlog zašto dedukcija uvek sadrži sigurnost i moze se logički proveriti (nikada ne govori ništa novo), a zašto je indukcija uvek u nekom pogledu nesigurna i ne može se logički proveriti već samo empirijski. 

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 proveri 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 reš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 nove situacije. Na primer, program koji uči prošla vremena glagola na srpskom jeziku mehaničkim učenjem, 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 tako formirati prošlo vreme glagola skočiti,  zasnivajući se na iskustvu sa sličnim glagolima. Učenje stabala odlučivanja 

 

Razmotrimo igru sa 20 pitanja. Jedan igrač zamišlja neki predmet, a drugi treba da pogodi o kom je predmetu 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 sud 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

37

Page 38: VEŠTAČKA INTELIGENCIJA

m predmetu. Svaki čvor osim listova ima dve grane označene sa da ili ne koje vode u podstablo koje odgovara 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 za dato pitanje. Ovakva stabla se mogu automatski naučiti iz primera koji za svaku instancu uključuju vrednosti 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 funkcija predstavlja u vidu stabla. Slično igri 20 pitanja, svakom čvoru stabla odgovara test nekog atributa instance, 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 dodeljuje instanci kad se dođe do lista. 

Učenje stabala odlučivanja je već primenjeno u različitim problemima. Jedan primer se odnosi na predviđanje buduće potražnje za knjigama u bibliotekama, na osnovu nekih njihovih atributa (npr. jezik, datum 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 devedesetih 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 čvorova, postignuta je preciznost klasifikacije od 95%. Takođe postoje primene i u ekonomiji i drugim oblastima.  

Korišćenje stabla odlučivanja nije podjednako pogodno za sve probleme učenja. Potrebno je da se instance 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 podintervale. 

Svakom podintervalu se pridružuje oznaka koja zamenjuje vrednosti atributa iz tog intervala u zapisimainstanci. Stabla odlučivanja se pokazuju posebno primenljiva u slučaju kada je neophodno predstavljanje disjunkcija uslova, kada podaci za trening sadrže greške i kada u trening skupu postoje instance kojima nedostaju vrednosti nekih atributa. 

 

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. Stoga putanje kroz stablo predstavljaju konjunkcije ovakvih uslova. Za svaku klasu moguće je uočiti putanje koje se završavaju listovima koji odgovaraju toj klasi. Disjunkcija svih takvih konjunkcija definiše instance koje pripadaju datoj klasi prema datom stablu. Jedan od najpoznatijih algoritama za učenje stabla 

38

Page 39: VEŠTAČKA INTELIGENCIJA

odlučivanja je ID3. Ovaj algoritam konstruiše stablo od korena, naniže, pitajući se u svakom čvoru koji 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. Svakom 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

Page 40: VEŠTAČKA INTELIGENCIJA

 

Treba primetiti da ID3 preferira stabla sa manjom dubinom, kao i stabla u kojima se atributi koji nose već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

Page 41: VEŠTAČKA INTELIGENCIJA

Pravilo rezolucije – teorema potpunosti  

Rezolucija je primer metode zaključivanja koja se može efikasno automatizovati, i u određenim slučajevima 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đutim, metod rezolucije može se koristiti i za ispitivanje valjanosti. 

41

Page 42: VEŠTAČKA INTELIGENCIJA

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 sastavaka i informacije o rezolviranim literalima.Informacija o rezolviranim literalima čuva se tako što se 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‐rezolvente 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  (ako postoji 

za neko k, ako ne postoji onda se OL‐rezolventa datih sastavaka ne može odrediti). 

3.    Formiranje rezolvente markiranjem poslednjeg literala u D1θ i dopisivanjem ostatka sastavka D2θ 

bez k‐tog literala. 

42

Page 43: VEŠTAČKA INTELIGENCIJA

4.    Isključivanje nemarkiranih literala identičnih mlađem literalu u rezolventi i ispitivanje tautologičnosti. 

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

Page 44: VEŠTAČKA INTELIGENCIJA

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

Page 45: VEŠTAČKA INTELIGENCIJA

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

Page 46: VEŠTAČKA INTELIGENCIJA

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:

činjenice, tj. jednostavne iskazne rečenice i

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

Page 47: VEŠTAČKA INTELIGENCIJA

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).

se kaže da je X deda od Y, ako je X otac od Z, a Z roditelj od Y.

10 Add, is, cut, kao i nestandardne reči, se upotrebljavaju kao predikati47

Page 48: VEŠTAČKA INTELIGENCIJA

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).

otac(brana, miroslav).

11 odnosno „yes“, ili „no“48

Page 49: VEŠTAČKA INTELIGENCIJA

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

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:

49

Page 50: VEŠTAČKA INTELIGENCIJA

?- 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

Page 51: VEŠTAČKA INTELIGENCIJA

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 i3. 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

Page 52: VEŠTAČKA INTELIGENCIJA

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 procedure52

Page 53: VEŠTAČKA INTELIGENCIJA

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

Page 54: VEŠTAČKA INTELIGENCIJA

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

Page 55: VEŠTAČKA INTELIGENCIJA

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

Page 56: VEŠTAČKA INTELIGENCIJA

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

Page 57: VEŠTAČKA INTELIGENCIJA

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

Page 58: VEŠTAČKA INTELIGENCIJA

č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

Page 59: VEŠTAČKA INTELIGENCIJA

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

59

Page 60: VEŠTAČKA INTELIGENCIJA

• Prema izveštajima sa meča, i to u poslednjoj šestoj partiji Gari Kasparov je proživljavao zaista teške trenutke

• 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.

60

Page 61: VEŠTAČKA INTELIGENCIJA

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.

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

61

Page 62: VEŠTAČKA INTELIGENCIJA

• 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

• 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

Page 63: VEŠTAČKA INTELIGENCIJA

http://www.opera-17.com/showbiz/2010/02/21/opera17-vam-cita-misli-cik-pokusaj-da-slazes/

63

Page 64: VEŠTAČKA INTELIGENCIJA

64

Page 65: VEŠTAČKA INTELIGENCIJA

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 studije Univerzitet u Beogradu 

3) Mašinsko učenje,inteligentni agenti Popović Zoran Centar za multidisciplinarne studije Univerzitet 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 Univerzitet 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