EBL ( Explanation based learning )
EBL ( Explanation-based learning ) è una tecnica di apprendimento automatico ( machine learning ) basato sui domini e sulla generalizzazione di concetti tramite degli esempi pratici.
L'apprendimento basato sulle spiegazioni (EBL) estrae delle regole generali dalle osservazioni.
Come funziona l'EBL
Una tecnica EBL analizza l'ambiente operativo X, elimina le caratteristiche irrilevanti per concentrare l'analisi soltanto su quelle rilevanti.
Infine, generalizza una regola generale di comportamento Y.
Una volta trovata la regola generale Y, il programma salva in un database la coppia (X,Y) per evitare di doverla ricalcolare ogni volta.
Nota. Dove X è l'istanza mentre Y è la soluzione dell'istanza ossia Y=f(X).
In questo modo, quando si verifica nuovamente un'istanza appartenente alla classe X, la macchina si limita a eseguire la funzione Y.
Perché conviene salvare la regola generale?
Se la soluzione già esiste, la risposta della macchina è più rapida.
Si riduce così la complessità computazionale e migliora l'efficienza dell'algoritmo, perché la macchina impegna un minor numero di risorse (spazio di memoria, cicli del processore).
Nota. Nell'informatica questa tecnica è detta memoizzazione. E' usata per evitare la ripetizione di un calcolo complesso in situazioni identiche, simili o analoghe. In un'istanza X, prima di avviare qualsiasi inferenza, la macchina verifica se in archivio esiste la coppia (X,Y). Se esiste, la esegue. In caso contrario, se non esiste, cerca una regola di comportamento tramite il ragionamento inferenziale.
La tecnica è particolarmente convenente se il problema da risolvere è molto complesso.
Quali sono i componenti di un sistema EBL?
I principali componenti di un EBL sono:
- Uno spazio delle ipotesi completo.
- Una teoria dei domini con assiomi sul dominio di interesse. Ad esempio, se si tratta di scacchi gli assiomi sono tutte le regole del gioco.
- Un insieme di training con degli esempi pratici di addestramento
Nota. Una volta appresa la regola generale Y, questa diventa un elemento della base di conoscenza e può essere usata per inferire nuove regole generali. E' una conoscenza pregressa.
Un esempio pratico di utilizzo
Il linguaggio naturale è caratterizzato da regole grammaticali piuttosto rigide.
Tuttavia, l'uomo comunica efficacemente in forma vocale o scritta anche senza rispettarle appieno.
Esempio. Spesso nel sud Italia mi capita di sentire frasi come "esci il cane". Questa comunicazione non rispetta le regole grammaticali ma è comunque comprensibile. La interpreto immediatamente come "fai uscire il cane" o "porta a spasso il cane". Lo stesso si verifica con i modi di dire. Ad esempio, "faccio in un lampo" = "rapidamente". E via dicendo.
Nei software NLP (Natural Language Processing) l'approccio EBL migliora l'interpretazione automatica del linguaggio.
Ne parlo anche negli appunti sulla segmentazione lessicale di una frase.
In questo caso, la locuzione avverbiale "a tutta velocità" è l'istanza X.
L'avverbio "rapidamente" è invece la soluzione Y.
Semplifica( X ) = Y
La coppia (X,Y) è salvata in un database che la macchina consulta per semplificare il lessico della frase durante la lettura.
Semplifica( "a tutta velocità" ) = "rapidamente"
E così via.
Nota. Se impegnassi la macchina a inferire sul legame tra "a tutta velocità" e "rapidamente" ogni volta che si presenta, consumerei molte più risorse computazionali.