Sistemi a classificatori
La rappresentazione della conoscenza è composta da regole “se [condizione] allora [azione]“. La conoscenza è quindi composta da regole e fatti specifici relativi al caso in questione.
Mycin fu il primo sistema ad intelligenza artificiale per riconoscere le malattie infettive. Ipotizzava una diagnosi, e tramite backward chaining in profondità andava a cercare le informazioni a supporto dell’ipotesi.
Prospector fu un sistema basato su AI per la ricerca di giacimenti minerari.
Dendral du un progetto basato su AI per l’analisi di composti mediante spettrometria.
I software odierni sono pesanti e difficili da mantenere, mentre AI sono più efficienti e naturali. I primi successi crearono grandi attese, con la convizione sbagliata che creare sistemi esperti fosse facile e veloce. Per la creazione di sistemi esperti ci furono diversi problemi:
- acquisizione e rappresentazione delle conoscenze
- tempo per lo sviluppo
- dinamicità delle conoscenze
- assenza di prestazioni sovrumane
Le reti neurali sono un approccio alternativo a quello simbolico. I sistemi a classificatori, infatti, apprendono lo svolgimento di un compito interagendo con un ambiente parzialmente ignoto, tramite l’uso di meccanismi di feedback per guidare la propria evoluzione interna che modifica le regole del mondo. Il sistema si basa su regole inziali, e ne vengono generatedi nuove man mano che si va avanti nel tempo, e si interagisce con il mondo. Sono ad esempio usati per permettere ai robot di muoversi in un ambiente.
Il sistema a classificatori scambia messaggi (stringhe binarie di lunghezza L) con l’ambiente tramite effettori, e ne riceve dall’esterno tramite detettori. Se un messaggio è conosciuto, cerca di impostare l’azione da eseguire relativamente a quel messaggio.
Esistono due tipi di sistemi:
- a dinamica rapida: assegnano un valore diverso per ogni regola sulla base del loro contributo al buon funzionamento
- a dinamica lenta: basate su algoritmi genetici, valutano le regole vecchie e nuove ed eliminano quelle meno utili per sotituirle con combinazioni più utili
Il ciclo di un sistema a classificatori è:
- aggiungo alla lista nuovi messaggi dai detettori
- confronto i messaggi con le condizioni (stringhe di lunghezza L di simboli {0, 1, #})
- classificatori che soddisfano le condizioni competono per impostare i loro messaggi
- classificatori vittoriosi (la scelta viene effettuata in maniera probabilistica) eseguono le azioni (stringhe di lunghezza L di simboli {0, 1, *}).
La specificità di un classificatore è la frazione di elementi diversi del carattere # nella condizione (specialità = (L- num#)/L).
La competizione è la funzione della specificità e della forza del classificatore.
La forza di un classificatore è la misura della sua utilità dimostrata per il funzionamento.