Ismeretalapú rendszerek tervezése, ismeretszerzés, ismeretalapú rendszerek fejlesztése Takács Eszter Magdolna DFSVDK Mesterséges intelligencia, szakértői rendszerek VEMISAM254M Utolsó módosítás: 2013. november 6.
Tartalom 1 Tudásalapú rendszerépítés jellegzetességei Tervezés első lépései Jellegzetes tudásalapú stratégiák Feladat kiválasztás Feladat elemzés Feladat szerkezet meghatározás Tudásszerzés A tudásalapú és a hagyományos technológia összevetése 2 Célvezérelt rendszerek építése Pl. Kutyafajtákat kiválasztó rendszer építése Adatvezérelt rendszerek Strukturált szabályalapú rendszerek építése Hibrid rendszerek építése
Tervezés első lépései Tervezés első lépései Feladat elemzése Feladat külső természete Feladatvégzés környezetének vizsgálata Feladatvégző ember és szakértő viselkedése Érdemes-e a feladattal tovább foglalkozni? Feladat-szerkezet meghatározása Feladat struktúrája, belső természete Hogyan gondolkodik a feladatvégző és a szakértő? Milyen a szakértő tudásának szerkezete? Hogyan használja? Tudásszerzés Szakértőkkel való konzultáció
Jellegzetes tudásalapú stratégiák Intelligens feladatmegoldó segédletek Kisméretű PC alapú Alacsony költségek Papír alapú módszer kiváltása Fejlesztői és felhasználói kör egybeesik Procedurális vagy diagnosztizáló Pl. telefonkönyv, hibakeresési kézikönyv, összeszerelési útmutató
Jellegzetes tudásalapú stratégiák Középméretű tanácsadó rendszerek Középméretű PC-n és/vagy munkaállomásokon működtethető Átlagos költségek Előbbinél okosabb Alkalmazói programfejlesztők Nem azt mondják meg, hogy mit kell, hanem, hogy mit lehetne tenni. Diagnosztizáló, monitorozó, konfiguráló vagy ütemező Pl. karbantartó szakemberek segítése a hibák felderítésében
Jellegzetes tudásalapú stratégiák Középméretű tanácsadó rendszerek nagygépeken, hálózatokon Középméretű Nagygépeken működtethető Átlagos költségek Nagygépes alkalmazói programfejlesztők Több felhasználó kiszolgálása, különböző jogokkal Diagnosztizáló, monitorozó, konfiguráló vagy ütemező Pl. nagygépek CPU-teljesítményének finomhangolása
Jellegzetes tudásalapú stratégiák Nagyméretű LISP-alapú rendszerek Nagyméretű LISP-alapú gépek Magas költségek LISP-programozók, tudásmérnökök Pl. orvosi diagnózisra és terápiára javaslatot tevő MYCIN
Jellegzetes tudásalapú stratégiák Beágyazott rendszerek Nagyméretű Nagygépek, munkaállomások Közepes költségek Alkalmazói programfejlesztők Pl. meglévő rendszerekbe beágyazott intelligens felhasználói felület, vagy utófeldolgozó komponens
Feladat kiválasztás Feladat kiválasztás Tudás alapú vállalati stratégia kiválasztása megtörtént Lehetséges feladatok felmérése Feladat elemzési munkalap kitöltése Táblázat alapján eldönteni, hogy mely feladat(ok) megvalósítását célszerű beindítani
Feladat kiválasztás A feladat jellemzése A feladat jelenlegi megvalósítása Kulcs-kritériumok Tárgyköri szakértő rendelkezésre áll Eset-adatok rendelkezésre állnak Szűk problémakörből vett, jól definiált a feladat Procedurális a feladat Struktúrált elemzéssel oldható meg a feladat Verbális ismeretek
Feladat kiválasztás A feladat jellemzése Kizáró kritériumok - elkerülendő feladatok Kerüljük a köznapi tudás kezelését Kerüljül az analógián alapuló következtetéseket Kerüljük az érzékeléssel összefüggő ismeretek kezelését Kerüljük a nagyon gyakran változó tárgyterületeket Kerüljük azokat a feladatokat, ahol a szakértők egyetértése nem biztosítható Kerüljük a bonyolult geometriai és térbeli következtetéseket Kerüljük a bonyolult oksági, vagy időkezelést igénylő következtetéseket
Feladat kiválasztás A feladat jellemzése A probléma típusa és a következtetés jellege Felhasználói szempontok Megértésre szükség van Hardver-ismeretek, hardver rendelkezésre állás Szoftver-ismeretek, szoftver rendelkezésre állás Sebesség Elfogadható pontosság Magyarázatadás igénye A felhasználó motiváltsága Oktatás, betanítás Vezetői szempontok, rendszer értékelése
Feladat elemzés Feladat elemzés szempontjai Munkakörnyezet Eszközök hiánya, nem megfelelő tájékoztatás Szituáció A feladat kezdésének ideje, sorrendje nem ismert Feladatvégző Ügyetlen, nem motivált, nincs elég szakértelme, összekeveri a feladatokat... Tárgyköri szakértő Nincs/nehezen elérhető javaslat Visszacsatolás Nincs vagy nem megfelelő visszacsatolás Kimenet Előírások, szabványok Eredmények Értékelés, értékelés eredményét közlik a feladatvégzővel
Feladat elemzés A feladat elemzéséhez szükséges első interjúk Feladat-végrehajtás lényegének tisztázása Alábbi kérdésekre válaszolni Kik lesznek a felhasználók? Mi célból fogják használni a rendszert? Hol fogják a rendszert használni? Hol és hogyan ülhetnek le mellé? Mikor fogják használni (feladat-végrehajtás közben, előtte, utána)? A felhasználói hatékonyságot növeli, vagy csökkenti? Milyen áron? Miért fogják használni? Mi győzi meg az embereket, hogy használják?
Feladat szerkezet meghatározás Feladat szerkezet meghatározás Tárgyköri ismeretek szerveződésének meghatározása Kognitív elemzés Szakértő mit tud Ismereteit hogyan mozgósítja Hagyományos szoftver tervezésre nem jellemző
Feladat szerkezet meghatározás A tudásmérnöki munka Tudásalapú rendszereket tervez, fejleszt Visszacsatolásos fejlesztési folyamat Tudásszerzés -> Ismeretek formalizálása -> Tudásbázis-szintű kódolás -> Tesztelés
Tudásszerzés Tudásszerzés folyamatának szereplői Tárgyterületi szakértő Tudásmérnök Rendszerszervező (integrált alkalmazásoknál) Tudásbázis-adminisztrátor (komolyabb tudásalapú projekteknél)
Tudásszerzés A szakértővel való együttműködés főbb problémái A jó (a legjobb) szakértő megtalálása Egy vagy több szakértő bevonása a munkába Ütemezési kérdések, a vállalatvezetés támogatása Jó felhasználók bekapcsolása A rendszert tesztelő szakértő(k) kiválasztása Kommunikációs problémák
Tudásszerzés Tudásszerzés az egyes rendszerfejlesztési fázisokban Tudásszerzési módok Kezdeti interjúk a szakértővel, szakértőkkel és a felhasználókkal. Kezdeti tudásszenő interjúk. Esetek tesztelése és további folyamatos tudásszerző interjúk. Tesztelés felhasználók és további szakértők bevonásával. Rendszerépítési fázisok Projekt kiválasztás, elemzés, tervezés, prototípus fejlesztés indítása. Prototípus-fejlesztés. Prototípus-fejlesztés, rendszerfejlesztés. Rendszetfejlesztés.
Tudásszerzés Néhány praktikus elv a tudásszerzéshez Célszerű tipikus esetek, problémák és megoldások megbeszélésével kezdeni Nem szabad kényszeríteni a szakértőt a számára szokatlan formalizmusok, tudásreprezentációs módszerek használatára Ne szakítsuk meg a szakértő beszédét A beszélgetés rögzítése Írásos és egyéb anyagok tanulmányozása
Tudásszerzés Ismeretszerzés módszerei Közvetlen módszerek Direkt módszerek Indirekt módszerek Közvetett vagy automatikus módszerek Induktív eszközök Adatbázisokból való automatikus ismeretszerzés
A tudásalapú és a hagyományos technológia összevetése A tudásalapú és a hagyományos technológia összevetése Tudásalapú technológia Tudásszerzés Formalizált (szak)ismeret Tudásbázis (megfelelő következtető géppel végrehajtható kód) A formalizált ismeretanyag struktúrája és a tudásbázis struktúrája közel azonos. Bonyolultabb fázis: tudásszerzés Hagyományos technológia Kezdeti követelmény-specifikálás Strukturált specifikáció, rendszerterv Programkód (részei: adat és algoritmus) Strukturált specifikáció és a programkód közötti leképezés nem struktúra-tartó. A közbeiktatott rendszertervezés határozza meg a progam-struktúrát. Bonyolultabb fázis: rendszertervezés
Célvezérelt rendszerek építése Célvezérelt rendszerek építése Kisméretű szabályalapú rendszerek többsége célvezérelt Alkalmazási típusuk diagnosztizáló Az építés első lépései A probléma elemzése és definiálása A probléma szerkezetének meghatározása Az induló szabálykészlet kidolgozása A szabályok továbbfejlesztése, finomítása A következtetés és vezérlés testre-szabása
Célvezérelt rendszerek építése Pl. Kutyafajtákat kiválasztó rendszer szabályai 1. szabály ha tipus = vadaszkutya marmagassag = nagy szinvaltozat = voros akkor kutyafajta = ir szetter 3. szabály ha tipus = juhaszkutya marmagassag = kozepes szinvaltozat = fekete-feher szorzet = kozepesen hosszu akkor kutyafajta = border collie 2. szabály ha tipus = orzo marmagassag = hatalmas szinvaltozat = feher szorzet = raszta akkor kutyafajta = komondor 4. szabály ha tipus = oleb marmagassag = pottom ful-tipus = folallo tomeg = tollpihe akkor kutyafajta = csivava
Célvezérelt rendszerek építése Pl. Kutyafajtákat kiválasztó rendszer absztrahálással Tudásbázis mélyítése Kérdezett nem érti, hogy mért kérdezik a kutya típusát. Nagy mozgásigényű fajtát keres. 5. szabály ha mozgasigeny = nagy akkor tipus = vadaszkutya tipus = juhaszkutya
Célvezérelt rendszerek építése Pl. Kutyafajtákat kiválasztó rendszer döntési táblája Típus Marmag. Szín Szőr Fül Tömeg Kutyafajta vadász nagy vörös * * * ír szetter őrző hatalmas fehér raszta * * komondor juhász közepes feketefehér köz. * * border collie hosszú öleb pöttöm * * fölálló tollpihe csivava Leíró közelítés: összes javaslatot beírjuk, majd kitöltjük a tulajdonságokat Empirikus közelítés: ugyanarra a javaslatra akár több alternatív sort megadhatunk. Pl. Egy kutyafajtán belül létezik több színváltozat.
Célvezérelt rendszerek építése Szabályok továbbfejlesztése Egyszerűsítő javaslatok Azonos sorokból csak egyet tartsunk meg. Megegyező javaslattal rendelkező sorokat a feltételben or-ral fogjuk össze. Minden esetben adjon választ Felhasználóbarát párbeszéd Többjavaslatos szituációk Bizonytalanságkezelés: bizonyossági tényezőket rendelünk a szabályokhoz Finomítjuk a szabályokat Egyesítjük az ismétlődő szabályokat Újabb szabályok bevitelével bővítjük a tárolt ismeretanyagot
Célvezérelt rendszerek építése Több javaslatot adó szituációk, bizonytalanság kezelés Több javaslatos szituációk Nem csak egy megoldásra vagyunk kíváncsiak, hanem mindre. Pl. Ne csak a csivavát találja meg, hanem a yorkshire terriert is. Bizonytalanság kezelés Azonos tulajdonságú kutyafajták közül egyes fajtákat gyakrabban ajánl a rendszer. Pl. Egyes kutyafajták hajlamosabbak a betegségekre, ezért azokat nem ajánlja gyakran a rendszer. Kérdezett nem tudja pontosan a választ Pl. A kérdezett nem tudja megállapítani pontosan a marmagasságot. Bizonyossági tényező hozzárendelése a szabályokhoz, lehetséges válaszokhoz, bemeneti adatokhoz.
Célvezérelt rendszerek építése Tudásbázis finomítása Attribútum absztrakció: ismétlődő feltételeknél, felhasználó számára jobb érthetőség miatt Ha tipus = juhaszkutya, marmagassag = kozepes akkor csaladi-kutyanak-idealis = igen Ismétlődő szabályok Ismétlődő szabályok helyett adatbázis szabályok használata Transzformációs szabályok Ha pontos-marmagassag 70cm akkor marmagassag = hatalmas
Célvezérelt rendszerek építése Szabályok bevitele, testreszabás Szabályok bevitelénél gondosan kell eljárni Konzisztencia ellenőrzése Végtelen ciklusok elkerülése Testreszabás Sorrend, prioritás beállítása Bizonytalanságnál küszöbszámok megadása Többszörös cél kezelése
Adatvezérelt rendszerek Adatvezérelt rendszerek Adatokból konstruálnak egy vagy több elfogadható megoldást Sok megoldás miatt a tudásmérnöknek több beleszólást kell biztosítani a vezérlés menetébe Kiinduló adatok megadása Konzultáció menetének előírása Megállási feltétel
Adatvezérelt rendszerek A fejlesztés lépései A probléma elemzése és definiálása Induló adatok megadása Induló szabálykészlet megadása A rendszer megállásának beállítása Szabályvégrehajtása vezérlése A rendszer továbbfejlesztése
Strukturált szabályalapú rendszerek építése Strukturált szabályalapú rendszerek építése A probléma elemzése és definiálása Kontextus-hierarchia meghatározása Induló kontextusfa megtervezése A kontextusfa implementálása A kontextusfa és a szabályok kibővítése, felülbírálata
Hibrid rendszerek építése Hibrid rendszerek építése Keret és szabályalapú technikák + objektum orientált felhasználói felület A probléma meghatározása Keretek és rések megadása Példányok megadása Felhasználói felület megadása Szabályok megadása Démonok megadása Üzenetküldés kidolgozása