Sisteme bazate pe cunoștințe. Sisteme bazate pe cunoștințe și sisteme expert

3. Strategii de achiziţie a cunoştinţelor

1. Cunoștințe, tipuri de cunoștințe, baze de cunoștințe, bănci de cunoștințe

Există diverse definiții ale conceptului de „cunoaștere”.

Cunoașterea reprezintă tiparele de bază ale domeniului subiectului care permit unei persoane să rezolve sarcini specifice de producție, științifice și de altă natură, adică fapte, concepte, relații, estimări, reguli, euristici (altfel de fapt cunoștințe), precum și strategii de luare a deciziilor. în acest domeniu (altfel cunoștințe strategice). )

Prin „cunoaștere” se înțelege informația oficializată la care se face referire sau se utilizează în procesul de rezolvare a unei probleme.

Cunoștințele despre domeniul de studiu includ o descriere a obiectelor, a mediului lor, a fenomenelor necesare, a faptelor, precum și a relațiilor dintre ele. Complexitatea conceptului de „cunoaștere” constă în multiplicitatea purtătorului său și inseparabilitatea de conceptul de „date”.

Există mai multe niveluri de formalizare a cunoștințelor despre domeniul subiectului:

Cunoașterea în memoria umană;

Cunoașterea sub forma unui model de limbaj al domeniului de studiu, utilizat de o persoană și înregistrat pe suport fizic folosind limbaje sensibile la context, imagini grafice etc.;

Cunoștințe formalizate pentru reprezentarea lor atunci când sunt utilizate într-un computer;

Informații sau date faptice.

Cunoștințele sunt de obicei împărțite în două mari categorii: fapte și euristică. Prima categorie (fapte) indică circumstanțe binecunoscute într-un anumit domeniu. Asemenea cunoștințe se mai numesc și textuale, adică acoperirea lor suficientă în literatura de specialitate și manuale. A doua categorie (euristica) se bazează pe experiența individuală a unui specialist (expert) în domeniu, acumulată ca urmare a multor ani de practică. Această categorie joacă adesea un rol decisiv în construirea programelor intelectuale.

Baza de cunoștințe este o colecție de modele, reguli și factori (date) care generează analize și concluzii pentru a găsi soluții la probleme complexe dintr-un anumit domeniu.


2. Modele de reprezentare a cunoștințelor

Cele mai comune modele de reprezentare a cunoștințelor sunt:

sisteme de producție;

Modele logice;

rețele semantice.

În sistemele de producție cunoaşterea este reprezentată ca un ansamblu de unităţi informaţionale speciale având următoarea structură. În general, un sistem de producție include următoarele componente:


O bază de date care conține multe fapte;

Bază de reguli care conține un set de producții;

Interpret (motor de inferență) sau reguli pentru lucrul cu produse.

Baza de reguli și baza de date formează baza de cunoștințe.

Faptele din baza de date sunt informații pe termen scurt și, în principiu, se pot schimba pe parcursul sistemului de produse pe măsură ce se câștigă experiența.

Regulile sunt mai mult informații pe termen lung și sunt concepute pentru a genera ipoteze (fapte noi) din ceea ce este deja cunoscut.

Produsele în comparație cu alte forme de reprezentare a cunoștințelor au următoarele avantaje:

Modularitate;

Uniformitatea structurii (componentele principale ale sistemului de producție pot fi folosite pentru a construi sisteme inteligente cu orientări diferite ale problemelor);

Naturalitatea (concluzia unei concluzii într-un sistem de producție este în multe privințe similară cu procesul de raționament al expertului);

Flexibilitatea ierarhiei generice a conceptelor, care este susținută doar ca legături între reguli (schimbarea unei reguli presupune schimbarea ierarhiei).

Cu toate acestea, sistemele de producție nu sunt lipsite de dezavantaje:

Procesul de inferență este mai puțin eficient decât în ​​alte sisteme, deoarece cea mai mare parte a timpului de inferență este cheltuit pentru verificarea aplicabilității regulilor;

Acest proces este dificil de gestionat;

Este greu de imaginat o ierarhie generică a conceptelor.

Modele logice de reprezentare a cunoștințelor sunt implementate prin intermediul logicii predicatelor.

Un predicat este o funcție care ia doar două valori - adevărat și fals - și are rolul de a exprima proprietățile obiectelor sau relațiile dintre ele.

O expresie care afirmă sau neagă existența oricăror proprietăți ale unui obiect se numește propoziție.

cadru cel mai adesea definită ca o structură de date pentru reprezentarea situaţiilor stereotipe. Cadre (literal - „cadru”) este o unitate de reprezentare a cunoștințelor, ale cărei detalii se pot schimba în funcție de situația actuală. Cadrul în orice moment poate fi suplimentat cu diverse informații referitoare la modalitățile de utilizare a acestui cadru, consecințele acestei utilizări etc.

Web-ul semantic descrie cunoștințele sub formă de structuri de rețea. Nodurile rețelei sunt concepte, fapte, obiecte, evenimente etc., iar arcele rețelei sunt relațiile prin care nodurile sunt conectate între ele.

3. Strategii de achiziţie a cunoştinţelor

Există mai multe strategii pentru a dobândi cunoștințe. Cel mai comun:

  1. extracţie;
  2. achiziţie;
  3. descoperire (formare).

Figura 1 - Trei strategii pentru dobândirea de cunoștințe

Extragerea cunoștințelor este o procedură de interacțiune a unui inginer de cunoștințe cu o sursă de cunoștințe, în urma căreia procesul de raționament al experților-experți atunci când iau o decizie și structura ideilor lor despre domeniul subiectului devin clare.

Figura 2 - Clasificarea metodelor de extragere a cunoștințelor

Achiziția de cunoștințe este înțeleasă ca o metodă de construcție automată a unei baze de cunoștințe printr-un dialog între un expert și un program special (în acest caz, structura cunoștințelor este preprogramată în program). Această strategie necesită o pre-dezvoltare semnificativă a domeniului subiectului. Sistemele de achiziție de cunoștințe dobândesc cunoștințe gata făcute în conformitate cu structurile stabilite de proiectanții de sistem. Cele mai multe dintre aceste instrumente sunt axate în mod special pe sisteme expert specifice cu un domeniu strict definit și un model de reprezentare a cunoștințelor, de exemplu. nu sunt universale.

Termenul de descoperire (formare) a cunoștințelor a fost în mod tradițional atribuit unui domeniu extrem de promițător și în curs de dezvoltare al ingineriei cunoașterii, care dezvoltă modele, metode și algoritmi pentru analiza datelor pentru achiziția și învățarea cunoștințelor. Această zonă include modele inductive pentru generarea de ipoteze bazate pe eșantioane de antrenament, învățarea prin analogie și alte metode.


4. Proprietăţile sistemelor bazate pe cunoaştere

Figura 3 - Proprietățile sistemelor bazate pe cunoaștere

5. Criterii pentru oportunitatea rezolvării problemelor cu ajutorul sistemelor bazate pe cunoştinţe

Figura 4 - Criterii pentru oportunitatea rezolvării problemelor folosind sisteme bazate pe cunoștințe

6. Aplicații ale sistemelor bazate pe cunoștințe

Domeniile de aplicare a sistemelor bazate pe cunoștințe sunt foarte diverse:

Productie;

Aplicații militare;

Medicamentul;

Sociologie;

Geologie;

Agricultură;

Control;

Jurisprudenţă;

7. Tipuri de probleme rezolvate cu ajutorul sistemelor bazate pe cunoștințe

Tipuri de sarcini rezolvate cu ajutorul sistemelor bazate pe cunoștințe:

Interpretarea simbolurilor sau a semnalelor - alcătuirea unei descrieri semantice în funcție de datele de intrare;

Diagnostic - identificarea disfuncționalităților (bolilor) după simptome;

Monitorizare - observarea stării de schimbare a obiectului și compararea indicatorilor acestuia cu cei stabiliți sau doriti;

Proiectare - dezvoltarea unui obiect cu proprietăți specificate cu respectarea restricțiilor stabilite;

Prognoza - determinarea consecintelor, situatiilor observate;

Planificare - determinarea succesiunii acțiunilor care conduc la starea dorită a obiectului;

Control - impactul asupra obiectului pentru realizarea comportamentului dorit;

Instruirea este o explicație sau o consultare într-un anumit domeniu de cunoaștere.

Sistemele bazate pe cunoștințe sunt implementate pe baza următorilor algoritmi inteligenți:

Sistem expert;

Rețele neuronale;

Logica fuzzy;

Algoritmi genetici.

pentru că sistemele bazate pe cunoștințe folosesc algoritmi inteligenți, astfel de sisteme fiind uneori denumite sisteme de inteligență artificială.

Sistemele expert (ES) sunt programe de calculator care utilizează principiile inteligenței artificiale și cunoștințele formale ale unui expert pentru a procesa informații operaționale și a lua decizii informate în domeniul analizat.

În sistemele expert, cunoștințele de specialitate sunt utilizate pe scară largă pentru a rezolva probleme la nivelul unui expert uman. Termenul „expert” se referă la o persoană care are cunoștințe de specialitate într-un anumit domeniu. Aceasta înseamnă că expertul are cunoștințe sau abilități speciale care sunt necunoscute sau inaccesibile pentru majoritatea oamenilor. Un expert este capabil să rezolve probleme pe care majoritatea oamenilor nu sunt capabili să le rezolve deloc sau să le rezolve mult mai eficient. Odată ce sistemele expert au fost dezvoltate pentru prima dată, acestea conțineau doar cunoștințe de specialitate. Cu toate acestea, în zilele noastre termenul „ sistem expert" se aplică adesea oricărui sistem care utilizează tehnologia sistemului expert. Tehnologia sistemului expert poate include limbaje speciale de sistem expert, precum și software și hardware concepute pentru a sprijini dezvoltarea și funcționarea sistemelor expert.

Ca cunoștințe în sistemele expert, pot fi utilizate fie cunoștințe de specialitate, fie cunoștințe publice obișnuite, care pot fi obținute din cărți, reviste și de la oameni bine informați. În acest sens, cunoștințele obișnuite sunt considerate ca un concept de nivel inferior în comparație cu cunoștințele de specialitate mai rare. Termeni " sistem expert", "sistem bazat pe cunoștințe", și " sistem expert bazat pe cunoștințe" sunt adesea folosite interschimbabil. Dar majoritatea oamenilor folosesc doar termenul " sistem expert„pur și simplu pentru că este mai scurtă, chiar dacă în sistem expertîn cauză, nu expert, ci doar cunoștințele obișnuite pot fi prezentate.

Există două clase fundamental diferite de ES: „bazat pe cunoștințe” și „bazat pe exemple”. Prima clasă de ES este folosită pentru a lucra cu elemente de cunoaștere bine sistematizate și tipare cunoscute a priori exprimate prin diferite metode, instrucțiuni, reguli etc. Principii de lucru sistem expert bazat pe cunoștințe, sunt ilustrate în Fig.11.15.


Orez. 11.15.

În plus, au fost dezvoltate sisteme utile bazate pe cunoștințe care sunt destinate a fi utilizate ca asistent inteligent pentru un expert uman. Acești asistenți inteligenți sunt proiectați pe baza tehnologiei sistemelor expert, deoarece o astfel de tehnologie oferă avantaje semnificative de dezvoltare. Cu cât mai multe cunoștințe sunt introduse în baza de cunoștințe a unui asistent inteligent, cu atât acțiunile sale se vor asemăna mai mult cu cele ale unui expert. Dezvoltarea unui asistent inteligent poate fi un pas intermediar util înainte de a crea un asistent cu drepturi depline sistem expert. În plus, asistentul inteligent vă permite să eliberați mai mult timp util pentru expert, deoarece utilizarea acestuia contribuie la soluționarea accelerată a problemelor.

Cunoștințele de specialitate se referă la un singur domeniu, iar aceasta este diferența dintre metodele bazate pe utilizarea sistemelor expert și metodele generale de rezolvare a problemelor. Un domeniu este un domeniu cu probleme speciale, cum ar fi medicina, finanțele, știința și tehnologia, în care doar un anumit expert poate rezolva probleme foarte bine. Sistemele experte, precum experții umani, sunt, în general, destinate a fi utilizate ca experți într-un domeniu. De exemplu, nu se poate aștepta ca un expert în șah să aibă cunoștințe de specialitate legate de medicină. Expertiza într-un domeniu nu se transferă automat într-un alt domeniu.

Cunoștințele unui expert cu privire la soluționarea unor probleme specifice se numesc aria de cunoștințe a expertului. Relația dintre domeniul de subiect și zona de cunoștințe este prezentată în Figura 11.16.

În această figură, zona de cunoștințe este inclusă pe deplin în domeniul subiectului. Partea care depășește zona de cunoaștere simbolizează zona în care nu există cunoștințe despre niciuna dintre sarcinile legate de acest domeniu.

În domeniul cunoașterii sistem expert conduce raționamente sau trage concluzii logice pe același principiu ca un expert - o persoană ar argumenta sau ar ajunge la o soluție a unei probleme într-un mod logic.


Orez. 11.16.

Aceasta înseamnă că pe baza anumitor fapte, prin raționament, se formează o concluzie logică, justificată, care rezultă din aceste fapte.

ES sunt utilizate cu succes în acele domenii în care, pe lângă utilizarea metodelor algoritmice standard bazate pe calcule precise, se folosesc în esență cunoștințele și experiența unor experți-analiști specifici, iar luarea deciziilor se formează în condițiile unor date incomplete și depinde mai mult. pe evaluări calitative decât cantitative. Aceste domenii includ, în primul rând, zona de analiză a activității financiare, în care eficacitatea deciziilor luate depinde de compararea multor factori diferiți, ținând cont de relațiile complexe cauză-efect, utilizarea de non- raționament logic banal etc.

clasic sistem expertîntruchipează cunoștințele nescrise care trebuie obținute de la un expert prin interviuri efectuate de un inginer de cunoștințe pe o perioadă lungă de timp. Acest proces de creare sistem expert numit ingineria cunoașteriiși realizat de un inginer de cunoștințe. ingineria cunoașterii se referă la dobândirea de cunoștințe de la un expert uman sau din alte surse și prezentarea ulterioară a cunoștințelor în sistem expert(fig.11.17).


Orez. 11.17.

În primul rând, inginerul de cunoștințe stabilește un dialog cu un expert uman pentru a scoate la iveală cunoștințele expertului. Acest pas este similar cu pasul de lucru efectuat de un proiectant de sisteme în programarea convențională atunci când discută cerințele de sistem cu clientul pentru care este creat programul. Inginerul de cunoștințe expune apoi cunoștințele în mod explicit pentru a le include în baza de cunoștințe. Expertul evaluează apoi sistem expertși transmite critici inginerului de cunoștințe. Acest proces se repetă din nou și din nou, până când expertul evaluează rezultatele sistemului ca fiind satisfăcătoare.

În general, procesul de creare a sistemelor expert este mult diferit de procesul de dezvoltare a programelor obișnuite. În sistemele expert se consideră probleme care nu au o soluție algoritmică satisfăcătoare, deci se folosește o concluzie logică pentru a obține o soluție acceptabilă. De la baza de functionare sistem expert stă o concluzie logică, un astfel de sistem trebuie să fie capabil să-și explice raționamentul pentru a putea fi testat. Prin urmare, o parte integrantă a oricărui complex sistem expert este un mijloc de explicație. De fapt, explicatorii sofisticați pot fi dezvoltați pentru a permite utilizatorului să exploreze mai multe linii de întrebări precum „Ce se întâmplă dacă...” numit raționament ipotetic.

Prin urmare, ingineria cunoașterii- Acesta este domeniul tehnologiei informației, al cărui scop este acumularea și aplicarea cunoștințelor nu ca obiect pentru prelucrarea lor de către o persoană, ci ca obiect pentru prelucrarea lor pe un computer. Pentru a face acest lucru, este necesar să se analizeze cunoștințele și caracteristicile procesării lor de către o persoană și un computer, precum și să se dezvolte reprezentarea mașinii lor. Din păcate, încă nu a fost dată o definiție precisă și incontestabilă a ceea ce este cunoașterea. Totuși, obiectivul ingineria cunoașterii– să asigure utilizarea cunoștințelor în sistemele informatice la un nivel mai înalt decât este relevant până acum. Posibilitatea de a folosi cunoștințele este fezabilă doar atunci când această cunoaștere există, ceea ce este destul de înțeles. Tehnologia de acumulare și rezumare a cunoștințelor merge „cot la cot” cu tehnologia de utilizare a cunoștințelor, unde se completează reciproc și conduc la crearea unei singure tehnologii, tehnologia procesării cunoștințelor.

A doua clasă de ES este utilizată în situațiile în care nu există conexiuni și modele evidente între elementele cunoașterii, iar cunoașterea în sine este prezentată sub forma unor liste de exemple care descriu implementarea anumitor evenimente. Dacă prima clasă de ES lucrează cu date bine definite și cunoștințe extrase de la experți - analiști de către inginerii cunoașterii, atunci a doua clasă își formează cunoștințele prin adaptarea la domeniul de subiect reprezentat de exemple, iar atât formarea, cât și informațiile analizate pot fi distorsionate și incomplet. În primul caz, mecanismele de inferență, de regulă, se bazează pe strategii clasice de moștenire și inferență, în al doilea caz, diferite metode de generalizare inductivă prin exemple, în special, proprietățile rețelelor neuronale artificiale utilizate pentru aceasta.

Într-un sistem bazat pe reguli, cunoștințele de domeniu necesare pentru rezolvarea problemelor sunt codificate sub formă de reguli și conținute într-o bază de cunoștințe. Desigur, regulile sunt cele mai utilizate pentru a reprezenta cunoștințele. Elemente ale unui tipic sistem expert, pe baza regulilor, sunt prezentate în Figura 11.18.


Orez. 11.18.

Sistem expert constă din componentele descrise mai jos.

  • Interfața cu utilizatorul. Mecanismul prin care utilizatorul și sistem expert.
  • mijloace de explicație. O componentă care vă permite să explicați utilizatorului cursul raționamentului sistemului.
  • memorie de lucru. Baza globală a faptelor utilizate în reguli.
  • Mașină de inferență. O componentă software care asigură generarea de inferențe (decizia ce reguli le satisfac faptele sau obiectele). Prioritizează regulile de rulare și execută regula cu cea mai mare prioritate.
  • Lista de lucru a regulilor. O listă de reguli generată și prioritizat de un motor de inferență ale căror modele se potrivesc cu fapte sau obiecte din memoria de lucru.
  • Un mijloc de dobândire a cunoștințelor. O metodă automată care permite utilizatorului să introducă cunoștințe în sistem, mai degrabă decât să implice un inginer de cunoștințe în soluționarea problemei codificării explicite a cunoștințelor.

Multe sisteme au un instrument opțional de achiziție a cunoștințelor.Acest instrument în unele sisteme expert este capabil să învețe prin derivarea inductivă a regulilor din exemple și să genereze reguli automat. Alte metode și algoritmi au fost, de asemenea, utilizați pentru a genera reguli în învățarea automată, cum ar fi rețelele neuronale artificiale și algoritmi genetici. Principala problemă cu utilizarea învățării automate pentru a genera reguli este că nu există o explicație cu privire la motivul pentru care au fost create regulile. Spre deosebire de o ființă umană capabilă să explice motivele pentru care a fost aleasă o anumită regulă, sistemele de învățare automată nu au putut niciodată să-și explice acțiunile, iar acest lucru poate duce la rezultate imprevizibile. Cu toate acestea, în general, exemplele prezentate sub formă de tabele simple sunt cele mai bune pentru crearea arborilor de decizie. Regulile generale pregătite de un inginer de cunoștințe pot fi mult mai complexe decât regulile simple derivate prin derivarea regulilor inductive.

LA sistem expert, bazată pe reguli, baza de cunoștințe se mai numește și memorie de producție. Ca exemplu foarte simplu, luați în considerare problema luării unei decizii de a traversa un drum. Următoarele sunt producții pentru două reguli, în care săgețile înseamnă că sistemul va efectua acțiuni în dreapta săgeții dacă condițiile din stânga săgeții sunt adevărate:

lumina rosie aprinsa -> stop

lumina verde aprinsă -> mutare

Regulile de producție pot fi exprimate în formatul pseudocod IF-THEN echivalent, după cum urmează:

Regula: lumina_rosu

DACĂ lumina roșie este aprinsă, atunci stați

Regula: lumina_verde

DACĂ lumina verde este aprinsă, atunci mișcă-te

Fiecare regulă este identificată printr-un nume. După nume este partea IF a regulii. Secțiunea regulii dintre părțile IF și THEN ale regulii este menționată prin diferite nume, cum ar fi antecedentul, partea condiționată, partea șablonului sau partea stângă (LHS). O singură condiție precum

„lumina roșie aprinsă” se numește element condiționat sau model.

Într-un sistem bazat pe reguli, motorul de inferență determină ce antecedente de regulă (dacă există) sunt executate în funcție de fapte. Ca strategii de rezolvare a problemelor în sistemele expert, sunt utilizate în mod obișnuit două metode generale de inferență: inferența directă și inferența inversă. Alte metode utilizate pentru a efectua metode mai specifice pot include analiza scopurilor și mijloacelor, simplificarea problemelor, backtracking, plan-luc-verificare, planificarea ierarhică și cea mai mică contribuție și gestionarea constrângerilor.

Inferența logică directă este o metodă de formare a raționamentului de la fapte la concluzii care decurg din aceste fapte. De exemplu, dacă înainte de a pleca din casă constati că plouă (de fapt), atunci ar trebui să iei cu tine o umbrelă (concluzie).

Inferența inversă presupune formarea raționamentului în sens invers - de la o ipoteză (o potențială concluzie care trebuie dovedită) până la faptele care confirmă ipoteza. De exemplu, dacă nu te uiți afară, dar cineva intră în casă cu cizme ude și o umbrelă, atunci poți accepta ipoteza că plouă. Pentru a confirma această ipoteză, este suficient să întrebați această persoană dacă plouă. În cazul unui răspuns pozitiv, se va dovedi că ipoteza este adevărată, deci devine un fapt. După cum am menționat mai sus, o ipoteză poate fi privită ca un fapt, al cărui adevăr este îndoit și trebuie stabilit. Într-un astfel de caz, ipoteza poate fi interpretată ca un scop care trebuie dovedit.

In functie de proiect sistem expertîntr-un motor de inferență, se efectuează fie inferența directă, fie inversă, sau ambele forme de inferență. De exemplu, CLIPS este proiectat pentru inferență directă, PROLOG oferă inferență inversă, iar versiunea lui Paul Haley a CLIPS, numită Eclipse, efectuează atât inferență directă, cât și inversă. Alegerea motorului de inferență depinde de tipul problemei. Sarcini de diagnosticare sunt cel mai bine rezolvate folosind inferența inversă, în timp ce problemele de predicție, controlul curentului iar controalele sunt cel mai ușor de rezolvat folosind inferența logică directă.

Memoria de lucru poate conține informații despre starea actuală a semaforului, cum ar fi „lumină verde aprinsă” sau „lumină roșie aprinsă”. Oricare sau ambele dintre aceste fapte pot fi prezente în memoria de lucru. Dacă semaforul funcționează corect, atunci un singur fapt va fi în memoria de lucru. Dar este posibil și ca ambele fapte să fie prezente în memoria de lucru dacă semaforul este defect. Care este diferența dintre baza de cunoștințe și memoria de lucru? Faptele nu interacționează între ele. Faptul „lumină verde aprinsă” nu afectează faptul „lumină roșie aprinsă”. Pe de altă parte, cunoștințele despre funcționarea semafoarelor sugerează că, dacă ambele fapte sunt prezente în același timp, atunci semaforul este defect.

Dacă există un fapt „lumină verde aprinsă” în memoria de lucru, motorul de inferență detectează că acest fapt satisface partea condiționată a regulii green_light și plasează acea regulă în lista de lucru a regulilor. Și dacă o regulă are mai multe șabloane, atunci toate aceste șabloane trebuie să fie satisfăcute în același timp pentru ca regula să fie plasată în lista de lucru a regulilor. Ca o condiție pentru satisfacerea anumitor tipare, se poate specifica chiar absența anumitor fapte în memoria de lucru.

O regulă, ale cărei șabloane sunt îndeplinite, se numește activată sau implementată. Mai multe reguli activate pot fi prezente în lista de lucru a regulilor în același timp. În acest caz, motorul de inferență trebuie să aleagă una dintre reguli de rulat.

În urma părții THEN a regulii este o listă de acțiuni care trebuie efectuate după rularea regulii. Această parte a regulii se numește consecința sau partea dreaptă (Right-Hand Side - RHS). Dacă regula red_light este declanșată, acțiunea ei „stand” este executată. În mod similar, odată ce o regulă green_light este executată, acțiunea acesteia devine „mutare”. Acțiunile specifice implică de obicei adăugarea sau eliminarea unor fapte din memoria de lucru sau afișarea rezultatelor. Formatul pentru descrierea acestor acțiuni depinde de sintaxa limbajului. sistem expert. De exemplu, în CLIPS, acțiunea de a adăuga un nou fapt în memoria de lucru, numită „stop”, ia forma (assert stop).

Motorul de inferență funcționează în modul de implementare a ciclurilor „recunoaștere – acțiune”. Alți termeni, cum ar fi ciclul fetch-execute, ciclul situație-răspuns și ciclul situație-acțiune sunt, de asemenea, folosiți pentru a descrie acest mod de operare. Dar oricare ar fi numele unei astfel de bucle, motorul de inferență execută anumite grupuri de sarcini din nou și din nou până când sunt găsite anumite criterii care fac ca execuția să se oprească. Aceasta îndeplinește sarcinile comune identificate în pseudocodul de mai jos ca rezolvarea conflictelor, acțiunea, negocierea și verificarea condițiilor de pauză.

CAT timp lucrarea nu este terminata

Rezolvarea conflictului. Dacă există reguli activate, atunci selectați regula cu cea mai mare prioritate; altfel, treaba este gata.

Acțiune. Efectuați în mod constant acțiunile indicate în partea dreaptă a regulii activate selectate. În acest ciclu se manifestă influența directă a acelor acțiuni care modifică conținutul memoriei de lucru. Ștergeți regula nou lansată din lista de lucru a regulilor.

Coordonare. Actualizați lista de lucru a regulilor verificând dacă partea stângă a oricăror reguli este în curs de executare. Dacă da, activați regulile corespunzătoare. Ștergeți regulile activate dacă partea stângă a regulilor corespunzătoare nu mai este satisfăcută.

Verificarea condițiilor de oprire. Dacă acțiunea de oprire este efectuată sau este dată comanda de pauză, atunci lucrarea este terminată.

Acceptați comanda de utilizator nou.

În timpul fiecărui ciclu, mai multe reguli pot fi activate și plasate pe lista de lucru a regulilor. În plus, rezultatele activării regulilor din ciclurile anterioare rămân în lista de lucru a regulilor, cu excepția cazului în care aceste reguli sunt dezactivate din cauza faptului că părțile lor din stânga nu mai sunt executate. Astfel, în timpul execuției programului, se modifică numărul de reguli activate din lista de lucru a regulilor. În funcție de program, regulile activate anterior pot rămâne întotdeauna în lista de lucru de reguli, dar nu pot fi niciodată selectate pentru a fi executate. De asemenea, este posibil ca unele reguli să nu devină activate. În astfel de cazuri, ar trebui să verificați din nou scopul acestor reguli, deoarece fie astfel de reguli nu sunt necesare, fie șabloanele lor nu sunt bine concepute.

Motorul de inferență execută acțiunile regulii activate cu cea mai mare prioritate din lista de lucru de reguli, apoi acțiunile regulii activate cu următoarea prioritate cea mai mare și așa mai departe, până când nu mai există reguli activate în listă. Au fost dezvoltate diverse sisteme prioritare pentru instrumentele de sisteme expert, dar, în general, toate instrumentele permit inginerului de cunoștințe să prioritizeze regulile.

Conflictele apar în lista de lucru a regulilor dacă reguli diferite care sunt declanșate au aceeași prioritate și motorul de inferență trebuie să decidă care dintre aceste reguli să ruleze. Cochilii diferite folosesc metode diferite pentru a rezolva această problemă. Newell și Simon au abordat că regulile introduse mai întâi în sistem primesc cea mai mare prioritate în mod implicit. În CLIPS, regulile au aceeași prioritate în mod implicit, cu excepția cazului în care uneia dintre ele i se atribuie o prioritate diferită de către un inginer de cunoștințe.

După ce toate regulile au fost executate, controlul revine la interpret de comenzi nivel superior, astfel încât utilizatorul să poată trimite către shell sistem expert instructiuni aditionale. Rularea în modul de nivel superior corespunde modului implicit cu care interacționează utilizatorul sistem expert, și este desemnat ca sarcină „Acceptați o nouă comandă utilizator”. Noi comenzi sunt primite la nivelul superior.

Nivelul superior este interfața cu utilizatorul către shell în timp ce aplicația este în curs de dezvoltare. sistem expert. Dar, de obicei, sunt dezvoltate interfețe de utilizator mai complexe pentru a facilita lucrul cu acestea sistem expert. În realitate, proiectarea și implementarea unei interfețe cu utilizatorul poate necesita mai mult efort decât construirea unei baze de cunoștințe. sistem expert mai ales la stadiul de prototip. În funcție de capacitățile interpretului de comenzi sistem expert interfața cu utilizatorul poate fi implementată folosind reguli sau folosind instrucțiuni într-o altă limbă numită de la sistem expert.

Caracteristica principală sistem expert este facilitatea sa de explicație, care permite utilizatorului să pună întrebări despre modul în care sistemul a ajuns la o anumită concluzie și de ce are nevoie de anumite informații. Un sistem bazat pe reguli poate răspunde cu ușurință la întrebarea cum s-a ajuns la o anumită concluzie, deoarece istoricul activării regulilor și conținutul memoriei de lucru pot fi stocate pe stivă. Dar această posibilitate nu este atât de ușor de realizat atunci când se utilizează rețele neuronale artificiale. algoritmi genetici sau alte sisteme care sunt încă în curs de dezvoltare. Desigur, s-au făcut încercări de a prevedea posibilitatea explicației în unele sisteme, dar mijloacele de explicație create în acest caz nu pot fi comparate în claritatea lor cu mijloacele oricărui sistem expert proiectat de om. Instrumentele de explicație dezvoltate pot permite utilizatorului să pună întrebări „ce ar fi dacă” și să exploreze modalități alternative de formare a raționamentului ipotetic.

Unele sisteme bazate pe cunoștințe sunt numite sisteme expert atunci când standardul pentru utilizarea lor trebuie stabilit de un specialist uman. Există multe sisteme care se bazează pe cunoștințele experților. Scopul final al sistemelor bazate pe cunoaștere este înlocuirea decidentului uman, dar, în realitate, acest obiectiv depășește capacitățile reale ale sistemelor. Ele pot prelua doar o parte din munca unei persoane, dar nu o pot înlocui complet. Va trece ceva timp până când sistemele bazate pe cunoștințe vor putea înlocui managerii, dacă vreodată. În acest sens, sistemele bazate pe cunoștințe sunt uneori supraestimate.

Fiecare dintre cele patru tipuri de sisteme informatice pe care le-am considerat este potrivit pentru un anumit scop. Niciuna dintre ele nu este potrivită pentru toate tipurile de informații utilizate la toate nivelurile de management.

Deși sistemele de tranzacții și tranzacții nu sunt la fel de atractive precum suportul decizional sau sistemele bazate pe cunoștințe, ele sunt destul de puternice prin faptul că introduc date într-un sistem de informații comun, mențin datele organizate și actualizate și asigură că datele se deplasează acolo unde este nevoie. Dar, prin ele însele, aceste sisteme sunt limitate la utilizarea unor date specifice.

Tipurile de sisteme informatice de management discutate în această secțiune extind capacitățile sistemelor de tranzacții și tranzacții. Ei manipulează datele despre probleme cunoscute și recurente pentru a le face utilizabile pentru stimularea informațiilor excepționale. Aceste informații sunt utilizate cel mai frecvent la nivel operațional, mai puțin frecvent la nivel divizional și mai puțin frecvent la nivel strategic.

Sistemele de sprijin pentru decizii îi ajută pe manageri să rezolve probleme mai puțin structurate. Sunt mai potrivite decât UIS pentru producerea de informații de control, distribuție și orientare. DSS sunt mai complexe de a crea și întreține sisteme decât sistemele de informare de management. Și deși DSS poate rezolva problema informațiilor stimulatoare și exclusive, MIS vă permite să faceți acest lucru mai economic.

Sistemele de asistență pentru decizii oferă acces ușor și flexibil la multe componente. Când sunt bine proiectate, devine mai ușor să schimbați și să adăugați componente noi. Ca și alte instrumente puternice, eficacitatea WBS G este în mare măsură determinată de priceperea utilizării lor.

Sistemele bazate pe cunoștințe, pe de altă parte, sunt concepute pentru a sprijini stăpânirea. Acum, însă, aceste sisteme au limitat și au restrâns atenția asupra măiestriei. În prezent, sistemele bazate pe cunoștințe sunt instrumente puternice, dar limitate, pentru controlul, distribuirea și ghidarea deciziilor.

Sistemele informatice nu sunt întotdeauna utilizabile imediat, iar managerii trebuie adesea să creeze sisteme informaționale individuale.

Construirea sistemelor informatice

La începutul utilizării sistemelor informatice, în special în organizațiile simple, dezvoltarea programelor de calculator a fost o chestiune nesistematică. De exemplu, mulți programatori au început să codifice software-ul cât mai repede posibil - de multe ori înainte de a deveni clar care este programul de dezvoltat. Din această cauză, au apărut probleme, iar designerii au început să restabilească o oarecare ordine în acest proces. Acest lucru a dat naștere unui model numit ciclul de viață al dezvoltării sistemului.

A. Etapa definitorie

Etapa definitorie oferă o oportunitate de conturare a sistemului informațional. Faza de sugestie de argumentare este critică, deoarece prima descriere a problemei determină o mare parte din ceea ce trebuie să formalizeze software-ul. Faza de implementare a evaluării include două sarcini de bază.

Prima este problema definirii.

Al doilea este în a decide dacă este posibil să se construiască un sistem. Implementarea evaluării în ciclul de viață al dezvoltării sistemului se face, de regulă, atunci când există un minim de informații. Acest lucru poate cauza probleme precum lipsa unor concepte importante.

În timpul analizei sistemului, timpul este petrecut determinând ce informații dorește utilizatorul de la sistem. Următorul pas este să determinați ce date sunt necesare pentru a furniza aceste informații. Pe parcursul acestui proces, procedurile evoluează, făcând necesară obținerea de date și utilizarea informațiilor. În cele din urmă, examinează de unde vor veni datele și cum vor curge acestea prin sistem.

Sarcina fazei următoare, proiectarea sistemelor logice, este de a dezvolta conceptul de sistem, care include modul în care vor fi colectate datele, ce se va face cu aceste date și ce rapoarte vor fi emise de sistem. Odată cu finalizarea proiectului de sistem logic se încheie și etapa definitorie. Etapa definitorie este esențială pentru succesul proiectării și dezvoltării sistemului. implementarea lui este dificilă. În timpul analizei sistemului, o mulțime de lucruri par abstracte și este dificil de imaginat cum vor arăta toate după reconstrucție.

Ar fi. Etapă de dezvoltare

Stadiul de dezvoltare este și el decisiv, dar cu următoarea diferență. O etapă slabă de dezvoltare poate distruge munca bună în etapa de definire, dar chiar și munca remarcabilă efectuată în etapa de dezvoltare nu poate salva munca proastă în etapa de definire. În faza de proiectare a sistemului fizic, proiectarea logică se traduce în specificații pentru subsisteme, programe, proceduri, fișiere și baze de date. Proiectarea sistemelor fizice necesită abilități tehnice bine dezvoltate. Dacă sarcinile etapei de definire au fost bine îndeplinite, atunci nu este nevoie de o implicare extinsă a utilizatorului în proiectarea sistemului fizic.

În timpul dezvoltării software, echipa de proiectare dezvoltă programe specializate în proiectarea sistemului fizic. Ea scrie și programe și le verifică.

Dezvoltarea procedurală include proiectarea și descrierea procedurilor prin care utilizatorii vor colecta și pregăti date pentru intrarea într-un sistem de raportare, precum și procedurile de interpretare a rapoartelor. Odată ce programele sunt scrise și testate, este timpul pentru testarea sistemului. Testarea sistemului are două părți: asigurarea faptului că programele individuale funcționează împreună și verificarea respectării procedurilor de către sistemul informatic.

Etapa de înființare și implementare

În timpul fazei de instalare și punere în funcțiune, proiectul trece de la proiectare la implementare. Faza de conversie și instalare este de obicei cea mai critică perioadă. Procesul de conversie creează fișierele necesare pentru noul sistem. Acest lucru necesită adesea un subsistem special care traduce datele din formatul vechiului sistem în noul format. Privați temporar de orice sistem informatic, angajații pot scrie o cantitate mare de date manual, validând-o cât mai mult posibil și plasându-le în fișiere de format nou. În acest timp este posibil și instruirea utilizatorului în procedurile de utilizare a noului sistem.

Procesul de instalare mută programele de calculator din bibliotecile de computer utilizate de programatori în bibliotecile de computer utilizate în timpul funcționării efective a sistemului. Acest proces poate implica și instalarea fizică de noi terminale sau calculatoare.

Dacă sistemul a fost convertit și instalat cu succes, atunci dezvoltarea proiectului este finalizată și începe faza de utilizare și suport. În timpul funcționării sistemului, utilizatorii furnizează date de intrare și folosesc datele originale. Cu toate acestea, chiar dacă sistemul este dezvoltat, lucrarea nu este încă terminată. Sistemele conțin erori și necesită remediere, iar circumstanțele în schimbare impun adesea modificări ale sistemului. Astfel, lucrul la sistem continuă și se numește suport.

Sisteme bazate pe cunoștințe

Ființele vii, în funcție de poziția lor pe scara evolutivă, au abilități intelectuale mai mari sau mai mici. Capacitățile intelectuale ale albinelor, păsărilor, delfinilor și oamenilor diferă de multe ori. Cu toate acestea, se poate spune că fiecare dintre aceste ființe are capacitatea de a face alegeri individuale și de a lua propriile decizii. Acesta este unul dintre semnele inteligenței.

În aplicațiile construite pe baza inteligenței artificiale, se încearcă reproducerea comportamentului ființelor vii prin intermediul sistemelor informatice. În același timp, un inginer de cunoștințe rezolvă o sarcină destul de dificilă: trebuie să integreze în programele de calculator comportamentul inerent ființelor vii.

Folosind o serie de metodologii care includ sisteme expert, rețele neuronale, sisteme bazate pe cazuri, algoritmi genetici, agenți inteligenți și extragerea datelor, putem face ca sistemele computerizate să acționeze ca niște ființe vii prin reproducerea unui număr mic de aspecte ale comportamentului inteligent, cum ar fi

□ luarea deciziilor, diagnosticarea, planificarea sistemelor și situațiilor folosind sisteme expert sau rețele neuronale;

□ prognozarea dezvoltării sistemelor complexe folosind algoritmi genetici;

□ studierea experienței anterioare (uneori un singur exemplu) și luarea unei decizii pe baza acesteia în funcție de situația actuală prin intermediul unor sisteme bazate pe precedente;

□ recunoașterea scrisului de mână sau a imaginii grafice prin modelare în rețele neuronale;

□ Stabilirea relațiilor cauzale între seturile de date folosind mecanisme de extracție a datelor (astfel, este posibil să se identifice relații cauzale în lumea reală din care provin datele);

□ simularea comportamentului independent al unui program de calculator, implementat folosind tehnologia agenților inteligenți.

De exemplu, sistemele de informații juridice pot oferi decizii adecvate bazate pe exemple din experiența anterioară folosind raționamentul bazat pe cazuri (astfel de sisteme vor funcționa eficient într-un sistem juridic bazat pe cazuri în care deciziile sunt luate pe baza hotărârilor judecătorești anterioare în cazuri similare).

Sistemele bazate pe cunoștințe sunt programe de calculator concepute pentru a reproduce munca experților în anumite domenii de cunoaștere.

Există șapte tipuri principale de sisteme bazate pe cunoștințe.

1. Sistemele expert modelează procesul decizional inerent creierului uman. Aceștia sunt folosiți pentru a acționa ca experți umani, ajutând managerii sau specialiștii să ia decizii bazate pe cunoștințele experților. Aplicațiile tipice ale sistemelor expert sunt planificarea, programarea, diagnosticarea. Deși sistemele expert servesc pentru a imita procesul uman de luare a deciziilor, algoritmii și regulile care ghidează deciziile sunt statice. Aceasta înseamnă că sistemul expert nu poate modifica în mod independent logica muncii sale și nu este auto-învățare.

2. Rețelele neuronale simulează activitatea creierului uman la nivel biologic (la nivelul comportamentului celulelor individuale ale creierului, neuronilor). Aceasta înseamnă că rețelele neuronale au o capacitate de auto-învățare încorporată: pot învăța să recunoască modele și apoi, pe baza modelelor, să recunoască modele. Datorită capacității de auto-învățare, rețelele neuronale pot fi utilizate într-o oarecare măsură pentru a rezolva probleme de prognoză pe baza experienței anterioare (de exemplu, pentru a prezice distribuția zilnică a costurilor cu energie electrică în sistemul energetic).

3. Sistemele bazate pe cazuri modelează capacitatea umană de a lua decizii prin analogie cu precedentele existente. Astfel de sisteme sunt adesea folosite în serviciile de asistență tehnică, unde situații problematice similare sunt repetate de multe ori cu clienți diferiți.

4. Sistemele bazate pe algoritmi genetici, după cum sugerează și numele, modelează procesul de dezvoltare a organismelor biologice la nivel celular. Algoritmii de acest fel sunt proiectați pentru a găsi una dintre cele mai bune soluții acceptabile la probleme cu un număr mare de parametri definitori. Întrucât un organism biologic în proces de dezvoltare rezolvă continuu problema optimizării tuturor parametrilor săi și stabilirii echilibrului cu mediul înconjurător, sistemele bazate pe algoritmi genetici pot fi folosite pentru a rezolva probleme de optimizare a sistemelor multifactoriale complexe și de predicție a opțiunilor de dezvoltare a acestora.

5. Agenții inteligenți sunt programe pentru care se stabilește scopul final, dar ei pot alege în mod independent modalități de a atinge acest obiectiv, schimbând în mod flexibil algoritmul comportamentului lor. Majoritatea agenților inteligenți sunt programe de fundal care fac treaba murdară și ies în prim-plan doar atunci când trebuie să livreze rezultatul utilizatorului. Exemple de agenți inteligenți includ roboții motoarelor de căutare pe Internet care cernează continuu milioane de pagini ale diferitelor site-uri pentru a menține datele motoarelor de căutare actualizate.

6. Sisteme de extragere a datelor. Termenul „data mining” este folosit pentru a descrie procesul de descoperire a cunoștințelor prin găsirea de relații necunoscute anterior între date. În bazele de date care stochează cantități mari de date, pot fi identificate modele implicite care sunt de utilizare practică. De exemplu, analizând vânzările într-un supermarket, puteți afla că vara, în același interval de timp, vânzarea de limonadă, înghețată și semințe crește brusc. Aceste mărfuri trebuie să fie amplasate în zona comercială din apropiere și să asigure alimentarea lor neîntreruptă. Astfel de măsuri vor crește semnificativ vânzarea acestor produse.

3.4.1. Sistem expert

Sistemele expert trebuie să aibă niște caracteristici specifice: pentru activitatea sa, sistemul expert folosește cunoștințe pe care trebuie să le poată stoca în baza de cunoștințe, extrage și procesa într-un anumit mod pentru a rezolva problema. Cu alte cuvinte, sistemul expert ar trebui să înlocuiască complet expertul uman în orice domeniu specific de activitate.


Sistemele experte sunt create folosind limbaje de programare care acceptă programarea bazată pe reguli. Prolog și Lisp acționează de obicei ca astfel de limbi.

Două cerințe sunt deosebit de importante pentru sistemele expert:

□ Arie de subiect destul de îngustă. Cu cât este mai restrâns domeniul în care sunt implementate funcțiile sistemului expert, cu atât este mai ușor să se creeze un set de reguli pentru acesta și cu atât este mai eficientă opinia expertului emis.

□ Posibilitatea de inferență inversă (vezi exemplul modelului de producție mai devreme) vă permite să urmăriți pe baza căror date inițiale a fost elaborată recomandarea expertului.

Elementele principale ale sistemului expert sunt (Fig. 3.5):

□ modul de stocare a cunoștințelor (bază de cunoștințe), în care cunoștințele sunt stocate în diverse formate de prezentare;

□ un motor de inferență care utilizează o bază de cunoștințe pentru a rezolva probleme;

□ interfață cu utilizatorul prin care utilizatorul aplică sistemul expert, formulează problema și primește soluția acesteia;

□ un mecanism de obținere a cunoștințelor, cu ajutorul căruia se formează baze de cunoștințe în diverse scopuri (pentru diverse domenii).

Orez. 3.5. Elemente ale unui sistem expert

Avantajele sistemelor expert includ:

□ procesul decizional are loc pe baza unor reguli prestabilite;

□ utilizarea separată a bazei de cunoștințe și a motorului de inferență vă permite să le modificați pe ambele separat;

□ posibilitatea de a afla cum a fost primită decizia;

□ viteza de obținere a unei decizii;

□ disponibilitatea unei proceduri standard de retragere;

□ capacitatea de a rezolva în mod repetat probleme tipice cu eliberarea experților umani din această muncă;

□ Împuternicirea utilizatorilor la capacitățile experților cu experiență într-un anumit domeniu.

Dezavantajele sistemelor expert:

□ concentrarea pe un domeniu restrâns de cunoaștere, pe rezolvarea problemelor cu specific limitat;

□ nevoia experților de a dobândi cunoștințe;

□ nevoie frecventă de un expert pentru o opinie finală;

□ grad ridicat de formalizare, incapacitatea de a folosi „simțul simplu” în raționament;

□ cost ridicat de dezvoltare și întreținere;

□ grad ridicat de concluzii mecaniciste, lipsă de „creativitate”;

□ necesitatea reînnoirii constante a bazei de cunoștințe în conformitate cu schimbările din domeniul de expertiză;

□ complexitatea obținerii de cunoștințe de la experți și cerințele speciale pentru un inginer de cunoștințe (procesul de traducere a intuiției unui expert în simboluri și expresii ale logicii formale poate dura mult timp și poate fi foarte costisitor).

Sistemele expert sunt folosite acolo unde

□ problemele în curs de rezolvare sunt atât de importante încât utilizarea unui sistem expert economisește timp și bani, sau ambele;

□ regulile de examinare sunt stabile și bine cunoscute (cu alte cuvinte, există experți disponibili de la care este suficient de ușor să obțineți cunoștințe, ceea ce face posibilă construirea unui sistem expert conceput pentru utilizare repetată și pe termen lung);

□ este mai ieftin să creați și să mențineți un sistem expert decât să angajați experți umani;

□ sunt mulți consumatori care au nevoie doar de un astfel de sistem expert (în acest caz, odată creat, un sistem expert poate fi reprodus și aplicat în mod repetat de către diferiți consumatori);

□ este mai ușor și mai ieftin să creați un sistem expert decât să instruiți personalul într-un nou domeniu de activitate;

□ decizia se formalizează ușor și se ia pe baza unor reguli stabile (fără a introduce intuiție sau cunoștințe slab formalizate).

Pentru a lua decizii, a obține informații suplimentare, a crește fiabilitatea sau a reduce costul rezolvării problemelor din diverse domenii ale științei, tehnologiei, economiei, medicinei etc. 3.6 prezintă clasificarea sistemelor expert după diverse criterii.


Sistem expert


- Educație - Supercalculator - Autonome

__ Pe caracter ____ Hibrid

Capitolul 1. Sisteme bazate pe cunoștințe.

capitolul 2 Introducere în ingineria cunoașterii.

CAPITOLUL 1. Sisteme bazate pe cunoaştere.

^ 1.1. Cunoștințe și date

Dacă ai o problemă sau o sarcină care nu poate fi rezolvată pe cont propriu, apelezi la oameni cunoscători, sau la experți, la cei care au CUNOAȘTE. Termenul de „sisteme bazate pe cunoștințe” a apărut în 1976 concomitent cu primele sisteme care acumulează experiența și cunoștințele experților. Acestea au fost sisteme expert MYCIN și DENDRAL pentru medicină și chimie. Ei au pus un diagnostic de boli infecțioase ale sângelui și au descifrat datele analizei spectrografice de masă.

Sistemele expert au apărut ca parte a cercetării privind inteligența artificială (AI) într-un moment în care această știință trecea printr-o criză gravă și era necesar un progres semnificativ în dezvoltarea aplicațiilor practice. Această descoperire a avut loc atunci când cercetătorii au înlocuit căutarea unui algoritm universal pentru gândirea și rezolvarea problemelor cu ideea de a modela cunoștințele specifice ale experților specialiști. Deci în SUA prima reclamă sisteme bazate pe cunoștințe sau sisteme expert (ES). Aceste sisteme au devenit pe bună dreptate primele sisteme inteligente și, până acum, singurul criteriu de intelectualitate este disponibilitatea mecanismelor de lucru cu cunoașterea.

Astfel, a apărut o nouă abordare pentru rezolvarea problemelor de inteligență artificială - reprezentarea cunoștințelor.

Mai multe detalii despre istoria inteligenței artificiale pot fi găsite în [Pospelov, 1986; Jackson, 2001; Gavrilova şi Khoroşevski, 2001; Andrei, 1985|.

Când studiem sistemele inteligente, se pune în mod tradițional întrebarea - ce este cunoștințele și cum diferă acestea de datele obișnuite procesate de zeci de ani pe computere. Pot fi propuse mai multe definiții de lucru în care acest lucru devine clar.

Definiție 1.1

Date- este vorba de informații obținute ca urmare a observațiilor sau măsurătorilor proprietăților (atributelor) individuale care caracterizează obiectele, procesele și fenomenele domeniului subiect.

În caz contrar, datele sunt fapte specifice, cum ar fi temperatura aerului, înălțimea clădirii, numele de familie al angajatului, adresa site-ului web etc.

Atunci când sunt procesate pe un computer, datele sunt transformate, trecând în mod convențional prin următoarele etape:


  • D1 - date rezultate în urma măsurătorilor și observațiilor;

  • D2 - date privind mediile materiale (tabele, protocoale, directoare);

  • D3 - modele de date (structuri) sub formă de diagrame, grafice, funcții;

  • D4 - date în calculator în limbajul de descriere a datelor;

  • D5 - baze de date pe medii de stocare a mașinii.
Cunoașterea se bazează pe date obținute empiric. Ele sunt rezultatul experienței și activității mentale a unei persoane care vizează generalizarea acestei experiențe obținute ca urmare a activității practice.

Deci, dacă înarmați o persoană cu date că are o temperatură ridicată (rezultatul observării sau măsurării), atunci acest fapt nu îi va permite să rezolve problema recuperării. Și dacă un medic cu experiență își împărtășește cunoștințele că temperatura poate fi redusă cu medicamente antipiretice și multe lichide, atunci aceasta va aduce în mod semnificativ mai aproape soluția problemei recuperării, deși, de fapt, sunt necesare date suplimentare și cunoștințe mai aprofundate.

Definiție 1.2

Cunoştinţe- sunt conexiuni și tipare ale domeniului de studiu (principii, modele, legi) obținute ca urmare a activităților practice și a experienței profesionale, care le permite specialiștilor să stabilească și să rezolve probleme în acest domeniu.

Când sunt procesate pe un computer, cunoștințele sunt transformate în mod similar cu datele:


  • Z1 - cunoștințe în memoria umană ca urmare a analizei experienței și gândirii;

  • Z2 - purtători materiale de cunoștințe (literatură specială, manuale, mijloace didactice);

  • Z3 - domeniu de cunoaștere - o descriere condiționată a principalelor obiecte ale domeniului de studiu, atributele și modelele lor care le conectează;

  • Z4 - cunoștințe descrise în limbaje de reprezentare a cunoștințelor (limbi de producție, rețele semantice, cadre - vezi mai jos);

  • Z5 - bază de cunoștințe despre mediile de stocare a mașinilor. Următoarea definiție a cunoștințelor este adesea folosită:
Cunoştinţe sunt date bine structurate sau date despre date sau metadate.

Etapa cheie în lucrul cu cunoașterea este formarea unui câmp de cunoaștere (a treia etapă Z3), această sarcină non-trivială include identificarea și definirea obiectelor și conceptelor domeniului subiectului, proprietățile și relațiile lor dintre ele, precum și prezentarea lor într-o formă vizuală și intuitivă. Acest termen a fost introdus pentru prima dată în timpul dezvoltării practice a sistemului expert AUTANTEST pentru psihodiagnostic [Gavrilova, 1984] și este acum utilizat pe scară largă de dezvoltatorii ES.

Fără un studiu amănunțit al domeniului cunoașterii, nu poate fi vorba de crearea unei baze de cunoștințe.

Esențiale pentru înțelegerea naturii cunoașterii sunt modurile în care sunt definite conceptele. Una dintre metodele utilizate pe scară largă se bazează pe ideea de intensitate și extensie.

Definiție 1.3

Intensiune de concept- aceasta este definirea sa prin corelare cu conceptul unui nivel superior de abstractizare cu indicarea proprietăților specifice.

De exemplu, intenția conceptului „MOBILIER”: „obiecte concepute pentru a asigura o ședere confortabilă pentru o persoană și a aglomera casa”.

Definiție 1.4

O extensie este o definiție a unui concept prin enumerarea exemplelor sale specifice, adică concepte de un nivel inferior de abstractizare.

Extinderea conceptului „MOBILIER”: „Dulap, canapea, masă, scaun etc.”

Intențiile formează cunoștințe despre obiecte, în timp ce extensiile combină datele. Împreună, ele formează elementele domeniului de cunoștințe ale unui anumit domeniu.

Bazele de date sunt folosite pentru stocarea datelor (se caracterizează printr-un volum mare și un cost unitar relativ mic al informației), pentru stocarea cunoștințelor - baze de cunoștințe (matrice de informații mici, dar extrem de costisitoare).

Bază de cunoștințe - baza oricărui sistem intelectual, unde cunoașterea este descrisă într-un anumit limbaj de reprezentare a cunoștințelor, apropiat de natural.

Cunoștințele pot fi împărțite în:


  • adânc;

  • superficial.
Suprafata - cunoștințe despre relațiile vizibile dintre evenimentele individuale și faptele din domeniul de studiu.

adânc- abstracții, analogii, diagrame care reflectă structura și natura proceselor care au loc în domeniul de studiu. Aceste cunoștințe explică fenomenele și pot fi folosite pentru a prezice comportamentul obiectelor.

Cunostinte superficiale

„Dacă introduceți parola corectă, pe ecranul computerului va apărea o imagine de pe desktop.”

Cunoștințe vaste

„Înțelegerea modului în care funcționează sistemul de operare și cunoștințe la nivelul unui administrator de sistem calificat”.

Sistemele expert moderne lucrează în principal cu cunoștințe superficiale. Acest lucru se datorează faptului că în prezent nu există metode universale care să vă permită să identificați structurile profunde ale cunoașterii și să lucrați cu acestea.

În plus, manualele AI împart în mod tradițional cunoștințele în proceduralși declarativ. Din punct de vedere istoric, cunoștințele procedurale au fost primare, adică cunoștințele „dizolvate” în algoritmi. Ei au gestionat datele. Pentru a le schimba, a fost necesar să se schimbe textul programelor. Cu toate acestea, odată cu dezvoltarea informaticii și a software-ului, o parte din ce în ce mai mare a cunoștințelor s-a concentrat în structurile de date (tabele, liste, tipuri de date abstracte), adică rolul cunoștințelor declarative a crescut.

Astăzi, cunoașterea a dobândit o formă pur declarativă, adică cunoașterea este considerată a fi propoziții scrise în limbaje de reprezentare a cunoștințelor care sunt apropiate de limbajul natural și de înțeles de nespecialiști.

Unul dintre pionierii AI, Alan Newell, a ilustrat evoluția comunicării om-calculator ca o tranziție de la codurile mașinii prin limbaje de programare simbolică la limbaje de reprezentare a cunoștințelor (Fig. 1.1).

^ 1.2. Modele de reprezentare a cunoștințelor

În prezent, au fost dezvoltate zeci de modele (sau limbaje) de reprezentare a cunoștințelor pentru diferite domenii. Cele mai multe dintre ele pot fi reduse la următoarele clase:


  • modele de producție;

  • rețele semantice;

  • rame;

  • modele logice formale.
La rândul său, acest set de clase poate fi împărțit în două grupuri mari (Fig. 1.2):

  • modular;

  • reţea.
Modular limbile operează pe elemente de cunoaștere separate (nelegate), fie că sunt reguli sau axiome ale domeniului de studiu.

Reţea limbajele oferă capacitatea de a lega aceste elemente sau piese de cunoștințe prin relații în rețele semantice sau rețele de cadre.

Să luăm în considerare mai detaliat cele mai populare limbaje de reprezentare a cunoștințelor (KRP) printre dezvoltatori.

^ 1.2.1. model de producție

RPL-urile bazate pe reguli sunt cele mai comune și mai mult de 80% dintre ES le folosesc.

Definiția 1.5

Modelul de producție sau bazat pe reguli permite ca cunoștințele să fie reprezentate ca propoziții precum „Dacă (condiție), atunci (acțiune)”.

Sub „condiție” (antecedent) se înțelege o anumită propoziție-propoziție, conform căreia căutarea se efectuează în baza de cunoștințe, iar sub „acțiune” (consecvent) - acțiunile efectuate la rezultatul cu succes al căutării ( ele pot fi intermediare, acționând mai departe ca condiții, și terminale sau țintă, terminând sistemul).

Cel mai adesea, concluzia pe o astfel de bază de cunoștințe este Drept(de la date la căutarea țintă) sau înapoi(de la scopul confirmării acesteia - până la date). Datele sunt faptele inițiale stocate în baza de fapte, pe baza cărora este lansat motorul de inferență sau interpretul de reguli, sortând regulile din baza de cunoștințe de producție (vezi secțiunea 1.3).

Modelul de producție este atât de des folosit în sistemele expert industriale, deoarece atrage dezvoltatorii prin claritatea, modularitatea ridicată, ușurința adăugărilor și modificărilor și simplitatea mecanismului de inferență.

Există un număr mare de instrumente software care implementează abordarea de producție (de exemplu, limbaje de nivel înalt CLIPS și OPS 5; "shell" sau "goale" ES - EXSYS Professional și Carra, sisteme instrumentale KEE, ARTS, PIES [ Khoroshevsky, 1993]), precum și ES industrial bazat pe acesta (de exemplu, ES creat prin intermediul G2 [Popov, 1996]). Vezi [Popov, Fominykh et al., 1996; Khoroşevski, 1993; Gavrilova şi Khoroşevski, 2001; Durkin, 1998].

^ 1.2.2 Rețele semantice

Termen „semantic” înseamnă„semantică”, iar semantica însăși este o știință care stabilește relații între simboluri și obiectele pe care le desemnează, adică o știință care determină semnificația semnelor. Modelul rețelei semantice a fost propus de psihologul american Quillian. Principalul său avantaj este că corespunde mai mult decât altele ideilor moderne despre organizarea memoriei umane pe termen lung [Scragg, 1983].

Definiția 1.6

Web semantic este un graf direcționat ale cărui vârfuri sunt concepte, iar arcele sunt relații între ele.

Conceptele sunt de obicei obiecte abstracte sau concrete și relaţii acestea sunt relații de tipul: „acest” („AKO - A-Kind-Of, „este” sau „element de clasă”), „are parte”, „aparține”, „apreciază”.

Putem oferi mai multe clasificări ale rețelelor semantice legate de tipurile de relații dintre concepte.

După numărul de tipuri de relații:


  • omogen (cu un singur tip de relație);

  • eterogene (cu diferite tipuri de relaţii).
- Dupa tipul de relatie:

  • binar (în care relații leagă două obiecte);
N-ary (în care există relații speciale care leagă mai mult de două concepte).

Următoarele relații sunt cel mai des folosite în rețelele semantice:


  • element de clasă (trandafir Acest floare);

  • relații de atribut / au o proprietate (memorie are proprietatea- volum);

  • sens proprietăți (culoare are sensul - galben);

  • exemplu de element de clasă (trandafir, De exemplu - camera de ceai);

  • tipul conexiunii "parte-intreg"(o bicicletă include volan);

  • conexiuni funcționale (definite de obicei prin verbele „produce”, „influențează”...);

  • cantitativ (mai mare decât, mai mic decât, egal cu...);

  • spațială (departe de, aproape de, în spate, sub, peste ...);

  • temporar (mai devreme, mai târziu, în timpul ...);

  • conexiuni logice (și, sau, nu) si etc.
Compoziția minimă a relațiilor din rețeaua semantică este următoarea:

  • element de clasă sau ACO;

  • link-uri atributive / au o proprietate;

  • Valoarea proprietății.
Dezavantajul acestui model este complexitatea organizării procedurii de organizare a inferenței pe rețeaua semantică.

Această problemă se reduce la sarcina non-trivială de a găsi un fragment de rețea care să corespundă unei subrețea care reflectă interogarea către baza de date.

Pe fig. 1.3 prezintă un exemplu de web semantică. Conceptele de „om”, „tovarăș Smirnov”, „Audi A4”, „mașină”, „mod de transport” și „motor” servesc aici drept vârfuri.

Orez. 1.3. Web semantic

Pentru implementarea rețelelor semantice există limbaje speciale de rețea, de exemplu, NET [Tseytin, 1985], limbajul de implementare a sistemelor SIMER + MIR [Osipov, 1997] etc. Sisteme experte care folosesc rețelele semantice ca limbaj de reprezentare a cunoștințelor. sunt larg cunoscute - PROSPECTOR, CASNET, TORUS [Hayes-Roth et al., 1987; Durkin, 1998].

1.2.3. Rame

Termen cadru(din engleza. cadru-„schelet” sau „cadru”) a fost propus de Marvin Minsky [Minsky, 1979], unul dintre pionierii AI, în anii 70 pentru a se referi la structura cunoașterii pentru percepția scenelor spațiale. Acest model, ca și rețeaua semantică, are o bază psihologică profundă.

Definiția 1.7

Un cadru este o imagine abstractă pentru reprezentarea unui stereotip al unui obiect, concept sau situație.

Este clar intuitiv că o imagine abstractă este înțeleasă ca un model sau structură generalizată și simplificată. De exemplu, pronunțarea cuvântului „cameră” cu voce tare oferă ascultătorilor imaginea unei camere: „o cameră de zi cu patru pereți, un podea, un tavan, ferestre și o ușă, cu o suprafață de 6-20 m2”. Nimic nu poate fi eliminat din această descriere (de exemplu, scoaterea ferestrelor, vom obține un dulap, nu o cameră), dar există „găuri” în ea sau "sloturi" - acestea sunt valori goale ale unor atribute - de exemplu, numărul de ferestre, culoarea pereților, înălțimea tavanului, acoperirea podelei etc.

În teoria cadrului, o astfel de imagine a unei camere se numește cadru de cameră. Un cadru se mai numește și model formalizat pentru afișarea unei imagini.

Distinge cadre de probă sau prototipuri, stocate în baza de cunoștințe și cadre de instanță, care sunt create pentru a afișa situații reale reale pe baza datelor primite. Modelul de cadru este destul de universal, deoarece vă permite să afișați toată diversitatea cunoștințelor despre lume prin:


  • cadre-structuri, folosit pentru a desemna obiecte și concepte (împrumut, gaj, bilet la ordin);

  • cadre de rol(manager, casier, client);

  • cadre de scenariu(faliment, adunarea acționarilor, celebrarea zilelor onomastice);

  • cadre de situație(alarma, accident, modul de funcționare al dispozitivului), etc.
În mod tradițional, structura unui cadru poate fi reprezentată ca o listă de proprietăți:

^ (NUMELE CADREI:

(numele primului slot: valoarea primului slot),

(numele slotului al doilea: valoarea slotului al doilea),

…………….

(Al-lea nume de slot: a-a valoare de slot)).

Aceeași intrare poate fi prezentată sub forma unui tabel (vezi Tabelul 1.1), completându-l cu două coloane.

Tabelul 1.1. structura cadrului


numele cadrului

Nume slot

Valoarea slotului

Cum să obțineți valoarea

Procedura atasata

În tabel, coloanele suplimentare (a 3-a și a 4-a) sunt destinate să descrie modul în care un slot își primește valoarea și poate fi atașat unuia sau altui interval de proceduri speciale, ceea ce este permis în teoria cadrelor. Valoarea unui slot poate fi numele unui alt cadru, care este modul în care se formează rețelele de cadre.

Există mai multe moduri prin care un slot poate primi valori într-un cadru de instanță:


  • implicit din cadrul de referință (Valoare implicită);

  • prin moștenirea proprietăților din cadrul specificat în slotul AKO;

  • conform formulei specificate în slot;

  • printr-o procedura atasata;

  • explicit din dialogul cu utilizatorul;

  • din baza de date.
Cea mai importantă proprietate a teoriei cadrelor este împrumutarea din teoria rețelelor semantice - așa-numita moștenire a proprietăților. În ambele cadre și în rețelele semantice, moștenirea are loc de-a lungul legăturilor AKO (A-Kind-Of = this). Slot-ul ACO indică un cadru de un nivel superior al ierarhiei, de unde valorile sloturilor similare sunt implicit moștenite, adică transferate.

De exemplu, în rețeaua de cadre din Fig. 1.4 conceptul de „elev” moștenește proprietățile cadrelor „copil” și „persoană”, care se află la un nivel superior al ierarhiei. La întrebarea „Elevilor le plac dulciurile?” răspunsul este „da”, deoarece toți copiii au această proprietate, care este indicată în cadrul „copil”. Moștenirea proprietății poate fi parțială: vârsta pentru studenți nu este moștenită din cadrul „copil”, deoarece este specificat în mod explicit în cadrul propriu.


Orez. 1.4. Rețea de cadru

Principalul avantaj al cadrelor ca model de reprezentare a cunoștințelor este că reflectă baza conceptuală a organizării memoriei umane [Shenk, Hunter, 1987], precum și flexibilitatea și vizibilitatea acesteia.

Limbaje de reprezentare a cunoștințelor speciale în rețele de cadru FRL (Frame Representation Language) [Baydun, Bunin, 1990], KRL (Knowledge Representation Language) [Waterman, 1989], frame „shell” Kappa [Strelnikov, Borisov, 1997] și alte programe software instrumentele permit construirea eficientă a centralelor industriale. Sunt cunoscute pe scară largă astfel de sisteme expert orientate pe cadru precum ANALYST, MODIS, TRISTAN, ALTERID [Kovrigin, Perfilyev, 1988; Nikolov, 1988; Sisodia, Warkentin, 1992].

^ 1.2.4. Modele logice formale

În mod tradițional, în reprezentarea cunoștințelor, există modele logice formale bazate pe cele clasice calculul predicatelor de ordinul I, când domeniul sau sarcina este descrisă ca un set de axiome. În realitate, calculul predicatului de ordinul întâi nu este practic utilizat în sistemele expert industriale. Acest model logic este aplicabil în principal în sistemele de „jucării” de cercetare, deoarece impune cerințe și restricții foarte ridicate în domeniul subiectului. În sistemele expert industriale sunt utilizate diversele sale modificări și extensii, a căror prezentare depășește scopul acestei cărți. Vezi [Adamenko, Kuchukov, 2003].

^ 1.3. Concluzie asupra cunoașterii

După cum sa menționat deja în sec. 1.2 Cel mai utilizat model de producție de reprezentare a cunoștințelor. Atunci când este utilizată, baza de cunoștințe constă dintr-un set de reguli, iar programul care gestionează enumerarea regulilor se numește mașină de ieșire.

Definiția 1.8

mașină de ieșire(interpretul de reguli) este un program care simulează concluzia logică a unui expert folosind această bază de cunoștințe de producție pentru a interpreta datele introduse în sistem.

Îndeplinește de obicei două funcții:

Vizualizarea datelor existente (fapte) din memoria de lucru (baza de date) și regulile din baza de cunoștințe și adăugarea (pe cât posibil) de noi fapte în memoria de lucru;

Determinați ordinea în care regulile sunt vizualizate și aplicate. Acest mecanism controlează procesul de consultare, stochează informații despre concluziile primite pentru utilizator și solicită informații de la acesta atunci când nu există date suficiente în memoria de lucru pentru a declanșa următoarea regulă [Osuga, Saeki, 1990].

În marea majoritate a sistemelor bazate pe cunoștințe, mecanismul de inferență este un program mic și include două componente - una implementează inferența reală, cealaltă controlează acest proces.

Acțiune componenta de iesire pe baza aplicării unei reguli numite modus ponens:„Dacă se știe că afirmația A este adevărată și există o regulă de forma IF A THEN B, atunci afirmația B este și adevărată.”

Astfel, regulile funcționează atunci când există fapte care le satisfac partea stângă: dacă premisa este adevărată, atunci concluzia trebuie să fie și adevărată.

Componenta de ieșire trebuie să funcționeze chiar dacă există o lipsă de informații. Soluția rezultată poate să nu fie exactă, dar sistemul nu ar trebui să se oprească deoarece lipsește orice parte a informațiilor de intrare.

^ componenta de control determină ordinea în care sunt aplicate regulile și îndeplinește patru funcții:


  1. Potrivire- regula eșantionului este comparată cu faptele disponibile.

  2. alegere - dacă într-o anumită situație pot fi aplicate simultan mai multe reguli, atunci se alege una dintre ele cea mai potrivită în funcție de un anumit criteriu (rezolvarea conflictului).

  3. Operațiune - dacă modelul regulii, atunci când se potrivește, se potrivește cu orice fapt din memoria de lucru, atunci regula este declanșată.

  4. Acțiune - memoria de lucru este modificată prin adăugarea la aceasta a încheierii regulii declanșate. Dacă partea dreaptă a regulii conține o indicație a oricărei acțiuni, atunci aceasta este efectuată (ca, de exemplu, în sistemele de securitate a informațiilor).
Interpretul de producție lucrează ciclic. În fiecare ciclu, analizează toate regulile pentru a-i identifica pe cei ale căror premise se potrivesc cu faptele cunoscute în prezent din memoria de lucru. După selecție, regula este declanșată, concluzia acesteia este introdusă în memoria de lucru și apoi ciclul se repetă de la început.

O singură regulă poate declanșa într-o singură buclă. Dacă mai multe reguli sunt comparate cu succes cu fapte, atunci interpretul selectează, după un anumit criteriu, singura regulă care funcționează în acest ciclu. Ciclul interpretului este prezentat schematic în fig. 1.5.

Informațiile din memoria de lucru sunt comparate secvențial cu trimiterile de reguli pentru a determina o potrivire de succes. Setul de reguli selectate este așa-numitul set de conflict. Pentru rezolvarea conflictului, interpretul are un criteriu prin care selectează o singură regulă, după care lucrează. Aceasta se exprimă prin introducerea în lucru a faptelor care formează concluzia regulii