1 - Introduzione all' ingegneria della conoscenza

Questa serie di articoli riprende i miei appunti relativi al corso di ingegneria della conoscenza, della facoltà di informatica presso l'università Aldo Moro di Bari. Racchiudo in questi articoli non solo gli appunti derivanti dalle slide del corso condivise dal professore Fanizzi, ma anche gli appunti relativi al libro "Artificial Intelligence, founbdations of computational agents", scritto da Poole e Mackworth. Entrerei subito nel merito della materia dando una prima definizione di intelligenza artificiale, ovvero il campo che studia la sintesi e l'analisi di agenti computazionali che agiscono in modo intelligente. Ma co'è un agente? Esso può essere definito come qualsiasi oggetto presente in un ambiente e che interagisce con esso. Spesso ci si chiede come esso agisce, giudicandolo quindi per le sue azioni. Definiamo un agente intelligente quando:

  • ciò che fa è appropriato alle circostanze e ai suoi obiettivi, tenendo in considerazione le conseguenze a breve e a lungo termine delle sue azioni
  • è flessibile agli ambienti mutevoli e agli obiettivi mutevoli
  • impara dall'esperienza
  • fa scelte appropriate date le sue limitazioni computazionali

Mentre si definisce agente computazionale, quell'agente le cui decisioni possono essere spiegate in termini di calcolo, attraverso anche operazioni che possono essere implementate in un dispositivo fisico. Vi sono degli aspetti comuni tra le varie tipologie di agenti, ovvero che nessuno è onnisciente o onnipotente, tutti gli agenti sono limitati, hanno una memoria finita, non hanno un tempo illimitato per agire, e possono osservare tutto ciò che riguarda il mondo solo in domini molto specializzati.

L'obiettivo scientifico dell'AI è la comprensione dei principi che rendono intelligenti i sistemi artificiali e naturali, attraverso:

  • l'analisi degli agenti naturali e artificiali
  • formulando e testando ipotesi utili alla realizzazione di agenti intelligenti
  • progettando, costruendo e sperimentando i sistemi computazionali che svolgono azioni o che comunemente richiedono un certo livello di intelligenza

In questo ambito i ricercatori sviluppano sistemi empirici per testare le ipotesi o esplorare lo spazio dei possibili progetti, da non confondere con le diverse applicazioni che sono costruite per uno specifico dominio applicativo. L'obiettivo dell'AI è la progettazione e la sintesi di artefatti utili e intelligenti, in modo da produrre agenti che agiscano in modo intelligente da poter utilizzare in diverse applicazioni. Come detto in precedenza, l'AI lavora nel ragionamento pratico, infatti un agente è costituito da tre fattori principali: la percezione, il ragionamento e l'azione. Inoltre un agente deve muoversi all'interno di un ambiente, che può includere anche altri agenti. Gli agenti insieme all'ambiente circostante in cui operano costituiscono il mondo

Interazione di un agente con l'ambiente esterno

Figura 1: interazione agente-ambiente

Un agente può essere visto come una scatola nera che riceve degli inputs e restituisce degli output. Le azioni di un agente sono influenzate da:

  • conoscenza preliminare posseduta dall'agente e dall'ambiente
  • cronologia delle interazioni con l'ambiente, composte da stimoli e osservazioni ottenute dall'ambiente, e le esperienze passate dettate da stimoli e azioni precedenti
  • obiettivi che l'agente deve cercare di raggiungere e preferenze connesse agli stati del mondo
  • abilità, costituite dalle operazioni che l'agente è in grado di fare

All'interno di ogni agente possiamo trovare uno stato interno delle credenze, definito come belief state, composto dalla rappresentazione delle cose che si ritengono vere riferite all'ambiente e da ciò che si è appreso durante l'esecuzione dei vari compiti. Questo aiuta l'agente a raggiungere gli obiettivi e viene costantemente aggiornato in base agli stimoli. Una particolare tipologia di agenti è costituita dagli agenti intenzionali, purposive agents, i quali hanno delle preferenze sugli obiettivi, preferendo alcuni stati del mondo rispetto ad altri e agiscono di conseguenza. Mentre gli agenti non intenzionali prendono il nome di natura. Questa distinzione è molto importante in fase di progettazione. Inoltre se un agente non ha preferenze, non ha importanza in quale stato del mondo finisce.

Gli agenti artificiali sono progettati per compiti particolari, seguendo tre aspetti della computazione distinti: la computazione che entra nella progettazione dell'agente, la computazione che l'agente può fare prima che osservi il mondo e abbia bisogno di agire e il calcolo eseguito dall'agente mentre agisce. Inoltre è fondamentale considerare il calcolo del tempo di progettazione dell'agente, il calcolo offline ovvero il calcolo che l'agente deve fare in prima che esso agisce e il calcolo on line ovvero il calco eseguito dall'agente tra l'osservazione dell'agente e l'azione dell'ambiente. Un agente in genere deve utilizzare la sua base di conoscenza, le sue convinzioni e le sue osservazioni per determinare cosa fare dopo.

E' importante distinguere tra la conoscenza nella mente del progettista e la conoscenza all'interno dell'agente. L'agente è altamente specializzato che funziona bene nell'ambiente per il quale è stato progettato, ma non funziona al di fuori di esso. Potrebbe essere stato progettato in maniera eccezionale, ma l'agente potrebbe non fare molto per funzionare bene. Potrebbe anche esistere un agente molto flessibile che può sopravvivere in ambienti arbitrari e accettare nuove attività in fase di esecuzione, la cui implementazione però rappresenta una vera e propria sfida. Per sviluppare un agente possono essere seguite due strategie: la prima consiste nel semplificare gli ambienti e costruire sistemi di ragionamento complessi per questi ambienti semplici, la seconda consiste nel costruire agenti semplici in ambienti naturali. Uno dei vantaggi della semplificazione degli ambienti consente di ottimizzare agenti per situazione particolari. Un agente può ragionare poco o molto, ma il suo progettista può ragionare sia sull'ambiente sia sull'agente.

Le rappresentazioni AI differiscono dai programmi per computer nei linguaggi tradizionali è che la rappresentazione AI tipicamente specifica cosa deve essere calcolato e non come. Gran parte del ragionamento basato sull'intelligenza artificiale implica la ricerca nello spazio delle possibilità per determinare come completare un'attività.

Il ruolo delle rappresentazioni nella risoluzione dei compiti

Figura 2: rappresentazione risoluzione compiti

Per risolvere un compito, il progettista deve in primo luogo determinare cosa costituisce una soluzione, per poi rappresentare l'attività in un modo su cui un computer può ragionare, eseguire le azioni su un elaboratore per calcolare l'output e infine interpretare l'output. Definiamo il concetto di conoscenza come l'informazione su un dominio che può essere utilizzata per risolvere compiti in quel dominio. Questa conoscenza è rappresentata attraverso un linguaggio di rappresentazione all'interno dell'agente. In generale vengono utilizzate delle strutture dati per codificare la conoscenza in modo da poter eseguire delle operazioni su di essa. Con il termine knowledge base si indica la rappresentazione di tutta la conoscenza memorizzata da un agente. Un linguaggi di rappresentazione per poter rappresentare correttamente una base di conoscenza deve possedere determinate caratteristiche:

  • abbastanza ricco da esprimere le conoscenze necessarie per risolvere il compito
  • il più vicino possibile a una specificazione naturale del compito
  • trattabile, ovvero l'agente può agire abbastanza rapidamente
  • in grado di essere acquisiti da persone, dati ed esperienze passate

Data una descrizione informale di un'attività, il progettista dovrebbe determinare cosa costituirebbe una soluzione. Esistono quattro classi comuni di soluzioni. Si definisce soluzione ottimale se per un'attività, la soluzione è quella migliore in base a una determinata misura riferita alla qualità della soluzione (generalmente la misura utilizzata è l'utilità). Alcune volte un agente non ha bisogno della soluzione migliore per un'attività, si parla quindi di soluzione soddisfacente, ovvero quella soluzione che è abbastanza buona secondo una descrizione di quali soluzioni sono adeguate. Si parla di soluzione approssimativamente ottimale quando si cerca una soluzione la cui misura di qualità è vicina alla soluzione ottimale. Infine abbiamo la soluzione probabile, ovvero quella che potrebbe esser una soluzione probabile, come anche non potrebbe esserlo.

Una volta ottenuta la soluzione si pensa a come rappresentarla. Per poterlo fare si definisce un sistema di simboli fisici, costituito da simboli ovvero un modello singolo che può essere manipolato. Un sistema di simboli crea, copia, modifica e distrugge simboli. Essenzialmente un simbolo è uno dei modelli manipolati come unità da un sistema di simboli. Questo sistema è alla base dell'intelligenza artificiale in quanto rappresenta tutto ciò che è necessario per un'azione intelligente. Un agente quindi manipola il sistema di simboli per produrre azioni, tramite il quale si riferisce a cose esistenti nel mondo. In questo modo l'agente crea un modello del mondo, costituito da una rappresentazione delle convinzioni che l'agente ha sul mondo. Il mondo non deve essere modellato al livello più dettagliato per essere utile. Tutti i modelli sono astrazioni, in quanto rappresentano una parte del mondo e tralasciano molti dettagli. Il livello di astrazione fornisce un ordinamento parziale dell'astrazione. Scegliere un determinato livello rispetto ad un altro è molto difficile e dipende da diversi fattori:

  • Una descrizione di alto livello è più facile da specificare e comprendere per un essere umano;
  • Una descrizione di basso livello può essere più accurata e predittiva;
  • Più basso è il livello, più difficile è ragionare;
  • Un agente potrebbe non conoscere le informazioni necessarie per una descrizione di basso livello

Concludo il post descrivendo due tipi di livelli: il livello di conoscenza, costituito dal livello di astrazione che considera ciò che un agente sa e crede e quali sono i suoi obiettivi, e il livello del simbolo, costituito dalla descrizione di un agente in termini di ragionamento che fa.

Nel prossimo articolo continueremo con lo spazio di progettazione di un'agente.

Post successivo →