270 likes | 383 Views
GoldWorks III. Ismeretalapú rendszerek alaptechnikái. tudásreprezentációs módszerek és következtetési/ keresési stratégiák számítógéppel megvalósított változatai Alapvető következtetési technikák: szabályalapú technikák induktív technikák (gépi tanulás) hibrid technikák
E N D
Ismeretalapú rendszerek alaptechnikái tudásreprezentációs módszerek és következtetési/ keresési stratégiák számítógéppel megvalósított változatai Alapvető következtetési technikák: • szabályalapú technikák • induktív technikák (gépi tanulás) • hibrid technikák • szimbólum-manipulációs technikák • modell-alapú következtetési technikák • kvalitatív technikák • eset-alapú technikák • temporális következtetési technikák • neurális hálók
Hibrid rendszerek • többféle programozási mintát támogatnak: • keret-struktúrákat (frame-eket) • szabályokat • célvezérelt • adatvezérelt • megvalósításuk: • objektum-orientált eszközökkel
Keret (frame) • ismeretelméleti alapokon kidolgozott tudásreprezentálási alapegység • szerkezettel rendelkező fogalom leírására szolgáló formális eszköz • keretek jellemzői: • egy keret tartalmazza: • fogalom nevét (egyedi azonosító) • legfontosabb tulajdonságait (attribútumok) rekeszekben, résekben (slot) tárolva (keret is lehet) • osztályok, alosztályok, példányok • hierarchikus struktúra (is_a, instance_of relációk) • öröklődés (osztály - alosztály, osztály - példány) • eseményvezérelt eljárások: démonok
Keretalapú formalizálás módszerei • irányított gráf
Keretalapú formalizálás módszerei • keret-nyelvű leírás frame személy frame hallgató frame tantárgy is_a class is_a személy is_a class v.név: h.ttárgy: collection_of tantárgy név: k.név: end előfelt: collection_of end tantárgy end frame Péter frame SZR instance_of hallgató isnstance_of tantárgy v.név: Kis név: Szakértői rendszerek k.név: Péter előfelt: MI h.ttárgy: SZR end end
Keretalapú formalizálás módszerei • objektum-attribútum-érték hármasok <Péter, v.név, Kis> <Péter, k.név, Péter> <Péter, h.ttárgy, [SZR]> <SZR, név, Szakértői rendszerek> <SZR, előfelt, [MI]>
Démonok (daemons) • procedurális elemek, eljárások • osztályok, példányok attribútumaihoz rendeltek • aktivizálás: • when-needed démon • when-changed démon • when-added démon • when deleted démon • eseményvezérelt végrehajtás, továbbgyűrűzés • jól használhatók konzisztencia-vizsgálatra • korlátozott adatvezérelt következtetés
A keret-alapú reprezentáció előnyei: • hétköznapi gondolkodáshoz illő reprezentáció • fogalmi tisztaság, jól kezelhetőség • hatékony következtetés az osztályok és az objektum-példányok tulajdonságairól • implementáció: objektum-orientált programozás
Hibrid technika • szabályok: heurisztikák leírására • keretek: adott objektumokról/ eseményekről/ fogalmakról szóló leíró és procedurális információk (egy helyen! jól olvashatók, könnyen módosíthatók, módosítások hatása jobban kézben tartható) • hibrid eszközök következtető gépe rendelkezhet: • öröklődést, démonokat biztosító mechanizmusokkal • üzenetváltást biztosító mechanizmusok (objektum-orientált) • célvezérelt/ adatvezérelt szabályvégrehajtással • támogathatja a szabályok/ keretek hierarchikus modulokba szervezését • támogathatja a meta-szabályok készítését/ használatát
GoldWorks III • Tudásbázis alapú hibrid szakértői rsz. fejlesztő rsz. • GLISP fejlesztői környezet a GW programozási nyelv platformja • GW architektúrája: • GW fejlesztői felületei: • Menü interface: LISP ismerete nélküli ablakos fejlesztés • Fejlesztői interface: LISP „programok” írása file-ba OO fejlesztés
Tudás reprezentálása GW-ben • Az információ lattice(rács)-ben tárolódik keretek(frame) példányok(instance) • objektumok attribútumai - rések(slot) • keretek – adatok stuktúrálása • szabályok - IF…THEN…, adatmanipuláció • Lattice hierarchia: • minden keret eleme a lattice-nek • keretek és példányaik hierarchiába szervezettek - szülő - gyermek • rések öröklődnek, többszörös öröklődés • legfelső, előre definiált és alapértelmezett keret:top-frame (nincs rése)
GW fő komponensei: • Tudásbázis (TB) – tudás • passzív: mindig igaz • aktív: következtetés passzív tudásból • Ténybázis (assertion base) tény – passzív tudás, tényleges ismeret tény = igaz állítás TB-ben tároljuk • Lattice • információ strukturálása • keretek hálózata, hierarchiája • Szabálybázis • cél elérése az adott adatokkal • aktív / dinamikus tudás elérése • ok-okozati viszony IF…THEN…
GW fő komponensei: • Következtető gép • következtetés mintaillesztéssel • több következtetési technika a GW-ben: • előrefelé haladó következtetés • hátrafelé haladó következtetés • célvezérelt előrefelé haladó következtetés • ezek kombinációi
GW tudás-struktúrái (objektumai): • Keret (frame) • Példány (instance) • Reláció (relation) • Tény (assertion) • Szabály (rule) • Szabályhalmaz (rule set) • (attempt) • (sponsor) • (agenda item)
Keretek: • öröklődéskor a szülő(k) réseit örökli • ha több azonos nevű rést örökölne, akkor csak az egyiket fogja örökölni Példa: (define-frame person (name : constraints (:list-type string )) (address : constraints (:list-type string )) (birth-year : constraints (:range (1900 1985) )) ) (define-frame employee (:is person) (job title : when-modified (change-salary)) (manager) (salary) (retirement-age : default-values (65) )) )
Rések: • érvényes Lisp formátumok (number, symbol, string, structures) • rés facet-ek (slot facet) - rések tulajdonságainak definiálása - öröklődnek • Documentation – slot leírása • Print-name – megjelenített név, szóköz és kis-nagy betűk használata • Explanation – rés értéke mögé helyezett érték pl. 10 ”kg” • Multivalued – több értéke lehet • Default-values – alapértelmezett érték • Default-certainty – alapértelmezett bizonytalanság • When-accedd – függvény, amely rés elérésekor aktivizálódik • When-modified – függvény, amely rés módosításakor aktivizálódik • Constraints – érték típusának megszorítási lehetősége • one-of • range • list-type • child-frame-of • instance-of • No-inference – ha értéke igaz, akkor nem használja fel következtetéshez • Query-form – hátrafelé haladó köv. során, ha nincs éréke, akkor bekéri • No-save – rés értéke nem mentődik el a példány mentésekor • Graphic – grafikai objektumhoz való kapcsolása, Menü interface-ről nem használható
Példányok: Példa: (define-instance Frank (:is employee) (name ”Frank János”) (address ”1111 Budapest, Kiss krt. 15”) (birth-year 1945) (job title projekt-koordinátor) (manager Alice) (salary) (retirement-age : default-values (65) )) )
Szabályok: • Mintákat használ a tények és adatok reprezentálásához • kötések (binding): ha a szabályban egy változó értékét már megkötöttük, akkor az értéke megmarad a szabály végéig (bind változó list-form) • Szabályok irányítottsága: • előrefelé haladó (FORWARD) • hátrafelé haladó (BACKWARD) • kétirányú (BIDIRECTION) • Előrefelé haladó szabály: IF…THEN… típusú szabályok (define-rule név (:direction {:forward | :backward | :bidirectional} ) (:priority szám) minták then minták [and-then minták ] )
Szabályok: • A következmény a then ill. az and-then résztől függ • Mindhárom irányítottságnál használjuk az and-then -t, de a hátrafelé haladó következtetés során csak akkor illesztődik, amikor befejeződött a következtetés (ok: illesztések miatt) • Előrefelé haladó szabály: IF…THEN… típusú szabályok Példa: IF INSTANCE ?person IS PERSON with job-title ?job THEN INSTANCE ?person IS PERSON • Prioritások használata -1000 - +1000, minél nagyobb a prioritási szám, annál nagyobb a prioritása default érték = 0
Tények: • minden alkalommal, amikor egy rés értéket kap, akkor egy ”rés-érték” tény illesztődik a ténybázishoz • tény struktúrája: 2 fontos komponens • tény (minta) – információ, ami igaz • függőségi információ – ez az információ hogyan jön be a rendszerbe • tények egy példány résértékei esetén: <rés> <példány> <érték> <keret> <példány> • Tények típusai: • strukturált tény : példányok, résértékek - relációkból származnak • nem strukturált tény: - közvetlenül kerülnek a tudásbázisba - ténydefinícióval - (define-assertion minták)
Objektumok rendje: • Objektumok egymásra hivatkoznak • Alkalmazás definiálásakor az alábbi szabályokat be kell tartani: • deftype, defstruct definiálni kell, mielőtt a keretek használják • a keretet korábban kell definiálni, mint a példányait • kereteket korábban kell definiálni, mint a handler-jét • a kapcsolatokat definiálni kell mielőtt a szabályok használják • sponzorokat korábban kell definiálni, mielőtt a szabályok használják • daemonokat korábban kell definiálni, mielőtt a keretek példányai használják