Reprezentarea cunoștințelor

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Reprezentarea cunoașterii este o ramură a inteligenței artificiale care studiază modul în care are loc raționamentul uman și este preocupată de definirea simbolismelor sau limbajelor care permit formalizarea cunoștințelor pentru a o face ușor de înțeles de către mașini, pentru a putea să facă raționament automat ( deducând informațiile prezente) și astfel să extragă noi cunoștințe [1] .

Prin urmare, un punct cheie al reprezentării cunoștințelor este definirea limbajelor care sunt suficient de expresive pentru a permite descrierea domeniului de interes, dar nu prea bogate în expresivitate, deoarece ar necesita prea multe resurse și / sau prea mult timp pentru aplica mecanismele inferențiale.

În general vorbind, limbajele de reprezentare a cunoștințelor oferă atât o serie de constructe pentru a defini sintaxa domeniului de interes (regulile pe care să construiască afirmații acceptabile), cât și o serie de operatori (cuantificatori, operatori modali etc.) și permit a da o semnificație, o valoare de adevăr afirmațiilor cu privire la modelul de referință.

Prin limbajul ales se vor face o serie de afirmații despre lume, care împreună vor forma o bază de cunoștințe (KB, Knowledge Base ). De asemenea, este important ca limbajul ales pentru a face afirmațiile să poată opera și pe KB pentru a extrage noi cunoștințe și a adăuga noi cunoștințe.

Există în principal două metodologii pentru a reprezenta cunoștințele:

Prezentare generală

Reprezentarea cunoștințelor este un câmp al inteligenței artificiale care se concentrează pe proiectarea reprezentărilor computerizate care captează informații despre lume care pot fi utilizate pentru rezolvarea problemelor complexe.

Justificarea reprezentării cunoștințelor este că codul procedural convențional nu este cel mai bun formalism de utilizat pentru rezolvarea problemelor complexe. Reprezentarea cunoștințelor face ca software-ul complex să fie mai ușor de definit și întreținut decât codul procedural și poate fi utilizat în sisteme expert.

De exemplu, vorbirea cu experții în ceea ce privește regulile de afaceri, mai degrabă decât codul, reduce decalajul semantic dintre utilizatori și dezvoltatori și face dezvoltarea sistemelor complexe mai practică.

Reprezentarea cunoașterii merge mână în mână cu raționamentul automatizat, deoarece unul dintre principalele scopuri ale reprezentării explicite a cunoștințelor este de a putea raționa despre aceste cunoștințe, de a face inferențe, de a afirma noi cunoștințe etc. Practic toate limbajele de reprezentare a cunoștințelor au un motor de raționament sau de inferență ca parte a sistemului [2] .

Un compromis cheie în proiectarea unui formalism de reprezentare a cunoașterii este acela dintre expresivitate și practicitate. Formalismul reprezentării cunoștințelor prin excelență în ceea ce privește puterea expresivă și compactitatea este Logica Primului Ordin (FOL). Nu există formalism mai puternic decât cel folosit de matematicieni pentru a defini propoziții generale despre lume. Cu toate acestea, FOL are două dezavantaje ca formalism de reprezentare a cunoștințelor: ușurința utilizării și comoditatea implementării. Logica de ordinul întâi poate fi intimidantă și pentru mulți dezvoltatori de software. Limbile care nu au puterea formală completă a FOL pot oferi în continuare aproape aceeași putere expresivă cu o interfață cu utilizatorul, care este mai practic pentru înțelegerea dezvoltatorului mediu. Problema practicității implementării este că FOL este într-un fel prea expresiv. Cu FOL este posibil să se creeze instrucțiuni (de exemplu, cuantificarea pe seturi infinite) care ar asigura că un sistem nu se va termina niciodată dacă ar încerca să le verifice.

Prin urmare, un subset de FOL poate fi atât mai ușor de utilizat, cât și mai practic de implementat. Aceasta a fost o forță motrice în spatele sistemelor expert bazate pe reguli. Regulile IF-THEN oferă un subset de FOL, dar foarte util și, de asemenea, foarte intuitiv. Istoria majorității formalismelor timpurii de reprezentare a cunoștințelor AI; de la baze de date la rețele semantice până la sisteme de producere a teoremelor și sisteme de producție pot fi văzute ca diverse decizii de proiectare cu privire la punerea în valoare a puterii expresive sau a capacității de calcul și a eficienței [3] .

Într-un articol cheie din 1993 despre acest subiect, Randall Davis de la MIT a subliniat cinci roluri distincte pentru analiza unui cadru de reprezentare a cunoștințelor [4] :

  • O reprezentare a cunoașterii (KR) este în esență un surogat, un înlocuitor al lucrului în sine, folosit pentru a permite unei entități să determine consecințele gândind mai degrabă decât acționând, adică raționând despre lume, mai degrabă decât acționând în ea.
  • Este un set de angajamente ontologice, adică un răspuns la întrebarea: în ce termeni ar trebui să mă gândesc la lume?
  • Este o teorie fragmentară a raționamentului inteligent, exprimată în termeni de trei componente: (i) concepția fundamentală a reprezentării raționamentului inteligent; (ii) setul de deduceri al sancțiunilor de reprezentare; și (iii) setul de inferențe pe care le recomandă.
  • Este un mijloc de calcul eficient pragmatic, adică mediul de calcul în care se realizează gândirea. O contribuție la această eficiență pragmatică este oferită de îndrumările oferite de o reprezentare pentru organizarea informațiilor într-un mod care facilitează formularea inferențelor recomandate.
  • Este un mijloc de exprimare umană, adică un limbaj în care spunem lucruri despre lume.

Reprezentarea cunoștințelor și raționamentul sunt o tehnologie cheie care permite tehnica web semantică . Limbile bazate pe modelul Frame cu clasificare automată oferă un nivel de semantică pe internetul existent. În loc să căutați prin șiruri de text așa cum este obișnuit astăzi, va fi posibil să definiți interogări logice și să găsiți pagini care să corespundă acestor interogări. Componenta de raționament automatizat în aceste sisteme este un motor cunoscut sub numele de clasificator. Clasificatorii se concentrează pe relațiile de subsumare într-o bază de cunoștințe, mai degrabă decât pe reguli. Un clasificator poate deduce noi clase și modifica dinamic ontologia pe măsură ce noi informații devin disponibile. Această capacitate este ideală pentru spațiul informațional în continuă schimbare și evoluție al internetului [5] .

Web-ul semantic integrează concepte din reprezentarea cunoștințelor și raționament cu limbaje de markup bazate pe XML. Cadrul de descriere a resurselor (RDF) oferă funcționalitatea de bază pentru definirea obiectelor bazate pe cunoștințe pe Internet cu funcționalități de bază, cum ar fi relațiile Is-A și proprietățile obiectelor. Limbajul Ontologiei Web (OWL) adaugă semantică suplimentară și se integrează cu rezonatori de clasificare automată [6] .

Caracteristici

În 1985, Ron Brachman a clasificat problemele fundamentale pentru reprezentarea cunoașterii după cum urmează [7] :

  • Primitive. Care este cadrul de bază utilizat pentru a reprezenta cunoștințele? Rețelele semantice au fost una dintre primitivele primitive ale reprezentării cunoștințelor. În plus, structuri de date și algoritmi pentru căutare rapidă generală. În acest domeniu există o puternică suprapunere cu cercetarea structurilor de date și algoritmilor din domeniul informaticii. În primele sisteme, limbajul de programare Lisp, care a fost modelat după calculul lambda, a fost adesea folosit ca formă de reprezentare a cunoștințelor funcționale. Cadrele și regulile au fost următorul tip de primitiv. Limbajele cadrelor au avut diverse mecanisme pentru exprimarea și impunerea constrângerilor asupra datelor cadrelor. Toate datele din cadre sunt stocate în sloturi. Sloturile sunt similare relațiilor din modelarea entitate-relație și proprietăților obiectelor în modelarea orientată obiect. O altă tehnică pentru primitivi este definirea limbajelor modelate după logica de prim ordin (FOL). Cel mai cunoscut exemplu este Prolog, dar există și multe medii speciale pentru demonstrarea teoremelor. Aceste medii pot valida modele logice și deduce noi teorii din modelele existente. Acestea automatizează în esență procesul prin care ar trece un logician în analiza unui model. Tehnologia de demonstrare a teoremei a avut câteva aplicații practice specifice în domeniile ingineriei software. De exemplu, este posibil să se demonstreze că un program software aderă rigid la o logică formală specifică [8] .
  • Meta-reprezentare. Aceasta este, de asemenea, cunoscută sub numele de problema de reflexie a computerului. Se referă la capacitatea unui formalism de a avea acces la informații despre starea sa. Un exemplu ar fi protocolul meta-obiect din Smalltalk și CLOS, care oferă dezvoltatorilor acces în timp de rulare la obiecte de clasă și le permite să redefinească dinamic structura bazei de cunoștințe chiar și în timp de rulare. Meta-reprezentarea înseamnă că limbajul reprezentării cunoștințelor este el însuși exprimat în limba respectivă. De exemplu, în majoritatea mediilor bazate pe cadre, toate cadrele ar fi instanțe ale unei clase de cadre. Acel obiect de clasă poate fi inspectat la runtime, astfel încât obiectul să poată înțelege și chiar să-și schimbe structura internă sau structura altor părți ale modelului. În mediile bazate pe reguli, regulile erau în general și instanțe ale claselor de reguli. O parte a meta protocolului pentru reguli a fost meta regulile care au prioritizat activarea regulilor.
  • Incompletitate. Logica tradițională necesită axiome și constrângeri suplimentare pentru a aborda lumea reală, spre deosebire de lumea matematicii. În plus, este adesea util să asociați gradele de încredere cu o declarație. Adică, nu doar spunând „Socrate este om”, ci mai degrabă „Socrate este 50% om cu încredere”. Aceasta a fost una dintre primele inovații din cercetarea sistemelor de specialitate care au migrat către unele instrumente comerciale, capacitatea de a asocia factorii de certitudine cu regulile și concluziile. Cercetările ulterioare în acest domeniu sunt cunoscute sub numele de „ logică fuzzy ”.
  • Definiții și universale versus fapte și implicite. Universale sunt afirmații generale despre lume, cum ar fi „Toate ființele umane sunt muritoare”. Faptele sunt exemple specifice de universali precum „Socrate este uman și deci muritor”. În termeni logici, definițiile și universalele sunt despre cuantificarea universală, în timp ce faptele și valorile implicite sunt despre cuantificări existențiale. Toate formele de reprezentare a cunoașterii trebuie să se ocupe de acest lucru și majoritatea o fac cu o variantă a teoriei mulțimilor, modelând universali ca mulțimi și subseturi și definiții ca elemente ale acestor mulțimi.
  • Rationament non-monoton. Raționamentul non-monoton permite diferite tipuri de raționamente ipotetice. Sistemul asociază faptele afirmate cu regulile și faptele utilizate pentru a le justifica și atunci când aceste fapte se schimbă, actualizează și cunoștințele dependente. În sistemele bazate pe reguli, această capacitate este cunoscută sub numele de „sistem de păstrare a adevărului” [9] .
  • Adecvarea expresivă. Standardul pe care Brachman și majoritatea cercetătorilor AI îl folosesc pentru a măsura adecvarea expresivă este de obicei logica de ordinul întâi (FOL). Limitările teoretice înseamnă că o implementare completă a FOL este impracticabilă. Cercetătorii ar trebui să fie clari cu privire la cât de expresivi (cât din puterea expresivă deplină a FOL) intenționează să fie reprezentarea lor [10] .
  • Eficiența raționamentului. Aceasta se referă la eficiența sistemului de rulare. Capacitatea bazei de cunoștințe de a fi actualizată și motivatorul de a dezvolta noi inferențe într-o perioadă rezonabilă de timp. Într-un sens, aceasta este partea inversă a adecvării expresive. În general, cu cât o reprezentare este mai puternică, cu atât are mai multă expresivitate, cu atât motorul său de raționament automat va fi mai puțin eficient. Eficiența a fost adesea o problemă, în special pentru aplicațiile timpurii ale tehnologiei de reprezentare a cunoștințelor. Acestea erau de obicei implementate în medii interpretate precum Lisp, care erau lente în comparație cu platformele mai tradiționale ale vremii.

Inginerie ontologică

În primii ani ai sistemelor bazate pe cunoaștere, bazele de cunoștințe erau destul de mici. Bazele de cunoștințe care urmau să rezolve de fapt probleme reale, mai degrabă decât să demonstreze teste, erau necesare pentru a se concentra pe probleme bine definite. De exemplu, nu numai diagnosticul medical ca subiect întreg, ci și diagnosticul medical al unor tipuri de boli.

Odată cu creșterea tehnologiei bazate pe cunoaștere, a devenit evidentă nevoia de baze de cunoștințe mai largi și baze de cunoștințe modulare care să poată comunica și integra între ele. Acest lucru a dat naștere disciplinei ingineriei ontologice, proiectării și construirii unor baze de cunoștințe extinse care ar putea fi utilizate de mai multe proiecte. Unul dintre principalele proiecte de cercetare în acest domeniu a fost Cycprogetto. Cyc a fost o încercare de a construi o imensă bază de cunoștințe enciclopedice care să conțină nu numai cunoștințe de specialitate, ci și cunoștințe de bun simț. La proiectarea unui agent AI, s-a realizat curând că reprezentarea cunoașterii de bun simț, cunoștințele pe care oamenii le consideră pur și simplu de la sine, a fost esențială pentru a crea o IA care să poată interacționa cu oamenii folosind limbajul natural. Cyc ar fi trebuit să facă față acestei probleme. Limbajul pe care l-au definit a fost cunoscut sub numele de CycL.

După CycL, au fost dezvoltate numeroase limbaje ontologice. Majoritatea sunt limbaje declarative și sunt limbaje cadru sau se bazează pe logica de ordinul întâi. Modularitatea - capacitatea de a defini granițe în jurul unor domenii specifice și spații problematice - este esențială pentru aceste limbaje deoarece, așa cum a afirmat Tom Gruber, „Fiecare ontologie este un tratat, un acord social între oameni cu motivații comune pentru partajare”. Există întotdeauna multe puncte de vedere conflictuale și diferite care fac imposibilă orice ontologie generală. O ontologie cu scop general ar trebui să fie aplicabilă în orice domeniu și diferitele domenii ale cunoașterii ar trebui să fie unificate.

Există o lungă istorie a muncii care încearcă să construiască ontologii pentru o varietate de domenii de activitate, de exemplu, o ontologie pentru lichide [11] , modelul de elemente lump utilizate pe scară largă în reprezentarea circuitelor electronice [12] , la fel ca ontologiile pentru timp , credință și chiar programarea în sine. Fiecare dintre acestea oferă o modalitate de a vedea o parte a lumii.

Modelul cu elemente aglomerate, de exemplu, sugerează gândirea la circuite în termeni de componente cu conexiuni între ele, cu semnale care curg instantaneu de-a lungul conexiunilor. Aceasta este o viziune utilă, dar nu singura posibilă. O altă ontologie apare dacă trebuie să fim atenți la electrodinamica din dispozitiv: aici semnalele se propagă cu viteză finită și un obiect (cum ar fi un rezistor) care anterior era văzut ca o singură componentă cu comportament I / O ar putea fi acum gândit de ca mediu extins prin care curge o undă electromagnetică.

Ontologiile pot fi în mod evident scrise într-o mare varietate de limbaje și notații (de exemplu, logică, LISP etc.); informațiile esențiale nu sunt forma acelui limbaj, ci conținutul, adică ansamblul conceptelor oferite ca mod de gândire despre lume. Pur și simplu, partea importantă este noțiunile cum ar fi conexiunile și componentele, nu alegerea între a le scrie ca predicate sau a construcțiilor LISP.

Angajamentul asumat prin selectarea uneia sau altei ontologii poate produce o viziune diferită a sarcinii de îndeplinit. Luați în considerare diferența care apare atunci când selectați imaginea elementară a unui circuit, mai degrabă decât imaginea electrodinamică a dispozitivului în sine. Ca un al doilea exemplu, diagnosticul medical văzut în termeni de reguli (de exemplu, MYCIN) apare substanțial diferit de aceeași sarcină văzută în termeni de cadre (de exemplu, INTERNIST). În timp ce MYCIN vede lumea medicală ca fiind compusă din asociații empirice care leagă simptomul de boală, INTERNIST vede o serie de prototipuri, în special boli prototipice, care trebuie comparate cu cazul în cauză.

Notă

  1. ^ Roger Schank și Robert Abelson, Scripturi, planuri, obiective și înțelegere: o anchetă asupra structurilor de cunoaștere umană , Lawrence Erlbaum Associates, Inc., 1977.
  2. ^ Frederick Hayes-Roth, Donald Waterman și Douglas Lenat, Building Expert Systems , Addison-Wesley, 1983, pp. 6-7 , ISBN 978-0-201-10686-2 .
  3. ^ Hector Levesque și Ronald Brachman, Un compromis fundamental în reprezentarea și raționamentul cunoștințelor , în Ronald Brachman și Hector J. Levesque (ed.), Lecturi în reprezentarea cunoștințelor , Morgan Kaufmann, 1985, p. 49 , ISBN 978-0-934613-01-9 .
    „Vestea bună în reducerea serviciului KR la demonstrarea teoremei este că acum avem o noțiune foarte clară, foarte specifică despre ceea ce ar trebui să facă sistemul KR; noul rău este că este, de asemenea, clar că serviciile nu pot fi furnizate ... a decide dacă o propoziție din FOL este sau nu o teoremă ... este de nerezolvat. " .
  4. ^ Randall Davis, Howard Shrobe și Peter Szolovits, Ce este o reprezentare a cunoașterii? , în Revista AI , vol. 14, n. 1, primăvara 1993, pp. 17–33.
  5. ^ Robert Macgregor, Retrospective on Loom , în isi.edu , Information Sciences Institute, 13 august 1999. Accesat la 10 decembrie 2013 (arhivat din original la 25 octombrie 2013) .
  6. ^ Holger Knublauch, Daniel Oberle, Phil Tetlow și Evan Wallace, A Semantic Web Primer for Object-Oriented Software Developers , la w3.org , W3C , 9 martie 2006. Accesat la 30 iulie 2008 .
  7. ^ Ron Brachman, Introducere , în Ronald Brachman și Hector J. Levesque (eds), Readings in Knowledge Representation , Morgan Kaufmann, 1985, pp. XVI - XVII, ISBN 978-0-934613-01-9 .
  8. ^ Joseph Bih, Paradigm Shift: An Introduction to Fuzzy Logic ( PDF ), în IEEE Potentials , vol. 25, 2006, pp. 6–21, DOI : 10.1109 / MP.2006.1635021 . Adus la 24 decembrie 2013 .
  9. ^ Nellie Zlatarva, Truth Maintenance Systems and their Application for Verifying Expert System Knowledge Bases , în Artificial Intelligence Review , vol. 6, 1992, pp. 67-110, DOI : 10.1007 / bf00155580 .
  10. ^ Hector Levesque și Ronald Brachman, Un compromis fundamental în reprezentarea și raționamentul cunoștințelor , în Ronald Brachman și Hector J. Levesque (ed.), Lecturi în reprezentarea cunoștințelor , Morgan Kaufmann, 1985, pp. 41-70 , ISBN 978-0-934613-01-9 .
  11. ^ Hayes P, Naive physics I: Ontology for liquides. Raportul Universității din Essex, 1978, Essex, Marea Britanie.
  12. ^ Davis R, Shrobe HE, Structura de reprezentare și comportamentul hardware-ului digital, IEEE Computer, Număr special privind reprezentarea cunoștințelor, 16 (10): 75-82.

Elemente conexe

Alte proiecte

Controlul autorității Tezaur BNCF 63261 · LCCN (EN) sh90004869 · GND (DE) 4049534-6 · BNF (FR) cb11991261q (dată)