Ekspertni sistemi

Tutorijal-praktikum za baze znanja, pravila, činjenice, inferencioni mehanizam, forward chaining, backward chaining, objašnjavanje zaključivanja, neizvesnost, faktore sigurnosti, fuzzy ekspertne sisteme, hibridne ekspertne sisteme i praktično razumevanje računarskog odlučivanja zasnovanog na znanju
Ekspertni sistemi – uvod u baze znanja, pravila, zaključivanje, inferencioni mehanizam, neizvesnost i primene u računarskoj inteligenciji
Uvod

Ekspertni sistemi predstavljaju oblast računarske inteligencije u kojoj se znanje stručnjaka pretvara u računarima razumljiv oblik. Umesto da sistem samostalno uči samo iz velikih skupova podataka, on koristi pravila, činjenice, baze znanja i mehanizme zaključivanja kako bi donosio preporuke, dijagnoze ili odluke.

Osnovna ideja ekspertnih sistema je da se deo ljudske stručnosti iz određenog domena zapiše tako da računar može da je koristi. Takav sistem ne pokušava da bude opšta inteligencija, već specijalizovani pomoćnik za jasno određenu oblast: medicinsku dijagnostiku, tehničku podršku, finansijsku procenu, industrijsku kontrolu ili poslovno odlučivanje.

Ekspertni sistem najčešće ima bazu znanja, radnu memoriju, inferencioni mehanizam i korisnički interfejs. Baza znanja čuva pravila i činjenice. Radna memorija čuva trenutno poznate podatke o konkretnom slučaju. Inferencioni mehanizam primenjuje pravila i izvodi zaključke. Korisnički interfejs omogućava dijalog sa čovekom.

U centru ekspertnog sistema nalazi se znanje. To znanje može poticati od stručnjaka, iz literature, procedura, standarda, iskustva organizacije ili ranijih slučajeva. Važno je da bude dovoljno jasno strukturisano da se može pretvoriti u pravila, pojmove, odnose i postupke.

Pravilo je jedan od najvažnijih oblika predstavljanja znanja. Najčešće se zapisuje u obliku IF–THEN, odnosno ako je ispunjen određeni uslov, onda sledi određeni zaključak, preporuka ili akcija. Na primer, ako sistem prepozna određenu kombinaciju simptoma, može predložiti moguću dijagnozu ili dodatno pitanje.

Činjenice opisuju ono što je poznato u određenom trenutku. To mogu biti odgovori korisnika, izmerene vrednosti, statusi sistema, poslovni podaci ili rezultati prethodnih zaključaka. Pravila i činjenice zajedno omogućavaju sistemu da gradi tok zaključivanja.

Radna memorija je mesto gde se tokom rada sistema nalaze trenutne činjenice. Ona se menja kako korisnik daje odgovore, kako sistem postavlja nova pitanja i kako se izvode međuzaključci. Možemo je zamisliti kao aktivnu radnu svesku jednog konkretnog slučaja.

Baza znanja je stabilniji deo sistema. U njoj se čuvaju opšta pravila, definicije, procedure i odnosi koji važe za domen. Dok se radna memorija menja od slučaja do slučaja, baza znanja predstavlja trajno ekspertsko znanje koje sistem koristi.

Inferencioni mehanizam je deo sistema koji odlučuje koja pravila treba proveriti, kojim redom ih treba primeniti i kako iz postojećih činjenica doći do zaključaka. On je motor zaključivanja i povezuje bazu znanja sa konkretnim slučajem.

Jedan od osnovnih načina zaključivanja je forward chaining, odnosno zaključivanje unapred. Sistem polazi od poznatih činjenica i primenjuje pravila koja iz njih slede. Tako postepeno dolazi do novih činjenica i konačnog zaključka.

Drugi važan način je backward chaining, odnosno zaključivanje unazad. Sistem polazi od mogućeg cilja ili hipoteze i proverava koje činjenice bi morale biti tačne da bi taj cilj bio potvrđen. Ovaj pristup je naročito koristan kada sistem pokušava da proveri konkretnu pretpostavku.

Na primer, ako sistem želi da proveri da li neki kvar odgovara određenom obrascu, backward chaining mu omogućava da postavlja samo ona pitanja koja su važna za potvrdu ili odbacivanje te hipoteze. Time dijalog sa korisnikom može biti kraći i usmereniji.

Ekspertni sistemi često moraju da rešavaju konflikt pravila. To se dešava kada je istovremeno moguće aktivirati više pravila. Tada sistem mora imati strategiju odlučivanja: koje pravilo ima prioritet, koje je specifičnije, koje je pouzdanije ili koje je važnije za dati cilj.

Jedna od velikih prednosti ekspertnih sistema je objašnjivost. Dobar ekspertni sistem ne daje samo odgovor, već može da pokaže zašto je do njega došao. Može da prikaže koja pravila su korišćena, koje činjenice su bile važne i kojim putem je zaključak izveden.

Ova objašnjivost je veoma važna u oblastima gde korisnik mora da razume i proveri odluku. U medicini, finansijama, industriji, bezbednosti i administraciji nije dovoljno samo dobiti predlog. Potrebno je znati na osnovu čega je predlog nastao.

Predstavljanje znanja može imati više oblika. Produkciona pravila su najpoznatiji oblik, ali postoje i semantičke mreže, okviri, ontologije i drugi formalizmi. Svaki od njih pokušava da uhvati strukturu znanja na način koji je pogodan za zaključivanje.

Semantičke mreže predstavljaju pojmove kao čvorove, a odnose među njima kao veze. One su korisne kada želimo da prikažemo kako su pojmovi povezani: šta je vrsta čega, šta pripada čemu, šta uzrokuje nešto ili koji elementi zajedno čine širu celinu.

Okviri, odnosno frames, omogućavaju strukturisano predstavljanje objekata, njihovih osobina i tipičnih vrednosti. Oni su pogodni kada domen ima objekte koji imaju poznate karakteristike, uloge i odnose.

Ontologije formalnije opisuju pojmove, klase, odnose i ograničenja u nekom domenu. One su posebno važne kada želimo da više sistema deli isto značenje pojmova ili kada je potrebno dosledno organizovati složeno znanje.

Prikupljanje znanja je poseban izazov. Stručnjak često zna kako da donese odluku, ali ne ume odmah da objasni svaki korak. Deo znanja je eksplicitan i lako se zapisuje, dok je deo prećutan, iskustven i teško ga je pretvoriti u pravila.

Zato razvoj ekspertnog sistema zahteva saradnju između stručnjaka za domen i osobe koja zna kako da modeluje znanje. Potrebni su razgovori, analiza primera, pregled procedura, testiranje pravila i postepeno popravljanje baze znanja.

Ekspertni sistemi su posebno korisni tamo gde se odluke ponavljaju, gde postoji jasno stručno znanje i gde je važno da sistem može da objasni svoje zaključke. Dobri kandidati su dijagnostički sistemi, sistemi preporuka u uskom domenu, tehnička podrška, procena rizika i poslovna pravila.

Ipak, ekspertni sistemi imaju ograničenja. Ako se domen brzo menja, baza znanja mora stalno da se ažurira. Ako je znanje nejasno, kontradiktorno ili previše zavisno od intuicije stručnjaka, sistem može biti težak za izgradnju i održavanje.

Još jedno ograničenje je takozvana krhkost sistema. Ekspertni sistem može odlično raditi u poznatim slučajevima, ali loše reagovati na situacije koje nisu predviđene pravilima. Zato je važno jasno odrediti granice domena i ne predstavljati sistem kao nepogrešiv.

Neizvesnost je česta u stvarnim problemima. Korisnik možda ne zna sve činjenice, merenja mogu biti nepotpuna, simptomi mogu biti nejasni, a poslovni podaci neprecizni. Zbog toga ekspertni sistemi često uvode faktore sigurnosti ili druge načine procene pouzdanosti zaključka.

Faktor sigurnosti omogućava sistemu da ne kaže samo da je nešto tačno ili netačno, već da prikaže koliko je zaključak pouzdan. To je naročito korisno kada pravila nisu apsolutna, već važe sa određenom verovatnoćom ili iskustvenom snagom.

Verovatnosni pristupi pomažu kada želimo da modelujemo rizik i nesigurnost kroz moguće ishode. U nekim domenima nije moguće dati potpuno siguran odgovor, ali je moguće proceniti koja opcija je verovatnija ili racionalnija u datim okolnostima.

Fuzzy ekspertni sistemi kombinuju pravila sa neizrazitom logikom. Oni su korisni kada pojmovi nisu strogo tačni ili netačni, već imaju stepene pripadnosti. Na primer, temperatura može biti niska, srednja ili visoka u različitoj meri.

Takav pristup je blizak ljudskom načinu razmišljanja. Ljudi često ne odlučuju samo kroz oštre granice, već kroz izraze kao što su malo, mnogo, približno, verovatno, rizično ili prihvatljivo. Fuzzy ekspertni sistemi pokušavaju da takve pojmove obrade formalnije.

Hibridni ekspertni sistemi povezuju pravila sa drugim AI pristupima. Mogu koristiti fuzzy logiku, neuralne mreže, mašinsko učenje, optimizacione algoritme ili ontologije. Ideja je da se zadrži objašnjivost pravila, ali da se sistem obogati učenjem ili adaptacijom.

U savremenoj veštačkoj inteligenciji ekspertni sistemi nisu nestali. Njihove ideje žive u poslovnim pravilima, sistemima za odlučivanje, knowledge graph strukturama, ontologijama, dijagnostičkim alatima, sistemima podrške odlučivanju i objašnjivoj AI.

Savremeni AI asistenti često koriste statističke modele i velike jezičke modele, ali im je i dalje potrebna struktura znanja. Kada želimo kontrolisano, proverljivo i objašnjivo odlučivanje, pravila i baze znanja ostaju veoma važni.

U poslovnim sistemima ekspertni pristup se vidi kroz pravila za odobravanje zahteva, procenu rizika, proveru uslova, automatsku klasifikaciju, usmeravanje korisnika, dijagnostiku grešaka i preporuke zasnovane na eksplicitnim kriterijumima.

U IT infrastrukturi ekspertni sistem može pomagati u dijagnostici incidenata. Ako su servisi nedostupni, ako je opterećenje visoko, ako se ponavljaju greške u logovima ili ako mrežni parametri odstupaju od normalnog stanja, sistem može predložiti verovatne uzroke i sledeće korake.

U industriji ekspertni sistemi mogu pomagati u održavanju opreme, detekciji kvarova i proceni rizika. Pravila mogu opisivati veze između simptoma, merenja, uslova rada i mogućih uzroka problema.

U medicini se ekspertni sistemi istorijski često pominju zbog pokušaja da se podrži dijagnostika. Važno je naglasiti da takvi sistemi ne zamenjuju lekara, već mogu pomoći u organizaciji znanja, proveri mogućih objašnjenja i ukazivanju na dodatna pitanja.

U finansijama ekspertni sistemi mogu podržati procenu kreditnog rizika, detekciju nepravilnosti, izbor preporuka ili proveru poslovnih pravila. Njihova prednost je u tome što se odluka može povezati sa jasno zapisanim kriterijumima.

Python je pogodan za učenje osnova ekspertnih sistema. Pravila se mogu predstaviti kroz funkcije, rečnike, liste, klase ili jednostavne inference engine mehanizme. Za početak nije potreban složen alat, već jasno razumevanje toka zaključivanja.

Prvi praktičan cilj je napraviti mali sistem koji postavlja pitanja, pamti odgovore, proverava pravila i daje zaključak. Takav sistem može biti jednostavan, ali dovoljno jasan da pokaže kako se činjenice i pravila povezuju u proces odlučivanja.

Kasnije se mogu dodavati prioriteti pravila, faktori sigurnosti, objašnjenja, zapis toka zaključivanja, validacija unosa, rad sa nepotpunim informacijama i jednostavan korisnički interfejs.

Ovaj tutorijal je zamišljen kao postepen i praktičan ulazak u ekspertne sisteme. Ne polazimo od pretpostavke da čitalac već zna formalnu logiku ili istoriju veštačke inteligencije, već gradimo razumevanje od osnovnih pojmova ka konkretnim primerima.

Prvi deo praktikuma uvodi pojam ekspertnog sistema, istoriju, primene, prednosti, ograničenja, znanje, činjenice, pravila, bazu znanja, radnu memoriju, prikupljanje znanja, inferencioni mehanizam i osnovne načine zaključivanja.

Zatim prelazimo na predstavljanje znanja kroz produkciona pravila, IF–THEN pravila, semantičke mreže, okvire i ontologije. Cilj je da čitalac vidi da znanje nije samo tekst, već struktura koja se može koristiti za zaključivanje.

Drugi deo praktikuma uvodi projektovanje ekspertnog sistema, komponente sistema, dijalog sa korisnikom, verifikaciju, validaciju, održavanje baze znanja, rad sa neizvesnošću, faktore sigurnosti, verovatnosne pristupe i fuzzy ekspertne sisteme.

Nakon toga prelazimo na implementaciju u Pythonu. Kroz jednostavne primere pravimo pravila, činjenice, radnu memoriju i mali inferencioni mehanizam. Posebno pratimo kako sistem može da objasni svoje zaključke.

Mini projekat na kraju povezuje sve oblasti u jedan praktičan tok rada: izbor domena, definisanje činjenica, pisanje pravila, izbor načina zaključivanja, testiranje, dodavanje objašnjenja i procenu ograničenja sistema.

Ekspertni sistemi su most između ljudskog znanja i veštačke inteligencije. Kada ih razumemo, lakše razumemo i zašto savremeni AI ne treba da bude samo model koji predviđa, već i sistem koji zna šta radi, zašto to radi i kako svoje zaključke može da objasni čoveku.

Povratak na sadržaj Sledeća lekcija →