sabato 27 maggio 2017

Intelligenza Artificiale: come funziona?



L’intelligenza artificiale è già intorno a noi in molti settori: dall’aeronautica al gaming, dal customer service ai mercati finanziari e ovviamente nelle linee produttive di alcune aziende. Lo sviluppo dell’intelligenza artificiale ha avuto una brusca accelerazione negli ultimi anni ed avrà conseguenze importanti in molti settori di business.

All’inizio l’intelligenza artificiale era innanzitutto una speculazione teorica e ruotava intorno alla domanda: “Le macchine possono pensare?”. Nel 1950 Alan Turing nel suo articolo "Computing Machinery and Intelligence" riformulò la domanda modificandola in modo significativo: "Le macchine sono in grado di imitare il comportamento intelligente di un essere umano?" (da qui il cosiddetto test di Turing ed il titolo del film "The imitation Game” del 2014).
Una definizione pragmatica di Intelligenza Artificiale prevede dunque la capacità di un computer di esibire comportamenti tipici della mente umana. In particolare un sistema intelligente deve essere in grado di elaborare conoscenze precedenti estrapolando le linee guida da utilizzare per risolvere con successo problemi che non ha mai affrontato.

Nel libro Artificial Intelligence: a modern approach di S.J. Russell (prima edizione con P. Norvig  del 1995, una vera bibbia dell'intelligenza artificiale) viene riportata una schematizzazione delle diverse aree applicative che costituiscono l’intelligenza artificiale.
Il tema è quanto mai ampio e complesso. Riporto di seguito una semplificazione di queste aree per fornire una prima base  per comprendere come funziona l’intelligenza artificiale.



Comunicare con linguaggio naturale
Un sistema intelligente è in grado di comunicare utilizzando un linguaggio naturale, cioè un linguaggio caratterizzato da una certa ambiguità intrinseca. Questo significa che il significato di ogni parola e frase può essere attribuito soltanto se il sistema è in grado di conoscere ed interpretare il contesto. Ad esempio la parola “dado” può significare dado da brodo, dado da gioco o dado per serrare le viti. Il corretto significato può dunque essere attribuito soltanto conoscendo il contesto del discorso.
Un agente intelligente in grado di utilizzare un linguaggio naturale può comunicare con le persone, con altri agenti intelligenti e può effettuare ricerche su internet.

Percepire
Un agente intelligente è in grado di rilevare informazioni dall’ambiente circostante tramite sensori di diverso tipo e di utilizzare i nuovi dati per migliorare la propria conoscenza dell'ambiente.

Rappresentare la conoscenza
Un agente intelligente è in grado di rappresentare oggetti, azioni, concetti e le rispettive relazioni. Conosce inoltre le regole per manipolarli, per inferire ragionamenti e per ampliare la propria conoscenza.
Un esempio ci viene dalle reti semantiche nelle quali i vertici rappresentano oggetti o concetti e sono collegati tra loro da legami semantici. Si possono allora costruire sillogismi ed altri ragionamenti logici semplicemente navigando la rete.



Pianificare i risultati delle azioni
I sistemi intelligenti sono in grado di comprendere i propri obiettivi, di prevedere gli stati futuri del loro universo conosciuto e di prendere decisioni al fine di raggiungere gli stati futuri maggiormente desiderabili, pianificando dunque le proprie azioni in modo da massimizzarne il “valore”.

Gestire l’incertezza
Gli ambienti dove gli agenti intelligenti operano, sono spesso estremamente complessi e prevedono la presenza contemporanea di più attori che agiscono in modo indipendente ed imprevedibile. In queste condizioni i sistemi intelligenti devono essere in grado di rappresentare l’incertezza, di prendere decisioni che ne tengano conto e che massimizzino la probabilità di raggiungere l’obiettivo desiderato, evitando allo stesso tempo i comportamenti con rischi troppo elevati.

Imparare (machine learning)
La definizione più pragmatica di machine learning è stata data da Tom M. Mitchell nel libro "Machine Learning" (1997). Semplificando la sua definizione formale si può dire che "un programma apprende se le sue performance migliorano con l'esperienza".
L'apprendimento automatico si basa sulla costruzione di algoritmi che possano riconoscere degli schemi in un insieme di dati e di comportamenti e sappiano quindi costruire in modo induttivo un modello in grado di "riconoscere" nuovi dati, adeguando in modo coerente il proprio comportamento.

Esistono due metodi fondamentali con i quali le macchine possono imparare:
  • Supervised learning: al sistema intelligente vengono forniti ingressi e corrispondenti uscite in modo che l’agente possa costruire euristicamente la funzione che trasforma gli ingressi in uscite. In questo modo al ricevimento di un ingresso mai ricevuto in precedenza, il sistema sarà in grado di determinarne l’uscita (un esempio è la classificazione di diversi input in classi predefinite dall'utilizzatore),
  • Unsupervised learning: al sistema intelligente vengono forniti soltanto dati di input tra i quali l'agente individua pattern e correlazioni (un esempio è il raggruppamento di diversi input in "gruppi" non definiti a priori dall'utilizzatore).

Per il continuo miglioramento del processo di apprendimento si possono utilizzare tecniche di:
  • Apprendimento per rinforzo: il sistema intelligente produce un output sulla base dell'input ricevuto, vi è poi un algoritmo in grado di misurare la bontà del risultato ottenuto assegnando una ricompensa o una punizione. Il sistema intelligente adatta quindi il proprio comportamento con l'obiettivo di massimizzare le proprie ricompense.
  • Deep learning: diversi meccanismi di apprendimento sono posti uno “sopra” l’altro, in modo che ognuno possa apprendere dai risultati del precedente. In questo modo si possono ottenere livelli di astrazione crescenti e conoscenze sempre più complesse.
Agire
La conoscenza permette di prendere decisioni, che nel caso dei robot diventano azioni. I robot devono dunque sapersi muovere in ambienti complessi ed interagire con oggetti diversi (e nuovi) ed in continuo movimento.

Questa schematizzazione è parziale, sintetica e semplificata, ma vuole essere un primo passo verso la comprensione del funzionamento dell'intelligenza artificiale, allo scopo di individuarne le possibili applicazioni nel mondo del business.

Nessun commento: