Lucrarea nr. 3
Inducerea reprezentarilor logice generale









O buna parte a algoritmilor de invatare a unor reprezentari logice sunt bazate pe notiunile de specializare si generalizare. Generalizarea este un raspuns la un exemplu fals negativ -- un exemplu prezis negativ, dar care este de fapt pozitiv. Operatia inversa, specializarea, este raspunsul la un exemplu fals pozitiv.

Generalizarea se realizeaza prin urmatoarele operatii:
 
Inlocuirea constantelor cu variabile varsta(ion,18)-->varsta(Student, 18)
Eliminarea intersectiilor varsta(Student,18)&statura(Student,inalt)&casatorit(Student,da)-->varsta(Student,18)&statura(Student,inalt).
Reuniunea multimilor varsta(Student,18)-->varsta(Student,18) U statura(Student, inalt).
Utilizarea unor termeni generalizatori varsta(Student,18)-->varsta(Student,major)

Specializarea, fiind inversa generalizarii, se realizeaza prin operatiile duale celor descrise mai sus.

 Algoritmul "current-best-hypothesis"

Acest algoritm porneste de la o ipoteza extrasa din primul exemplu (obligatoriu pozitiv) si in continuare o generalizeaza sau specializeaza corespuzator exemplelor de invatare. Algoritmul poate fi descris schematic prin urmatorul pseudocod:

  1. H <- orice ipoteza consistenta cu primul exemplu
  2. pentru fiecare exemplu e ramas:
Alegerile facute pe parcurs nu conduc in mod necesar la cea mai simpla ipoteza posibila, putind duce chiar in situatii in care nu exista nici o modificare simpla a ipotezei ca aceasta sa ramana consistenta cu toate exemplele intilnite. In astfel de situatii este necesara revenirea la puncte de decizie anterioare si schimbarea acestora.
Daca numarul de exemple este mare apar doua probleme: Un exemplu de algoritm CBH este algoritmul de invatare a notiunii de arcada.

 Algoritmul "least-commitment"

Algoritmul CBH este adesea ineficient pentru ca uneori trebuie sa ia decizii in momente cind nu exista informatie suficienta. Algoritmul de tip "least-commitment" incearca sa mentina reprezentarea tuturor ipotezelor consistente cu exemplele vazute. Aceasta multime de ipoteze se numeste spatiul de versiuni. Cand se intalneste un nou exemplu, se elimina din spatiul de versiuni toate ipotezele inconsistente cu exemplul curent.

O reprezentare compacta a spatiului de versiuni poate fi construita plecand de la ordonarea partiala generata de specializare/generalizare. Astfel un set de ipoteze poate fi reprezentat prin multimile de ipoteze cele mai generale (G) si cele mai specializate (S). Fiecare element din G este consistent cu toate observatiile facute, si nu exista astfel de ipoteze mai generale. Fiecare element din S este consistent cu toate observatiile facute, si nu exista astfel de ipoteze mai specializate.

Descrierea algoritmului in pseudocod:

  1. G <- ipoteza cea mai generala din spatiul de ipoteze; S <- ipoteza cea mai specifica din spatiul de ipoteze
  2. Pentru fiecare exemplu de antrenare d:
Algoritmul descris mai sus are si denumirea de Candidate Elimination Algorithm.
 

Exemplu:
 
Sky Temp Humid Wind Water Forecast EnjoySport
Sunny Warm Normal Strong Warm Same Yes
Sunny Warm High Strong Warm Same Yes
Rainy Cold High Strong Warm Change No
Sunny Warm High Strong Cool Change Yes

Se poate urmari pas cu pas evolutia spatiului de versiuni in urma aplicarii a doua reguli simple si intuitive:

Initial:

 S = {(0,0,0,0,0,0)}                     ; 0 este 'prohibited'
 G = {(?,?,?,?,?,?)}                     ; ? este 'any'
1: (+)
 S = {(Sunny,Warm,Normal,Strong,Warm,Same)}
 G = {(?,?,?,?,?,?)}
2: (+)
 S = {(Sunny,Warm,?,Strong,Warm,Same)}
 G = {(?,?,?,?,?,?)}
3: (-)
 S = {(Sunny,Warm,?,Strong,Warm,Same)}
 G = {(Sunny,?,?,?,?,?), (?,Warm,?,?,?,?), (?,?,?,?,?,Same)}
4: (+)
 S = {(Sunny,Warm,?,Strong,?,?)}
 G = {(Sunny,?,?,?,?,?), (?,Warm,?,?,?,?)}

Se observa ca la ultimul pas, dupa generalizarea multimii S a fost modificata si multimea G deoarece contine un element care nu este consistent cu exemplele intalnite. Cele doua multimi obtinute in final, impreuna cu tot spatiul pe care il acopera intre ele, descriu toate
ipotezele consistente cu exemplele parcurse.

Dezavantaje:

  1. Spatiul de versiuni va deveni vid daca domeniul contine zgomot sau daca nu sunt suficiente atribute pentru o clasificare exacta
  2. Daca admitem disjunctie nelimitata in spatiul ipotezelor atunci multimea S va contine intotdeauna o singura ipoteza (disjunctia intre toate exemplele pozitive vazute)
Tema lucrarii:
Construiti un program care implementeaza algoritmul "least-commitment" descris mai sus. Limbajul sugerat este SWI-Prolog.

Termen de predare: 20 Decembrie 1999
Pentru intarziere: -2 puncte/saptamana (vacanta nu se considera)