Questo sito web utilizza cookie tecnici e, previo Suo consenso, cookie di profilazione, nostri e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsente all'uso dei cookie. Leggi la nostra Cookie Policy per esteso.OK

il quadro

Tutti i paradigmi per capire l’Intelligenza artificiale (non solo deep learning)

Un’analisi delle diverse tecnologie, paradigmi e campi applicativi che costituiscono l’intelligenza artificiale e degli strumenti che vengono usati per realizzare i sistemi intelligenti, con i punti di debolezza e d’eccellenza che caratterizzano ogni area

26 Lug 2018

Piero Poccianti

Presidente dell’Associazione Italiana per L’Intelligenza Artificiale (AI*IA)


L’Intelligenza Artificiale è costituita da diverse tecnologie, paradigmi e campi applicativi diversi. Adesso molto successo riscuote il deep learning, ma sarebbe superficiale limitarsi a questo. In realtà non è facile orientarsi in questa rete di ambiti fra loro variamente intrecciati. Ecco perché è opportuno fare chiarezza.

Classificazione dei metodi di AI

Storicamente distinguiamo fra General e Narrow Artificial Intelligence.

La General Artificial Intelligence è quella che si occupa della realizzazione di un sistema dotato di Intelligenza Artificiale in senso lato, di un essere dotato di coscienza, di emozioni: in pratica dell’Intelligenza Artificiale descritta dai libri e dai film di fantascienza.

La Narrow AI è quella che realizza strumenti in grado di esprimere intelligenza in campi ristretti. Sono sistemi capaci di risolvere singoli problemi, di esporre Intelligenza per giocare a scacchi, a Go, a poker, a ping pong, oppure capace di pianificare un’azione complessa, di diagnosticare una situazione, di “comprendere” il parlato o il testo scritto, di tradurre da una lingua ad un’altra. Questi sistemi però non sono in grado di passare da un contesto ad un altro: sanno fare bene, anche molto bene, solo una cosa alla volta. Io li chiamo idiot savant artificial intelligence.

Un’altra classificazione dell’Intelligenza Artificiale riguarda gli strumenti che vengono usati per realizzare i sistemi intelligenti.

Sistemi simbolici e subsimbolici

La prima classificazione di questi riguarda i così detti sistemi simbolici e subsimbolici.

I sistemi simbolici sono quelli che emulano le funzioni ad alto livello del cervello: la rappresentazione formale della conoscenza, la logica, le regole e l’inferenza, ecc.

I sistemi subsimbolici emulano il funzionamento del cervello a livello elementare: ne sono un esempio le reti neurali artificiali.

Possiamo classificare i sistemi in due categorie:

  • quelli che hanno necessità di essere istruiti in modo formale
  • il machine learning che consente alle macchine di imparare da sole sulla base di esempi o estraendo conoscenza da materiale esistente (scritto parlato, foto, video, ecc.).

Le reti neurali non sono gli unici strumenti per far si che un computer impari da solo. Il campo del machine learning è costituito da moltissime tecniche diverse basate su metodi subsimbolici e simbolici (la statistica, la probabilità, le regole, le reti, ecc.).

Un’altra dimensione con la quale possiamo classificare i sistemi di AI è quella degli ambiti applicativi.

Ne sono un esempio i sistemi di pianificazione, di risoluzione di problemi con vincoli, sistemi di supporto alle decisioni e raccomandation system, sistemi esperti, chatbot, assistenti virtuali, sistemi di classificazione e diagnosi, robotica intelligente, veicoli e veivoli autonomi, il natural language processing il gaming e molto altro ancora.

In un articolo di questo tipo non ho modo di fornire una classificazione esaustiva né da un punto di vista dei metodi né da quello delle applicazioni, quindi mi limeterò ad alcuni esempi.

Metodi di ricerca delle soluzioni

I metodi di base per la risoluzione dei problemi in intelligenza artificiale si basano sulla rappresentazione di un problema in uno spazio degli stati e in tecniche che consentono di navigare fra le soluzioni possibili usando varie strategie per cercare le mosse che possono portare da una configurazione inziale fino alla soluzione finale navigando le mosse prima in profondità, prima in ampiezza o cercando la mossa più promettente secondo una euristica (deep first, breath first, best first).

Vediamo un esempio di problema che può essere trattato in questo modo. Il cubo di Rubik è un cubo composto da tasselli colorati. Il problema è, partendo da una situazione casuale iniziale, muovere i tasselli in modo da formare un cubo con le facce di un distinto colore.

Le mosse possibili consistono nel ruotare le facce in modo consentito. Per questo problema, lo “stato” consiste nella posizione dei tasselli nel cubo: lo stato iniziale è scelto casualmente e il test per stabilire se si è raggiunto uno stato finale verifica semplicemente che lo stato sia identico a quello desiderato.

Si tratta di un problema che sembra richiedere intelligenza: un essere umano lo risolverebbe provando diverse mosse e cercando di prevederne il risultato. Il metodo di soluzione proposto dall’IA consiste nel compiere una ricerca nello spazio dei possibili stati. A tal fine, si può rappresentare lo “spazio” come un albero in cui ogni nodo corrisponde a uno “stato”. La radice dell’albero è lo stato iniziale, i figli di un nodo sono quegli stati che si possono raggiungere dallo stato associato al nodo applicando una sola mossa. Solitamente non basta trovare una soluzione ma si cerca quella che ha costo minimo. Occorre quindi definire un “costo”: di norma si assegna un costo alle varie mosse, e il costo di un cammino si misura come somma dei costi delle mosse che lo compongono. Nel caso del gioco dell’otto, ogni mossa costa 1, e si cerca la soluzione che richiede il numero minimo di mosse.

Purtroppo lo spazio di ricerca dei giochi, esclusi i più semplici, come il gioco del tris, è enorme e non è quindi possibile costruire l’albero fino agli stati finali. Negli scacchi, è stato stimato che il numero di configurazioni possibili sia dell’ordine di 10120. In questi casi si costruisce l’albero fino ad una profondità fissata m: le foglie dell’albero allora non saranno necessariamente configurazioni finali, e quindi, in luogo dell’utilità, si assegna loro una stima dell’utilità, del tutto simile alla funzione euristica vista in precedenza, ottenuta sulla base della configurazione stessa tramite una funzione di valutazione.

Per dare un’idea dell’importanza delle funzioni di valutazione: deep blue era in grado di esplorare circa 200 milioni (2·108) di posizioni al secondo [But2002]. L’esplorazione dell’intero spazio di ricerca avrebbe dunque richiesto a Deep Blue 5·10111 secondi, ovvero 1095 miliardi di anni!

Queste tecniche rappresentano la base per costruire altre tecniche più sofisticate che vengono descritte in seguito.

Sono adatte a realizzare sistemi per ragionamento automatico, trovare soluzioni a problemi complessi, pianificare azioni o strategie per risolvere problemi.

I limiti di queste tecniche riguardano la difficoltà nello strutturare lo spazio di ricerca, la necessità di potenza elaborativa e di quantità di memoria indispensabile per risolvere problemi non banali.

Ragionamento automatico

Per ragionamento automatico si intende la possibilità di rappresentare della conoscenza in modo formale e poi usare metodi di inferenza per derivare altra conoscenza.

Le tecniche di rappresentazione sono varie: fatti e regole espresse in linguaggio pseudo naturale, reti semantiche (reti di fatti correlati da loro da archi che descrivono proprietà ad esempio), logica, ecc.

Molte delle tecniche di ragionamento usano tecniche derivate da quelle usate per la ricerca di soluzioni precedentemente citate.

Il ragionamento può avvenire in modalità forward (derivare altra conoscenza a partire da fatti e regole), backward (partire da quello che si vuole dimostrare e risalire l’albero all’indietro) o in modalità mista.

Sistemi di produzione e shell per sistemi esperti

I sistemi di produzione usano le rappresentazione a regole e le strategie di ricerca sugli spazi degli stati per costruire sistemi di ragionamento automatico, che sono la base per la costruzione dei sistemi esperti. Le regole possono contenere anche fattori di confidenza probabilistica, sia nei fatti che nelle regole, dirigendo il ragionamento in una modalità basata sulla probabilità. Tali sistemi spesso sono in grado di colloquiare con un utente ponendo domande e fornendo evidenze di un risultato intermedio o definitivo del proprio ragionamento. Sono in grado di giustificare e mostrare perché stanno facendo una certa domanda o come sono arrivati a raggiungere un determinato tipo di risultato. A fronte di queste funzionalità presentano però una forte difficoltà a essere implementati perché devono inglobare le regole e i fatti che descrivono un certo dominio di conoscenza. Necessitano pertanto di uno o più esperti della materia in grado di esplicitare tale conoscenza e di persone in grado di formalizzare la stessa all’interno del sistema.

Una classe di sistemi di supporto alle decisioni lavorano in modo simile ai sistemi esperti interagendo con gli umani per aiutarli nell’analisi di un problema sfruttando le capacità di interazione sopra descritte.

Esistono diverse applicazioni funzionanti dei sistemi esperti in ambito medico, informatico, diagnostico per guasti di attrezzature, bancario (per assistenza nella concessione di un fido ad esempio).

I sistemi funzionano, ma sono difficili da implementare e soprattutto da mantenere nel tempo.

Questa è la ragione principale che ha portato ad abbandonare queste tecniche in molti contesti, o almeno a quella disillusione che ha fatto diminuire l’iniziale entusiasmo.

Logic Programming

La logica, ed in particolare il logic programming, sfrutta un particolare sottoinsieme della logica del primo ordine come linguaggio di rappresentazione della conoscenza. Il prolog è un linguaggio particolarmente potente per effettuare questo tipo di compito ed è tutt’ora usato in molte applicazioni d’intelligenza artificiale.

Il prolog è un linguaggio potente ma difficile da usare perché presuppone la capacità di descrivere formalmente un problema, gli strumenti per risolverlo ed in vincoli in modo astratto.

Praticamente con i linguaggi tradizionali siamo abituati a descrivere un algoritmo atto a risolvere un problema; nella programmazione dichiarativa (come quella basata sulla logica) dobbiamo descrivere il problema: sarà la macchina a trovare la soluzione con la sua capacità di ragionamento.

In prolog è possibile esprimere in modo semplice fatti:

padre (andrea, giovanni). È una clausola che esprimere una relazione di paternità. Giovanni è padre di andrea. Le costanti sono espresse in lettere minuscole. Le lettere maiuscole sono variabili.

Il data base è interrogabile in modo semplice.

? padre(andrea,X) è una query che poterà all’unificazione della variabile X con la costante contenuta nel data base. X=giovanni. Soddisfa la query.

È possibile anche esprimere regole:

nonno(X,Y) :- padre(X,Z),padre(Z,Y). che possiamo leggere come Y è padre di X se Z è padre di X e Y è padre di Z.

se il nostro data base fosse composto dai seguenti fatti:

padre (andrea,giovanni).

padre (giovanni,stefano).

La query nonno (X,Y) unificherebbe le due variabili con X=andrea, Y= stefano. Cioè stefano è nonno di andrea.

Il linguaggio, al di là del semplice esempio è estremamente potente ed è possibile esprimere conoscenza, costruire sistemi esperti e sistemi di supporto alle decisioni, modificare il comportamento del linguaggio stesso costruendo metainterpreti. Il tutto con pochissime righe di codice. E’ possibile così modificare il comportamento del linguaggio da backward chaining (nativo) a forward chaining, chiedere spiegazioni sul comportamento, tracciarlo, ecc.

Il problema è che non è semplice formulare la conoscenza in questo modo. Ci vuole una buona capacità di astrazione matematica e, appunto, logica.

Oggi il prolog è ancora utilizzato in moltissime applicazioni di Intelligenza artificiale anche se il pubblico non ne è a conoscenza.

Esistono implementazioni del linguaggio che associano a fatti e regole fattori di probabilità. È un campo in divenire. Interessante, ma anche questo difficile da implementare.

Teniamo conto anche che via via che i problemi si fanno più complessi la capacità elaborativa e la quantità di memoria necessaria crescono esponenzialmente (come già affermato in generale per i metodi di risoluzione dei problemi).

Fuzzy Logic

La logica è uno strumento potente, ma spesso la realtà è complessa da esprimere. In alcune situazioni la logica non è sufficiente a descrivere la realtà. Pensate ai nostri aggettivi: un uomo anziano. Cosa vuol dire? Quando si diventa anziani? Possiamo provare ad esprimere la cosa in termini insiemistici. L’insieme degli uomini anziani è quello degli individui con età maggiore di 65 anni. Vi soddisfa questa definizione? Un uomo di 64 anni e 11 mesi è giovane e uno di 65 anni e un giorno è anziano?

La logica sfumata (o logica fuzzy) usa funzioni continue per esprimere l’appartenenza di un individuo ad un insieme. Usando tale logica riusciamo ad esprimere concetti che nel linguaggio corrente denotiamo con moto giovane, di mezza età, quasi anziano, anziano, molto anziano, ecc.

Tale tipo di logica consente di realizzare sistemi semplici che hanno una forte espressività usando fatti e regole fuzzy. Forse non lo sapete ma molti elettrodomestici usano la logica fuzzy per il loro funzionamento ottimizzando il consumo di acqua, elettricità e tempi di funzionamento in base alle letture di una serie di sensori. Frigoriferi, lavatrici, lavastoviglie, asciugatrici usano programmi fuzzy con efficienza per i loro programmi controllando ad esempio la temperatura dell’acqua che viene utilizzata, quanto è sporco il bucato, ecc.

Metodi evolutivi

Un’altra classe di sistemi interessanti, che attingono alla natura che ci circondano cercando di emularne il comportamento sono i sistemi genetici.

Gli algoritmi genetici consentono di rappresentare una soluzione ad un problema come una stringa di indicatori. Un classico problema affrontabile con queste algoritmi è quello del commesso viaggiatore. Si tratta di individuare il percorso più breve che consente al nostro commesso di visitare n città per visitare i propri clienti.

Esistono molti strumenti per affrontare un problema di questo genere. Usando gli algoritmi genetici si costruiscono stringhe i cui elementi rappresentano le singole città. I percorsi vengono costruiti in modo casuale implementando una popolazione di soluzioni. Ogni soluzione sarà caratterizzata dalla lunghezza del percorso che il commesso deve compiere; minore è il percorso e migliore è la soluzione (la fitness della soluzione). La popolazione viene fatta evolvere introducendo i concetti di sopravvivenza degli individui, mutuazioni casuali, incroci di due soluzioni diversi (emulando in qualche modo il sesso che mescola il DNA di due soggetti). La probabilità di un individuo di sopravvivere, essere scelto per una mutazione o per incrociare la propria soluzione con quella di un altro è proporzionale alla fitness dell’individuo stesso. Ma ragioniamo in termini di probabilità. Anche la soluzione meno promettente può sopravvivere. Ne ha una probabilità inferiore, ma non è impossibile. Spesso le soluzioni che sembrano da scartare nelle prime popolazioni, portano poi inaspettatamente alle soluzioni migliori successivamente.

Gli algoritmi genetici possono essere utilizzati anche per svolgere compiti di apprendimento automatico. In questo caso occorre rappresentare le descrizioni del concetto da imparare come sequenza di simboli: la fitness sarà data dall’accuratezza con la quale una descrizione del concetto classifica gli esempi del training set.

Nella programmazione genetica si usano gli stessi concetti applicati a programmi che devono risolvere un determinato problema.

I metodi evolutivi hanno avuto un discreto successo. In particolare possono esprimere un certo grado di creatività, implementando soluzioni a problemi non banali.

Esistono oggi alcuni brevetti nel campo delle antenne per radioonde o circuiti elettronici in cui l’oggetto del brevetto è stato creato da un algoritmo genetico.

Purtroppo, anche questi strumenti hanno dei limiti: in primo luogo richiedono anch’essi molto tempo, memoria e potenza elaborativa. Il limite principale, anche in questo caso tuttavia è determinato dalla difficoltà di creare una rappresentazione corretta ed esaustiva di un problema.

Intelligenza di sciame

E’ un termine coniato per la prima volta nel 1988 da Gerardo Beni, Susan Hackwood e Jing Wang in seguito a un progetto ispirato ai sistemi robotici. Esso prende in considerazione lo studio dei sistemi auto-organizzati, nei quali un’azione complessa deriva da un’intelligenza collettiva, come accade in natura nel caso di colonie di insetti o stormi di uccelli

Proprietà di un sistema in cui il comportamento collettivo di agenti (non sofisticati) che interagiscono localmente con l’ambiente produce l’emergere di pattern funzionali globali nel sistema”. Beni e Watt 1988.

Caratteristiche:

  • Ogni individuo del sistema dispone di “capacità limitate”;
  • Ogni individuo del sistema non conosce lo stato globale del sistema;
  • Assenza di un ente coordinatore (ad esempio in uno sciame di api, l’ape regina non coordina l’attività delle altre api).

Sono usati in efficacia soprattutto in sistemi robotici e adatti al monitoraggio di un territorio, biomedicina, rilevazione di dati, usando uno sciame di nanorobot capace di esprimere un comportamento collettivo.

La principale limitazione di questi sistemi consiste nel costo di implementazione, la difficoltà di far comunicare un sistema con gli altri, la difficoltà ad avere comportamenti predicibili.

Semantica

I metodi semantici e le reti semantiche sono sistemi di rappresentazione della conoscenza basati su una particolare forma di logica (le description logic) che hanno avuto un certo successo a partire dagli anni 2000.

In particolare alcune realizzazioni basate sulle description logic e su linguaggio di tipo xml (come l’OWL: Ontology Web Language) hanno reso possibile la descrizione di domini di conoscenza in internet con la possibilità di formalizzare alcuni contesti e rendere possibile l’annotazione di documenti, la loro ricerca su basa semantica, la descrizione di fatti e regole e il ragionamento in tali contesti in una modalità multilingua aperta.

Esistono diversi sistemi di ragionamento basati su questi contesti capaci di esprimere funzionalità su domini di conoscenza limitati, ma interessanti. Si affrontano temi legati alla finanza (con ontologie specifiche, biomedicina, oncologia, ecc.).

La difficoltà, anche in questo caso, è rappresentata dal problema di costruire formalizzazioni della conoscenza significative che, in ogni caso, difficilmente possono essere esaustive se non per domini di limitata estensione.

Il fatto di avere uno standard (l’OWL ad esempio) porta comunque a notevoli vantaggi in termini di portabilità fra contesti diversi, così come è avvenuto per molti altri standard creati su internet.

Il potere espressivo delle description logic è minore di quello possibile in prolog e, in generale nella programmazione logica, ma per alcune applicazioni sufficiente.

Connessionismo

Le reti neurali simulano il comportamento del cervello a livello subsimbolico modellando il singolo neurone (in modo semplificato) e una rete di neuroni interconnessi.

Il modello del neurone attualmente più diffuso è chiamato neurone sigmoidale ed è costituito da una unità con n ingressi numerici e una uscita numerica. L’uscita è calcolata in funzione degli ingressi nel seguente modo: ciascun ingresso xi viene moltiplicato per un peso Wi, i prodotti di queste moltiplicazioni sono sommati e il risultato viene fornito in ingresso ad una funzione sigmoidale.

Questo modello si comporta in maniera simile a un neurone naturale: ovvero si “attiva” quando riceve gli ingressi “giusti” e si “disattiva” in corrispondenza di ingressi “sbagliati”. Un neurone è attivo quando la sua uscita è vicina a +1 ed è disattivo quando la sua uscita è vicina a -1. Quali siano gli ingressi giusti o sbagliati è determinato dai valori dei pesi degli ingressi: valori positivi dei pesi fanno sì che i relativi ingressi tendano a portare il neurone verso l’attivazione e valori negativi verso la disattivazione e viceversa nel caso di pesi negativi. I neuroni sono poi collegati tra di loro da reti, quindi l’uscita di un neurone può essere l’ingresso di altri neuroni e la sua attivazione condiziona l’attivazione dei neuroni a valle.

Abbiamo algoritmi in grado di far sì che i pesi vengano aggiustati fornendo alla rete esempi. Le reti pertanto apprendono in modo simile a quanto fa il cervello.

Le deep neural network sono costituite da decine di strati di neuroni interconnessi. Oggi abbiamo la potenza elaborativa per simularle e per far funzionare gli algoritmi di apprendimento che rendono possibile la loro configurazione a partire da esempi che vengono forniti.

Esistono molti tipi di reti diverse, ognuno dei quali risulta adatto a risolvere una determinata classe di problemi.

Con le reti neurali il computer impara da solo dagli esempi. Però abbiamo bisogno di molti esempi e di tanta potenza elaborativa. Oggi le abbiamo entrambe e le reti sono al centro di una nuova primavera con risultati impressionanti.

L’Electronic Frontier Foundation ha messo a punto una metodologia per misurare i progressi dell’intelligenza artificiale confrontandone i risultati con le prestazioni umane in determinati campi ([1])

Le macchine superano l’uomo nella capacità di identificare oggetti in una fotografia, nel riconoscere i caratteri scritti a mano (in particolare i numeri), nel giocare a scacchi, a go e a poker e in molti videogiochi (creandosi in modo autonomo la propria strategia), nel riconoscere le parole durante un dialogo parlato. Sappiamo che ci sono risultati impressionanti sulla guida di veicoli autonomi, nella diagnosi di malattie di vario genere, nell’analisi di radiografie ed ecografie e molto altro ancora. McKinsey ha redatto uno studio ([2]) per definire quali compiti specifici nelle diverse tipologie di lavoro sarebbero già oggi sostituibili da una macchina (pochi lavori sono sostituibili al 100%, ma per molti ci sono percentuali significative). Le macchine hanno buone performance nel rispondere a domande anche complesse (come ha dimostrato IBM Watson con la sfida a Jeopardy).

Le macchine se la cavano peggio degli uomini, ma stanno migliorando, nel tradurre da una lingua ad un’altra, in alcuni giochi di ruolo, nel comprendere cosa è rappresentato in una fotografia, nel sostenere un colloquio tenendo conto del contesto e molto altro ancora.

In pratica stiamo avendo successo nel realizzare macchine che se la cavano bene in contesti determinati: la narrow artificial intelligence.

Siamo ancora molto lontani da realizzare una general artificial intelligence (quella della fantascienza per intendersi) dotata di autocoscienza, di una intelligenza generalista capace di passare da un contesto ad un altro, ecc.

Le deep neural network – deep learning

Esaminiamo le deep neural network (deep learning). Il paradigma che oggi sta producendo i risultati più eclatanti.

Le reti esprimono le loro possibilità migliori nei compiti di classificazione, in quelli percettivi (visione, riconoscimento suoni e fonemi, predizione di serie storiche in mancanza di un modello formale, ecc.). Presentano però alcuni limiti significativi ([3]):

  • hanno bisogno di un numero enorme di esempi. Agli umani ne bastano pochi. Un bambino è capace di generalizzare avendo visto pochi esempi di un animale, ad esempio. La rete oggi è in grado di classificare in modo autonomo un oggetto (ad esempio un gatto) senza che nessuno glielo spieghi. Però ha bisogno di un numero enorme di esempi (e di conseguenza di tempo e potenza elaborativa con conseguente uso di enormi quantità di energia). A noi basta un panino;
  • hanno difficoltà a generalizzare. Sono capaci di generalizzare all’interno di un contesto specifico, ma non sanno, ad oggi, trasferire questa abilità ad un contesto diverso (anche se questo presenta analogie con il precedente);
  • hanno scarse capacità a gestire l’inferenza e il ragionamento logico;
  • hanno difficoltà a spiegare il proprio comportamento. Sono spesso delle scatole nere. Questo è un serio problema per macchine che prendono decisioni in modo autonomo evidentemente;
  • hanno difficoltà a distinguere fra correlazioni e causa-effetto. Devo dire che anche per noi non è semplice. Pensate al filosofo Hume e alla sua critica del concetto di causa – effetto.

E non è una lista esaustiva.

Una visione integrata

Se guardiamo alle varie tecniche e paradigmi che compongono l’universo dell’Intelligenza Artificiale scopriamo che tutte le aree presentano punti di debolezza e d’eccellenza.

Questo è vero anche per noi. Oggi sappiamo che è difficile e forse sbagliato definire l’intelligenza come un’unica capacità. Esistono diverse forme di intelligenza: relazionale, creativa, logico-matematica, linguistica, percettiva, ecc.

Perché per l’Intelligenza Artificiale dovrebbe essere diverso?

Molti ricercatori stanno mettendo in luce la necessità di superare l’entusiasmo per un singolo paradigma e cercare di integrare fra loro i diversi metodi per enfatizzare i punti di forza di ognuno e superare le relative criticità.

La logica, i motori di inferenza, la semantica ed in generale i metodi simbolici sono difficili da implementare, richiedono un notevole sforzo di astrazione e concettualizzazione, però sanno spiegare il proprio comportamento, permettono di seguire un filo logico e di costruire sistemi di supporto alle decisioni in grado di interagire con utenti umani fornendo conoscenza, suggerimenti, imparando dai casi, ma anche da spiegazioni suggerite dall’utente, trovate su articoli e libri, ecc.

Molte tecniche di machine learning simboliche possono aiutarci a formalizzare tale conoscenza attingendo a fonti esistenti, anche in rete.

Il deep learning sta mostrando le sue capacità e, a mio avviso, continuerà a mostrarne in futuro. Ma sta anche evidenziando i suoi limiti.

Dobbiamo, di volta in volta usare lo strumento adatto per il compito adatto. Altrimenti cercheremo di dimostrare un teorema matematico con l’intuizione, invece del ragionamento, o giocare a ping pong con la logica.

Si può fare, ma è probabile che il risultato non sia fra i migliori. Forse possiamo usare entrambe. Per giocare a ping pong serve la capacità di percezione, di individuare la traiettoria, ma serve anche una strategia logica.

In pratica dobbiamo attingere all’universo dei paradigmi d’intelligenza artificiale di cui io ho solo fatto qualche esempio, cercando di superare le divisioni.

È un problema analogo a quello che incontriamo quando cerchiamo di separare la cultura umanistica da quella scientifica o artistica.

È l’integrazione dei diversi aspetti culturali che esalta la creatività.

__________________________________________________

  1. https://www.eff.org/it/ai/metrics
  2. https://public.tableau.com/profile/mckinsey.analytics#!/vizhome/AutomationBySector/WhereMachinesCanReplaceHumans
  3. https://arxiv.org/abs/1801.00631

Articolo 1 di 4