Sei sulla pagina 1di 86

Dipartimento di Impresa e Management

Cattedra di Informatica

INTELLIGENZA ARTIFICIALE:
il futuro è già presente

RELATORE: CANDIDATO:
Prof. Laura Luigi Pompili Alessio
Matr. 233271

Anno Accademico
2020-2021
Indice
INTRODUZIONE .................................................................................................................................................................. 3
1. INTELLIGENZA ARTIFICIALE ........................................................................................................................................ 4
1.1 Storia, Turing e i primi sviluppi: ......................................................................................................................... 4
1.2 Intelligenza: cos’è, è possibile definirla? ........................................................................................................... 7
1.3 Le basi dell’Intelligenza Artificiale: .................................................................................................................... 9
1.4 Paradigmi dell’Intelligenza Artificiale: ............................................................................................................. 13
2. MACHINE LEARNING E DEEP LEARNING .................................................................................................................. 18
2.1 Machine Learning: ........................................................................................................................................... 18
2.2 Funzionamento: ............................................................................................................................................... 19
2.3 Capire il problema e lavorare con i dati: ......................................................................................................... 19
2.4 Tipi di apprendimento: .................................................................................................................................... 24
2.5 Training, validazione e ottimizzazione:............................................................................................................ 27
2.6 Categorie di soluzioni: ..................................................................................................................................... 31
2.7 Deep Learning: ................................................................................................................................................. 33
2.8 Cervello umano:............................................................................................................................................... 37
3. DOVE SIAMO E DOVE VOGLIAMO ARRIVARE .......................................................................................................... 41
3.1 Applicazioni, dove siamo oggi: ........................................................................................................................ 41
3.2 Big Data:........................................................................................................................................................... 53
3.3 Privacy:............................................................................................................................................................. 58
3.4 Etica, fino a dove si vuole arrivare:.................................................................................................................. 62
3.5 Lavoro: ............................................................................................................................................................. 68
3.6 Uno sguardo al futuro:..................................................................................................................................... 71
4. ADDESTRAMENTO DI UNA RETE NEURALE.............................................................................................................. 77
4.1 Introduzione: ................................................................................................................................................... 77
4.2 Codice: ............................................................................................................................................................. 77
4.3 Risultati: ........................................................................................................................................................... 80
CONCLUSIONI .................................................................................................................................................................. 85
BIBLIOGRAFIA .................................................................................................................................................................. 86

2
INTRODUZIONE
Il tema dell’Intelligenza Artificiale è stato molto dibattuto, e continua ad esserlo sempre più. Da un lato c’è
chi pensa che l’Intelligenza Artificiale sia la cosa migliore che potesse inventare l’essere umano, dall’altro
lato c’è chi pensa che sia la cosa peggiore. Secondo la visione più ottimistica, l’Intelligenza Artificiale porterà
l’essere umano ad uno stato superiore rendendo la sua vita migliore sotto tutti i punti di vista ed eliminando le
disuguaglianze tra le persone. Al contrario, secondo la visione pessimistica, l’Intelligenza Artificiale porterà
la razza umana all’estinzione. Probabilmente entrambe le visioni sono troppo estreme per verificarsi. Tuttavia,
nonostante non si riesca (ancora) a giungere ad una conclusione condivisa sul fatto che l’Intelligenza
Artificiale sia o meno favorevole per lo sviluppo della qualità della vita dell’essere umano, è bene che esista
e che si sviluppi questo dibattito. Nel dibattito sull’Intelligenza Artificiale non viene sempre data la giusta
importanza al funzionamento degli algoritmi. Comprendere il funzionamento di questa tecnologia è
fondamentale per capire in che modo potrebbe evolversi e realmente a che punto è il suo sviluppo. Dopo che
si è compreso il suo funzionamento, e le sue reali applicazioni, è possibile instaurare un dibattito sugli effettivi
sviluppi che potrebbe avere in futuro.
Nella prima parte di quest’elaborato viene descritta la storia di quest’affascinante materia, andando anche a
cercare di capire che cosa sia effettivamente l’Intelligenza Artificiale e se possa essere definita intelligente,
fornendo anche dei paragoni su come viene intesa l’intelligenza degli esseri umani e degli animali. Sempre
nella prima parte vengono analizzate le basi sulle quali si fondano gli algoritmi di Intelligenza Artificiale e
vengono descritti alcuni dei paradigmi più importanti. Spesso, quando si parla di algoritmi di Intelligenza
Artificiale si pensa subito al Machine Learning. Questa tecnica è sicuramente molto utilizzata, ma non è certo
l’unica e non è sempre la migliore.
Nella seconda parte viene descritto il funzionamento del Machine Learning e della sottocategoria del Deep
Learning, andando anche analizzare il processo alla base che permette a questi algoritmi di funzionare. Quando
si sviluppando algoritmi di Intelligenza Artificiale è necessario comprender e il problema che si vuole andare
a risolvere in modo tale da selezionare l’approccio più accurato. In questa sezione non mancano alcuni consigli
pratici per poter implementare gli algoritmi in maniera più accurata, per ridurre i costi e per migliorare
l’efficienza al fine di ottenere risultati più adatti al problema da risolvere.
Nella terza parte, compreso il funzionamento di alcuni tipi di algoritmi di Intelligenza Artificiale si passa
all’esplorazione delle applicazioni di questi algoritmi. Sono presenti sia applicazioni robotiche, che sono in
grado di interagire con lo spazio circostante, sia applicazioni meramente computazionali che permettono
l’analisi di dati e lo svolgimento di determinate previsioni. In questa sezione vengono analizzati i Big Data e
vengono approfondite le tematiche legate alla privacy. Oltre a questo viene descritto come dovrebbero essere
programmati gli algoritmi per tenere comportamenti etici, ma anche che etica dovrebbero seguire i
programmatori al fine di non creare algoritmi pericolosi per gli esseri viventi. Alla fine vengono analizzate le
posizioni degli esperti in merito a quale sia il futuro dell’intelligenza artificiale, sia in ambito lavorativo che
in un ambito più generale.
Nell’ultima parte viene descritto un algoritmo di Intelligenza Artificiale che è in grado di prendere in input 2
immagini, una di contenuto e una di stile, e dare come output il contenuto della prima immagine con lo stile
della seconda.

3
1. INTELLIGENZA ARTIFICIALE
1.1 Storia, Turing e i primi sviluppi:
L’Intelligenza Artificiale ha un enorme legame con lo sviluppo dei computer, che iniziarono a diffondersi
negli anni 40’ con i lavori di McColloch e Pitts. Nel 1943 elaborarono dei modelli matematici formati da
neuroni sulla base dell’analisi dei neuroni biologici originali. Questi lavori riuscirono a spiegare
approssimativamente l’accensione e lo spegnimento dei neuroni, operando in un sistema binario, e
dimostrando che gli stessi possono apprendere e di conseguenza possono modificare le loro azioni nel tempo.
Negli anni 50’ Alan Turing1 si chiese se una macchina potesse pensare ed elaborò un test, famoso con il nome
di “Test di Turing”, intuendo che per assegnare un livello di intelligenza ad un altro essere umano siamo soliti
rivolgergli delle domande, quindi dovremmo fare lo stesso con le macchine. Questo metodo fu accettato perché
non prevedeva di definire tutte le caratteristiche di intelligenza ma testava il grado di indistinguibilità di una
macchina da un essere umano in una conversazione con un altro essere umano. Il test di Turing originale
prevedeva un interrogatore con una tastiera e un monitor diviso in due parti per mostrare le diverse risposte
del computer e dell’altro essere umano. Venivano previsti 5 minuti per discutere di qualsiasi argomento deciso
dall’interrogatore e alla scadenza si doveva decidere quale delle due chat era stata eseguita con una macchina.
Se il computer fosse riuscito ad ingannare il 30% degli interrogatori medi2, facendosi votare come essere
umano, allora avrebbe superato il test. Il test non è impeccabile perché se fosse svolto da due persone di diversa
intelligenza, una delle due persone esaminate potrebbe ottenere meno del 30% dei voti e quindi fallire il test.
Il test certifica solo il fatto che la macchina possa o meno simulare il pensiero umano e non affronta la
questione della consapevolezza di sé del computer. Turing quando elaborò il test previse che in circa 50 anni,
quindi approssimativamente negli anni 2000, qualche macchina avrebbe superato il test. Ad oggi ancora
nessuna macchina ha superato il test. Negli ultimi anni sono state riportate notizie del superamento del test ma
analizzando il modo in cui era stato svolto il test e le premesse si è notato un tentativo di porre delle restrizioni
alla giuria, andando quindi ad infrangere la regola della totale libertà di giudizio. Un esempio di questo falso
superamento è il chatbot Eugene Goostman che nel 2014 ottenne il 33% dei voti, ma essendosi presentato
come un tredicenne ucraino che non parlava frequentemente l’inglese ha, probabilmente, indotto alcuni
valutatori a giudicare alcune sue risposte in maniera meno critica date le sue difficoltà linguistiche e questo
potrebbe aver compromesso la loro valutazione, spiegandone il superamento del test di Turing. Ogni anno
viene assegnato il premio Loebner, finanziato da Hugh Loebner, il quale si propone di riconoscere la migliore
macchina da conversazione. In questa competizione ci sono alcuni aspetti diversi dal test di Turing originale
perché si ha una conversazione di 25 minuti e non è consentito l’accesso alla rete, andando quindi a sfavorire
la macchina. Nelle edizioni passate l’andamento delle prestazioni dei computer non è stata crescente ma è stata
costituita da alti e bassi. Tuttavia i motivi di questa discontinuità non sono chiari e alcuni ritengono che i

1
Articolo “Computing machinery and intelligence” apparso sulla rivista Mind
2
Ad oggi ancora si discute su chi possa essere considerato un interrogatore medio, anche se molti test vengono fatti da esperti
del settore e questo sfavorisce la riuscita del test da parte della macchina

4
motivi possano essere dovuti ad un aumento delle aspettative degli esaminatori, che quindi diventano sempre
più esigenti nelle loro valutazioni.
Nel 1956 Herb Simon e Allen Newell riuscirono a costruire la prima macchina pensante in grado di risolvere
autonomamente alcuni problemi matematici basilari. Quest’anno fu molto importante anche perché John
McMarty coniò per la prima volta il termine “Artificial Intelligence” in una conferenza a Dartmouth per
descrivere macchine in grado di ragionare e compiere operazioni che necessitano di intelligenza umana. Decise
quest’espressione anche per distinguere il suo lavoro da quello dei colleghi che stavano lavorando nel campo
della cibernetica. L’obbiettivo della conferenza era quello di espandere l’utilizzo dei computer oltre la mera
elaborazione di dati. Da qui si iniziò a diffondere il termine “Intelligenza Artificiale”. Il 1956 fu quindi un
anno importante, ma già da tempo gli essere umani pensavano a sistemi in grado di emulare il comportamento
umano, infatti nel 1700 il Barone Von Kempelen realizzò il giocatore di scacchi per impressionare
l’imperatrice Maria Teresa. Questo giocatore era posizionato di fronte ad una scacchiera e venne presentato
come una vera macchina intelligente in grado di giocare in modo autonomo, ma quello che gli spettatori non
sapevano era che all’interno della macchina si nascondeva uno scacchista che svolgeva tutto il lavoro, e che
quindi era tutto un inganno.
In questi anni ci fu un ottimismo crescente e iniziarono i primi dibattiti sulla possibilità dell’Intelligenza
Artificiale di eguagliare l’intelligenza umana. Molti ritenevano che l’Intelligenza Artificiale potesse imitare e
ricreare perfettamente il funzionamento del cervello umano e questo portò notevoli fondi ed interesse da parte
del grande pubblico. Alcuni informatici come Stephen Cook e Richard Karp identificarono classi
computazionali che avrebbero dovuto funzionare in linea torica, ma intuirono che avrebbero avuto bisogno di
enormi quantità di tempo di elaborazione e di memoria per portarli a compimento. Nel 1966 Joseph
Weisenbaum programmò ELIZA che è considerato il primo esemplare di chatbot 3. ELIZA era in grado di
fornire risposte prestabilite a seconda di ciò che le veniva chiesto. Anche se agiva in modo limitato, riuscì
comunque a farsi credere uno psicologo da diverse persone.
Purtroppo negli anni 70’ non si arrivò ai risultati desiderati e questo portò a una brusca interruzione della
ricerca dovuta a un interesse sempre minore e alla conseguente diminuzione dei fondi per lo sviluppo della
stessa. La difficoltà maggiori furono determinate dai limiti della potenza di calcolo e dalle limitate capacità
dei computer, nonché dai pochi dati disponibili in quel periodo. Ci si rese conto che l’ottimismo era stato
eccessivo e che per un computer l’elaborazione di una semplice immagine richiedeva molte informazioni.
L’interesse dei filosofi portò a una riconsiderazione sul fatto che una macchina potesse davvero pensare. John
Searle espose il problema della stanza cinese4 a dimostrazione del fatto che non si può considerare una
macchina come pensante perché essa non comprende i simboli che comunica. Searle arrivò alla conclusione
che se il test fosse fatto da una persona che non comprende il cinese ma che possiede delle istruzioni come
quelle del computer si arriverebbe allo stesso output ma non si potrebbe dire che la persona ha compreso ciò

3
I chatbot sono software che simulano una conversazione tra essere umani
4
La stanza cinese è un test che consiste nel far acquisire ad un computer caratteri cinesi come input in modo da produrre come
output altri caratteri cinesi date alcuni istruzioni di un programma

5
che ha scritto e per questo neanche il computer può comprenderlo. La conclusione a cui giunge Searle è che
l’esecuzione di un programma per computer non genera comprensione e quindi non può essere considerato
intelligente. I computer non hanno comportamenti intelligenti ma simulano solamente dei comportamenti
intelligenti. In questi anni vengono comunque studiate diverse tipologie di rappresentazioni di problemi e di
soluzioni che permettono di ottenere programmi migliori al fine di raggiungere le prestazioni degli essere
umani.
Negli anni 80’ si assistette ad una rinascita dell’interesse per l’Intelligenza Artificiale e questo fu dovuto a uno
sviluppo più pratico che teorico, in modo tale da affrontare i problemi tramite sistemi esperti in determinati
settori. Le discussioni filosofiche continuarono ma in maniera indipendente rispetto ai progressi pratici. Infine
ci fu uno sviluppo della robotica che influenzò l’Intelligenza Artificiale in modo tale da creare un’intelligenza
reale in grado di percepire il mondo circostante, tramite il processo dell’emboiment 5. Il crescente entusiasmo
ritrovato portò a numerosi applicazioni in diverse aree industriali che contribuirono al miglioramento della
stessa. In diversi ambiti l’Intelligenza Artificiale riuscì a superare l’uomo. Grazie alle ricerche di Geoffrey
Hinton e Yann LeCun è stato ripreso e intensificato lo studio delle reti neurali. L’11 maggio 1997 Deep Blue,
progettata da IMB, riuscì a battere Garry Kasparov in una competizione di scacchi. Questi tipi di intelligenza
non furono basati tecnologie recenti ma furono dovute alla potenza computazionale disponibile, infatti, Deep
Blue era 10 milioni di volte più veloce del computer di Ferranti progettato nel 1951.
Il progresso tecnologico è descritto dalla legge di Moore, ideata da Gordon Moore, secondo la quale la velocità
e la capacità di memoria dei computer raddoppiano ogni 18 mesi. Quando Moore propose la sua teoria si basò
su pochi dati, ma le sue previsioni furono piuttosto adeguate. Si basò sull’aumento del numero dei transistor6
introducibili in un circuito. Ad oggi assistiamo ancora a questo fenomeno che permette un incremento
esponenziale delle capacità di calcolo dei computer. La collaborazione dei gruppi ha permesso un notevole
sviluppo perché scoperta la soluzione ad un problema, questa va a beneficio anche degli altri gruppi. La legge
di Moore può essere anche considerata come una profezia che si autorealizza perché se smettessimo di cercare
di migliorare i circuiti attuali il miglioramento non ci sarebbe, quindi è necessaria la volontà di migliorare le
tecnologie esistenti e non pensare di aver raggiunto il limite. Lo svantaggio di questa legge deriva da un limite
fisco perché non si potranno ridurre i transistor all’infinito.
Alpha Go, progettata da Google7, nel 2016 riuscì a sfidare e a battere il campione cinese di Go 8, Lee Sedol.
Questa tecnologia riuscì ad apprendere il gioco giocando contro sé stessa e migliorando partita dopo partita.
Negli ultimi anni è emerso il metodo degli agenti intelligenti, che consiste nell’imitazione di un cervello
tramite l’unione di diversi agenti intelligenti specializzati per singoli problemi. Questo approccio ha portato a
notevoli sviluppi come il data mining e il riconoscimento vocale. L’avvento del wireless è stato fondamentale
per l’evoluzione di computer perché senza questa tecnologia i computer vengono considerati come singoli,

5
L’embodiment è un processo mediante il quale si dota una rete neurale artificiale di un corpo fisico per permettergli di
interagire con gli oggetti circostanti
6
I transistor potevano essere utilizzati come componete economica e affidabile per i calcoli dei computer
7
Progettata in seguito all’acquisizione della startup DeepMind per migliorare i servizi di ricerca delle immagini
8
Il Go è un gioco, originario della Cina per due giocatori, bianco e nero, caratterizzato da regole molto semplici che danno origine
ad una strategia sorprendentemente complessa

6
mentre con una rete globale che li collega possono essere considerati come uno solo grande cervello con
amplia distribuzione e con un’ampia connettività. Questo è un enorme vantaggio per l’Intelligenza Artificiale
rispetto all’intelligenza umana, perché permette un’integrazione della conoscenza.
L’andamento storico della ricerca nell’ambito dell’Intelligenza Artificiale ha avuto un andamento ondulatorio
con periodi di grande ottimismo e ingenti finanziamenti, e periodi meno floridi nei quali non si riuscirono ad
essere all’altezza dei risultati attesi facendo perdere parte dell’interesse per l’argomento e molti dei
finanziamenti con la conseguenza di una crescita più lenta e difficile.

1.2 Intelligenza: cos’è, è possibile definirla?


Per comprendere l’Intelligenza Artificiale bisogna partire dalla comprensione di che cosa sia l’intelligenza.
Nel considerare una qualsiasi definizione di intelligenza bisogna considerare la natura soggettiva della
definizione stessa. Ognuno ha una concezione personale di intelligenza dovuta a fattori come le credenze, le
esperienze e i valori, che sono mutevoli nel tempo, e sono influenzati dalla cultura.
Alla fine del 18° secolo Franz Joseph Gall elaborò la disciplina della frenologia, secondo la quale le differenze
volumetriche dei crani determinerebbero le funzioni psichiche degli essere umani. Questi studi furono smentiti
successivamente constatando che le dimensioni e la forma del cranio non forniscono informazioni riguardo
all’intelligenza di un individuo. Nel 1904 Alfred Binet elaborò un test d’intelligenza per determinare il
quoziente intellettivo (QI) degli essere umani. Nell’elaborazione del test prese in considerazione elementi
come la memoria, la comprensione, l’attenzione. Per quanto diffusi questi test, sono molto criticati perché si
focalizzano solo su determinate capacità e quindi non sull’intelligenza in sé. Secondo Howard Gardner ogni
persona è dotata di diversi tipi di intelligenza e quindi non sarebbe corretto dare un’unica definizione di
intelligenza.
Un’altra questione che riguarda l’intelligenza è la sua origine. Gli studiosi si chiedono se l’intelligenza sia
innata o se sia qualcosa che tutti possono apprendere dall’esperienza e dall’educazione. Non c’è una risposta
univoca, ed entrambi i fattori devono essere presi in considerazione. Per cercare di rispondere a questa
domanda gli studiosi si sono concentrati sui gemelli omozigoti, data la loro particolare struttura genetica. Nel
1966 Cyril Burt studiò 53 coppie di gemelli omozigoti separati alla nascita e constatò che l’educazione aveva
un peso molto maggiore nella determinazione dell’intelligenza, tuttavia fu criticato per la validità dei gemelli
presi in esame. Nel 1976 John Loehlin prese in esame 850 gemelli e constatò che l’intelligenza è
prevalentemente determinata dal patrimonio ereditario, anche se considerò coppie di gemelli cresciuti in
contesti simili.
Quando si cerca di definire l’intelligenza e come si sviluppa è necessario tenere in considerazione una
moltitudine di fattori interni ed esterni ed è estremamente difficile considerarli tutti. È quindi molto importante
considerare che ogni individuo considera un atto intelligente in base ai processi del suo pensiero e alle
competenze alle quali lui attribuisce un valore. Quindi il concetto di intelligenza non ha significato se è estratto
dal contesto sociale di riferimento.

7
Tendendone presenti i limiti, possiamo considerare la definizione di intelligenza della Treccani 9, che la
definisce:

“Complesso di facoltà psichiche e mentali che consentono all’uomo di pensare, comprendere o


spiegare i fatti o le azioni, elaborare modelli astratti della realtà, intendere e farsi intendere dagli
altri, giudicare, e lo rendono insieme capace di adattarsi a situazioni nuove e di modificare la
situazione stessa quando questa presenta ostacoli all’adattamento; propria dell’uomo, in cui si
sviluppa gradualmente a partire dall’infanzia e in cui è accompagnata dalla consapevolezza e
dall’autoconsapevolezza, è riconosciuta anche, entro certi limiti agli animali, specialmente
mammiferi”

Questa definizione è incentrata sull’uomo ma riconosce anche agli animali un certo grado di intelligenza. Per
quanto riguarda l’intelligenza degli animali può essere molto difficile considerare intelligenti determinate
capacità perché per noi sono prive di significato. Considerando il contesto generale nel quale agiscono gli
essere umani e gli animali si potrebbe definire intelligente la capacità di raggiungere determinati obiettivi. Gli
obiettivi primari potrebbero essere legati alla sopravvivenza della specie, ma andrebbero comunque
considerati obiettivi più immediati legati al piacere. Quando consideriamo l’intelligenza delle macchine
dobbiamo domandarci se per definirle intelligenti dobbiamo considerare il raggiungimento degli stessi
obiettivi posti per gli esseri viventi. Per le macchine un obiettivo che noi consideriamo primario potrebbe non
essere un obiettivo primario.
Date le difficoltà nella comprensione di cosa sia l’intelligenza negli esseri viventi, definire l’Intelligenza
Artificiale risulta molto difficile e controverso. Rapportando l’Intelligenza Artificiale all’intelligenza umana
ci si deve chiedere se sia importante il risultato o la comprensione del procedimento per arrivare a quel
risultato. Se si considerasse solamente il risultato finale non si porrebbe importanza al modo con il quale si
arriva allo stesso. Considerando un testo si potrebbe giungere alla formulazione di un discorso di senso
compiuto prendendo casualmente dei tasti e ciò è completamente differente dall’elaborazione dello stesso
seguendo un ragionamento logico e comprendendolo. Nella valutazione dell’operato degli essere umani diamo
per scontato che dietro ad un risultato ci siano determinate abilità logiche e di comprensione, ma il modo in
cui si raggiunge un risultato diventa rilevante se lo scopo è testare l’intelligenza di una macchina perché non
possiamo presupporre che utilizzino le nostre stesse abilità. Utilizzare le capacità umane come confronto è
molto limitante, anche perché numerosi compiti svolti dalla macchine sono impossibili da replicare per gli
esseri umani.
Bisogna quindi partire dal presupposto che ad oggi il cervello umano e i computer non possono funzionare
allo stesso modo perché abbiamo una comprensione troppo limitata del funzionamento del cervello per
replicarlo. La misurazione dell’Intelligenza Artificiale, quindi, non deve essere vincolata all’intelligenza
umana soprattutto se si tratta di affrontare problemi ripetitivi in maniera veloce. Bensì si potrebbe considerare

9
https://treccani.it/vocabolario/intelligenza/

8
una macchina come intelligente se fosse capace di acquisire determinate abilità a svolgere dei compiti senza
però ricevere delle istruzioni precise.
Considerando il problema dal punto di vista degli errori possiamo notare come l’essere umano sbagli
frequentemente ma possieda anche l’abilità di imparare dai suoi errori. Questo può essere considerato la base
del comportamento intelligente. Se invece è il computer a fare un errore e quest’errore è dovuto ad un errore
di programmazione, il computer non riuscirà ad imparare dall’errore e non riuscirà a superare il problema,
pertanto, non potrà essere considerato intelligente. Molti campi, che ritenevamo eseguibili solamente
dall’intelligenza umana, stanno iniziando ad essere svolti con successo anche dall’Intelligenza Artificiale.
Essendo campi molto specifici si tende a non considerare queste applicazioni come intelligenti perché
svolgono solo quell’attività. A fronte di questo, però, la tecnologia ha la tendenza all’unificazione di tecnologie
diverse. Ma perché dovremmo considerare le macchine come intelligenti se intese come insieme mentre se
prese singolarmente no? È importante riconoscere specifici aspetti dell’Intelligenza Artificiale anche presi
singolarmente perché sarebbe sbagliato considerare un Intelligenza Artificiale programmata per uno scopo
preciso non intelligente solamente perché non è in grado di svolgere compiti tipici dell’intelligenza umana. Ci
sono una moltitudine di input intorno a noi che non riusciamo a cogliere, come i raggi infrarossi o gli
ultrasuoni, solamente perché i nostri sensi sono limitati e se venissimo valutati solo sulla base di non poterli
rilevare, allora non dovremmo essere considerati esseri intelligenti. L’Intelligenza Artificiale, come
l’intelligenza umana, non ha una definizione univoca e il modo in cui la valutiamo è soggetto a diverse
limitazioni dovute all’ambiente nella quale la si valuta e al confronto che facciamo con determinate
caratteristiche.

1.3 Le basi dell’Intelligenza Artificiale:


Nonostante tutte le limitazioni di una definizione, può essere utile dare una definizione di Intelligenza
Artificiale per comprendere meglio l’ambito di applicazione della stessa e i componenti necessari per il suo
sviluppo. La Treccani10 definisce l’Intelligenza Artificiale come:

“La disciplina che studia se e in che modo si possano riprodurre i processi mentali più complessi
mediante l'uso di un computer. Tale ricerca si sviluppa secondo due percorsi complementari: da
un lato l'Intelligenza Artificiale cerca di avvicinare il funzionamento dei computer alle capacità
dell'intelligenza umana, dall'altro usa le simulazioni informatiche per fare ipotesi sui meccanismi
utilizzati dalla mente umana.”

In questa definizione si evince quanto siano fondamentali i computer come mezzo per l’applicazione
dell’Intelligenza Artificiale. I computer sono macchine elettroniche e digitali perché hanno una tecnologia che
sfrutta il movimento degli elettroni, di materiali come il silicio, cioè di materiali conduttori di elettricità, e
utilizzano i bit per rappresentare l’informazione. La tendenza dei computer a diventare sempre più potenti in
termini di memoria e di velocità di elaborazione sono dovuti alla creazione di tecnologie sempre più
miniaturizzate che permettono di inserire maggiori componenti dentro lo stesso. Il computer è composto anche

10
https://www.treccani.it/enciclopedia/intelligenza-artificiale

9
da un hardware che al suo interno contiene dei componenti che si attivano miliardi di volte in un secondo a
seconda dell’algoritmo inserito nel programma scritto in un linguaggio informatico, ad esempio C e C++, e
poi convertito in bit. Gli elementi all’interno del computer sono organizzati secondo l’architettura elaborata
dal John Von Neumann che permette di avere un sistema coerente ed efficace. Le funzioni dell’architettura
sono le unità di controllo (CPU), la memoria interna (RAM), e i dispositivi di ingresso e di uscita (IO).
La disciplina dell’Intelligenza Artificiale richiede una vasta gamma di competenze e può essere vista come
una materia multidisciplinare perché è stata, e continua ad essere influenzata da molte discipline diverse, che
la rendono affascinante complessa tramite l’apporto di nuove idee e tecniche.
La filosofia ha posto molte questioni interessanti che sono ancora attuali nelle discussioni riguardanti
l’Intelligenza Artificiale. Già nel IV secolo a.C. Aristotele tentò di formulare un insieme preciso di leggi
rappresentative della mente razionale umana, e non fu l’unico. Molti secoli dopo, Hobbes ipotizzò che il
ragionamento avesse delle affinità con il calcolo numerico. Ci furono anche persone come Leonardo da Vinci,
che nel 1500 progettò un calcolatore meccanico11, e Leibnitz che costruì un calcolatore per eseguire operazioni
su concetti, anche se era un prototipo molto limitato. Si instaurò, quindi, il presupposto che alla base della
parte formale e razionale della mente ci fosse un insieme di regole che possano descriverlo. Nel periodi
successivi si instaurarono idee come il dualismo della mente e, in contrapposizione a questo, il materialismo.
Con l’empirismo si cercò la fonte della conoscenza. Carnap elaborò la teoria del positivismo logico, secondo
la quale tutta la conoscenza può essere espressa dalle percezioni sensoriali, e quindi da enunciati osservabili.
Lo stesso Carnap, con l’aiuto di Hempel elaborò la teoria della conferma per spiegare come si acquisisce
conoscenza dall’esperienza. La filosofia infine pone la questione del collegamento tra la conoscenza e l’azione
che è fondamentale nell’applicazione dell’Intelligenza Artificiale.
La filosofia è alla base dei concetti riguardanti l’Intelligenza Artificiale, ma la matematica ha dato una
formalizzazione in termini di logica, computazione e probabilità. Boole, nel 19° secolo, ha elaborato i principi
della logica booleana e in seguito Frege la integrò agli oggetti, andando a creare la logica di primo ordine che
oggi permette di rappresentare la conoscenza. Quando si considera il primo algoritmo non banale si fa
rifermento a quello di Euclide per calcolare il massimo comun denominatore. Nel 1900 Hilbert stilò una lista
di 23 problemi, ancora attuali, tra cui il problema della concreta possibilità di scrivere un algoritmo per
decretare il grado di verità di qualsiasi proporzione logica dei numeri naturali, cioè l’Entscheidungsproblem.
Nel 1930 Gödel elaborò l’esistenza di una procedura per dimostrare ogni proporzione vera nella logica di
primo ordine, ma che questa non poteva esprimere il principio di induzione matematica necessario per definire
i numeri naturali. Quindi propose il teorema di incompletezza nel quale stabilisce che in ogni linguaggio in
grado di descrivere le proprietà dei numeri naturali esistono delle proposizioni vere indecidibili, e quindi
esistono numeri incomputabili. Turing partì da questo presupposto per definire quali sono le funzioni
computabili. Si ha l’intrattabilità di un problema quando il tempo di risoluzione cresce esponenzialmente con
le dimensioni dell’istanza. Nel 1971 Cook e Karp proposero la teoria della NP-completezza per riconoscere
quando un problema è intrattabile. Sono riusciti a dimostrare che le classi di problemi che rientrano nella

11
Leonardo da Vinci non riuscì a costruire il suo progetto, ma recentemente è stato costruito e si è dimostrato corretto

10
categoria dei problemi NP-completi sono probabilmente intrattabili anche aumentando le capacità
computazionali. Infine, nella matematica, il contributo della probabilità è stato fondamentale. Il primo a
formulare i termini di possibili risultati fu Cardano. Bayes propose una regola per aggiornare i valori di
probabilità in base ai dati raccolti di volta in volta in modo da porre le basi per il ragionamento in condizioni
di incertezza.
L’economia, iniziata ad essere considerata una vera scienza grazie al contributo di Adam Smith, pose le sue
basi su sistemi economici considerati come agenti tesi a massimizzare il proprio benessere economico. Quindi
l’economia dovrebbe portare le persone a prendere decisioni razionali in modo da massimizzare la propria
utilità portando a risultati graditi. Fu elaborata la teoria delle decisioni, fondendo i concetti di probabilità e
computazione, in modo da aiutare nelle decisioni incerte. Importante fu la teoria dei giochi, nella quale le
azioni di un giocatore possono influenzare l’utilità degli altri giocatori, e quindi si devono considerare scelte
esterne per massimizzare la propria utilità. Nel 1957 Bellman formulò una classe di problemi basati sulle
decisioni, detti processi decisionali di Markov. L’economia è stata molto utile nella definizione dell’agente
intelligente e nella complessità dell’attività di prendere decisioni razionali quando si hanno termini di
incertezza. Simon vinse il premio Nobel per l’economia per i modelli economici basati sulla soddisfazione che
non prevedevano una decisione sempre ottimale, ma che erano più rappresentativi della realtà.
Le neuroscienze sono una disciplina fondamentale per l’Intelligenza Artificiale dato che quest’ultima si è
iniziata a sviluppare cercando di replicare il funzionamento del cervello umano. Il cervello fu inteso come sede
della coscienza solo nel 18° secolo. Nel 1861 Boca, con gli studi sulle afasie, dimostrò l’esistenza di aree
specifiche del cervello responsabili di precise funzioni cognitive. Orami l’idea che il cervello fosse formato
da neuroni era stata accettata e nel 1873 Gori sviluppò una tecnica per permettere di visualizzare i singoli
neuroni. Ad oggi ancora non siamo riusciti a comprendere il meccanismo che permette a determinate aree di
prendere il controllo di determinate funzioni in caso di danni alle aree che solitamente svolgono quel compito.
In questo campo sono fondamentali tecnologie innovative come l’elettroencefalografo (EEG) e la risonanza
magnetica funzionale (fMRI) che permettono di avere immagini dell’attività celebrare in un determinato
momento. Non siamo comunque vicini a comprendere come si sviluppi un processo cognitivo. Ad oggi ci sono
chip di computer che riescono ad essere molto più rapidi dei neuroni ma non riescono, a differenza dei neuroni,
ad essere attivati simultaneamente.
Le origini della psicologia risalgono a quando Hermann von Helmholtz applicò il metodo scientifico alla
visione umana. Nel 1879 Wundt fece i primi esperimenti controllati nei quali si dovevano seguire determinati
attività percettive mentre le persone ispezionate si concentravano sui processi mentali. Watson, con il
movimento behaviorista, rifiutò queste teorie sostenendo che i dati introspettivi non erano affidabili. James
diede un importante contributo sviluppando la visione del cervello tramite la psicologia cognitiva. Secondo
Craik i requisiti fondamentali per un agente che si basa sulla coscienza sono che lo stimolo deve avere una
rappresentazione interna, la quale deve essere manipolata da determinati processi cognitivi in modo da ottenere
rappresentazioni interne, che, infine, devono essere trasformate in azioni. I modelli computazionali si sono
basati sulla scienza cognitiva. Secondo Anderson una teoria cognitiva può essere considerata al pari di un

11
programma per computer visto che entrambe devono descrivere in modo dettagliato un meccanismo di
elaborazione dell’informazione.
L’ingegneria informatica è fondamentale nel fornire gli artefatti, cioè i computer, che permettono lo sviluppo
dell’Intelligenza Artificiale. Il modello di computer elettronico digitale si diffuse durante la Seconda guerra
mondiale in maniera indipendente grazie a Turing, Zuse e Atanasoff. Da allora la potenza computazionale è
cresciuta enormemente. I software sono stati anch’essi fondamentali per lo sviluppo dell’Intelligenza
Artificiale. Lo sviluppo della stessa ha però portato a notevoli sviluppi anche in altre aree dell’informatica
generale tra cui la gestione automatica della memoria.
La cibernetica ha esempi molto lontani nel tempo, perché già nel 250 a.C. Ctesibio di Alessandria inventò un
orologio ad acqua con un regolatore che manteneva il flusso d’acqua costante in maniera autonoma. Nel 18°
secolo Warr elaborò i primi sistemi di regolazione dei motori a vapore. Winer elaborò la teoria del controllo
in contrapposizione alla teoria behaviorista. La moderna teoria del controllo ha lo scopo della massimizzazione
della funzione obiettivo. L’Intelligenza Artificiale è nata cercando di superare i limiti matematici tipici della
teoria del controllo.
La linguistica è nata negli stessi anni dell’Intelligenza Artificiale ed entrambe si sono influenzate. Chomsky
dimostrò che la teoria behaviorista non considerava la creatività del linguaggio e riuscì a creare una teoria
abbastanza solida da poter essere programmata. La complessità della linguistica inizialmente era sottovalutata
data la difficoltà della comprensione stessa del linguaggio. Questa disciplina ha permesso la nascita e lo
sviluppo della linguistica computazionale.
Compresi gli elementi e le discipline che stanno alla base dell’Intelligenza Artificiale si possono fare delle
distinzione riguardanti la stessa e il modo nel viene concepita. Si può dividere l’Intelligenza Artificiale in due
grandi categorie.
Si parla di Intelligenza Artificiale debole quando si hanno macchine che cercano di emulare azioni tipicamente
intelligenti e ripetitive con una base logica abbastanza semplice. È il tipico approccio utilizzato per il problem
solving tramite l’elaborazione di diverse soluzioni, a partire da una base di dati, e si definisce la soluzione più
razionale in base alle regole impartite dal programma. Questo tipo di macchine non possono apprendere
autonomamente e quindi non riescono ad auto-migliorarsi ed è necessario il costante monitoraggio umano.
Viene anche definita l’intelligenza del “come se” perché agisce come se pensasse ma senza capacità di capire
ciò che fa, con lo scopo di semplificare e velocizzare processi che se fossero svolti dagli essere umani sarebbe
difficile realizzare con la stessa efficienza dato che l’Intelligenza Artificiale debole consente di verificare le
ipotesi in maniera estremamente precisa.
In contrapposizione all’Intelligenza Artificiale debole si ha l’Intelligenza Artificiale forte. Questo tipo di
Intelligenza Artificiale non si limita alla mera emulazione delle azioni umani ma ha l’obiettivo di compiere
azioni in modo tale da apprendere da sola nuove informazioni e migliorarsi. L’intervento dell’uomo è iniziale
e fornisce alcune regole e procedure alla macchina che poi continua l’applicazione in maniera autonoma.
Questo tipo di intelligenza riesce quindi a comprendere le azioni che svolge e quindi non è uno mero strumento
da utilizzare. Ha l’obiettivo di riprodurre e apprendere le competenze degli esperti di determinati settori in

12
modo tale da fornire risposte immediate a determinati problemi. Ad oggi però l’Intelligenza Artificiale forte è
difficilmente applicabile12.

1.4 Paradigmi dell’Intelligenza Artificiale:


Al fine del funzionamento dell’Intelligenza Artificiale è determinate la scelta dell’algoritmo che sta alla base
della stessa. È sempre necessario un algoritmo per far funzionare i dati che vengono inseriti nel programma.
Un algoritmo richiede sempre una serie di passaggi per risolvere un problema che viene scomposto in calcoli
elementari. Bisogna porsi delle domande prima di iniziare. Si deve comprendere cosa si vuole creare, le
motivazioni alla base, il come si deve fare, l’arco temporale e quali sono i costi stimati. Si può quindi optare
per una soluzione con un livello di utilità non massimo se questo permette una maggiore fattibilità del progetto.
Stabilire preliminarmente linee guida per la risoluzione di problemi si può rilevare molto utile in modo da
sapere a priori dove ci si sta dirigendo. L’informatica permette di risolvere problemi con il computer date
regole e risorse necessarie ad operare. Risolvere un problema significa, dati degli input, arrivare ad un output
soddisfacendo un criterio di verifica. È molto opportuno comprendere ciò che si vuole realizzare e questo lo
si può fare solo definendo nel dettaglio il problema da risolvere. Durante lo svolgimento del processo è
comunque necessaria una supervisione attiva perché il sopraggiungimento di dati non previsti potrebbe
interferire con il raggiungimento dell’output.
La figura 1 mostra, in forma schematica, i passaggi necessari per la risoluzione del problema. Questo schema
non deve essere applicato in maniera rigorosa ma deve essere adattato al caso specifico.

Figura 1 - Sequenza di operazioni per realizzare un algoritmo basato sull’Intelligenza Artificiale.


Fonte: libro Algoritmi per l'Intelligenza Artificiale di Roberto Marmo

12
https://www.intelligenzaartificiale.it/intelligenza-artificiale-forte-e-debole/

13
La definizione del problema è quindi il primo passo fondamentale da fare e deve essere svolto dall’uomo che
avrà poi il supporto dell’Intelligenza Artificiale. Questa fase prevede l’individuazione dei dati in ingresso, la
scelta degli obiettivi da raggiungere e la relazione esistente tra i dati e i risultati. Bisogna sempre verificare se
il problema è ben definito perché un’errata definizione comprometterebbe i risultati successivi. Se i passaggi
preliminari sono corretti si può passare alla scelta dei dati da inserire. I dati sono fondamentali ma è opportuno
inserire solo quelli necessari in modo tale da non sovraccaricare la macchina, e si devono considerare anche i
tempi e i costi che una raccolta di dati può richiedere. Successivamente si va a scegliere la tipologia di agente
che si intende utilizzare. Si può avere un approccio orientato alla ricerca, ottimale nel caso di applicazioni
matematiche, orientato all’apprendimento, ottimale nel caso dell’utilizzo di esperienze passate, orientato alla
pianificazione, ottimale con una sequenzialità delle operazioni, e orientato al ragionamento automatico. In
base all’approccio adottato si deve definire il paradigma, che deve essere dipendete dalla scelta precedente
perché ogni paradigma ha vantaggi e svantaggi che è consigliabile sfruttare a seconda del caso concreto. Il
primo paradigma tra cui scegliere è l’evolutionary algorithm che si basa su metodi euristici di ricerca e sul
principio di selezione naturale. Esiste poi, l’expert system che cerca di riprodurre le preazioni degli esperti in
un determinato campo di attività. Un altro paradigma utilizzabile è il fuzzy logic che è una funzione logica
che permette l’attribuzione di un grado di verità, espresso in percentuale, a ogni proposizione. Infine, un altro
paradigma che si può utilizzare è il macchine learning che permette di acquisire in maniera automatica nuove
conoscenze. Definito il paradigma più adatto al caso concreto si devono adattare gli input e gli output allo
stesso. Si può poi iniziare la programmazione tramite il linguaggio di programmazione cercando di ottimizzare
i parametri che regolano il funzionamento del programma al fine di ottenere il risultato migliore. Si procede
poi con l’applicazione concreta del programma per verificare la sua validità e nel caso si riscontrassero degli
errori si cerca di risolversi fino a quando l’esercizio non avrà successo. Man mano che si raccoglieranno altri
dati si continuerà a verificarli in modo da permettere all’Intelligenza Artificiale di apprendere e si ha quindi
un apprendimento continuo.
Come abbiamo visto in precedenza la definizione dell’agente è un passo fondamentale per la definizione di un
sistema, per questo motivo è importante comprendere i vari tipi e le caratteristiche. L’agente definisce
l’Intelligenza Artificiale che è inserita in un determinato ambiente, che viene percepito tramite sensori, ed è
dotata dell’autonomia necessaria per affrontarlo in maniera autonoma tramite attuatori. L’agente deve essere
considerato razionale, cioè deve riuscire a raggiungere gli scopi prefissati sulla base dei dati disponibili e deve
svolgere attività considerate complesse. Deve inoltre massimizzare il valore atteso. La razionalità perfetta è
difficilmente raggiungibile dati i limiti computazionali. Il compito dell’Intelligenza Artificiale è quello di
andare a creare il programma agente in modo tale da metterlo in relazione con le percezioni e le azioni. Nel
tempo sono stati sviluppati tipi di agenti diversi con caratteristiche e capacità via via più sviluppate e
complesse. Inizialmente venivano utilizzati agenti con riflessi semplici che era in grado di rispondere
solamente agli stimoli ricevuti senza però avere memoria degli stessi. Si è passati poi ad agenti con riflessi che
si basa, oltre alla percezione attuale, anche sulla precedente sequenza percettiva in modo tale da aggiornarsi
nel tempo permettendo all’agente di modificare il modello. Successivamente l’agente basato su obiettivi ha

14
dato la possibilità di conseguire la pianificazione da svolgere in base alla combinazione dello stato interno e
dell’obiettivo prefissato ma considerando anche gli effetti di tale azioni in modo da garantire una certa
flessibilità. L’agente basato sull’utilità esprime il grado di soddisfazione per un determinato risultato andando
a selezionare il migliore e privilegiarlo. Infine si è arrivati all’agente che apprende in modo tale da migliorarsi
in maniera automatica. Quest’ultimo approccio è il più utilizzato data la difficoltà nella programmazione
manuale degli agenti.
Nell’Intelligenza Artificiale oltre agli agenti si posso avere i sistemi esperti, che a differenza degli agenti non
sono associati ad un ambiente, e cercano di emulare il comportamento di esperti umani, in determinati campi,
sulla base di un determinato numero di dati e regole in modo tale da formulare un’ipotesi e fornire una
soluzione razionale. I sistemi esperti cercano di emulare il comportamento del cervello umano in determinate
situazioni tramite l’applicazione di determinate regole, dettate dagli stessi esperti del settore in questione,
quando si introducono nuove informazioni. Uno dei primi sistemi esperti era chiamato MYCIN e consisteva
in un sistema medico di infezioni del sangue che conteneva oltre 450 regole dettate da medici esperti in base
alle valutazioni pratiche che utilizzano nella valutazione delle infezioni del sangue. Le regole seguono
l’espressione IF (condizione) THEN (conclusione), che premette di trarre una conclusione data una condizione
iniziale. Le condizioni possono coesistere tra loro e devono essere attivate tutte per arrivare ad una determinata
conclusione. Nel caso si verificassero dei conflitti tra le regole si deve stabilire, a priori, una risoluzione dei
conflitti e quindi devono essere stabilite delle priorità. Si possono applicare criteri differenti che possono essere
la regola della priorità più elevata, le condizioni a priorità più elevata, la prossimità temporale, la maggiore
specificità e la limitazione in base al contesto. Molti sistemi esperti prevedono la presenza di regole che
dipendono l’una dall’altra e quindi soddisfatta una condizione si riesce ad accedere alla regola successiva.
Questo comporta maggiore precisione ma anche maggiore complessità. I sistemi esperti possono lavorare con
una concatenazione in avanti, cioè, generate un determinato numero di regole, verranno innescati ulteriori
eventi che attiveranno determinate regole per raggiungere una conclusione definitiva. Con questo metodo si
cerca di scoprire il più possibile partendo da una determinata base di dati. Il metodo opposto a questo è la
concatenazione all’indietro, che consiste nel ricercare determinate regole per scoprire quali dati si sono
verificati per arrivare a quella determinata conclusione. Questo tipo è utile alla verifica del sistema conoscendo
a priori la conclusione alla quale giungere. I vantaggi dei sistemi esperti sono la facilità di programmazione e
le regole sono aggiornabili a seconda dei nuovi dati disponibili. Poi uno stesso sistema esperto potrebbe essere
usato in differenti campi a seconda dei dati disponibili. I sistemi esperti possono hanno un’elevata velocità di
risposta. Una volta che un sistema raggiunge determinate conclusioni si possono ricompensare le regole
aumentando le probabilità di essere selezionate successivamente. Esistono poi una serie di svantaggi. Può
essere abbastanza difficile raccogliere le regole necessarie perché è difficile per gli esperti descrivere in modo
semplificato i procedimenti che svolgono e ogni esperto potrebbe agire in modo diverso per arrivare alla
medesima conclusione, e non sempre è possibile fare una media dei risultati. Un ulteriore problema potrebbe
essere l’esplosione combinatoria che implicherebbe un sistema troppo grande che perderebbe la velocità di
esecuzione, dato che in linea teorica deve considerare tutte le regole che si potrebbero verificare. Anche il

15
debug può risultare complicato perché le regole rischiano di invalidarsi a vicenda e senza raggiungere una
conclusione.
I sistemi esperti sono solo un tipo di Intelligenza Artificiale. I sistemi fuzzy non danno per scontato, come i
sistemi esperti, che una determinata condizione esista oppure no, e contemplano la possibilità che una
conclusione sia solo parzialmente vera in una determinata percentuale (%). Il primo passo da svolgere è la
fuzzificazione, che consiste nel pendere una dato e sfumarlo per poi inserirlo nel sistema. Si deve quindi avere
presente il rapporto esistente tra il valore reale e il valore fuzzy. Si procede poi all’applicazione delle regole
sul valore fino ad ottenere un valore fuzzy. Come per i sistemi esperti, possono coesistere più condizioni e più
regole contemporaneamente. Possono essere previsti diversi operatori booleani (AND, OR e NOT). Spesso si
ha il caso in cui si attivano più regole contemporaneamente ed ognuna determina un valore differente e questi
dovranno essere uniti per formare un’unica conclusione coerente con il mondo esterno. I metodi più utilizzati
sono la media, la media ponderata e il center of gravity13 (COG). La defuzzificazione consiste nel considerare
di meno una regola che non si è attivata recentemente. Per ottenere un sistema fuzzy ottimale è necessario
procedere per tentativi ed errori, imparando da essi. Questo sistema permette di seguire tutte le regole per
coprire tutte le eventualità previste dal sistema.
Il problem solving è un paradigma dell’Intelligenza Artificiale utilizzato per risolvere determinati problemi
umani in cui sappiamo dove vogliamo arrivare e il punto da cui partiamo e vogliamo capire il procedimento
da seguire. È utile perché può essere molto più veloce di un essere umano. Si possono avere diversi modi per
giungere alla soluzione migliore. Un primo approccio è la ricerca breadth-first nel quale si analizzano tutte le
soluzioni possibili, operando un confronto tra le stesse, in modo tale da scegliere la soluzione migliore adatta
al caso specifico. Il problema di quest’approccio è che quando le soluzioni sono tante si rischia di
sovraccaricare la macchina in termini di memoria e avere costi troppo elevati. Un altro approccio è la ricerca
depth-first nel quale si verifica un percorso completo dall’inizio alla fine e si compie un confronto immediato
con il percorso precedente in modo da scegliere subito il migliore dei due e in un successivo confronto andare
a confrontare il percorso migliore trovato con il nuovo percorso. Questo andrà a ottimizzare la memoria perché
una volta scartato un percorso questo sarà eliminato. Il problema di quest’approccio è che una scelta iniziale
non ottimale potrebbe compromettere il risultato finale e potrebbe passare molto tempo prima di avere una
soluzione. Poi si può utilizzare il metodo depth-limited nel quale si determina un limite di profondità in modo
da limitare la ricerca depth-first. In questo metodo si deve applicare del buon senso e una certa conoscenza del
problema. Infine si può utilizzare la ricerca bidirezionale che prevede di dividere la ricerca in due parti. La
prima parte è una ricerca normale dal punto di partenza fino alla fine, mentre la seconda parte prevede di
partire dalla fine e andare a ritroso. Questo metodo permette di risparmiare tempo nel trovare una soluzione
ma richiede una quantità significativa di memoria. È utile una conoscenza del problema a priori. Un problema
di questo tipo di ricerche è lo spreco di tempo dovuto alla revisione continua dei percorsi già toccati e la
conseguente capacità di memoria che produce costi maggiori. Confrontare i dati precedenti è necessario in

13
Nel COG ogni valore percentuale si moltiplica per un coefficiente ad esso associato e le risposte sono addizionate e divise per il
valore di tutti i valori ponderati e sommati.

16
tutte le applicazioni dell’Intelligenza Artificiale perché se si perdesse traccia dei dati già esaminati si
andrebbero a commettere sempre gli stessi errori. La ricerca deve sempre includere le valutazioni dei costi
basate sulle probabilità, e, in caso ci sia influenza da agenti esterni, si deve considerare la possibile risposta
degli stessi per ognuna delle soluzioni trovate.
La rappresentazione della conoscenza dell’Intelligenza Artificiale è fondamentale. Vengono utilizzati i frame
per rappresentare una conoscenza-tipo che è richiesta frequentemente riguardo una determinata entità. I frame
possono contenere degli slot al loro interno con azioni secondarie nel caso venga scelto quel determinato
frame. È necessario uno slot agente, per indicare il soggetto che porta a termine l’azione, uno slot oggetto, per
indicare chi subirà l’azione, uno slot fonte, per indicare da dove parte l’azione, e, infine, uno slot destinazione,
per indicare dove si conclude l’azione. Per poter utilizzare i frame l’Intelligenza Artificiale deve essere in
grado di manipolare e interrogare la conoscenza acquisita. I metodi permettono di una serie di comandi
associati ad un’entità per scoprire qualcosa della stessa. Si utilizza il metodo when changed quando la
procedura è effettuata al variare del valore dell’entità, mentre si utilizza il metodo when needed quando la
procedura è effettuata alla scoperta del valore dell’entità. I demoni sono costrutti che si attivano quando varia
il valore della condizione.
Un ultimo paradigma molto utilizzato nell’Intelligenza Artificiale è il Machine Learning. Questo tipo di
approccio permette al computer di imparare dall’esperienza. Inizialmente si inseriscono, nel sistema, alcune
regole di base e poi il computer è in grado di generare nuove regole e premiare le regole che hanno prodotto
determinati output. Per tutti i paradigmi dell’Intelligenza Artificiale il data mining è necessario, ma lo diventa
in maniera maggiore quando si tratta di Machine Learning. Una quantità di dati sufficientemente amplia
permette di realizzare modelli, connessioni e collegamenti significativi che permettono alla macchina di
apprendere. Naturalmente è importante che la macchina apprenda solo dati utili alla realizzazione dell’output
perché altri tipi di dati andrebbero solo ad occupare memoria e a rallentare il processo. Si deve quindi capire
la correlazione dei dati a disposizione per capire in che modo una dato sia legato ad un altro e in che modo
possa essere utile alla realizzazione dell’obiettivo.
Un ulteriore paradigma è l’applicazione di alberi di decisione. Questa tecnica serve per ridurre la complessità
di determinati problemi. Gli alberi di decisione prevedono la divisione dei dati in modo da renderli più
maneggevoli in base alle esigenze, andando quindi a creare i vari rami dell’albero. Questo metodo permette di
ridurre notevolmente il tempo di analisi migliorando la precisione dei risultati. Gli alberi di decisione possono
seguire anche una logica fuzzy.
Le tecniche di Intelligenza Artificiale si basano sull’imitazione del comportamento umano cercando di
sfruttare la velocità di calcolo e la capienza di memoria delle macchine per ottenere risultati migliori in tempi
inferiori. La maggior parte di questi metodi sfruttano un approccio top-down nel quale si definiscono delle
regole che devono essere rispettate. Tuttavia esistono anche approcci bottom-up che permettono di prendere
dei comportamenti intelligenti, addestrarli in una fase di apprendimento, e lasciarli sviluppare in un
determinato arco temporale per poi valutare i risultati a posteriori.

17
2. MACHINE LEARNING E DEEP LEARNING
2.1 Machine Learning:
Nel 1959 Herbert Simon ha dato per la prima volta una definizione di Machine Learning:

“Il Machine Learning è quella branca dell’informatica che permette a una macchina di imparare
ad eseguire un compito senza essere esplicitamente programmata per farlo”

Questa definizione inquadra il Machine Learning come un approccio in grado di creare sistemi che imparano
dai dati iniziali, immessi come input, al fine di gestire altri dati che non erano stati considerati inizialmente dal
programmatore.
Al fine di comprendere in maniera semplicistica il funzionamento del Machine Learning si tende a considerarlo
come un creatore di un software che impara come fa un bambino. Utilizza, quindi, a partire dall’osservazione
dei dati e delle informazioni disponibili, dei principi generali per ottenere delle nuove conoscenze. Dato che
il bambino nasce con la capacità di apprendere può sfruttarla per creare un’esperienza, ancor prima di avere
delle conoscenze. Da questa può ottenere un feedback per valutare cosa ha imparato, e può andare ad applicarla
in maniera migliore in un momento successivo. Acquisita la conoscenza, può generalizzarla ed utilizzarla con
dati che non ha mai incontrato in precedenza. La stessa cosa può essere fatta dal Machine Learning. Alla base
c’è uno sviluppatore che controlla il processo senza interferire. Il Machine Learning è, quindi, l’apprendimento
automatico di una macchina.
Diversi anni dopo la definizione di Simon, nel 1997, Tom M. Mitchell ha elaborato una definizione più
formale14:

“Si dice che un programma per apprende dall’esperienza E con riferimento ad alcune classi di
compiti T e con misurazione della performance P, se le sue performance nel compito T, come
misurato da P, migliorano con l’esperienza E”

Questa definizione ha permesso di inquadrare il Machine Learning come un programma che apprende soltanto
dopo aver migliorato le proprie prestazioni a seguito dello svolgimento di un compito. Secondo l’idea di
Machine Learning è possibile rappresentare la realtà come una funzione matematica di cui l’algoritmo non è
a conoscenza, ma che è in grado di ricavare dopo aver elaborato i dati forniti dalla stessa. La realtà può essere
espressa con funzioni matematiche che non sono conosciute, ma che sono individuabili grazie al Machine
Learning. L’apprendimento, che è puramente matematico, termina se gli input sono associati agli output che
ci si era prefissati di raggiungere. Questo processo non mira alla comprensione di ciò che l’algoritmo ha
appreso ma serve all’elaborazione dei dati con il fine di ottenere una rappresentazione utilizzabile per fini
pratici. Si utilizza il processo di addestramento (training) per permettere all’algoritmo di imparare a mettere
l’input assegnato in corrispondenza di un determinato output.
Di recente il Machine Learning è stato sempre più utilizzato ed è fondamentale caprine il funzionamento.

14
Cucci Alessandro. A tu per tu con il Machine Learning: l’incredibile viaggio di un developer nel favoloso mondo della Data
Science. Reggio Emilia: thedotcompany, 2017. Pagina 4.

18
2.2 Funzionamento:
Il Machine Learning ha stravolto l’idea che le applicazioni debbano iniziare da una funzione, prendendo degli
input e fornendo degli output. Con questo approccio si possono risolvere problemi conoscendo input e output
che si vogliono raggiungere, senza conoscere quale funzione bisogna utilizzare per arrivarci.
Per far sì che un algoritmo di Machine Learning possa funzionare si deve partire con la preparazione e
l’inserimento dei dati. In questo modo si gettano le basi per svolgere con successo le fasi successive. È una
fase molto delicata perché si devono andare a selezionare dati coerenti con l’obiettivo prefissato in modo tale
da rendere l’algoritmo il più efficiente possibile. Successivamente si passa alla fase di addestramento che va
a fornire, all’algoritmo learner, tutti gli esempi degli input a disposizione e i risultati che si desidera ottenere
dagli stessi. L’algoritmo, tramite la mappatura dei valori, va a creare una funzione che permette di creare una
corrispondenza tra input e output. Passando alla fase di training, l’algoritmo va ad apprendere le caratteristiche
degli input per raggiungere un determinato output. Questa fase prevede un sistema di feedback che permette
all’algoritmo di migliorarsi. Le capacità cognitive di un classificatore di Machine Learning vengono sviluppate
da una formula matematica che permetta di comprendere tutte le caratteristiche (feature) al fine da arrivare a
distinguere le diverse classi. Negli algoritmi di apprendimento è molto importante la rappresentazione
dell’informazione appresa per determinarne il funzionamento. L’algoritmo deve avere la capacità
rappresentativa, cioè deve essere in grado di esprimere la funzione matematica. Il processo di rappresentazione
viene espresso tramite la mappatura che permette di interiorizzare le caratteristiche dell’input in modo tale da
riconoscerlo in un momento successivo. Una rappresentazione di questo tipo segue delle regole astratte, ed è
possibile grazie ai parametri interni dell’algoritmo (vettori e matrici valori) che fungono da memoria. Questi
parametri vengono modificati a seconda della funzione target, rendendoli ottimali rispetto ai dati iniziali e agli
obiettivi prefissati. Nella fase di ottimizzazione vengono svolte diverse ricerche, combinando vari parametri,
al fine di trovare la mappatura corretta delle caratteristiche e delle classi. Nello spazio delle ipotesi sono
contenute tutte le funzioni che l’algoritmo è in grado di elaborare. Generato il classificatore, l’algoritmo ha
impostato i parametri per replicare la funzione obiettivo ed elaborare le classificazioni nel modo migliore
possibile. Durante queste fasi è necessaria una supervisione che fornisca i giusti algoritmi di apprendimento,
che inserisca iperparametri e che selezioni le feature che accompagnano gli esempi, andando a fornire dei
feedback che permettono di creare la funzione migliore.
Il processo per far funzionare un algoritmo di Machine Learning può richiedere molto tempo per diventare
operativo e può richiedere la supervisione del programmatore, il quale deve verificare che le varie fasi
proseguano in maniera ottimale e deve andare ad intervenire laddove si presentino problemi. Non sempre si
riesce a generare un algoritmo di Machine Learning funzionante, quindi è necessario focalizzarsi e
comprendere tutte le fasi che lo compongono.

2.3 Capire il problema e lavorare con i dati:


Un programmatore quando ha un problema da risolvere deve capire di cosa ha bisogno per andare a sviluppare
la soluzione migliore applicata al caso concreto. Spesso si pensa che il Machine Learning sia la soluzione
migliore a tutti i problemi di Intelligenza Artificiale, ma questo non è vero. Per alcune soluzioni può essere
19
più veloce e pratico andare a sviluppare altri tipi di algoritmi. Compreso questo presupposto diventa
fondamentale andare ad analizzare il problema in tutte le sue forme. Si devono avere le idee chiare su cosa si
vuole fare. Se si ritiene che il Machine Learning sia la soluzione ottimale al fine di andare a risolvere il
problema che si vuole risolvere ci si deve chiedere se si abbiano a disposizione tutti gli strumenti per
implementarlo. Questo significa, anche, dotarsi di computer con un elevata capacità computazionale.
Dotati degli strumenti fisici che permettono all’algoritmo di lavorare e compreso nel dettaglio l’output che si
vuole generare, si devono andare a preparare gli input da dare all’algoritmo in modo tale che questo possa
generare una soluzione. La preparazione dei dati rappresenta le fondamenta che permettono al Machine
Learning di funzionare, perché una grande quantità di dati perme all’algoritmo di apprendere in maniera più
efficace ed efficiente, aumentano le probabilità di risoluzione del problema. Non basta preparare i dati ed
implementarli nell’algoritmo, questi vanno studiati e modificati al fine di ottimizzarli per il problema specifico
applicato alla realtà.
Si parte con il data collection, cioè il processo di acquisizione dei dati, che richiede un numero minimo di
osservazioni e delle adeguate features per iniziare l’apprendimento. Vanno individuati i dati. I dati possono
essere reperiti all’interno di un’organizzazione, se il problema è riferito alla stessa, oppure possono essere
prodotti o comprati esternamente. Ad esempio si possono prendere dei dati dai database Google Kaggle e
Amazon Open Data. Si può anche usare l’UC Irvine Machine Learning Repository15, che è un archivio di dati
creato nel 1987 dall’Università Irvine, e che contiene 585 dataset. Nella prima fase, del data sampling si inizia
campionando i dati. Il campionamento può essere fatto in modo randomico, che è particolarmente efficace
quando viene esteso ad una popolazione e non a un sottoinsieme circoscritto di dati, oppure si può fare un
campionamento stratificato, nel quale si assegnano dei pesi alle osservazioni andando a premiare i set di dati
più interessanti. Nella fase di labeling si va a valorizzare l’obiettivo da raggiungere in modo tale che questo
possa essere utilizzato successivamente nell’apprendimento e nel training. Questa operazione viene fatta dal
programmatore e può richiedere molto tempo per essere realizzata in maniera accurata. Dato che queste
informazioni devono essere chiare ed oggettive si possono usare strumenti di supporto, come il Lionbridge AI
e l’Amazon Mechanical Turk. Durante la fase di data collection è essenziale fare una pulizia costante dei dati
perché, se nella fase iniziale vengono utilizzati dati contenenti errori o inutili, questi potrebbero compromettere
o rallentare il funzionamento dell’algoritmo. A questo scopo, può essere utile applicare delle regole di
convalida dei dati andando a realizzare sia delle tabelle di dati migliori e sia più una corretta memorizzazione
degli stessi.
Una volta che si è selezionato il set di dati da utilizzare, si devono tradurre le feature non numeriche in valori
numerici, tramite l’encoding, affinché gli algoritmi possano utilizzare tecniche di analisi matematica, le quali
si basano sull’elaborazione dei numeri. In una stessa distribuzione di dati possono essere presenti dati numerici
e non numerici. I dati numerici non necessitano di encoding, mentre i dati non numerici devono essere tradotti.
Non tutti i dati non numerici possono essere tradotti allo stesso modo. Bisogna andare ad analizzare i dati e
capire di che tipo si tratta in modo tale da fare la traduzione corretta. Nel caso in cui i dati siano rappresentativi

15
https://archive.ics.uci.edu/ml/index.php

20
di due categorie, possono essere tradotti in numeri binari, 0 e 1, come potrebbe avvenire se i dati esprimessero
libri nuovi e libri usati. In questi si potrebbe assegnare lo 0 nel caso in cui fossero nuovi e l’1 nel caso in cui
fossero usati. Nel caso in cui i dati facciano parte di una categoria ordinale, è possibile riportarli in numeri
mantenendo un certo ordine, come si potrebbe fare con le recensioni nelle quali si esprime il giudizio con
‘buono’, ‘medio’ e ‘cattivo’ andando ad assegnare un valore numerico per ognuna di esse, come ‘buono=10’,
‘medio=5’ e ‘cattivo=0’. Un’altra tipologia di dati porebbero essere le categorie nominali per le quali è molto
difficile trovare una rappresentazione numerica. Questo processo di mappatura può essere agevolato dai
linguaggi di programmazione tramite l’utilizzo delle librerie, tramite le funzioni come LabelEncoder() e map
e tramite metodi come transform() che permettono di convertire in maniera automatica i dati qualitativi in
numeri. Per convertire le categorie nominali è possibile utilizzare il metodo one-hot encoding che crea N nuove
features a seconda del numero di categorie in cui può essere classificato il Label presa in esame. Dopo essere
riusciti a mappare tutte le feature con valori numerici è possibile iniziare ad utilizzare i metodi di Machine
Learning. Queste tecniche di mappatura sono fondamentali e vanno applicate a seconda della categoria presa
in considerazione. Commettere errori di mappatura, andando considerare categorie nominali come ordinali o
viceversa, può portare ad errori significativi nella creazione degli algoritmi.
Non sempre i dati a disposizione sono completi. Se in un dataset ci sono dati mancanti, per i più svariati motivi,
potrebbe essere molto difficile, se non impossibile, connettere le feature tra loro o con altre categorie. Questa
mancanza comporta, anche, un apprendimento peggiore da parte dell’algoritmo. Se i valori mancanti non sono
molti è possibile ignorarli o modificarli inserendo un valore ritenuto probabile, ma se sono molti, allora, le
previsioni generate sarebbero troppo incerte per essere utilizzate. Quindi, per prima cosa bisogna individuare
tutti i dati mancanti e farsi un’idea dell’impatto che potrebbero avere durante le fasi di sviluppo. Bisogna anche
considerare come l’algoritmo li considera nel caso specifico, perché potrebbe semplicemente ignorarli o
considerarli come valori pari a 0, e questo in alcuni casi potrebbe andare bene, ma in altri potrebbe andare a
compromettere i risultati. Nel caso in cui si riscontrasse che i dati mancano secondo uno schema preciso è
necessario che questi vengano trattati con attenzione. Diventa necessario fare una verifica puntuale del modo
in cui questi sono associati alle altre variabili. In alcuni casi è possibile che sia l’algoritmo di Machine Learning
a trovare la migliore soluzione per i dati mancanti, partendo dai dati che ha già appreso. Nel caso in cui i dati
manchino in maniera casuale si possono integrare valori vuoti affinché siano le altre variabili a fornire
suggerimenti riguardo agli stessi. Si possono implementare strategie diverse per gestire i valori mancanti nelle
feature quantitativi e qualitativi. Per le feature qualitative, anche se espressi in numeri, è necessario
comprendere a quali concetti fanno riferimento dal momento che rappresentano valori arbitrari. Per le feature
quantitative, espresse in numeri e che fanno riferimento a dei numeri, è possibile fare una media (o una
mediana) dei valori simili e sostituire questo risultato con i dati mancati. È particolarmente utile quando i dati
mancanti sono casuali. Questo approccio non è sempre il più adatto. Nel caso degli alberi di decisione è più
conveniente sostituire i valori mancanti con un valore esterno a quello del normale range della feature, mentre
con i modelli di regressione è più utile sostituire i valori mancanti con 0. Da questo si può comprendere quanto
sia importante, per non dire fondamentale, conoscere nel dettaglio la definizione del problema e il modo con

21
il quale risolverlo, fin dall’inizio. Nei linguaggi di programmazione come Python i dati mancanti vengono
rappresentati mediante la struttura dati ndarray del pacchetto NumPY e sono contrassegnati dal valore NaN.
Questo li rende facilmente identificabili ed è possibile farsi un’idea visiva della quantità di dati mancanti.
Quando si ritiene che l’algoritmo possa andare ad interferire con l’addestramento dell’algoritmo è preferibile
rimuoverlo per non interferire con l’apprendimento.
L’algoritmo di Machine Learning non ha bisogno di conoscere a priori la distribuzione16 dei dati che vengono
inseriti ma è capace di apprenderla direttamente dai dati che utilizza. Sebbene, nella statistica, la maggior parte
delle distribuzioni siano di tipo normale, non è mai necessario, nel Machine Learning, trasformare un’effettiva
distribuzione affinché somigli a una distribuzione normale. Questi algoritmi sono in grado di trovare
autonomamente il modo di gestire qualsiasi tipo di distribuzione presente nelle feature. Nei casi in cui si decida
di trasformare la distribuzione, le motivazioni devono essere prese per ridurre il costo e per migliorare
l’efficienza dell’algoritmo. È possibile modificare le distribuzioni per ridurre la distanza eccessiva di alcuni
valori dal valore medio, e per ottimizzare il processo, andando ad evitare che questi valori vadano a
compromettere la soluzione. Nei casi in cui gli algoritmi siano sensibili al numero di valori processati è
possibile ridimensionare la distribuzione. Per fare questo è vengono utilizzate la standardizzazione statistica
oppure la trasformazione max-min.
Quando si accede ad un dataset non sempre i dati sono distribuiti in delle feature utilizzabili nell’algoritmo di
Machine Learning. In questi casi è possibile andare a creare delle feature a partire dai dati grezzi che si hanno
a disposizione. Negli algoritmi di Machine Learning è molto difficile andare a collegare con precisione la
risposta alle feature che vengono utilizzate, dal momento che non è sempre possibile mappare la risposta
utilizzando le informazioni a disposizione. L’algoritmo non è in grado di imparare nella maniera corretta a
causa di alcuni errori. La creazione di nuove feature è eseguita dal programmatore tramite la combinazione
delle feature esistenti. Vengono abbinate in maniera migliore, per l’algoritmo specifico, in modo da renderle
più efficienti. Questo implica la perfetta comprensione del problema che si vuole andare a risolvere e che si
conoscano dettagliatamente i dati da inserire. Oltre ad aggiungere feature è anche possibile andare a
ridimensionare il numero di feature da implementare nell’algoritmo. È possibile che alcune nuove feature
vengano create in maniera automatica, tramite l’espansione polinomiale. Con questo approccio si vengono a
creare automaticamente delle interazioni tra le feature, cioè delle moltiplicazioni che vanno a creare delle
potenze. Questo tipo di interazione permette di tenere traccia del modo nel quale le feature tendono a
comportarsi, nel loro complesso, andando a mappare le relazioni complesse che si generano. La mappatura
permette di trovare suggerimenti per la rilevazione di situazioni particolari. Le elevazioni a potenza sono utili
perché generano relazioni non lineari tra la risposta e le feature. Questo metodo è utilizzato quando si cerca di
vedere la correlazione tra due feature. Se si fa riferimento all’apprezzamento di un macchina, considerando
solo il rumore e il prezzo, si potrebbero combinare questi due elementi per capire quale delle macchine
esaminate è una macchina sportiva, e dato che questo è l’unico tipo di macchine nelle quali è piacevole un

16
In statistica, definita come la tabella di valori o di funzioni matematiche che collega i valori di una variabile alla probabilità che
essi si presentino.

22
elevato rumore, si riuscirebbe a sfruttare in maniera migliore le informazioni a disposizione, tramite
l’interazione tra le stesse. Conoscere in anticipo determinate dinamiche aiuta a creare le feature migliori da
implementare nell’algoritmo. Nel caso in cui non si conoscano a priori determinate dinamiche, sarà
l’espansione polinomiale a generare automaticamente alcune feature perché, dato un determinato ordine, il
software andrà a creare delle interazioni e delle potenze dell’ordine. A seconda della grandezza dell’ordine
saranno create un determinato numero di nuove feature, e naturalmente, per ordini maggiori verranno create
più feature. Le potenze crescono in modo lineare, quindi, all’aumentare dell’ordine si genererà solo una nuova
feature per ogni feature originale. Le interazioni aumentano in base alle combinazioni delle feature fino al
raggiungimento del numero dell’ordine.
Nel Machine Learning l’ideale sarebbe che i dati non siano perfettamente correlati, ma che lo siano solo
parzialmente. Purtroppo molti dati sono correlati tra di loro portando delle ridondanze informazioni all’interno
dell’algoritmo. Nel caso in cui le informazioni contenute siano esattamente le stesse si ha una collinearità
perfetta, mentre si ha una multicollinearità con n variabili coinvolte, se le informazioni sono simili ma non
identiche. Esistono tre tipi di feature. Feature con varianza unica, nei quali l’informazione è contenuta solo in
una feature, feature con varianza condivisa, nei quali c’è una relazioni di causale tra le informazioni delle
feature, e infine feature con una componente di rumore casuale, che contengono errori che generano una
correlazione. Questi tre tipi di feature non sono sempre distinguibili. Si può cercare di ridurre la ridondanza
andando a fondere insieme delle informazioni e creando medie in modo tale da rendere le feature più piccole.
Può essere usata la tecnica dell’analisi delle componenti principali (PCA) con la quale è possibile ricevere in
input un dataset in modo tale da restituire un dataset ricostruito con tutte le componenti prive di correlazioni e
con le componenti principali all’inizio. Per di più, viene creato un report della correlazione tra le feature
andando a capire quali siano i dati che esprimano maggiormente le informazioni utili. Utilizzare questo tipi di
dati può essere molto utile perché il consumo di tempo di calcolo e di memoria vengono notevolmente ridotti.
Viene ridotta la ridondanza dei dati assicurando una maggiore stabilità dei risultati.
Durante lo studio dei dati possono emergere dati che non ci si aspetterebbe di vedere. Questi tipi di dati possono
essere dati anomali, se si ha la certezza della loro inesattezza, oppure possono essere novità, cioè che sono dati
inconsueti ma legittimi. Alcune anomalie sono causate dall’eccesiva rarità del dato che li fa apparire come non
possibili. Questo tipo di dati sono problematici durante l’apprendimento perché sono difficili da comprendere
per l’algoritmo che dovrebbe andare a riconsiderare i dati che ha appreso fino a quel momento. Questo
potrebbe portare l’adattamento dell’apprendimento verso un valore anomalo, differenziando di molto l’output
dal valore atteso. Non tutti gli algoritmi di Machine Learning sono così sensibili ma è comunque utile
verificare fin da subito i dati e permettere all’algoritmo di dare maggior peso ai dati che si presentano con
maggiore frequenza. Per verificare quali dati siano anomali è possibile creare dei box plot che, grazie allo
scarto interquadratico, calcolano un range dal 25% al 75% percentile delle feature nei quali sono contenuti la
maggior parte dei dati centrali e permettendo di notare maggiormente i dati anomali. È importante tenere a
mente che non si riusciranno mai a trovare tutti i dati anomali, ma è comunque utile ridurli al minimo. Oltre a

23
considerare i box plot può essere utile creare grafici a dispersione per avere una visione immediata della
distribuzione dei dati.
Una grande quantità di dati è estremamente utile all’apprendimento degli algoritmi di Machine Learning
perché, con problemi di variabilità delle stime, i dati specifici influenzano notevolmente il risultato. Inoltre un
gran numero di esempi permette di ridurre le ambiguità che si potrebbe generare quando l’algoritmo va a
prendere una decisione. Naturalmente non tutti i dati del dataset devono essere utilizzati per l’algoritmo, ma
vanno selezionati, e all’occorrenza modificati, per essere adattati al problema da risolvere. Va trovato il giusto
trade-off tra quantità e qualità dei dati inseriti.

2.4 Tipi di apprendimento:


Alla base dell’apprendimento c’è l’idea che le percezioni non debbano essere usare solo per decidere quale
azione intraprendere, ma anche per migliorare la capacità dell’agente, in modo tale che possa apprendere
automaticamente dalle proprie interazioni con il mondo e con i suoi stessi processi decisionali. Un agente è in
grado di apprendere quando contiene un elemento esecutivo che in grado di decidere quali azioni debbano
essere intraprese e abbia un elemento di apprendimento che vada a modificare l’elemento esecutivo al fine di
ottenere decisioni migliori. L’apprendimento è influenzato dalle componenti dell’elemento esecutivo apprese,
dai feedback recepiti dopo il compimento delle diverse azioni, e dalla tipologia di rappresentazione utilizzata.
Le modalità con cui il Machine Learning permette agli algoritmi di apprendere, attraverso i dati, sono
classificate in diverse categorie, caratterizzate dal tipo di feedback su cui si basa il sistema di apprendimento.
La categoria di apprendimento che si intende utilizzare nel problema specifico va decisa a priori in modo tale
da trovare la soluzione migliore per lo stesso. Può essere utile valutare la robustezza, cioè l’abilità
dell’algoritmo di fare previsioni corrette anche in presenza di dati mancanti, la scalabilità, cioè l’efficienza
dell’algoritmo in caso di piccoli o grandi insiemi di dati, e l’interpretabilità, cioè la possibilità di assegnare un
risultato più soggettivo che oggettivo.
La categoria di apprendimento più utilizzata è l’apprendimento supervisionato (supervised learning) nel quale
vengono presentati i dati di input e gli output che dovrebbe generare, con lo scopo di apprendere una regola
generale in grado di mappare la relazione tra gli stessi. Con questo tipo di apprendimento è possibile dare da
input determinate immagini rappresentati un animale, e in alcune di esse porre l’etichetta dell’elefante, così
da far apprendere all’algoritmo la correlazione tra le caratteristiche dell’elefante con l’immagine contenente
lo stesso. Questo è fatto in modo tale che, successivamente, l’algoritmo sia in grado di riconoscerlo, dato
l’input di un’immagine contenente un elefante. L’algoritmo impara a riconoscere un determinato pattern per
capire la correlazione tra l’immagine e l’etichetta assegnata, per poi dedurre una regola generale con la quale
riconoscere se nei successivi dati sussista la stessa correlazione. Per usare l’apprendimento supervisionato è
necessario avere dati con output noti. Nel caso di ambienti completamente osservabili, l’agente ha la possibilità
di vedere quali effetti hanno le proprie azioni e può utilizzare il metodo di apprendimento supervisionato per
imparare a predirli. Se l’ambiente dovesse essere non completamente osservabile, gli effetti immediati
potrebbero essere invisibili.

24
Una seconda categoria di apprendimento è l’apprendimento non supervisionato (unsupervised learning) nel
quale l’algoritmo deve imparare a riconoscere pattern nell’input senza che sia data nessuna indicazione
specifica dei valori in uscita. Lo scopo è quello di apprendere in autonomia la struttura che possiedono i dati
in ingresso. I risultati sono influenzabili dalle decisioni su quali dati inserire e dall’ordine con il quale vengono
inseriti. Questo di approccio va a ristrutturare i dati in maniera diversa, creando classi di dati più utili per le
analisi successive, e permettendo di scoprire nuovi significati nei dati che prima non erano stati presi in
considerazione. Un agente che è in grado di apprendere in modo totalmente non supervisionato non è in grado
di imparare cosa fare, dal momento che non possiede informazioni su cosa costituisce un’azione corretta o uno
stato desiderabile al quale arrivare. L’apprendimento non supervisionato è usato per gestire problemi di
clustering andando a trovare gruppi di dati in base alle caratteristiche che hanno in comune,. In questo modo
si vengono a creare dei raggruppamenti di dati, chiamati cluster. Questo approccio è, anche, utilizzato per
l’association learning, cioè per trovare regole associative tra i dati inseriti.
Non è sempre consigliabile utilizzare gli approcci di apprendimento in maniera separata. È possibile utilizzare
l’approccio semi-supervisionato (semi-supervised learning) nel quale si combinano le caratteristiche
dell’apprendimento supervisionato e non supervisionato. In un primo momento si utilizza l’approccio
supervisionato andando a fornire gli input con l’output associato, e successivamente si inseriscono altri input,
simili, senza l’output di riferimento. Gli input e gli output inseriti forniscono il modello generale dal quale è
possibile estrapolare gli output degli input rimanenti. Si può utilizzare l’apprendimento per trasferimento
(transfer learning) trasferendo la conoscenza creata per affrontare un determinato problema, per usarla
nell’affrontare un problema simile. Il vantaggio che si ha dal riutilizzo della conoscenza è notevole, anche se
quest’approccio non è sempre praticabile perché molti algoritmi di Machine Learning devono essere adattati
al caso specifico.
L’ultima categoria di apprendimento è l’apprendimento con rinforzo (reinforcement learning) che interagisce
con l’ambiente dinamico al fine di raggiungere un determinato obiettivo. Gli algoritmi agiscono in base alle
ricompense che gli vengono date in funzione degli obiettivi raggiunti, senza le quali non sarebbe possibile
capire cosa è auspicabile fare e cosa è da evitare, e l’algoritmo non potrebbe prendere decisioni. Il
reinforcement learning viene utilizzato quando l’algoritmo deve prendere delle decisioni da cui discendono
delle conseguenze. L’algoritmo non è semplicemente descrittivo ma è prescrittivo, cioè indica cosa bisogna
fare. È un tipo di apprendimento molto innovativo nel Machine Learning, ed è predisposto ad imparare il
funzionamento dell’ambiente. Una questione molto importante è la predisposizione dell’algoritmo ad
interpretare il feedback come un rinforzo e non come un nuovo input. L’obiettivo dell’apprendimento con
rinforzo è quello di utilizzare i feedback ricevuti al fine di ricostruire una politica ottima, cioè massimizzare
la ricompensa totale attesa. Con questo tipo di approccio si riesce ad addestrare un algoritmo senza definire
delle regole che vengono dedotte a seconda dei feedback ricevuti. È un approccio utilizzato in domini
complessi perché è l’unico modo per addestrare un programma e ottenere buone prestazioni.
Nell’apprendimento con rinforzo si possono distinguere l’apprendimento passivo e l’apprendimento attivo.
Nell’apprendimento passivo l’agente ha una politica fissa con il compito di apprendere le utilità delle coppie

25
stato-azione, e in alcuni casi è necessario che apprenda anche il modello dell’ambiente. Nell’apprendimento
attivo l’agente deve imparare cosa deve fare, e tramite l’esplorazione, deve sperimentare come comportarsi,
dato l’ambiente in cui è inserito. È possibile implementare questa strategia facendo giocare l’algoritmo ad un
gioco senza fornirgli le regole. Ogni volta che compie un’azione che è consentita dalle regole, o che è utile,
gli verrebbe conferito un feedback positivo, altrimenti uno negativo. Questo permetterebbe all’algoritmo di
imparare le mosse che può e che è meglio fare durante la partita, e imparerebbe a giocare senza che gli siano
date le regole del gioco. L’agente deve imparare a comportarsi con successo nell’ambiente in cui è posto senza
conoscere niente ma apprendendo dai feedback ricevuti.
Gli algoritmi di Machine Learning rispondono tutti alla stessa logica, cioè che si può rappresentare la realtà
mediante una funzione matematica che l’algoritmo non conosce all’inizio, ma che è in grado di ricavare dopo
l’analisi dei dati. Quindi, secondo l’approccio di Machine Learning, la realtà è esprimibile secondo funzioni
matematiche. La capacità cognitive dell’algoritmo sono costituite tramite lo sviluppo di una formula
matematica che è in grado di comprendere le feature fornite per arrivare ad una funzione che riseca a
distinguere le stesse trovando anche una correlazione.
L’apprendimento del Machine Learning può avere diversi approcci, ma non sempre questi devono essere usati
separatamente. Tramite l’approccio dell’ensemble learning si riesce a selezionare una collezione di ipotesi e a
combinare le predizioni, al fine di avere un’unica soluzione. Questo approccio permette di ridurre la probabilità
che si verifichi un errore, dato che questo si dovrebbe presentare in diversi modelli. Nonostante questo, non è
possibile eliminare la totalità degli errori dato che la base di dati è uguale per tutti gli approcci. Questo
approccio diventa molto utile quando le ipotesi si differenziano tra di loro, anche di poco, in modo tale da
ridurre la correlazione tra gli errori. Il metodo di apprendimento dell’ensemble learning fornisce un modo di
apprendere che esprime molte ipotesi senza aggiungere molta complessità. Questo approccio può richiedere
molto tempo per essere sviluppato ma è in grado di ottenere ottimi risultati.
Gli algoritmi di Machine Learning possono anche essere utilizzati tramite l’Application Programming
Interface (API), cioè tramite set di definizioni e di protocolli con i quali vengono realizzati e integrati software
applicativi. Questo permette a prodotti e servizi di comunicare con altri prodotti e servizi senza che sapere
come vengono implementati, semplificandone lo sviluppo. In questo modo vengono risparmiati tempo e
denaro. Questa tecnologia permette l’elaborazione in cloud, permettendo una maggiore potenza
computazionale. I servizi di API vengono offerti dalle grandi aziende come Amazon AWS Machine Learning
e Google Cloud AI. La disponibilità di una conoscenza pregressa può essere necessaria per la progettazione
dei sistemi in grado di apprendere.
Quando si crea un algoritmo in grado di apprendere bisogna chiedersi come si possa sapere se questo produrrà
una teoria capace di predire correttamente il futuro, a partire dai dati inseriti. Secondo la teoria dell’approccio
computazionale, ogni ipotesi gravemente erronea sarà trovata, quasi sicuramente, dopo un determinato numero
di esempi non troppo elevato perché andrà a sbagliare qualche predizione. Questo porta alla conclusione che
è improbabile che un’ipotesi addestrata con un elevato numero di esempi sia gravemente erronea e quindi sarà
probabilmente approssimativamente corretta (PAC).

26
Creare algoritmi di Machine Learning richiede un bilanciamento tra complessità, precisione, quantità di dati,
interazione e facilità d’utilizzo.

2.5 Training, validazione e ottimizzazione:


Compresa l’importanza della pre-elaborazione dei dati e la scelta dell’apprendimento al caso specifico, è
necessario andare ad addestrare l’algoritmo affinché riesca a funzionare anche con nuovi dati, per poi valutarlo
in base a risultati ottenuti nei test e, in caso di necessità, andare ad ottimizzarlo per produrre risultati migliori.
Si devo avere feature sia note, sia feature indipendenti che devono essere predette, cioè i labeled data. Nella
fase di training si deve costruire e adattare al meglio l’algoritmo predittivo in modo di rendere la funzione
ottimale.
Si parte dal presupposto che i dati utilizzati per l’addestramento siano dei campioni, perché è molto difficile,
se non impossibile, che questi dati siano tutti quelli che è possibile ottenere. Detto questo appare ovvio quanto
sia fondamentale fare la selezione dei dati in maniera accurata. Affinché i dati inseriti durante la fase di
addestramento e la fase di verifica siano parte dello stesso campione, si devono a creare due gruppi coppie di
input e output, cioè si va a definire un training set con dati con i quali viene addestrato l’algoritmo, e un test
set con i dati che saranno utilizzati, in seguito, per valutare la prestazione dell’algoritmo. Spesso vengono usati
l’80% dei dati per il training set e il restante 20% per i test set. Questa distinzione è fatta anche perché se
venissero utilizzati tutti i dati a disposizione potrebbe essere difficile e costoso trovare altri dati per verificare
la qualità dell’addestramento dell’algoritmo. È importante che questi gruppi coprano gli stessi insiemi del
campione, altrimenti si andrebbero a creare degli squilibri che potrebbero compromettere la risoluzione del
problema. I dati non rappresentativi andrebbero a creare una mappatura diversa sulla risposta rispetto a quella
creata durante l’addestramento. Buona prassi è selezionare in maniera casuale dei dati da inserire nei diversi
gruppi in modo tale da non permettere al programmatore di influenzare il risultato. Questo è dato anche dal
presupposto che i dati futuri non differiscano in maniera sostanziale dai dati utilizzati in precedenza. Quando
si cerca di addestrare l’algoritmo possono sorgere alcune complicazioni. Nel caso in cui si sia scelto un
modello troppo semplice si otterrebbe un underfitting (sotto-apprendimento), nel quale il modello non è in
grado di comprendere la realtà. Nel caso opposto, nel quale sia scelto un modello troppo complicato, si
otterrebbe un overfitting (sovra-apprendimento), nel quale il modello andrebbe a comprendere una versione
distorta della realtà. Questo accade perché il modello non è flessibile e quindi non riesce a generalizzare ciò
che ha appreso. Quando i dati non sono distribuiti in maniera lineare si presentano errori nella rappresentazione
lineare, mentre quando sono distribuiti secondo una curva, si ha una mappatura corretta in determinati punti,
ma errata in altri. Questo non significa che un algoritmo semplice sia sempre peggiore di un algoritmo
complesso. All’aumentare dei dati inseriti aumenta la probabilità che alcuni di essi siano irrilevanti e che
vadano a creare problemi con il training, anche perché l’algoritmo potrebbe memorizzare gli esempi come
vengono presentati e questo ne ridurrebbe notevolmente la flessibilità. Durante tutte le fasi è utile controllare
quello che sta apprendendo l’algoritmo con i dati di training sia coerente con quello che dovrà andare a
verificare con i dati di test.

27
Alla fase di training viene affiancato il processo di validation del modello. Si affianca la modifica degli
Hyperparamter alla valutazione dei coefficienti dell’algoritmo. Questa fase permette di ottenere migliori
performance dall’algoritmo, andando a intervenire sui bias e sulla varianza. Un bias è una distorsione dovuta
all’errore sistematico che non dipende dalla casualità dei dati. Alcuni tipi di bias possono essere di selezione,
di partecipazione o di sopravvivenza. Nel problema di varianza si ha una variabilità della predizione del
modello che è sensibile alla casualità dei dati. Un modello con bias elevati semplifica eccessivamente i dati di
training e porta ad errori nei dati di test, mentre un modello con varianza elevata presta troppa attenzione ai
dati di training e non riesce a generalizzare i dati di test. Se la varianza è troppo elevata si ha un’eccessiva
attenzione ai dati di training set, che va a scapito della flessibilità dell’algoritmo. Purtroppo non è sempre
facile identificare o evitare che un bias si presenti. Per questa ragione potrebbe sempre sussistere un certo
grado di incertezza nei risultati. Il processo di validation set prevede di utilizzare una terza categoria di dati,
oltre ai training e test set, che vada a comprendere l’andamento dell’addestramento dell’algoritmo in maniera
preliminare. Se, durante questa fase, viene individuato un aumento della percentuale di errore dell’algoritmo
si ottine un arresto anticipato. Questo arresto indica che il modello non sta generalizzando i dati in maniera
corretta ed è opportuno fermarsi con il training prima che l’errore diventi troppo elevato. Una buona prassi è
di fare il calcolo della validation ogni dieci cicli di training in modo tale da non rallentare troppo il processo.
Per gestire l’overfitting è possibile anche usare la cross validation. Questa tecnica prevede la suddivisione dei
dati in molteplici mini test set con i quali andare a perfezionare il modello. Con l’approccio del k-fold standard
si creano k sottoinsiemi distinti, scelti in modo casuale, e tra questi vengono utilizzati sottoinsiemi da 1 a k-1
per il training set. Il sottoinsieme k è utilizzato come test set al fine di valutare l’errore. Si procede poi ad
inserire il sottoinsieme k nel training set e viene scelto un altro sottoinsieme da utilizzare nel test set. Questo
procedimento è reiterato finché ogni sottoinsieme non è usato come test set una volta. Vengono calcolati
l’errore complessivo, come media dei k errori, e l’errore standard delle stime. L’approccio della cross
validation è molto utile se i dati a disposizione non possiedono un ordine da tenere in considerazione. Come
alternativa alla cross validation del tipo k-fold standard, è possibile utilizzare la leave-one-out (LOOCV) che
pone il numero di fold uguale al numero di esempi, n, oppure il bootstrapping, che va ad approssimare la
distribuzione in n campioni, che sono estratti con ripetizione.
La valutazione è molto importante nel Machine Learning ed è fatta sulla capacità di generalizzare
dell’algoritmo. La generalizzazione dei dati di training è la capacità che ha l’algoritmo di Machine Learning
di apprendere le regole che dovranno essere applicate ai dati di test. I dati inseriti successivamente
all’apprendimento sono essenziali perché permettono di capire fino a che punto l’algoritmo sia riuscito ad
apprendere. La valutazione va a identificare i punti di forza e di debolezza dell’algoritmo permettendo di
intervenire. È più facile intervenire nel caso di supervised learning dato che si conoscono già gli output che
devono essere generati, ma è possibile anche nel unsupervised learning, perché si può ragionare sul risultato
specifico che deve essere trovato. La valutazione è un processo che deve essere fatto costantemente al fine di
poter prendere gli opportuni provvedimenti prima che l’errore diventi troppo grande per essere gestito. La
valutazione ha modalità differenti a seconda del problema da risolvere. Se si decidesse di usare più modelli è

28
necessario assicurarsi che vengano misurati sullo stesso insieme di dati. Il programmatore può ricorrere a
librerie dei linguaggi di programmazione dato che queste forniscono tutti gli indicatori principali. Durante la
valutazione delle prestazioni di un algoritmo di apprendimento si deve evitare di commettere un errore di
peeking. Il peeking consiste nel fatto che l’algoritmo sia già a conoscenza dei dati del test prima di effettuare
la verifica delle predizioni delle regole apprese. Si commette un peeking nel caso in cui vengono generate
diverse ipotesi con vari configurazioni. Le prestazioni vengono poi misurate sull’insieme di test e si sceglie la
misurazione che fornisce la predizione di qualità migliore. Il peeking sta nel fatto che l’ipotesi sia stata
selezionata in base alle prestazioni dell’insieme test. Per evitare questo problema, quando si confrontato le
ipotesi su un dato insieme, è necessario usare un nuovo insieme di test per misurare le prestazioni dell’ipotesi
selezionata. È necessario trovare un compromesso tra la complessità della ricerca di ipotesi semplici e
consistenti all’interno dello spazio delle ipotesi e l’espressività di tale spazio. Gli algoritmi devono trovare il
giusto bilanciamento tra l’eccessiva semplicità, che porta ad errori di bias, e l’eccessiva complessità, che porta
a errori di varianza. A seconda del caso specifico può essere più utile creare un algoritmo più semplice o più
complesso. A priori non c’è una soluzione univoca per tutti i problemi.
Un algoritmo di apprendimento è considerato ottimo se riesce a produrre ipotesti che predicono con
accuratezza la classificazione di esempi che non ha mai incontrato. Applicate le metodologie di valutazione
dell’algoritmo è possibile creare delle curve di apprendimento. La curva di apprendimento è data da un insieme
di dati elaborati per fornire la qualità media della predizione in funzione delle dimensioni dell’insieme di
addestramento. Questi valori rappresentano gli errori predittivi e la metrica è valutata attraverso la cross
validation. Le curve di apprendimento, se influenzate da bias o dalla varianza, sono molto diverse tra loro. Nel
caso in cui siano presenti dei bias, le curve tendono ad avere un punto di convergenza con un errore molto alto
ed è necessario andare ad aumentare il numero delle feature. Nel caso in cui sia presente un’elevata varianza
si deve andare a ridurre il numero delle feature. Nella figura 2 è possibile vedere graficamente l’influenza dei
bias (a sinistra) e della varianza (a destra) sulle curve di apprendimento.

Figura 2 - Curve di apprendimento influenzate da bias (a sinistra) e da varianza (a destra).


Fonte: libro Intelligenza Artificiale for dummies di Massaron Luca e Mueller John Paul

Nei linguaggio di programmazione Python è possibile creare curve di apprendimento tramite il package Scikit-
learn utilizzando la funzione learning_curve che va ad effettuare tutti i calcoli necessari per la produzione del
grafico.

29
Durante la fase di ottimizzazione l’algoritmo va a cercare le varianti possibili della combinazione tra i
parametri, al fine di trovare la mappatura più corretta tra le feature e le classi. Lo spazio delle ipotesi
rappresenta l’insieme di tutte le possibili funzioni. Il classificatore è chiamato ipotesi dal momento che
l’algoritmo ha impostato i parametri al fine di replicare la funzione obiettivo ed è predisposto a elaborare le
classificazioni. Lo spazio delle ipotesi complessivo deve contenere la funzione obiettivo. Nel caso di problemi
di classificazione, lo spazio delle ipotesi deve contenere le varianti dei parametri degli algoritmi di Machine
Learning per mappare la funzione obiettivo che non è nota. Se nei dati è presente del rumore, cioè sono presenti
fattori esterni ed errori che distorcono il valore delle feature, si potrebbero creare dei problemi nella mappatura
della funzione obiettivo. Tuttavia se l’algoritmo di Machine Learning è ottimo, riesce a distinguere i segnali
che generano il rumore e a isolarli. Quando si valuta se un algoritmo è ottimo o meno si può prendere in
considerazione la funzione di costo, che va a misurare la capacità di mappatura della funzione obiettivo e che
permette di valutare le performance rispetto a un problema, anche dopo che l’ottimizzazione è terminata. La
funzione di costo mette a confronto l’esito reale con la previsione dell’algoritmo. Questo viene fatto per capire
il livello di errore nell’algoritmo. Dato che la funzione di costo è una funziona matematica, esprime il livello
di errore in termini numerici. La funzione di costo ha l’obiettivo di trasmettere all’algoritmo ciò che è utile
per la risoluzione del problema ed è necessario che sia scelta in maniera accurata a seconda del caso specifico.
Dalla funzione di costo dipende la capacità dell’algoritmo di effettuare previsioni corrette e di gestire il
problema da risolvere. A seconda dell’elasticità dell’algoritmo è possibile che esitano più funzioni di costo. In
alcuni casi è conveniente lavorare direttamente sulla funzione di costo più adatta alla risoluzione del problema,
e selezionare successivamente gli algoritmi per la sua ottimizzazione. L’ottimizzazione si ottiene con il
progressivo miglioramento della risposta dell’algoritmo rispetto alla funzione di costo. È conveniente
modificare i parametri fino a quando si ottiene un miglioramento. Nel caso in cui si vadano a peggiorare i
risultati è bene finire con l’ottimizzazione. Esistono anche altri approcci di ottimizzazione. Nel caso in cui si
utilizzi l’algoritmo di discesa del gradiente si va a formulare in maniera casuale una soluzione. Dopodiché si
procede con le interazioni, andando di volta in volta a modificare i parametri, al fine di ridurre l’errore. Questo
metodo può richiedere notevoli quantità di tempo per ottimizzare la soluzione. In alcune soluzioni l’algoritmo
può giungere a livelli intermedi di ottimizzazione, facendo credere di aver raggiunto l’obiettivo. È quindi
necessario capire quando si arriva ad un minimo locale. Questo può essere fatto ripetendo l’ottimizzazione più
volte, dall’inizio e in maniera casuale, evitando il rischio di rimanere bloccati nel minimo locale. Un altro
metodo per ottimizzare l’algoritmo è lo Stochastic Gradient Decrescent (SGD), che ha l’obiettivo di
minimizzare la funzione di costo dell’algoritmo tramite il Learning Rate. Maggiore è il Learning Rate più
velocemente si raggiungerà l’ottimizzazione della funzione, ma si ha il rischio di essere poco precisi. Con un
Learning Rate basso avremo una minor velocità di ottimizzazione ma sarà più probabile trovare il minimo
reale. Tramite le librerie di Python è possibile importare l’SGD.
Gli algoritmi di Machine Learning complessi sono più sensibili alla varianza delle stime, perché richiedono
molte scelte dovute alla presenza di molti parametri. Un’eccessiva regolazione di questi parametri può portare
alla rilevazione di falsi segnali. Mentre, negli algoritmi troppo semplici si è esposti alla presenza di bias. Nel

30
caso di funzioni non deterministiche, è necessario accettare un inevitabile compromesso tra la complessità
dell’ipotesi e il grado di corrispondenza con i dati. Un problema di apprendimento è realizzabile solo nel caso
in cui lo spazio delle ipotesi contiene una funzione reale, ma questa non è sempre nota e comporta che non sia
sempre possibile se un dato problema è determinabile. Per quanto usare uno spazio di ipotesi più amplio
possibile possa rendere più probabile la determinazione di un problema, può non essere sempre la soluzione
ottimale.

2.6 Categorie di soluzioni:


Esistono varie tipologie di soluzioni applicabili agli algoritmi di Machine Learning che possono costituire il
modello ottimale nel caso specifico. È necessario comprendere le principali categorie di soluzioni e scegliere
la più adatta. Le principali categorie sono la classificazione, che è in grado risolvere il problema di
assegnazione di un’etichetta per descrivere il contenuto di un’immagine e la regressione, che è in grado di
risolvere il problema di stima della quantità numerica date alcune caratteristiche. È molto importante
individuare le caratteristiche più importanti del problema e decidere di usare una determinata categoria di
soluzione piuttosto che un'altra in base al suo funzionamento. Si potrebbe anche decidere di procedere per
tentativi ed errori provando più categorie di soluzioni per poi confrontarle e procedere con la categoria che
fornisce la soluzione ottimale rispetto alle altre.
Quando viene utilizzata la categoria di soluzioni della regressione, si pone l’obiettivo di predire una quantità,
che potrebbe essere un valore numerico che potrebbe assumere valori infiniti. La regressione cerca di
prevedere un valore, identificabile come il target value. A partire da un alcune variabili indipendenti si cerca
di predire una variabile dipendente. Se la relazione tra le variabili, dipendenti e indipendenti, è lineare si ha la
regressione lineare. Graficamente è possibile rappresentare le osservazioni tramite dei punti, e una retta che
indica la funzione lineare utilizzata per predire i valori. La funzione della retta è:
𝑌 = 𝑎 + 𝑏𝑋
in cui a rappresenta il valore che assume la variabile nel caso in cui la retta intersechi l’asse delle ordinate,
quindi con X=0, mentre b è dipendente dalla pendenza della retta. Nella figura 3 è possibile vedere un esempio
di regressione lineare.

Figura 3 – Regressione lineare.


Fonte: libro Machine Learning. Il sesto chakra dell’Intelligenza Artificiale di Gosmar Diego

Un problema di regressione lineare va individuare coppie di parametri ottimali che minimizzano, tramite la
funzione di costo, lo scarto tra i valori previsti dall’algoritmo e i valori reali misurati. Un funzione di costo

31
molto utilizzata è il Least Squared Error (LSE), che tramite la rilevazione del fitting17 è in grado di adattare
l’algoritmo ai dati inseriti. Tramite i linguaggi di programmazione è possibile utilizzare la libreria fit(X,Y), che
va ad adattare il modello durante la fase di apprendimento grazie ai dati di training, e la libreria predict(X,Y),
che va a predire i valori in base alle nuove osservazioni che vengono inserite. I modelli di regressione possono
essere anche molto complessi. Nell’ambito della regressione lineare vengono individuati i parametri del valore
di probabilità (p-value) e il coefficiente di determinazione (R2). Nei modelli di regressione lineare si ha
l’obiettivo di massimizzare R2 e minimizzare il p-value. Il coefficiente di determinazione è utilizzato per
comprendere quanto una variazione di una feature è in grado di spiegare la variazione del valore predetto;
indica quanto una feature indipendente del modello sia rilevante. Il valore di probabilità è utilizzato per
descrivere la significatività aleatoria di un evento osservato; indica la probabilità di ottenere dei risultati che
siano equivalenti, in termini di probabilità, rispetto ai valori presi in esame. La regressione lineare non è l’unica
regressione esistente. Esistono anche modelli di regressione non lineare che sono più utili nel caso in cui la
distribuzione dei dati sia disomogenea. In questo tipo di modelli non è consigliabile calcolare R2 dato che non
è un parametro affidabile nel calcolare la rilevanza delle feature dato che all’aumentare di questo valore non
si ottiene sempre una performance migliore del modello. Non è consigliabile calcolare neanche il parametro
del p-value, data la complessità che ne risulterebbe. I modelli di regressione non lineare utilizzano altri
parametri per valutare l’affidabilità di un modello come gli intervalli di confidenza. Un modello di regressione
non lineare è rappresentato dalla regressione logistica che ha l’obiettivo di predire un valore probabilistico
assunto da uno dei due valori dicotomici della variabile. Questo modello è un modello regressivo perché stima
un valore di probabilità, ma va a risolvere un problema di classificazione. Il fitting di questo modello può
essere fatto dal metodo del Maximum Likelihood Estimator (MLE).
Quando viene utilizzata la categoria di soluzioni della classificazione, ci si pone l’obiettivo di predire una
categoria. La classificazione cerca di prevedere il Label che permette di categorizzare un insieme di elementi
in modo tale da ridurre l’entropia18 del dataset. Nel caso di problemi di classificazione binaria, cioè con
previsioni da dividere in sole due classi, si ha entropia nulla (0) quando tutte le osservazioni si trovano nella
stessa classe, qualunque essa sia, mentre si ha entropia massima (1) quando si ha una distribuzione identica
per entrambe classi. Un classificatore cerca di splittare il dataset in set di dati più piccoli e specifici al fine di
minimizzare l’entropia di ognuno di essi. Nel caso della classificazione è possibile ricorrere a diverse tecniche
come la k-nearest neighboard e la naive bayes. La tecnica di k-nearest neighboard è semplice da utilizzare e
ha l’obiettivo di raggruppare le osservazioni in base alla loro distanza. Il limite di questo modello è quello di
essere adeguato solo a soluzioni che richiedono la classificazione di dataset di dimensioni ristrette. Questo
accade perché per funzionare ha bisogno di confrontare la predizione con i dati noti e quindi per dataset di
dimensioni elevate impiegherebbe molto tempo per generare predizioni ed occuperebbe molta memoria. Non
è adatto a fare predizioni che servono nell’immediato. La tecnica di naive bayes fa parte dei classificatori
probabilistici. Gli algoritmi non considerano le correlazioni tra le feature fornite in input e ipotizzano che

17
Inteso come la capacità di adattamento del modello di regressione.
18
Livello di disordine all’interno del dataset, che va da 0 a 1.

32
queste siano indipendenti. Questo metodo introduce un certo numero di bias in modo tale da velocizzare
l’esecuzione e la qualità dei risultati probabilistici. Il modello naive bayes utilizza una classificazione
multinomiale quando le feature in input sono rappresentate da valori discreti, e va a calcolare la probabilità in
base a ogni feature, mentre utilizza una classificazione gaussiana quando gli input delle feature sono in grado
di assumere valori continui, andando a valutare la probabilità condizionata.
Gli alberi di decisione sono formati da una serie di nodi che contengono l’informazione e la trasferiscono
tramite archi. I nodi hanno uno e uno solo arco entrante e diversi archi uscenti. Nel caso in cui il nodo non
abbia archi entranti, si ha la radice, cioè il nodo posizionato più in alto rispetto agli altri, mentre si ha la foglia
nel caso in cui il nodo non abbia archi uscenti. Il percorso tra i vari nodi, senza percorrere cicli, è rappresentato
dal cammino, la cui lunghezza è data dalla sommatoria delle distanze dei nodi dalla radice. Anche nell’ambito
delle soluzioni di classificazione e regressione è possibile adottare gli alberi di decisione. Questo tipo di
algoritmi partono da un dataset di training in cui si conoscono gli input e gli output che devono essere generati.
I dati vengono rappresentati su un alberatura di decisione in cui ogni livello rappresenta le feature coinvolte e
le soglie di decisione. I parametri di ogni livello sono selezionati durante le fasi di training e testing. Il
problema degli alberi di decisione è il rischio di incorrere nell’overfitting. Se un albero di decisione ha molte
foglie rispetto alle osservazioni, è probabile che si sia adattato in maniera eccessiva ai dati particolari presenti
nel dataset. È possibile ricorrere al bagging per ridurre questo problema. Gli alberi di decisione sono utilizzati
per gestire i dati in quanto permettono la possibilità di seguire decisioni sul percorso tramite il valore di alcune
variabili.

2.7 Deep Learning:


Il Deep Learning19 è un’applicazione più specifica del Machine Learning che si basa sulla categoria di
soluzioni delle reti neurali. La differenza fondamentale tra questi due approcci è che il Deep Learning cerca
di replicare il funzionamento del cervello biologico tramite sistemi artificiali che sono in grado di apprendere
in modo profondo. Questo approccio ha l’obiettivo di creare un’intermediazione tra la capacità degli algoritmi
di prendere la decisione migliore, dati determinati input richiesti dallo stesso, e gli input a disposizione che
non sarebbero comprensibili ad algoritmi di Machine Learning. La base del funzionamento del Deep Learning
sono le reti neurali.
Le reti neurali, che si basano sull’imitazione del cervello umano, sono composte da neuroni artificiali20 che
vengono organizzati in una struttura interconnessa che permette il collegamento degli input e degli output dei
vari neuroni. Questo tipo di struttura permette ai neuroni di ricevere sia dati iniziali sia dati elaborati da altri
neuroni, a seconda del livello del neurone stesso. L’architettura della rete neurale artificiale prevede che i
neuroni siano disposti su diversi livelli, rendendo necessaria la disposizione del numero dei livelli (layer) e del

19
Il Deep Learning è traducibile in italiano con “Apprendimento Profondo”, intendendo profondo come a più livelli.
20
Inizialmente era stato sviluppato il percettrone, che era in grado di tracciare solo una semplice separazione degli input ed era
usato per distinguere due classi. Il percettrone non fu mai in grado di offrire brillanti soluzioni e fu sostituito dai neuroni agli inizi
degli anni 90’.

33
numero di neuroni per ogni livello. Nella figura 4 è possibile osservare l’architettura di una rete neurale con 4
layer composti da un numero di neuroni che va da 1 a 3.

Figura 4 – Architettura rete neurale.


Fonte: libro Machine Learning for dummies di Massaron Luca, Mueller John Paul

Le rete neurali utilizzano le funzioni di attivazione per arrivare ad un determinato output. Questa funzione si
basa sul fatto che i neuroni ricevano sempre un input ma senza generare sempre un output. Il rilascio del
segnale dipende dalla quantità dello stesso che viene ricevuto. Se l’input superasse una soglia predeterminata,
il neurone si attiverebbe permettendo la trasmissione dell’informazione, mentre, se la soglia non dovesse
essere superata, il neurone non si attiverebbe e di conseguenza non trasmetterebbe alcuna informazione. Il
blocco o il passaggio dell’informazione è una componente fondamentale per questo tipo di soluzioni. Una
volta attivato il neurone, questo non si limita a trasmettere l’informazione, ma la modifica in modo tale da
renderla più utile ai neuroni successivi. Le funzioni di attivazione permettono il filtraggio dei segnali e
consentono la selezione dei segnali rilevanti garantendo la non linearità dell’output, dato che sono in grado di
attenuare o accentuare, in maniera non proporzionale, i valori che predispongono. L’attivazione deve essere
non lineare. Considerando le reti neurali input feed-forward, i dati vengono orientati verso un’unica direzione,
quindi le vari connessioni collegano determinati livelli e non esistono connessioni di neuroni dello stesso
livello. Le informazioni sono sempre portate in avanti, mai indietro. Nel Deep Learning i dati possono passare
anche da uno strato all’altro contemporaneamente, con la regola di andare sempre in avanti. Nelle funzioni
ricorrenti vengono ripresi i dati output come dati in input. A priori non è possibile stabilire l’architettura
migliore per ogni problema, ma di volta in volta si deve andare a scegliere l’architettura ottimale che permetta
di creare il maggior numero di nuove feature composite in modo tale da ottenere le previsioni migliori.
Affinché le funzioni di attivazioni operino al meglio è consigliabile ridimensionare l’input di una rete neurale
utilizzando la standardizzazione statistica.
Nell’architettura delle reti neurali vanno anche decisi i pesi21 da attribuire a ciascun livello. Quando i pesi
vengono ridotti nel tempo, la rete andrà a farli attivare sempre di meno e quindi i dati trasmessi influenzeranno
sempre meno la previsione finale. Ogni livello va ad elaborare i valori presi dalle feature che sono stati
ponderati a seconda del peso delle connessioni da cui provengono. Per ogni livello deve essere superata una
determinata soglia che permette all’informazione di arrivare al livello successivo, fino ad arrivare all’ultimo
livello della rete neurale. I pesi permettono di creare nuove feature in forza dell’elaborazione degli input che
sono mescolati con le funzioni di attivazione. La backpropagation delle reti neurali permette alle stesse di
modificare i pesi dei livelli in base ai dati di input. Il processo ha bisogno di svariate interazioni e può

21
I pesi indicano la forza della connessione tra i neuroni della rete stessa.

34
richiedere diversi giorni. Negli ultimi anni le reti neurali sono riuscite a superare il problema della scomparsa
del gradiente, che si ha quanto viene applicata la backpropagation andando a perdere il segnale in modo rapido
e non permettendo più l’attivazione. Questo problema è dovuto alle moltiplicazioni concatenate, cioè le
moltiplicazioni di correzioni prossime allo zero che riducono notevolmente i valori risultanti. È necessario
ricorrere a potenti Unità di Elaborazione Grafica (GPU) per svolgere i calcoli che sono necessari alla soluzione
di questo tipo di problemi, permettendo di creare reti di dimensioni maggiori, nonché di addestrarle con un
quantitativo superiore di dati. L’unione dei meccanismi dei pesi e dell’attivazione delle reti neurali permette
all’algoritmo di apprendere delle funzioni target complesse che sono rappresentative della relazione tra le
feature e i risultati target.
Le reti neurali sono in grado di elaborare solamente informazioni numeriche continue, quindi le feature
qualitative devono essere elaborate in modo tale da creare un valore numerico continuo. Elaborando una
feature binaria, il neurone la considera come un numero generico e la trasforma in altri valori tramite
l’elaborazione delle diverse unità.
Le Reti Neurali Convoluzionali (CNN) sono un tipo di algoritmo di Deep Learning molto utilizzato al fine di
insegnare per astrazione alle macchine. Prima dell’avvento delle CNN la rete non riusciva a raggiungere
l’invarianza traslazionale22. L’immagine era trasformata prima di essere immessa nella rete neurale tramite un
riposizionamento e una ripulitura dei pixel per creare frammenti di informazioni elaborabili dalla rete neurale.
Nelle Reti Neurali Convoluzionali vengono ridimensionati i pixel dei dati di input. Il livello neurale, dove si
trova la convoluzione, riceve l’immagine in determinati frammenti e moltiplica il valore dei pixel per una
matrice di numeri preselezionata. L’operazione è sempre svolta al fine di adattare la convoluzione al problema
da risolvere. Quando i dati delle immagini sono filtrati da diverse convoluzioni, sono trasformati e assemblati
in pattern via via più complessi fino alla convoluzione dell’immagine di riferimento. L’approccio delle CNN
permette ai dati di subire trasformazioni sofisticate in modo tale da renderli ottimi per il problema specifico.
L’approccio delle CNN è particolarmente utile con la classificazione, con il rilevamento e con la
segmentazione delle immagini, ed è iniziato ad essere popolare da quando si hanno avuti sufficienti dati da
poter utilizzare. Il dropout è un nuovo tipo di regolarizzazione particolarmente efficace con le reti
convoluzionali profonde che va a rimuovere, temporaneamente e casualmente delle connessioni fra neuroni
dai calcoli della rete. In questo modo è possibile evitare che l’ottimizzazione nell’addestramento dipenda da
particolari connessioni che sono troppo specifiche del dataset di addestramento. Questo tipo di tecnologia non
è ancora sicura dal momento che l’aggiunta di un’immagine rumore specifica può andare ad inficiare sul
funzionamento dell’algoritmo e quindi sul risultato finale. Un altro punto a sfavore di questo approccio è
l’assenza di memoria.
Il Deep Learning permette di andare oltre la creazione di feature del Machine Learning, andando ad
implementare apprendimento delle feature. Questo è possibile grazie all’utilizzo di un grande quantitativo di
dati uniti ai diversi livelli utilizzati dalle reti neurali. Le reti neurali svolgono la funzione di filtraggio, di

22
L’invarianza traslazionale è la capacità di decifrare il numero di diverse condizioni in base alla dimensione, alla distorsione o
alla posizione dell’immagine.

35
processazione e di trasformazione dei dati in modo automatico. Il Deep Learning va a influenzare l’efficienza
della risoluzione dei problemi di Intelligenza Artificiale, soprattutto nei campi di riconoscimento delle
immagini e del linguaggio. Per fare questo si può ricorrere a diverse soluzioni a seconda del problema da
risolvere.
Nelle soluzioni di apprendimento online le reti neurali diventano più flessibili permettendo di apprendere
anche quando producono previsioni e classificazioni. Gli algoritmi di ottimizzazioni permettono di apprendere
quando si lavora ripetutamente su determinati input andando a creare una propria conoscenza in grado di
ricevere anche nuove informazioni. Questa soluzione è molto utile nel caso in cui si debba affrontare la
variabilità dei dati.
Nelle soluzioni di apprendimento transfert la flessibilità è utilizzata per adattare l’algoritmo a riutilizzato per
scopi diversi da quelli per i quali è stato creato. Questo permette agli algoritmi che riconoscono determinate
immagini di imparare a riconoscerne anche altre trasferendo la conoscenza del problema iniziale al problema
successivo. Spesso si riesce ad utilizzare la maggior parte reti neurali così come sono, andando ad adattare
solamente i livelli finali che determinano l’output. In molti casi si riscontrano performance maggiori rispetto
a reti neurali utilizzate per lo specifico problema.
Nelle soluzioni di apprendimento end-to-end si ottengono output migliori tramite l’implementazione di
soluzioni semplici e lineari. Le reti, tramite l’open source, sono accessibili a chiunque. Questa modalità
permette di replicare le soluzioni di Deep Learning diverse modificando alcuni comandi. Purtroppo non tutti
riescono ad utilizzare le reti neurali allo stesso modo dato che richiedono grandi quantità di dati che, spesso,
sono di proprietà di multinazionali e quindi che non sono accessibili a tutti. Questa frontiera open-source è
molto importante perché permette, a chiunque conosca un linguaggio di programmazione, di poter
implementare e risolvere un problema di Intelligenza Artificiale riscrivendo solo una parte di codice. Questo
sistema rende più facile la diffusione degli algoritmi di Intelligenza Artificiale.
Nell’approccio del Deep Learning è possibile usare algoritmi genetici per generale dei modelli tramite le
variazioni di alcuni parametri. La tecnica degli algoritmi genetici permette un’ottimizzazione interattiva
andando ad operare sulla riproduzione, ricombinazione e la mutazione dell’algoritmo. Questo tipo di algoritmi
deve ricevere dei feedback costanti in modo tale da selezionare la parte di algoritmo migliore dalla quale
partire per la creazione della generazione successiva. Gli algoritmi genetici possono essere utilizzati per la
scelta della struttura neurale e per l’attribuzione dei pesi ai vari livelli.
Le reti neurali sono più fragili e a rischio errore rispetto ad altre soluzioni di Machine Learning. È necessario
che i dati siano suddivisi con un maggiore attenzione quando si vanno a decidere i data set di addestramento,
valutazione e test. È possibile ricorrere alla regolarizzazione, andando a sommare i coefficienti delle
connessioni, (o all’early-stop) verificando la funzione di costo sul set di validazione durante l’apprendimento
in modo tale da bloccarlo nel momento in cui si presenta il problema dell’overfitting. Nel momento in cui si
va ad addestrare una grande rete neurale si va a redistribuire l’errore tra i vari neuroni, favorendo quelli in
prossimità dell’output. Grazie alle GPU è possibile applicare il pre-addestramento, le nuove funzioni di
attivazione e le reti convoluzionali. La velocità di esecuzioni può essere anche settanta volte superiore a quella

36
delle CPU. I vantaggi delle reti neurali riguardano l’adattamento a problemi complessi che non hanno bisogno
di risposte accurate, e sono algoritmi facili da implementare che tengono conto di tutti gli input
contemporaneamente per arrivare all’output finale. Gli svantaggi riguardano l’incapacità di rendere conto del
risultato dato23 e la complessità delle tecniche di addestramento che richiede una grande mole di dati e molto
tempo di elaborazione.

2.8 Cervello umano:


Il Deep Learning e le reti neurali si basano sull’imitazione della struttura del cervello per cercare di riprodurre
meccanismi intelligenti. Negli ultimi anni sono stati fatti notevoli passi in avanti nella comprensione del
funzionamento del cervello grazie a tecnologie quali la risonanza magnetica funzionale (fMRI) e la
magnetoencefalografia (MEG) che osservano le attività cognitive in tempo reale e permettono di vedere come
si attivano le varie aree del cervello. È l’intelligenza che cerca di capire sé stessa. Il cervello è molto complesso,
ed i neurologi ancora non sono riusciti a comprenderlo. Se fosse semplice da capire, probabilmente, le persone
sarebbero così semplici da non poterlo comprendere. Ogni secondo nel sistema nervoso centrale avvengono
milioni di reazioni chimiche che non vengono percepite a livello conscio, e sono usate dal cervello per ricevere,
elaborare e trasmettere informazioni a tutto l’organismo. Spesso cervello e computer vengono messi a
confronto in quanto entrambi trasmettono informazioni per mezzo di messaggi elettrici ed entrambi sono
intendibili come calcolatori. Nel caso dei computer si ha un calcolo secondo una sequenza preordinata, mentre
nel caso del cervello il calcolo avviene in modalità parallela.
Il cervello subisce un cambiamento costante grazie alla plasticità celebrale. Si stima che il cervello sia
composto da circa 86 miliardi di neuroni, che possono essere attivati per creare segnali con i neuroni adiacenti
fino ad eseguire fino a 38 milioni di miliardi di operazioni al secondo. La maggior parte delle cellule nervose
rimane in vita per tutta la vita dell’organismo. In determinati casi di danni celebrali è possibile che il cervello
si ‘riprogrammi’ in modo tale da spostare determinati collegamenti in un'altra area. I neuroni che si attivano
creano dei legami sempre più forti permettendo al cervello di creare nuove sinapsi 24 e di migliorare quelle
preesistenti. Il cervello è rappresentabile come un network di network di network in cui le informazioni si
trovano nelle sinapsi. I neuroni hanno diverse proprietà, quali il fatto che sono elettricamente eccitabili e che
possono trasmettere impulsi elettrici in alcuni millesimi di secondo. Questa caratteristica in particolare è stata
copiata per l’implementazione delle reti neurali, ed è fondamentale per il funzionamento delle stesse. Quando
un neurone emette un potenziale d’azione, invia un messaggio ai neuroni riceventi eccitandoli ad attivarsi o
inibendoli al silenzio. I messaggi sinaptici variano a seconda dell’eccitazione del neurone, a seconda del
neurone neurotrasmettitore dal quale partono o a quale ricettore arrivano. Il cervello si basa su un sistema di
ricompense che va a incoraggiare o scoraggiare un determinato comportamento tramite la produzione di
stimoli celebrali. Senza avere la minima consapevolezza dell’organismo, il cervello utilizza degli eventi
elettrochimici per guidare i neuroni.

23
Questo è dovuto al fatto che operano come delle scatole nere, non permettendo di descrivere e localizzare la conoscenza che
viene memorizzata dalla rete neurale.
24
Le sinapsi sono un sito specializzato per la comunicazione dei neuroni.

37
Una funzione di base del cervello è quella di predire costantemente il futuro e quindi le percezioni che
dovrebbe avere. Quando si cammina il cervello predice quando il piede dovrebbe toccare il suolo, e se la
predizione dovesse fallire, si instaurerebbe un istantaneo stato di allarme per riprendere il controllo. Il cervello
è, anche impegnato, a confrontare le previsioni future con il passato. È in grado di utilizzare vecchie esperienze
per anticipare determinate percezioni che potrebbero avvenire. Il cervello è costantemente attivo e cerca
sempre di predire, piuttosto che reagire. Il cervello si occupa di selezionare automaticamente a cosa prestare
attenzione e cosa ignorare. La predizione avviene in modo tale che non sia percettibile dall’organismo e
necessita della memoria per attivarsi correttamente. All’interno del cervello non c’è un area specifica dedicata
alla memoria ma essa è distribuita in un network sinaptico complesso e intricato che ancora non è stato
totalmente compreso. Al fine di consolidare la memoria sono necessarie la ripetizione e l’attenzione. Gli studi
di Kandel condotti sulla lumaca Aplysia25 permisero di scoprire che l’apprendimento non avviene modificando
i neuroni, ma andando a rafforzare le sinapsi. Inoltre il rimodellamento delle sinapsi dipende da variazione
dell’espressione genetica. Differenti forme di apprendimento originano differenti schemi di attività neurale.
Tramite l’abituazione l’organismo impara a riconoscere degli stimoli ricorrenti che possono essere ignorati
nel caso in cui sussistano delle condizioni di sicurezza, ma che non verrebbero ignorati con altre circostanze.
Gli studi hanno dimostrato che la forza sinaptica non è prefissata ma è influenzata dagli avvenimenti esterni.
Da questo si arrivò a concludere che un comportamento controllato dal circuito neurale, con precise e definite
connessioni, viene modificato dall’esperienza. Diverse stimolazioni possono alterare le connessioni sinaptiche
in modi completamente diversi. I processi genetici interagiscono con l’esperienza determinando la struttura
dell’attività mentale. I primi determinano le connessioni tra i neuroni, i secondi la forze delle stesse. Le
stimolazioni esterne di Kandel sull’Aplysia gli hanno permesso di modificarne il cervello. Questo portò alla
conclusione che nonostante i neuroni riescano a creare molte connessioni, le sinapsi possono essere modificate
indipendentemente dall’esterno. Nell’Aplysia, Kandel riuscì a trasferire e manipolare i geni nelle singole
cellule, tramite cui è possibile spostare anche il ricordo di un addestramento che sensibilizza i neuroni
sensoriali con il trasferimento del supporto fisico su cui è registrata. Questo è possibile grazie alla straordinaria
semplicità della lumaca e, ad oggi, sembra impossibile che si possa replicare su organismi più complessi.
Tuttavia non è da escludere che in futuro sarà possibile farlo.
La memoria dipende dalla capacità del cervello di rimodellare le connessioni neuronali, quindi dalla plasticità
del cervello. La plasticità è in grado di modificare costantemente il cervello grazie all’apprendimento di nuove
informazioni. Questa permette la creazione o la modifica di determinate di connessioni neuronali. Il
cambiamento spesso è impercettibile ma costante. L’apprendimento è un una delle funzioni più cruciali del
cervello. Un argomento molto dibattuto è la coscienza. Ad oggi ancora non si riesce a capire cosa sia la
coscienza ed è difficile definirla, se non in maniera soggettiva. Non sembra che sia possibile misurarla e questo
porta alla sensazione che non esista fisicamente. Quello che viene percepito dall’organismo è solo una minima
parte dell’attività neuronale sottostante che elabora gli stimoli esterni. Esistono molte attività subliminali che

25
È stato scelto questo tipo di lumaca dato che possiede dei comportamenti semplici e modificabili in modo controllato da
circuiti neuronali semplici con un numero ristretto di cellule nervose.

38
sono considerate al di sotto della coscienza. Dagli studi di Koenhuber si capì che i movimenti sono preceduti
da una registrazione elettrica del cervello e Libet misurò che questo potenziale di preparazione appariva 200
millisecondi prima del compimento dell’azione e quindi era possibile prevedere cosa avrebbe fatto ancor prima
che lo facesse. Questo pone diversi interrogativi riguardo alle decisioni di agire e sul fatto che siano o meno
libere scelte, e pone enormi problemi morali per la società. Questi problemi potrebbero riflettersi nel controllo
di queste attività da parte di entità in grado di misurarle e di compiere azioni in un tempo inferiore a quello
che impiega il cervello per registrare il movimento. Ad oggi sono solo speculazioni fantascientifiche.
Spesso ci si interroga sul tema del libero arbitrio. Secondo una concezione deterministica ogni reazione ad un
determinato evento è causata da una serie di stimoli che in maniera predeterminata permettono di rispondere
allo stesso. Questo potrebbe avere molti effetti sul concetto di responsabilità. Nel momento in cui si pensa alla
motivazione per la quale si abbia fatto una determinata scelta si risponde in modo preciso e razionale. Il
cervello riporta le motivazioni consce ma è influenzato anche da attività non consce. Questo accade perché a
livello conscio non si avrebbe il tempo per prendere determinate decisioni, quindi il cervello deve fare ricorso
ad azioni subconscie. L’emotività è sempre presente nelle decisioni anche se spesso non viene percepita come
tale e si pensa che le decisioni siano razionali. L’intuito permette di prendere decisioni senza avere tutte le
informazioni a disposizione.
Presupponendo che il progresso scientifico e tecnologico continuino ad avanzare per molto tempo non è
assurdo ipotizzare una convergenza tra l’intelligenza biologia e l’intelligenza digitale. Quando si considera la
memoria delle macchine è possibile rimpiazzare la RAM e permettere ad un computer di continuare ad operare.
La neuroscienza computazionale si occupa di studiare le funzioni celebrali in termini di elaborazione dei dati
e considera il cervello come una macchina baynesiana in grado di produrre inferenze sul mondo circostante.
Questo approccio ha importanti ricadute nel campo dell’Intelligenza Artificiale.
La tecnologia ha portato molte comodità nella vita quotidiana e ha sostituito molte attività motorie. Grazie al
continuo progresso tecnologico è risultata sempre meno indispensabile la memoria. È necessario fare alcune
riflessioni sul modo in cui potrebbe evolversi l’intelligenza nel futuro. Dati i continui progressi scientifici in
campi come la neuroscienza e la genetica è possibile che in futuro le macchine possano andare ad aumentare
la capacità celebrare degli essere umani. Non esiste una legge fisica che impedisce al cervello di organizzare
le particelle in modo tale da effettuare calcoli sempre più avanzati. Negli ultimi anni si sta sviluppando
l’optogenetica. Questa disciplina si occupa di isolare determinati geni, che esprimono diversi tipi di opsine26,
e di inserirli all’interno di topo di laboratorio per far rispondere i neuroni in diversi modi, andando,
successivamente, ad esporre i topi a diverse frequenze di luce in modo tale da inibire o eccitare i neuroni
modificati per controllarne i movimenti. Questa disciplina serve a capire il funzionamento dei singoli neuroni.
In futuro potrebbe essere usata in molti modi, non tutti a scopo scientifico e benefico. Un’altra tecnologia che
potrebbe cambiare la ricerca scientifica è la CRISPR-cas9 che permette di andare a prendere una porzione di
DNA e trasferirla in un’altra sequenza. Questa procedura è a basso costo e replicabile con molta facilità e
questo potrebbe comportare notevoli rischi. Queste innovazioni rimarcano l’importanza di discutere da subito

26
Le opsine sono proteine sensibili alla luce.

39
sull’etica della modifica genetica degli esseri viventi in modo tale da saper gestire in maniera adeguata questi
cambiamenti tecnologici. Questi progressi potrebbero essere al tempo stesso rivoluzionari e catastrofici. È
necessario prendere posizioni chiare in modo tale da indirizzarle, senza subirle passivamente.
C’è ancora molta strada da fare per capire il cervello e replicarlo. Si deve ancora capire come avviene
l’elaborazione delle informazioni sensoriali e il modo in cui riesca l’attenzione conscia a guidare i meccanismi
del cervello, nonché quale sia l’effettiva relazione con la parte inconscia.
Il campo dell’Intelligenza Artificiale è una campo molto vasto e non è identificabile solo con le applicazioni
di Machine Learning e di Deep Learning, anche se sono ritenute le metodologie più interessati e conosciute.
La maggior parte delle persone si concentra su questo tipo di algoritmi ma non sono sempre i migliori da
utilizzare. Gli approcci di Machine Learning sono adatti maggiormente la situazione dove è richiesta una
percezione sensoriale o l’estrazione di uno schema da un set di dati caotici, mentre un algoritmo di
ragionamento simbolico è adatto per problemi che richiedono un ragionamento astratto. Si sta andando verso
un’integrazione di questi due approcci per combinare i vantaggi degli stessi ed ottenere un algoritmo più
efficiente ed efficace. Da non molto tempo e quasi all’improvviso l’Intelligenza Artificiale è entrata nelle vite
quotidiane, senza che venisse percepito l’effettivo cambiamento. In questo periodo le macchine stanno
imparando ad imparare. Questo è stato possibile grazie alla convergenza dell’aumento della capacità
computazionale, allo sviluppo di algoritmi sofisticati e alla disponibilità dei dati per l’apprendimento. Ad oggi
gli algoritmi di Machine Learning e di Deep Learning sono molto utilizzati ma hanno ancora grandissime
potenzialità in moltissimi ambiti. Potenzialmente questi algoritmi permettono l’integrazione con il cervello
umano, permettendo di comunicare e controllare i dispositivi elettronici come se fossero parte integrante del
nostro corpo. Questo aspetto è ritenuto da molti particolarmente critico e potrebbe esporre a diversi rischi. Il
processo è già cominciato ed è impossibile tornare indietro, ma è ancora possibile decidere quale sia l’impatto
che debba avere nella nostra società. L’opinione pubblica ha idee contrastanti riguardo al potenziale impatto
che ha e che potrebbe avere questa tecnologia sulla società e sulla vita stessa. L’Intelligenza Artificiale è
spesso considerata come qualcosa di futuristico, ma è sempre più presente nella vita quotidiana.

40
3. DOVE SIAMO E DOVE VOGLIAMO ARRIVARE
3.1 Applicazioni, dove siamo oggi:
Nell’ambito dell’Intelligenza Artificiale esistono numerose applicazioni. La maggior parte di queste è rivolta
verso complessi problemi comuni e ognuno richiede differenti capacità. Inizialmente l’Intelligenza Artificiale
è stata sviluppata tramite giochi quali gli scacchi e Go, date le caratteristiche di questi, e cioè la risoluzione di
problemi chiaramente definiti, la non eccessiva semplicità e la convinzione che servano determinate capacità
cognitive per riuscire giocare e a vincere. Le intelligenze artificiale sono riuscite a giocare e a battere tutti i
campioni umani.
OpenAI è una società che si occupa di ricerca e distribuzione di Intelligenza Artificiale. Il 17 settembre 2019
ha pubblicato una simulazione di agenti che, progressivamente, comprendono come giocare a nascondino
riuscendo anche ad utilizzare gli strumenti dell’ambiente per avere più probabilità di vincere 27. Questa
simulazione è stata fatta tramite l’utilizzo di strumenti emergenti dall'interazione multi-agente.
L’addestramento è avvenuto in un ambiente completamente sconosciuto per gli agenti, che non erano neanche
a conoscenza dello scopo da perseguire. Il gioco è strutturato in questo ambiente con agenti blu che hanno il
compito di nascondersi al fine di evitare la linea di veduta degli agenti rossi, che hanno il compito di inseguirli.
Nell’ambiente sono stati inseriti oggetti, come blocchi e rampe, che gli agenti possono afferrare o bloccare.
Sono anche presenti stanze e muri mobili. All’inizio di ogni partita i rossi vengono immobilizzati per dare la
possibilità ai blu di scappare, nascondersi e modificare l’ambiente. Gli agenti ricevono un feedback a fine della
partita che è determinato dalla sola riuscita dell’obiettivo di nascondersi o di cacciare, e non di interazione con
l’ambiente. Gli agenti hanno sviluppato una serie di strategie e controstrategie. Non tutte le strategie
implementate effettivamente dagli agenti erano state previste dagli sviluppatori. Nella figura 5 vengono
descritte schematicamente le regole e le possibili interazioni degli agenti blu e rossi con l’ambiente circostante.
Considerando un ambiente con 2 cacciatori rossi e 2 cacciati blu e un’ambiente con una stanza con 2 aperture,
al cui interno sono collocati 2 blocchi e all’esterno 1 rampa, è possibile osservare come sono state
implementate le strategie dagli agenti. Gli agenti sono partiti giocando in maniera casuale, senza la
comprensione di ciò che dovevano fare. Si assiste alla prima strategia dopo 2,69 milioni di episodi con la quale
i cacciatori sono riusciti a comprendere il loro obiettivo e hanno iniziato a cacciare gli agenti blu. La seconda
strategia viene implementata dai blu dopo 8,62 milioni di episodi e prevede che questi agenti muovano i
blocchi interni alla stanza per bloccare le entrate, impendendo ai cacciatori rossi di entrare. Dopo 14,5 milioni
di episodi gli agenti rossi implementano la terza strategia, imparando a utilizzare la rampa posizionata fuori
dalla stanza per scavalcare il muro e catturare gli agenti blu. Nella quarta strategia gli agenti blu, dopo 43,4
milioni di episodi, riescono a portare la rampa all’interno della stanza e a bloccare le entrate con i blocchi, non
permettendo più agli agenti rossi di scavalcare i muri. In queste interazioni gli agenti blu imparano a
coordinarsi e a decidere chi dei due bloccherà quale porta e chi andrà ad afferrare la rampa. È stato anche
notato che, nei casi nei quali le scatole non sono vicine, queste vengono scambiate tra gli agenti al fine di

27
https://openai.com/blog/emergent-tool-use/

41
velocizzare la chiusura delle porte. Durante le varie interazioni è stato notato come i cercatori rossi siano
riusciti a sfruttare la rampa per correre contro un muro ad angolo retto, al fine lanciarsi verso l'alto e atterrare
direttamente sugli agenti blu. Tramite l'apprendimento per rinforzo gli agenti blu sono stati in grado di trovare
un altro meccanismo da sfruttare. In questo caso, i blu sono riusciti a portare la rampa all’angolo della mappa
per buttarla fuori, in modo tale che non potesse essere più utilizzata dai cacciatori rossi. Nella figura 6 è
rappresentata la percentuale (%) di vittorie ottenute dai blu o dai rossi durante le varie implementazioni. È
possibile notare che inizialmente i rossi hanno riscontrato la maggior parte delle vittorie. I blu,
successivamente, con l’implementazione di nuove strategie sono riusciti ad ottenere delle vittorie quasi certe.

Figura 5 – Regole utilizzate per l’implementazione dell’utilizzo degli strumenti emergenti dall'interazione multi-agente.
Fonte: https://openai.com/blog/emergent-tool-use/

Figura 6 – % di vittorie durante le varie fasi di sviluppo dell’addestramento degli agenti (blu e rossi) nell’ambiente simulato per nascondino.
Fonte: https://openai.com/blog/emergent-tool-use/

42
Come riportato sul sito di OpenAI28, “i criteri degli agenti vengono addestrati con la riproduzione automatica
e l'ottimizzazione dei criteri prossimali. Durante l'ottimizzazione, gli agenti possono utilizzare le informazioni
privilegiate sugli oggetti oscurati e altri agenti nella loro funzione di valore”. È stato anche notato come
l'aumento delle dimensioni del batch accelera i tempi di convergenza. Lo sviluppo di quest’applicazione di
Intelligenza Artificiale ha dimostrato come gli agenti possano apprendere l'utilizzo di strumenti sofisticati in
un simulatore e di come questi agenti siano in grado di sfruttare l'ambiente circostante in modi che non erano
o che non sarebbero potuti essere previsti. Gli sviluppatori hanno notato come, da questa applicazione,
“determinate strategie e abilità molto più complesse delle dinamiche e dell'ambiente del gioco in sé, possono
emergere dalla competizione multi-agente e dagli algoritmi di apprendimento per rinforzo standard su larga
scala” 29. La complessità emergente auto-controllata in questo ambiente semplice suggerisce che, in futuro, il
co-adattamento multi-agente potrebbe portare alla creazione di un comportamento estremamente complesso e
intelligente.
l’Intelligenza Artificiale non si è fermata alle applicazioni riguardanti i giochi, che per quanto complesse non
esprimono il vero potenziale della stessa, soprattutto se considerati i benefici che potrebbe apportare nei casi
in cui è applicata per fornire aiuti, anche fisici, agli essere umani.
Nel campo della robotica si sono sviluppati algoritmi di Intelligenza Artificiale in grado di governare macchine
capaci di eseguire compiti che richiedono sforzi fisici. In quest’ambito si cerca costruire macchinari tramite
l’utilizzo di materiali flessibili e leggeri, ma che riescano comunque a svolgere compiti generali, o, come
avviene nella maggior parte dei casi, compiti specifici. Questo rappresenta un grande problema dato che la
costruzione di macchine che svolgono solo compiti specifici non permette l’utilizzo degli stessi per scopi
diversi o in ambienti diversi. Nasce, quindi, il bisogno di riuscire ad adattarli agli ambienti che sono caotici,
sviluppando in loro l’adattamento al cambiamento. Questo è particolarmente importante negli algoritmi che si
occupano della guida autonoma dato che c’è bisogno di riconoscere una grande moltitudini di ostacoli e
variabili che sono in movimento, e che per questo generano imprevedibilità. I veicoli a guida autonoma sono
in grado di percepire l’ambiente che li circonda e di guidare in qualunque tipo di percorso sconosciuto senza
l’intervento del conducente. Questi sistemi intelligenti riescono ad analizzare i dati sensoriali, tramite dei
sensori che ricoprono tutto il veicolo, al fine di mappare la strada e di visualizzare i segnali stradali, le
pozzanghere e le persone. Sono in grado di interpretare i segnali e rispettarli. Ad oggi ancora non sono
commercializzati veicoli a guida totalmente autonoma dato che per legge non possono circolare.
In un video YouTube sul canale di overVolt30 è possibile vede quello che è in grado di percepire una Tesla a
guida autonoma mentre guida su una strada. l’Intelligenza Artificiale è in grado di assegnare dei numeri
identificativi ai vari oggetti che riconosce in modo tale da sapere come interagirci. È in grado riconoscere
segnali stradali come le frecce disegnate sulla strada, etichettandole con gli acronimi LA, FA, RA,
(rispettivamente Left Arrow, Front Arrow e Right Arrow). Tramite questa mappatura il veicolo è in grado di

28
https://openai.com/blog/emergent-tool-use/
29
https://openai.com/blog/emergent-tool-use/
30
https://youtu.be/OTKj0soUyPc

43
rispettare le regole stradali. Analizzate le informazioni stradali, compaiono delle linee verdi per le corsie che
sono percorribili e delle linee arancioni per le corsie contromano. Nella figura 7 è possibile osservare un frame
di ciò che viene visualizzato dal l’Intelligenza Artificiale che guida l’automobile e l’indicazione dei vari valori
che percepisce. Quando viene riconosciuto un segnale di stop la macchina inizia a rallentare per tempo. Il
sistema è in grado di individuare le strisce pedonali, tramite l’identificativo C (Crossing), per potersi fermare
e far passare i pedoni. Sullo schermo compaiono numerosi valori che permetto al sistema di Intelligenza
Artificiale di prendere le decisioni, quando gli stessi raggiungono determinati valori soglia. Nel video emerge
un particolare molto importante che è dato dal riconoscimento di una pozzanghera lontana (indicato sullo
schermo dal valore WET_ROAD). Questo riconoscimento è fondamentale perché permette alla macchina di
rallentare per tempo, in prossimità della stessa, e quindi di ridurre il rischio di un incidente. In questo caso la
macchina autonomamente è anche riuscita a curvare leggermente per evitarla. Un essere umano non sarebbe
stato in grado di riconoscere la pozzanghera da così lontano e avrebbe corso un rischio maggiore dato che, se
non fosse riuscito a rallentare, avrebbe potuto far slittare la macchina e causare un incidente.

Figura 7 – Guida auto autonoma della Tesla (2020).


Fonte: https://youtu.be/OTKj0soUyPc, minuto 8:35

Nel video l’auto è anche in grado di riconoscere di riconoscere le macchine tramite dei riquadri e la grandezza
degli stessi sta ad indicare quanto è grande il veicolo riconosciuto.
Determinate tecnologie di Intelligenza Artificiale hanno il potenziale di sostituire categorie di compiti e lavori
svolti dagli essere umani che mettono a rischio la loro sicurezza e la loro salute andando anche ad aumentarne
l’efficienza del lavoro svolto. Per fare ciò i robot devono essere agili e non devono seguire uno schema
predeterminato di azioni, e devono essere liberi di potersi spostare e interagire con l’ambiente circostante. Una
delle più interessanti applicazione di questi sistemi potrebbe avvenire nell’esplorazione spaziale dato che i
dispositivi robotici sono in grado di resistere a condizioni più estreme rispetto agli esseri umani e possono
essere più pratici. In quest’ambito l’autonomia delle macchine è fondamentale data la latenza del segnale che
si trova tra la terra e le entità robotiche a distanze lontanissime. Considerando Marte, se si volesse controllare
un veicolo a distanza, si avrebbe una latenza media di 14 minuti e sarebbe impossibile condurre ogni tipo di
operazione. Per risolvere questi problemi si possono preimpostare brevi percorsi che il robot deve percorre e,
una volta compiuti, comunicare agli ingegneri la riuscita o meno dell’azione. Questo è un procedimento molto

44
meccanico e per questa ragione è sempre più utilizzata l’Intelligenza Artificiale, come nel recente caso di
Perserverance31. La navicella che trasportava il rover che è riuscita ad atterrare in maniera autonoma sul suolo
di Marte tramite l’utilizzo di un sistema di guida ad Intelligenza Artificiale. Nell’ambito spaziale i sistemi di
Intelligenza Artificiale sono utilizzati anche sulla Stazione Spaziale Internazionale (ISS). Il robot CIMON-2
(Crew Interactive Mobile Companion-2), presente sulla ISS dal dicembre del 2019 ha il compito di tenere
compagnia agli astronauti umani e di aiutarli nella quotidianità. CIMON-2 è progettato con forma sferica ed è
dotato di uno schermo integrato. È in grado di muoversi in assenza di gravità grazie ad alcune ventole interne
in modo tal che è in grado di girarsi e spostarsi all'interno di tutta l’ISS. È dotato di microfoni sensibili, e un
senso d’orientamento. Tramite l’interazione con gli astronauti è in grado di apprendere i loro stati d’animo e
fornire loro supporto. È un dispositivo utile per riprendere gli esperimenti e gli astronauti possono attivarlo
vocalmente al fine di compiere determinate azioni, come la ripresa di un video. Grazie a Judith Buchheim è
stato possibile migliorare la privacy dei dati trasmessi da CIMON-2, tramite l’inserimento di un interruttore
che blocca il flusso di dati catturati dal robot32. Rimanendo in tema spaziale, la NASA ha deciso di utilizzare
il robot Spot dell’azienda Boston Dynamic al fine di esplorare le caverne di Marte.
Nella versione base, Spot è un robot costruito seguendo l’architettura fisica di un cane ed è un agile robot
mobile che può navigare in diversi terreni, consentendo di automatizzare le attività di ispezione di routine e
l'acquisizione dei dati in modo sicuro, accurato e frequente33. Come riportato sul sito della Boston Dynamic,
Spot utilizza l'API34 (Interfaccia di programmazione delle applicazioni) per consentire alle applicazioni di
controllare robot, di leggere le informazioni sui sensori e, anche, di creare e integrare tramite il payload. L'API
di Spot segue un modello client-server, cioè le applicazioni client comunicano con i servizi in esecuzione su
Spot tramite una connessione di rete. Per l’utilizzo di Spot è possibile usufruire dei payload che consentono di
implementare i servizi forniti dal robot, come la Spot CAM, che permette di controllare la qualità dello
streaming, o le luci LED.

Figura 8 – Robot Spot, Boston Dynamics.


Fonte: https://www.bostondynamics.com/sites/default/files/2021-02/spot-explorer-web-2.png

31
Perseverance è un rover atterrato su Marte a febbraio 2020.
32
https://www.hdblog.it/tecnologia/articoli/n514091/hal-9000-robot-ai-iss-cimon-2-intelligenza-emotiva/
33
https://www.bostondynamics.com/spot
34
Le API sono set di definizioni e protocolli con i quali vengono realizzati e integrati software applicativi.

45
Nella prototipo, Au-Spot, che intende utilizzare la NASA per l’esplorazione marziana, sono stati aggiunti
alcuni sensori specifici utili all’esplorazione, come sensori visivi, termici e di movimento, in modo da creare
accurate mappe 3D dell’ambiente. A differenza dei rover, questi robot sono molto più piccoli e agili e sono in
grado di rialzarsi in caso di caduta. Ad oggi i test svolti su Au-Spot sono stati fatti in caverne della California,
simili a quelle marziane, in modo tale da comprendere come reagisce il robot in questo specifico ambiente e
migliorarlo per le esplorazioni marziane35.
L’azienda Boston Dynamics non ha progettato solo il robot Spot, attualmente in commercio, ma anche il robot
Atlas, che un robot umanoide non in commercio. Atlas è un robot che cerca per superare i limiti della mobilità
robotica. Il sistema di controllo avanzato conferisce al robot potenza e equilibrio che gli conferiscono grande
agilità. La struttura scheletrica molto leggera, di 80kg, permette al robot un’elevata dinamicità. Negli ultimi
anni questo robot umanoide ha fatto notevoli progressi. All’inizio era incapace di mettere una scatola su uno
scaffale e pesava circa il doppio di adesso. Sul sito di Boston Dynamics è riportato che "il sistema di controllo
avanzato permette al robot di muoversi agilmente, mentre gli algoritmi gestiscono le dinamiche tra corpo e
ambiente, pianificando i movimenti". L’azienda rilascia periodicamente video nei quali Atlas compie azioni
quali saltare, fare capriole e perfino ballare. Il robot è in grado di fare tutto questo grazie ad algoritmi che
trasformano ogni manovra complessa in movimenti replicabili dal robot. Atlas esegue questi comandi, tramite
un modello predittivo che rende più fluidi i movimenti36. In un’intervista, Aaron Saunders37, VP of
Engineering di Boston Dynamics, ha spiegato come la Boston Dynamic sia riuscita a realizzare il video di fine
anno (2020) in cui Atlas e Spot hanno ballato sulle note di ‘Do You Love Me’ dei ‘The Contours’38. Il lavoro
è iniziato ingaggiando un coreografo e dei ballerini al fine di capire quali movimenti di danza dovevano essere
fatti dai robot. Dopodiché sono stati implementati nella routine. Una delle più grandi sfide è stata la regolazione
dei passi, che è stata brillantemente vinta grazie alla simulazione che ha permesso di far scorrere velocemente
i movimenti, che erano costantemente valutati dal coreografo in moto tale da apportare modifiche per rendere
migliore il movimento. Più si andava avanti con il tempo più diventava veloce il processo di apprendimento.
Il codice non è stato codificato a mano, ma sono stati implementati e uniti una serie di movimenti, come input
diversi. L’azienda lavora duramente per creare qualcosa e, una volta che questa funziona, è in grado di
applicarla per utilizzi e scopi diversi. Nel caso di Atlas è stato possibile utilizzare la maggior parte del controllo
del robot proveniente dal lavoro svolto sul parkour. Nella figura 9 è possibile osservare i movimenti compiuti
da Atlas al fine di eseguire le azioni più tipiche del parkour, come saltare, rotolare e aggrapparsi agli ostacoli.
La riuscita di un’attività come questa rappresenta l’insieme dei progressi compiuti dagli ingegneri per rendere
Atlas il più leggero e flessibile possibile, senza andare a compromettere la forza e l’equilibrio dello stesso.

35
https://www.dday.it/redazione/38099/cane-robot-esplorare-caverne-marte
36
https://www.focus.it/tecnologia/innovazione/il-nuovo-umanoide-robot-atlas-di-boston-dynamics
37
https://spectrum.ieee.org/automaton/robotics/humanoids/how-boston-dynamics-taught-its-robots-to-dance
38
https://www.youtube.com/watch?v=fn3KWM1kuAw&t=1s

46
Figura 9 – Flessibilità robot Atlas, Boston Dynamics.
Fonte: https://spectrum.ieee.org/automaton/robotics/humanoids/how-boston-dynamics-taught-its-robots-to-dance

Per compiere i passi di danza, Atlas, non ha utilizzato un learning controller ma una combinazione di reazione
alle forze, ottimizzazione della traiettoria online/offline e un controllo predittivo del modello. Secondo Aaron
Saunders la forza di Boston Dynamics sta nel trovare l’intersezione tra la costruzione di una nuova capacità
robotica e il divertimento, e per questo motivo, l’azienda, è in grado di fare straordinari progressi in un lasso
di tempo ridotto.
Un’applicazione di Intelligenza Artificiale commercializzata molto utilizzata è l’aspirapolvere autonomo che
è in grado di mappare l’abitazione per pulirla autonomamente. Tramite la mappatura e i sensori, questa
tecnologia è in grado di riconoscere gli ostacoli e i gradini al fine di evitarli in maniera totalmente autonoma
e di tornare alla base di ricarica nel caso in cui la batteria fosse quasi scarica. È possibile integrare questa
tecnologia con altre tecnologie di Intelligenza Artificiale, come con il dispositivo elettronico ‘Alexa’, così da
programmare delle pulizie periodiche o per attivare la pulizia della casa vocalmente. Questo è possibile grazie
all’interfaccia vocale che va a sostituire gli altri organi in ingresso dei dispositivi elettronici. Il campo della
robotica interfacciato con un’ambiente intelligenze, come una smart home, permette questo tipo di
applicazioni. Negli ultimi anni sono stati sviluppati numerosi dispositivi in grado in interagire tra loro, andando
a creare le case smart. Tramite le applicazioni o gli assistenti vocali è possibile controllare una serie sempre
maggiore di prodotti elettronici. Grazie alla casa smart è possibile accendere o spengere le luci anche da fuori
casa, o è possibile controllare le telecamere di sicurezza in qualsiasi momento. Sono stati commercializzati
anche prodotti come i frigoriferi smart della Samsung con i quali, grazie a telecamere interne, è possibile
vedere, in tempo reale, i cibi che contiene mentre si sta facendo la spesa. È anche possibile, tramite
l’applicazione Amazon Fresh, fare la spesa direttamente dal frigorifero. Tramite l’interfaccia con i dispositivi
delle domotica è possibile utilizzare il proprio televisore o il proprio telefono per alzare i volume, per governare
determinati dispositivi integrati o per chiudere le porte all’interno della propria casa. Nel caso di fallimenti
dell’Intelligenza Artificiale che interagiscono con il mondo reale si possono avere conseguenze dirette a livello
fisico. I sistemi pratici devono riuscire ad interagire in sicurezza per svolgere il compito prefissato e devono
essere in grado di apprendere e reagire velocemente per aumentare la sicurezza dell’operazione. Il processo di
integrazione vocale per quanto semplice da immaginare, richiede un elaborazione abbastanza complessa, dato
che è molto più difficile digitalizzare una voce rispetto ad un testo.

47
Tramite gli algoritmi di Intelligenza Artificiale è stato possibile implementare il riconoscimento vocale.
Questo procedimento è stato molto complesso dato che è necessario separare i rumori dal segnale che si vuole
ricevere per trascrivere correttamente il messaggio. Il superamento di questo problema è molto complesso
anche perché il linguaggio umano non è composto solo da suoni ma anche dal volume e dal tono della voce.
L’applicazione di tecniche di apprendimento automatico hanno permesso di sfruttare la grande mole di dati a
disposizione e di analizzare grandi collezioni di registrazioni per permettere all’algoritmo di perfezionarsi
continuamente. Questo ha permesso la commercializzazione di dispositivi in grado di recepire indicazioni
vocalmente, come Alexa o Siri. Gli assistenti vocali sono in grado di apprendere le abitudini, anche vocali, dei
loro assistiti, per cui riescono a migliorarsi costantemente e a offrire un servizio sempre migliore. Un esempio
è dato dal fatto che le prime volte che, dopo aver impostato un timer, si chiede al proprio assistente vocale:
‘Quanto manca?’, questo dirà di non aver capito e bisognerà ripetere la frase completa: ‘Quanto manca al
timer?’. Dopo che si è ripetuta questa operazione per alcune volte, l’Intelligenza Artificiale imparerà che
quando viene chiesto: ‘Quanto manca?’ ci si riferisce al timer e risponderà subito, senza chiedere di ripetere.
Gli assistenti vocali facilitano le interazioni tra gli utenti e la rete, e permettono di velocizzare l’interazione
mediante l’uso della voce e non più mediante la digitazione dell’azione da compiere.
Tra gli aspetti più positivi dell’innovazione in campo medico degli ultimi c’è l’utilizzo di Intelligenza
Artificiale per effettuare operazioni chirurgiche non invasive all’interno del corpo. La creazione di dispositivi
medici indossabili e l’utilizzo di monitor sanitari per monitorare le persone hanno generato un’enorme mole
di dati che permettono agli algoritmi di Intelligenza Artificiale un miglioramento continuo. Negli ultimi anni
si è cercato di integrare l’imaging medico con l’Intelligenza Artificiale con l’obiettivo di osservare una
determinata area dell’organismo, non visibile dall'esterno, più rapidamente e agilmente. Tramite uno screening
preliminare dei pazienti considerati a rischio è possibile ridurre il rischio di incorrere nella malattia o che la
stessa si sviluppi causando gravi danni all’organismo. Algoritmi di Machine Learning sono stati utilizzati al
fine di predire la diffusione del COVID-19, in base all’analisi di diverse variabili come la distribuzione
geografica e la cartella clinica dei casi presi in esame. I campi di applicazione in ambito clinico sono molto
vari e possono riguardare studi sulla carcinoma epatocellulare nei pazienti con cirrosi epatica C, studi
sull’analisi predittiva per ridurre l’incidenza delle riammissioni dei pazienti negli ospedali nel periodo
successivo al rilascio o studi sull’analisi predittiva di pazienti potenzialmente a rischio di determinate
patologie. A livello pratico esistono molte applicazioni aziendali che stanno compiendo notevoli progressi nel
campo medico tramite l’applicazione dell’Intelligenza Artificiale. Per citare alcuni esempi c’è BERG, che è
una piattaforma biotecnologica che è in grado di mappare le malattie al fine di accelerare la scoperta e lo
sviluppo di farmaci innovativi. BERG è in grado di sviluppare prodotti potenzialmente più efficaci a
combattere le malattie rare. BERG ha presentato alcune scoperte sul trattamento del morbo di Parkinson, che
tramite l’utilizzo dell’Intelligenza Artificiale sono in grado di trovare collegamenti tra sostanze chimiche nel
corpo umano, che fino a poco tempo fa erano sconosciute. Altre interessanti applicazioni riguardano BioXcel
Therapeutics che utilizza l’Intelligenza Artificiale per identificare e sviluppare nuovi farmaci nei campi
dell’immuno-oncologia e delle neuroscienze, e Enlitic che sviluppa strumenti medici di Intelligenza Artificiale

48
che sono in grado di snellire le diagnosi radiologiche. Spesso si assiste alla riluttanza dei medici di applicare
queste innovazioni tecnologie, la quale potrebbe essere dovuta a un’inadeguata formazione o alla percezione
del rischio che la stessa tecnologia, usata per curare determinata malattie, possa essere usata per uccidere delle
persone39.
Rimanendo in campo medico, molto rivoluzionario è l’approccio di Neuralink. L’azienda sta sviluppando un
sistema di interfaccia cervello-macchina. Il sistema sviluppato prevede la comunicazione wireless attraverso
la pelle. I dispositivi sono chiamati Link40 (Figura 10) e hanno l’obiettivo di aiutare le persone con paralisi e
di ampliare le capacità umane tramite le interfacce celebrali tra cervello e Intelligenza Artificiale. Il dispositivo
consentirà di controllare i dispositivi elettronici tramite il proprio cervello in qualsiasi momento. I dispositivi
sono progettati con il fine di permettere una comunicare più agevole tramite sintesi di testo o vocali, e di
seguire la propria curiosità sul web. Questa tecnologia innovativa ha il potenziale per curare molti disturbi
neurologici, per ripristinare la funzione sensoriale e, infine, per espandere il modo in cui gli esseri umani
interagiscono gli uni con gli altri.

Figura 10 – Struttura del Link di Neuralink. Visione esterna (sinistra) e rappresentazione delle componenti interne (destra).
Fonte: https://neuralink.com/approach/

L’azienda sta svolgendo notevoli progressi ed è alla ricerca costante di personale specializzano in diversi
campi come la robotica e chirurgia, al fine di migliorare il Link stesso e il processo di inserimento nel cranio.
Il Link ha filamenti molto sottili e richiede un’estrema precisione chirurgica per essere impiantato nel cervello.
Per queste ragione l’azienda ha sviluppato un robot in grado di svolgere della neurochirurgia automatizzata di
precisione. Il sistema robotico può utilizzare per inserire in modo affidabile ed efficiente i Link41. Ad oggi il
dispositivo non è ancora stato impiantato in nessun essere umano. Alla fine di agosto 2020 Neuralink ha
mostrato in diretta YouTube i progressi svolti fino a quel momento42. Il video ha mostrato l’utilizzo
dell’impianto applicato ad un maiale, Gertrude. Durante il video viene mostrata l’attività celebrale di Gertrude
mentre compie determinate azioni (figura 11, aree blu in basso). La visualizzazione dell’andamento
dell’attività celebrale permette di capire di quanto varia l’intensità dell’attività celebrale del maiale a seconda
delle azioni compiute43.

39
https://www.agendadigitale.eu/sanita/intelligenza-artificiale-in-sanita-prospettive-studi-e-applicazioni-pratiche/
40
Il Link è dispositivo sigillato e impiantato nel cranio che elabora, stimola e trasmette segnali neurali del cervello. Il dispositivo
possiede 1.024 sottilissimi fili flessibili che raccolgono gli impulsi per poi tradurli in informazioni digitali.
41
https://neuralink.com/
42
https://www.youtube.com/watch?v=DVvmgjBL74w&t=1s
43
https://www.wired.it/scienza/lab/2020/08/29/elon-musk-neuralink-cervello-computer/?refresh_ce=

49
Figura 11 – Attivazione dell’attività celebrale di Gertrude mentre utilizza l’olfatto per odorare la mano della persona.
Fonte: https://www.youtube.com/watch?v=iSutodqCZ74

Nel video vengono anche mostrati altri due maiali. Il primo non ha subito interventi da parte dei chirurghi,
mentre il secondo ha subito due interventi, uno di impianto del chip e uno di rimozione. Sono mostrati anche
questi maiali per mostrare che non ci sono differenze tra Gertrude e il maiale che non è stato utilizzato nella
sperimentazione, ma anche per mostrare che il Link può essere impiantato e poi rimosso senza effetti
collaterali. In un video più recente44, Neuralink ha mostrato come una macaco, di nome Page, sia in grado di
giocare Pong esclusivamente grazie all’impianto Link nel suo cervello. Nel video si vede come Page venga
ricompensata dall’utilizzo del proprio impianto tramite del frullato di banana man mano che compie le azioni
volute dagli scienziati. Inizialmente Page utilizza un telecomando per giocare, mentre successivamente il cavo
viene scollegato e si ha il totale utilizzo dell’impianto per giocare. Page deve solamente pensare ai movimenti
che vuole far fare agli oggetti sullo schermo affinché essi si muovano. Questo è possibile grazie alla
codificazione e decodificazione degli impulsi neurali registrati dal Link.
Come nel caso di Neuralink, l’utilizzo dell’Intelligenza Artificiale è, anche, utilizzata in campo chirurgico. I
robot son in grado di assistere i chirurghi nel posizionamento degli strumenti nelle operazioni più delicate,
come quelle al cervello o al cuore. L’estrema precisione dei robot permette un probabilità maggiore di successo
dell’intervento, andando a ridurre il rischio di lesioni.
Ad oggi al robotica è applicata principalmente a semplici azioni di routine tramite sistemi complessi che sono
in grado di percepire l’ambiente, ragionare e interpretare determinate azioni. Rispetto all’effettiva percezione
pubblica i progressi sono inferiori, soprattutto per quanto riguarda applicazioni generali che sono in grado di
svolgere una moltitudine di compiti diversi. Questo però non significa che i enormi progressi non siano enormi
in tutti i campi in cui opera l’Intelligenza Artificiale e che questa sia sempre più presente nelle vite quotidiane
delle persone.
Un altro campo in cui l’Intelligenza Artificiale che sta facendo notevoli progressi è la visione artificiale, che
consente ai computer di comprendere immagini, le quali richiedono attività tipicamente visive. Questo
sviluppo è stato possibile grazie ad algoritmi di Machine Learning e di CNN, che hanno permesso di costruire
modelli di oggetti tramite l’utilizzo dei numerosi esempi raccolti negli anni. Questi algoritmi sono partiti da

44
https://www.youtube.com/watch?v=rsCul1sp4hQ

50
feedback umani per imparare ad associare determinati input a determinati output e hanno trasferito la loro
conoscenza per riconoscere immagini mai viste prima. I progressi sono stati abbastanza rapidi e si è riusciti a
raggiungere un livello di errore del 5%, permettendo anche l’identificazione delle azioni compiute in
determinati video. Grazie a questa tecnologia è possibile anche ricevere in input determinati dati che gli essere
umani non sono in grado di cogliere, come i raggi infrarossi e i segnali radar. La percezione permette agli
agenti intelligenti di riconoscere il mondo che li circonda, ed è possibile grazie a sensori la cui funzione
principale è la raccolta di questi dati e la trasformazione degli stessi al fine di poterli visualizzare. Questa
capacità delle macchine permette loro di interagire con cose che gli esseri umani non sono in grado di vedere.
Queste capacità non sono tipiche solo dei computer ma appartengono anche ad alcuni animali, come i
pipistrelli che sono in grado di utilizzare e riconoscere suoni riflessi. Le applicazioni che riguardano la visione
artificiale si focalizzano sull’identificazione degli oggetti in determinati contesti. È molto complicato per
algoritmi di Intelligenza Artificiale agire con queste informazioni dato che determinate azioni, come colpire
un chiodo o imbiancare una casa, considerate semplici dagli essere umani, richiedono una moltitudine di abilità
che gli automi ancora non possiedono in maniera generale, ma solo in ambito specifico. La visione
computerizzata permette l’esecuzione di compiti fisici con oggetti che sono in posizioni prefissate e statiche,
ma che sono applicati al mondo reale non strutturato. Un altro utilizzo della visione artificiale, implementato
negli ultimi anni, è il riconoscimento facciale che può essere applicato sia a livello di sicurezza nazionale sia
per sbloccare i propri telefoni. Questa tecnologia permette alle testate giornalistiche di identificare le celebrità
quando compaiono in pubblico. Tramite l’Intelligenza Artificiale Amazon Rekognition del servizio di Amazon
Web Service è possibile per aziende come Marinus Analytics usufruire di servizi quali Traffic Jam che aiuta
nell’identificare e nell’individuare delle vittime del traffico di esseri umani. Tramite questo servizio è possibile
ridurre il tempo di analisi delle immagini, dato che l’algoritmo è in grado di cercare e analizzare milioni di
immagini in pochi secondi, al fine di velocizzare l’identificazione e l’intervento degli investigatori. Se si
utilizza il sistema di analisi di Amazon Rekognition è possibile attribuire un punteggio di somiglianza che
l’algoritmo deve identificare rapportando le immagini al fine che questo consideri come positiva la
misurazione. Essendo una misurazione statistica delle possibilità non si ha mai la certezza che i due volti in
un’immagine corrispondano. Si tratta in ogni caso di una previsione45.
I motori di ricerca di Google e Bing utilizzano algoritmi di Intelligenza Artificiale al fine di ricercare tra
miliardi di pagine in miliardi di siti in modo tale da ordinare le pagine secondo un ranking di importanza, e
per facilitare l’utente nella ricerca vengono mostrati per primi i risultati più cliccati. Nel tempo l’ordine può
variare a seconda dell’utilizzo e l’autorevolezza delle pagine. Un altro motivo per il quale viene utilizzata
l’intelligenza è la mappatura dell’utente al fine di rendere personalizzate le interazione che ha sul web. Google
utilizza PageRank per misurare la rilevanza della pagina, e RankBrain per migliorare l’ordine dei risultati.
Tramite l’utilizzo di Google foto è possibile ricercare immagini simili all’immagine inserita. Questa modalità
permette all’algoritmo di apprendere qualcosa di molto complesso dato che, per gli algoritmi, può essere molto
difficile definire cosa c’è all’interno dell’immagine. Grazie alla grande quantità di dati acquisita, gli algoritmi

45
https://aws.amazon.com/it/rekognition/the-facts-on-facial-recognition-with-artificial-intelligence/

51
sono diventati molto abili nel riconoscimento visivo delle immagini, e questo ha permesso il loro utilizzo
anche a livello industriale per la rilevazione di oggetti non conformi agli standard. Per esempio è possibile
riconoscere le lenticchie imperfette e scartale in modo automatico, velocizzando e rendendo più efficiente il
processo. La profilazione degli utenti è molto importante per molte aziende dato che permette di personalizzare
la pubblicità ed incentivare gli acquisti. Società come Amazon la utilizzano per personalizzare i prodotti da
mostrare in futuro in base ai prodotti acquistati e visualizzati in passato. Tuttavia questi non sono gli unici
utilizzi della profilazione, dato che questa permette anche la prevenzione delle malattie, la lotta al crimine e la
pianificazione della manutenzione delle infrastrutture.
l’Intelligenza Artificiale è usata anche dagli intermediari finanziari nei mercati finanziari. Il primo utilizzo
risale al 1988 da parte di Yamaichi Fuzzy Fund. Gli algoritmi di trading sono in grado di valutare se un
determinato asset sia da comprare o da vendere in base alla valutazione di una grande quantità di fattori, come
la lettura di notizie e la valutazione dell’opinione generale delle società menzionate dalle stesse. Il fine di
questi algoritmi è di minimizzare il rischio e massimizzare il rendimento. Le maggiori applicazioni in ambito
finanziario riguardano l’ambito del trading di titoli e valute. Le Intelligenze Artificiali vanno a comporre i
portafogli tramite l’ottimizzazione delle ponderazione dei titoli interni allo stesso. Spesso sono utilizzati dei
Robo-advisor al fine di fare uno screening preliminare degli asset da monitorare in maniera più veloce e
accurata. Successivamente sarà l’investitore a valutare i titoli selezionati e opererà sul mercato in maniera
manuale. Questo è il metodo più utilizzato dato che si teme che se l’intero processo fosse svolto in maniera
automatica si potrebbero creare problemi finanziari macroscopici. A livello storico questo è stato rilevato il 6
maggio 2010 quando nel pomeriggio si ebbe un crollo di alcuni miliardi del mercato causato dalla
compravendita istantanea effettuata da alcuni algoritmi che, in concorrenza tra loro, tentarono di ostacolare
determinati scambi, al solo fine di raggiungere lo scopo prefissato. È comunque sbagliato condannare questo
tipo di innovazione tecnologica a priori. L’intero settore finanziario utilizza algoritmi di Intelligenza Artificiale
per compiere numerose funzioni. Ogni operatore del settore si interfaccia quotidianamente con questa
tecnologia. Anche le autorità regolamentazione dei mercati finanziari sono solite utilizzare algoritmi di
Intelligenza Artificiale per supervisionare e controllare le condotte degli operatori finanziari all’interno del
mercato46. l’Intelligenza Artificiale è molto utile nell’analisi del credito. L’analisi del credito da parte
dell’Intelligenza Artificiale rappresenta uno strumenti previsionale basato su modelli statistici di analisi dei
Big Data che è in grado di mappare la solvibilità del debitore e di decidere se questo riuscirà o meno a restituire
il debito contratto. Tramite un profiling finanziario del debitore è possibile concedere prestiti alle persone che
più probabilmente riusciranno a ripagare i debiti e andando a migliorare l’efficienza del mercato. In ambito
finanziario, l’’Intelligenza Artificiale è anche utilizzata al fine di rilevare frodi e per personalizzare
l’esperienza dei consumatori tramite dei chatbot. I chatbot permettono all’utente di interfacciarsi con
un’Intelligenza Artificiale che è in grado di rispondere alle domande più comuni poste dagli utenti in maniera
molto rapida, evitando di fare perdere tempo all’utente ed evitando l’intervento di un operatore del servizio.
Società come Amazon e Alibaba sono in grado di utilizzare i dati raccolti sui propri utenti per dividere i

46
https://www.agendadigitale.eu/cultura-digitale/intelligenza-artificiale-per-la-finanza-vantaggi-e-rischi-giuridici/

52
debitori in diverse classi. Questo viene fatto anche dalle banche tradizionali, ma i colossi hi-tech hanno molte
più informazioni sui debitori e sono in grado di profilarli in maniera più accurata, andando a diminuire il
rischio d’insolvenza. A differenza di Amazon, Alibaba ha già all’interno del suo gruppo una banca, Ant
Financial47. Amazon sta andando in questa stessa direzione e potenzialmente potrà per finanziare direttamente
i venditori che operano sulla sua piattaforma, così che questi non dovranno più utilizzare le classiche banche
per finanziarsi ma potranno svolgere tutte le operazioni direttamente sulla piattaforma.
Le applicazioni descritte sono state possibili grazie allo sviluppo di più innovazione tecnologiche avvenute
contemporaneamente. L’unione di grandi mole di dati agli algoritmi di Machine Learning hanno permesso
agli stessi di fare traduzioni di interi testi da una lingua all’altra soltanto grazie all’analisi di molti esempi di
traduzione fatti da esseri umani. Questo ha permesso a programmi, senza alcuna esperienza, di realizzare
traduzioni migliori degli esperti in materia. L’importanza dell’Intelligenza Artificiale risiede nella semplicità
con la quale vengono trovate correlazioni in un numero molto grande di esempi e di replicarne i risultati su
esempi sconosciuti. Questi algoritmi sono in grado di svolgere questi compiti senza nessuna conoscenza o
comprensione della materia. Questo approccio sottolinea che il metodo umano per la risoluzione dei problemi
non è l’unico, e forse, non è neanche il migliore. Il modo preciso con il quale i programmi di Intelligenza
Artificiale automatici riescono ad imparare e svolgere i propri compiti sono ancora incomprensibili, proprio
come l’effettivo funzionamento del cervello umano. L’elemento comune a tutte le applicazione di Intelligenza
Artificiale sono i Big Data, senza i quali, per l’Intelligenza Artificiale, non sarebbe possibile individuare
pattern con elevata affidabilità.

3.2 Big Data:


Al fine di applicare queste determinati algoritmi di Intelligenza Artificiale è necessaria la raccolta di una
grande mole di dati in modo tale da permettere agli stessi di apprendere. Negli ultimi anni, tramite l’utilizzo
di sensori e dispositivi elettronici è stato possibile una quantità di dati inimmaginabile, permettendo la
proliferazione degli algoritmi di Intelligenza Artificiale. I dati ricoprono un ruolo centrale nel mutamento
tecnologico degli ultimi anni, grazie alle milioni di informazione che vengono scambiante ogni minuto. I dati
sono trasportati da un flusso continuo e di informazioni contenute in notizie reali o inventate e che spesso sono
indistinguibili. Le piattaforme digitali si occupano dell’estrazione, del trattamento e dell’elaborazione dei dati,
grazie ai quali possono personalizzare i contenuti e poter ottenere un numero sempre maggiore di dati dato
grazie all’incremento dell’utilizzo della rete.
I Big Data48 non hanno una definizione univoca ma sono identificabili secondo determinate caratteristiche,
quali la velocità, la varietà, il volume e il valore dei dati raccolti e processati. La maggior parte di questi dati
è non strutturata, cioè non sono dati organizzati in database tradizionali organizzati ma sono acquisiti e
immagazzinati diversamente. I Big Data sono utilizzati nella vita quotidiana di tutte le persone, come
nell’utilizzo dei filtri anti-spam, e nella correzione automatica della parole. Questi dati sono utilizzati al fine

47
https://www.ai4business.it/intelligenza-artificiale/come-lintelligenza-artificiale-e-entrata-nei-servizi-finanziari/
48
L’Unione Europea definisce i megadati come delle grandi quantità di dati di tipo diverso che sono prodotti da più fonti, come
persone, macchine e sensori.

53
di rendere più efficiente l’algoritmo che a sua volta permette di generare una quantità maggiore di dati. In
questo contesto i dati fanno sia da input che da output. Grandi quantità di dati permettono una migliore analisi
predittiva e vengono utilizzati con ottimi risultati in molti ambiti come quello medico e di monitoraggio del
traffico stradale. I Big Data hanno permesso la riduzione del tempo di ricerca e le raccomandazioni degli
algoritmi che permettono all’utente di visualizzare ricerche affini ai suoi interessi facendo una scrematura a
priori. I Big Data stanno cambiando il modo in cui interagiamo con l’ambiente circostante. Questi utilizzi
generano delle preoccupazioni riguardo alle libertà personali e di privacy, per cui è necessario tenerne conto
quando si vanno ad analizzare delle serie di dati.
I Big Data permettono di sfruttare le informazioni in essi contenuti al fine di ricavare informazioni utili con
modalità innovative. Google è in grado di prevedere determinate situazioni tramite il monitoraggio delle
ricerche effettuate dagli utenti e cercando le correlazioni tra la frequenza di ricerca e la diffusione del fenomeno
che desidera studiare. Questo tipo di modelli è in grado di spiegare il cosa, ma non il perché, e per essere in
grado di funzionare necessita di enormi quantità di dati. Questo tipo di innovazioni è stato possibile grazie ai
progressi di archiviazione ed elaborazione dei dati che sono diventati più efficienti in termini di tempo e di
costi. Aumentando la mole di dati disponibili è possibile creare delle innovazioni che prima non erano
nemmeno immaginabili. Al giorno d’oggi la raccolta di dati avviene di continuo tramite i cellulari e gli altri
dispositivi elettronici con i quali gli utenti sono sempre in contatto. Questi dati, nella maggior parte dei casi,
vengono raccolti dalle Internet compagnies quali Google, Apple, Amazon e Facebook che ottengono un
vantaggio competitivo rispetto a chi non è in grado di raccoglierli. Lo sfruttamento dei Big Data è quello di
applicare funzioni matematiche a grandi quantità di dati al fine di ottenere delle probabilità. Questo tipo di
sistemi è in grado di funzionare correttamente perché è alimentato da molti dati, grazie ai quali il sistema riesce
a automigliorarsi nel tempo e di conseguenza a generare migliori previsioni.
L’utilizzo dei dati permette di analizzare i fenomeni in maniera molto più dettagliata rispetto al passato e di
giungere all’accettazione di un maggiore di errori nella misurazione rispetto ad un minor numero di errori
dovuto al campionamento. Ad oggi è possibile raccogliere informazioni su quasi tutti i sistemi esistenti, che
in passato neanche erano considerati, in modo tale da convertirli in una struttura in grado di quantificarli, e
tentare di utilizzarli con modalità alternative e innovative. È necessario che vengano implementate determinate
regole nell’implementazione degli algoritmi al fine di tutelare le informazioni degli utenti, ma è anche
necessario che le persone si attivino per comprendere i dati in loro possesso dato che nella maggior parte dei
casi la cessione dei dati è volontaria. È necessaria una riflessione etica sul tema della libera scelta in rapporto
alle decisioni indicate dall’analisi dei dati.
Al fine di utilizzare i Big Data è necessario che qualcuno li acquisisca. La semplice acquisizione serve a poco
e potrebbe contenere delle ridondanze che potrebbero rendere meno efficiente l’algoritmo. Si deve quindi
operare la preparazione dei dati e la predisposizione per l’archiviazione e la conservazione al fine di poterli
utilizzare in qualsiasi momento futuro. Il dato grezzo viene trasformato in una sorta di conoscenza e visione.
Le memorie dei Big Data possono essere conservate in diversi computer che vanno a formare una rete di
organizzazione in cui gli stessi computer possono esser collocati in ambienti molto distanti.

54
Ad oggi è sempre più facile e veloce tutti i dati a disposizione in un numero sempre maggiore di contesti.
Gestire i Big Data significa identificare e comprendere le relazioni presenti tra le informazioni e il contenuto
delle stesse. L’incremento del volume dei dati va a scapito dell’esattezza ma va a vantaggio della
generalizzazione. Grazie all’utilizzo di dataset sempre più completi è possibile considerare l’interezza del
fenomeno, e non più solo una piccola parte dello stesso. I Big Data hanno permesso l’individuazione della
correlazione49 tra determinati fenomeni. Amazon è riuscita a identificare le preferenze di acquisto di
determinati clienti e di suggerire, ai successivi clienti, prodotti in linea con quelle preferenze tramite la
correlazione di acquisto avvenuta in passato. L’algoritmo non è in grado di determinare il motivo della
correlazione, ma non è questo il suo scopo. Questi sistemi innovativi permettono l’individuazione di
correlazioni senza il bisogno di conoscerne le cause, e permettono di comprendere i fenomeni in maniera più
rapida e chiara rispetto a quanto avveniva in passato. Le correlazioni sono molto utili in quanto permettono di
analizzare i fenomeni tramite un indicatore di riferimenti. Il rischio è che la correlazione tra alcuni dati sia una
coincidenza causale e non sussista un’effettiva correlazione tra i due fenomeni. Per questo non si ha mai la
certezza della correttezza della correlazione e questa va intesa, sempre, in termini probabilisti. All’aumentare
dei dati è possibile ridurre l’incertezza che la correlazione sia casuale. Walmart è riuscita a sfruttare i dati a
disposizione per rilevare che dopo la notizia di un allarme uragano, nell’immediato, venivano acquistate più
torce elettriche e merendine. Questo ha permesso all’azienda di posizionare i prodotti in maniera più vicina e
aumentare i profitti. Ad oggi le analisi della correlazione sono molto utilizzate anche nel quotidiano e gli
utilizzi sono in costante aumento. Tramite l’utilizzo delle correlazioni di acquisto, l’azienda Target è riuscita
a identificare gli acquisti più probabili compiuti dalle donne incinte e a personalizzare le loro pubblicità tramite
messaggi specifici. Questo ha portato a un incremento delle vendite di quei prodotti da parte del target delle
donne incinte ma ha sollevato diversi dubbi quando il padre di una ragazza quattordicenne si è andato a
lamentare per il fatto che l’azienda stesse inviando la figlia a rimanere incinta. Successivamente il padre ha
scoperto che la figlia era effettivamente incinta. L’identificazione degli indicatori rappresentativi in
determinati contesti sociali è una delle tecniche più utilizzare per lo sfruttamento dei Big Data. Un altro utilizzo
di questi dati molto frequente riguarda la risoluzione di problemi di tutti i giorni tramite metodi di analitica
previsionale.
Oggi, grazie ai Big Data, è possibile identificare correlazioni non lineari tra i dati e questo permette di
individuare fenomeni che non sarebbero mai stati individuati seguendo un’analisi lineare. Le tecniche di
correlazione sono supportate dai più recenti software di analisi che possono individuare le relazioni non casuali
dei dati tramite la visualizzazione del problema da diverse prospettive. Il nostro cervello è spesso portato a
credere a una correlazione tra due eventi che si sono verificati uno di seguito all’altro. Secondo Kahneman
questo avviene perché il cervello valuta tramite 2 tipi di pensiero, uno veloce, utilizzato con uno sforzo minimo
e uno più lento, in cui prevale il ragionamento analitico e che richiede uno sforzo maggiore. L’approccio più
rapido permette di individuare correlazioni dove non esistono e spesso cerca di confermare credenze e
convinzioni preesistenti. Questa scorciatoia cognitiva, che può essere molto utile in determinati contesti, dà

49
Una correlazione identifica la relazione statistica tra due dati, o insieme di dati.

55
un’illusione di comprensione del mondo ma, in realtà, non ne permette la comprensione. Accettare le relazioni
casuali può essere difficile anche perché la nostra mente tende sempre a ragionare in un contesto di dati limitati,
anche se quasi sempre il contesto richiede l’analisi di molti più fattori di quelli che sono effettivamente
percepiti. Attraverso l’utilizzo delle correlazioni è possibile individuare della variabili da utilizzare nei modelli
per verificare determinate casualità. In questo contesto è importante comprendere che si ricerca il cosa e non
il perché, quindi l’algoritmo individuerà la correlazione ma non ne capirà il motivo. La ricerca delle
motivazioni della casualità non è stata abbandonata e, molto probabilmente, non lo sarà in futuro, ma ha subito
un ridimensionamento considerevole.
I Big Data hanno portato ad un’innovazione dal punto di vista del loro utilizzo. Questi vengono utilizzati in
forme nuove al fine di risolvere problemi complessi. I Big Data utilizzano teorie statistiche e matematiche per
cercare di predire i fenomeni che riguardano determinati comportamenti o processi. I Big Data permettono di
offrire una prospettiva originale dato che non seguono una logica convenzionale o i pregiudizi tipici delle
teorie sviluppate dagli essere umani. Tramite la datification50 è possibile creare un valore specifico del dato,
che non si avrebbe avuto con un database ridotto. Datizzare un fenomeno permette all’utilizzatore di
convertirlo in una forma quantitativa in modo tale da renderlo analizzabile, e quindi utile. Grazie all’avvento
dei computer è stato possibile creare archivi digitali che hanno facilitato la datizzazione e l’hanno resa più
efficiente, grazie all’analisi matematica dei dati. La capacità di estrarre e registrale informazioni è diventata
fondamentale in tutti i settori. Questo ha permesso l’affermazione e lo sviluppo della datizzazione e ha
permesso di indagare su determinate dinamiche sociali, sia a livello individuale che di gruppo. L’avvento dei
Big Data ha permesso di interpretare i fenomeni come un universo composto essenzialmente da informazione
e non più come una mera successione di eventi. È anche possibile calcolare determinati aspetti fisici e
intangibili da utilizzare a proprio vantaggio.
Gli utenti, oltre per il valore che hanno come meri consumatori, hanno un valore dato dal fatto che i dati che
forniscono permettono di mappare la domanda individuale del consumo, permettendo lo sviluppo di una
pubblicità personalizzata. Questi dati, inoltre, permettono agli stessi algoritmi che li utilizzano, di
automigliorarsi tramite la produzione di nuovi dati e di stimare una domanda aggregata di un determinato
insieme di consumatori. La domanda aggregata permette di individuare i bisogni del mercato, le opportunità
di investimento e di innovazioni a seconda dei cambiamenti delle preferenze dei consumatori.
Il valore del dato è dato dall’insieme del suo volume, della sua varietà, e della sua velocità. Per acquisire un
valore economico può essere necessario che essi si presentino come funzionali allo svolgimento di determinate
analisi economico-statistiche. Il valore del dato può essere visto in due prospettive. La prima è una prospettiva
di utilizzo immediata per un fine predeterminato a rispondere alla domanda di ricerca, mentre la seconda è una
prospettiva di valore potenziale, della quale, oggi, non si conosce ancora l’esistenza, ma che nel futuro
potrebbe essere utile. Il valore che possono apportare gli utenti è molto elevato e spesso è gratuito. Tramite la
funzione reCaptcha è stato possibile utilizzare gli utenti per riconoscere determinate parole che erano
impossibili da decifrare per i programmi di scannerizzazione del testo. Gli utenti, mentre provavano di essere

50
La datification è l’estrazione di dati da materiali che sono ritenuti privi di valore.

56
degli esseri umani, hanno svolto la funzione di decifrare parole ambigue di determinati testi, in modo
totalmente gratuito. Il valore generato da questa soluzione è stato elevatissimo perché se fosse stato
commissionato avrebbe comportato costi troppo elevati e non sarebbe stato implementato. Questa vicenda ha
messo in luce l’importanza del riutilizzo dei dati, e quindi quanto il dato non abbia un mero valore nel presente
ma vada, necessariamente, considerato in un’ottica di valore potenziale futuro. Un altro aspetto che va
considerato è la possibilità di estrarre dati in maniera passiva e senza grandi sforzi.
È possibile considerare i dati come un bene economico dato che questi hanno un potenziale di mercato, dato
dal fatto che uno stesso dato può essere utile a più organizzazioni. È considerato un bene economico dato che
questo può scaturire una domanda e un’offerta, oltre al fatto che può produrre valore per chi è in grado di
utilizzarlo. Il prezzo può dipendere da diversi fattori e, molto spesso, non è facilmente quantificabile in modo
univoco51. L’estrazione e il commercio di dati digitali ha permesso lo sviluppo della pubblicità mirata che ha
rivoluzionato il settore della pubblicità mondiale. Il valore aggiunto delle informazioni passa attraverso il
contenuto al dato. Questo valore è dato dal fatto che i dati riguardano aspetti socio demografici, familiari,
medici, economici, e di abitudini del consumo. Questo tipo di dati non sono considerabili solo a livello
personale ma, se uniti, contengono informazioni di carattere generale, fornendo informazioni su determinati
schemi di comportamento di alcune tipologie di consumatori. Questo permette di offrire indicazioni predittive,
che sono sfruttabili economicamente da chi ne è in possesso. Le informazioni vengono raccolte su una grande
vastità di gruppi permettendo la creazione di analisi predittive abbastanza precise sulle caratteristiche di un
determinato gruppo di individui e del loro comportamento in un determinato contesto. I dati devono essere
considerati in funzione dell’utilizzo dell’impresa, e il valore è dato dall’insieme dei modi in cui è possibile
impiegarlo. La somma del valore dei singoli dati è superiore quando questi vengono ricombinati. Una proprietà
molto importante dei Big Data è che questi non perdono di valore quando sono utilizzati, anzi, in alcuni casi
potrebbero permettere l’acquisizione di una quantità maggiore dati, incrementando il proprio valore. Questo
comporta che se una persona utilizza un determinato dato, questo può essere riutilizzato anche da qualcun
altro, o dalla persona stessa, per uno scopo diverso. Per rendere efficiente l’utilizzo dei dati è necessario che
siano riutilizzabili, che si possano fondere con altri dataset per avere un campione di più vaste dimensioni e
che possano essere estesi. Tuttavia è bene considerare che non tutti i tipi di dati conservano il proprio valore
nel tempo. Alcuni dati potrebbero diventare obsoleti con il passare del tempo e potrebbe essere necessario
eliminarli al fine di non compromettere le previsioni future dell’algoritmo. È quindi necessario soppesare i
dati. Spesso è difficile capire quali siano i dati utili e quali siano problematici. Fondare la decisione unicamente
sul tempo trascorso potrebbe non essere la soluzione migliore dato che non tutti i dati perdono di valore nello
stesso arco di tempo. Tramite la ricombinazione dei dati è possibile creare molti innovazioni che prima non
erano pensabili che potrebbero portare all’utilizzo di informazioni che prima non erano considerate. Il valore
dei dati è contenuto nel loro riutilizzo che è potenzialmente illimitato.
Le aziende che si occupano della raccolta dei dati sono in grado di raccogliere dati sulla maggior parte delle
attività compiute dagli utenti e di utilizzare queste attività come feedback per migliorare i propri contenuti.

51
Quest’analisi prescinde da valutazioni etiche e giuridiche ed è da intendere in termini puramente economici.

57
Alcune aziende come Google sono riuscite a sfruttare i data exhust52 che sono considerati come un effetto
collaterale delle azioni compiute dall’utente. Questo tipo di dati può riguardare come viene mosso il mouse su
una pagina, quali parole vengono digitate e in che punto della pagina si sofferma la loro attenzione. Sfruttando
questo tipo di dati è possibili creare o migliorare determinati servizi, grazie all’apprendimento costante dei
dati. Questo tipo di dati è molto utilizzato nel campo del riconoscimento vocale e nei filtri anti-spam dato che
insegnano al sistema ad automigliorarsi.
Tramite l’utilizzo dell’Intelligenza Artificiale è possibile creare algoritmi in grado di confrontare l’accuratezza
dei giudizi espressi dagli esperti con le valutazioni degli stessi algoritmi. All’inizio Amazon aveva un team di
esperti che si occupavano di individuare libri o prodotti che sarebbero potuti essere di interesse per un
consumatore e che quindi sarebbero stati suggeriti alla ricerca di un determinato prodotto. Con l’acquisizione
dei dati dei prodotti venduti e con l’analisi delle correlazioni tra questi prodotti è stato possibile automatizzare
il processo e renderlo più efficiente. L’algoritmo non è in grado di capire perché due o più prodotti sono
comparti insieme da più consumatori ma è in grado solo di rilevare il fatto. Amazon prima di sostituire il team
di esperti ha testato entrambe le strategie e ha visto che effettivamente l’algoritmo dava risultati migliori. Le
informazioni scaturite sono molto accurate e permettono l’utilizzo di modelli predittivi del comportamento
sociale. Questo ha tipo di previsioni ha bisogno di ingenti investimenti preliminari. È necessario che le
infrastrutture, hardware e software, riescano a gestire l’amplissima mole di dati, strutturati e non, che si
aggiornano costantemente a ritmi crescenti.
Le tecniche di Intelligenza Artificiale permettono di estrapolare anche dati che veicolano forme di
informazioni raffinate. Queste sono alla base di molte applicazioni dei servizi online che hanno la finalità di
svolgere compiti in modo automatico. Le informazioni permettono di acquisire metodi di risoluzione dei
problemi che fanno riferimento agli ambiti più disparati, che possono essere professionali, domestici e sanitati.
La disponibilità dei Big Data hanno rivoluzionato le tecniche utilizzate in tutti i settori. In particolare hanno
permesso lo sviluppo di discipline come l’Intelligenza Artificiale e la robotica, ma anche l’automazione e il
feedback processing53. Man mano che i Big Data entrano a far parte delle vite quotidiane, si avrà un costante
miglioramento degli strumenti che andranno a ridurre il valore delle competenze degli specialisti. Questo non
vuol dire che non serviranno più gli specialisti ma che non sarà più necessario fare affidamento solo su di loro.
Stanno cambiando le competenze necessarie da avere in determinati ambiti lavorativi ed è necessario
instaurare una discussione sul modo nel quale i dati possano e debbano essere utilizzati al fine di garantire un
vantaggio per la società, senza andare a pregiudicare la privacy degli utenti.

3.3 Privacy:
Nell’ambito dell’Intelligenza Artificiale la tutela dei dati personali è di fondamentale importanza dato
l’impatto che ha sulla vita quotidiana delle persone. Dato che gli algoritmi di Intelligenza Artificiale hanno
alla base del loro funzionamento l’elaborazione, l’analisi e il trattamento di grandi quantitativi di dati è
necessario che questi siano soggetti a delle regolamentazioni e che siano tutelabili a livello di privacy.

52
I data exhaust sono dati residui.
53
Le attività di feedback processing permettono di migliorare i processi in atto tramite i giudizi degli utenti.

58
Negli ultimi anni l’avvento delle innovazioni tecnologiche hanno cambiato profondamente le organizzazioni
mondiali e le relazioni tra le persone. Si è assistito ad un progressivo accentramento dei mercati sotto il
controllo di grandi imprese che sono in grado di influenzare la maggior parte degli aspetti della vita quotidiana
dei consumatori, e talvolta queste decisioni possono avere ricadute politiche. La concentrazione ha
sicuramente favorito la realizzazioni di innovazioni e l’accesso ad un pubblico molto vasto, ma ha anche posto
dei rischi per la privacy dei consumatori e per la libera concorrenza dei mercati. Poche piattaforme online 54,
che competono a livello internazionale, riescono a raggiungere e interconnettere un numero molto vasto di
consumatori e questo permette loro di influenzare le scelte che fanno a diversi livelli. Grazie all’attenzione
che viene data dagli utenti ai servizi di queste piattaforme, le stesse sono in grado di comprendere quali sono
gli interessi e le cose che possono andare ad infastidire l’utente. Questo permette alle piattaforme di profilare
i diversi utenti e di fornire contenuti personalizzati per l’attenzione dello specifico target. Il problema di questo
approccio è che rischia di polarizzare le posizioni degli utenti rendendoli partecipi solamente degli argomenti
con cui hanno già interagito in passato, lasciando poco spazio ai cambiamenti della vita o alla visione di idee
contrastanti le proprie.
La facilitazione della raccolta dei dati ha permesso, almeno a livello potenziale, una sorveglianza costante.
Navigando in Internet vengono registrate le abitudini di navigazione e tramite il rilevamento della posizione è
possibile sapere dove è ubicato l’utente e chi c’è nelle vicinanze. Molti servizi vengono forniti gratuitamente
online, in termini monetari, ma richiedono comunque uno scambio implicito di dati personali dell’utilizzatore.
Il fornitore del servizio ha accesso alle scelte che vengono compiute sulla piattaforma, sulla disponibilità a
pagare, sulla preferenze e sulla frequenza di acquisto. Alcune ricerche hanno mostrato come le app gratuite,
tramite l’accettazione del servizio, acquisiscono molte più informazioni rispetto alle app a pagamento, e,
spesso questi dati non hanno direttamente a che fare sul funzionamento del servizio gratuito offerto. Questo
rappresenta un forte rischio per la privacy. I Big Data hanno cambiato la dimensione del fenomeno e hanno
reso inefficienti le protezioni passate della privacy. L’analisi previsionale, che si basa sulla statistica e non
sulla certezza, potrebbe andare a penalizzare le propensioni degli utenti e, quindi, non gli atti che compiono.
L’estremizzazione a cui si potrebbe arrivare è rappresentata dal giudicare le persone in base all’atto potenziale
e questo ponte molti problemi riguardo al libero arbitrio e alla giustizia. Utilizzare questa mole di dati in modo
improprio potrebbe rappresentare una minaccia dato che potrebbe essere utilizzata come mezzo di repressione
da parte dei governi dittatoriali. Questo è determinato dal non rispetto delle regole della privacy o di una
carente regolamentazione della stessa.
Le forze di polizia stanno iniziando a usare modelli algoritmici per stabilire dove è più probabile che vengano
commessi reati. Utilizzare l’analisi dei dati per fare previsioni può essere molto utile, ma, non essendo certi
della correlazione tra il dato e il fenomeno, non è corretto affidare tutte le decisioni a queste analisi e potrebbe
portare a molti problemi. I sistemi che mirano a prevenire i reati tentando di comprendere chi siano le persone
che hanno più probabilità di commettere determinati reati, al fine di prevenirli. Il sistema FAST55 è in grado

54
Nell’immaginario comune queste aziende vengono identificate come le Big Four e sono Google, Amazon, Apple e Facebook.
55
Future Attribute Screening Technology, è stato progettato dallo U.S. Departemento of Homeland Securety.

59
di identificare potenziali terroristi tramite l’analisi del linguaggio non verbale e dei segni vitali dell’individuo.
È un sistema molto rudimentale ma non è detto che in futuro non potrebbe risultare efficace. La prevenzione
dei reati produce notevoli rischi dato che potrebbe andare a ridurre la libertà personale. Ad oggi sono già
presenti alcune limitazioni che servono alla prevenzione di comportamenti nocivi per la salute, come l’obbligo
delle cinture di sicurezza e i limiti posti al fumo. Questo è possibile grazie al fatto che la maggior parte delle
persone ritengono che i benefici di questi comportamenti siano maggiori dei rischi. Lo stesso potrebbe non
verificarsi nel caso della previsione dei crimi dato che il profiling, se usato scorrettamente, potrebbe
determinare notevoli rischi a livello di discriminazione e di controllo. Il fatto che ci siano molte probabilità
dell’avvenimento di un fenomeno non implica che l’atto verrà compiuto effettivamente in futuro e per questo
non è possibile condannare quella persona a priori, senza che abbia effettivamente commesso l’atto.
I Big Data sono molto utili a capire il rischio attuale e futuro e permettono di adeguare le proprie azioni, ma
non dicono molto sulla casualità, e quindi non sono in grado di attribuire colpe individuali. Questo potrebbe
essere ignorato dato che le persone sono inclini a ricercare la casualità anche senza gli elementi che la
confermino. Questa inclinazione potrebbe portare a distorcere i dati al fine di confermare una casualità,
rendendo l’analista prigioniero delle probabilità.
I problemi di privacy non riguardano tutti i tipi di dati, dato che alcuni non tracciano e quindi non contengono
informazioni personali. Tuttavia con il crescere della quantità dei dati sistemi di anonimizzazione non sono
più efficaci dato è stato possibile risalire alle identità di alcune persone tramite questi dati. I Big Data facilitano
la reidentificazione e questo rappresenta un grande problema di privacy. Determinati dati possono riferire
molto sulle abitudini personali degli utenti ed è giusto che queste siano tutelate. I Big Data erodono la privacy
e rischiano di instaurare una fiducia cieca negli stessi. Purtroppo i dati non sono sempre completi o corretti e
questo si riflette nelle analisi. Basarsi su questo tipo di analisi sarebbe fuorviante, e comporta il rischio di
vincolarsi a risultati che non rispettano la veridicità che gli è attribuita.
È necessario trovare nuove soluzioni e considerare il fatto che il dato non sia utilizzabile solo per lo scopo
iniziale ma è riutilizzabile anche per scopi futuri, che oggi non sono ipotizzabili. Ad oggi, purtroppo, le norme
sulla privacy specificano solo che deve essere acconsentito l’utilizzo dell’informazione dato un fine specifico,
e quindi non è chiaro se lo stesso dato possa essere utilizzato in futuro per scopi diversi senza l’approvazione
di un nuovo consenso dell’utente. Un altro problema è rappresentato dal fatto che molto spesso gli utenti non
controllano cosa effettivamente stanno acconsentendo e quindi diventa complicato andare a proteggere la
diffusione di determinati dati a posteri, dopo che è stato rilasciato il consenso. È necessario andare a
regolamentare i mercati tramite interventi delle autorità antitrust e di regolamentazione che data la dimensione
delle organizzazioni dovrebbero cercare di risolvere i problemi considerando i casi specifici. La risoluzione
dei problemi dovrebbe considerare il benessere e i rischi a cui sono esposti i consumatori che ricevono i servizi.
I rischi di una profilazione troppo specifica potrebbe permettere di identificare la disponibilità a pagare di
ciascun consumatore e quindi di potrebbe applicare un prezzo differente a ciascun consumatore.
Il notevole incremento della quantità di dati a disposizione pone dei rischi maggiori riguardo alle informazioni
che possono essere sottratte illecitamente dalle varie piattaforme digitali. Per evitare che attacchi informatici

60
riescano ad ottenere l’accesso a una determinata mole di dati riservati è necessario creare delle strategie
adeguate. Per far fronte a queste problematiche si utilizza la Cybersecurity che permette la difesa del computer,
del server e più in generale dei sistemi elettronici dagli attacchi dannosi di cybercriminali. La Cybersecurity
si applica a vari contesti e diventa sempre più fondamentale dato il tipo di informazioni personali trattate.
Come riportato un report di RiskBased Security56, dal 2018 al 2019 il numero di record esposti a data breach
è aumentato del 112%, arrivando a 7,9 miliardi. Per far fronte a queste minacce, i governi pubblicano delle
indicazioni per aiutare le aziende a migliorare la propria sicurezza informatica ed evitare dei furti di dati.
Naturalmente queste linee guida non bastano e sono uno strumento che riesce a limitare solo in parte il
problema. Sono necessarie regolamentazioni che permettano una migliore gestione degli attacchi informatici
e che vadano ad adattarsi ai sviluppi tecnologici attuali e futuri57.
Le applicazioni di Intelligenza Artificiale permettono, anche, di migliorare la sicurezza informatica. Gli
algoritmi sono in grado di esaminare le minacce tramite l’addestramento da milioni di documenti di ricerca,
blog e notizie di cronaca, per combattere il rumore di migliaia di segnalazioni giornaliere, permettendo una
riduzione notevole dei tempi di risposta58. L’uso di algoritmi di Intelligenza Artificiale per la sicurezza
informatica permette un netto miglioramento della stessa. Nonostante questo, sempre più spesso vengono
progettati altri algoritmi di Intelligenza Artificiale che tentano di bypassare gli algoritmi di Intelligenza
Artificiale utilizzati per la cyber defense. La stessa tecnologia di difesa viene utilizzata come strumento di
attacco.
Negli Stati Uniti e in Cina è notevole il peso degli investimenti in applicazioni di Intelligenza Artificiale
rispetto all’Europa, che, invece, ha il primato negli investimenti e nelle pubblicazioni di ricerca sulla stessa.
L’Europa ha iniziato a fissare le prime regole al fine di tutelare la privacy dei cittadini e la progettazione di
determinati business. Tramite il General Data Protection Regulation (GDPR), adottato nel 2018, è stato fatto
un primo passo di protezione della privacy e di regolamentazione della concorrenza delle multinazionali big
tech. È stata introdotta la responsabilità sulla gestione per le società online, ma c’è ancora molto da fare. Gli
stati dell’UE, tramite il Declaration of Coopreation on Artificial Intelligence, hanno creato una libreria open
source nella quale inserire gli algoritmi di ricerca di Intelligenza Artificiale al fine di permettere a tutti i paesi
membri un maggiore progresso nella stessa. Il GDPR prevede la pseudonimizzazione al fine di preservare i
principi privacy e di sicurezza del trattamento dei dati raccolti. L’orientamento dell’Europa è verso
un’Intelligenza Artificiale umano-centrica basata sul rispetto dei diritti umani, per tutelare la dignità umana e
la sua autonomia. I principi cardine riguardano la sicurezza degli essere umani e la loro salute. Questo tipo di
Intelligenza Artificiale deve essere collaborativa ed evitare una stretta sorveglianza sui cittadini. Sono
categoricamente proibiti robot e algoritmi che controllano armi da guerra. È necessario il consenso dei
cittadini, ma purtroppo, la maggior parte degli stessi ancora non sono ben informati. Questo consenso serve a
tenere informati i cittadini ma anche a generare trasparenza tra le parti. Secondo l’Agenzia per l’Italia Digitale

56
https://www.riskbasedsecurity.com/2019/11/12/number-of-records-exposed-up-112/
57
https://www.kaspersky.it/resource-center/definitions/what-is-cyber-security
58
https://www.ibm.com/it-it/security/artificial-intelligence

61
(AgID) è necessario comprendere a fondo cosa si intende per Intelligenza Artificiale, altrimenti diventa
impossibile definire in maniera chiara le opportunità e i rischi che potrebbe comportare. È necessario affrontare
i problemi di trasparenza e di privacy al fine di avere una maggiore sicurezza.
Il potenziale di algoritmi di Intelligenza Artificiale come il riconoscimento facciale per identificare oggetti e
persone è molto elevato, ma data la precisione e la diffusione che potrebbe avere sta sollevando molte
preoccupazione su come questo possa essere utilizzato e che impatto potrebbe avere sulla privacy delle
persone. Questi sistemi potrebbero essere in grado di identificare e distinguere le persone che compiono
determinate attività. Se applicato seguendo principi etici potrebbe apportare notevoli benefici, ma se usato
scorrettamente potrebbe causare notevoli problemi di controllo della vita delle persone. Per questa ragione è
bene definire dei principi etici che rispecchino i valori della società e dei cittadini portando l’innovazione
tecnologica verso un utilizzo benefico per tutti.

3.4 Etica, fino a dove si vuole arrivare:


Facendo riferimento ai comportamenti etici riguardanti l’Intelligenza Artificiale, la prima domanda che
bisognerebbe porsi, non è se sia possibile costruire determinate Intelligenze Artificiali, ma se sia necessario
farlo. È necessario considerare se gli effetti che questa tecnologia potrebbe avere siano probabilmente più
positivi o più negativi. In aggiunta a questo andrebbe considerato che non è possibile prevedere gli effetti
futuri in maniera certa ma che le nuove tecnologie hanno sempre degli impatti inaspettati, positivi o negativi
che siano. Il punto centrale è comprendere se, questi effetti, potenzialmente, saranno più negativi che positivi.
Gli scienziati e gli ingegneri si trovano di fronte a considerazioni etiche sul modo in cui svolgere il proprio
lavoro, sulle modalità di applicazione delle nuove tecnologie e sulla scelta di quali progetti portare avanti e
quali considerare troppo rischiosi da sviluppare.
Negli ultimi anni sta prendendo sempre più rilevanza la discussione sulla correlazione tra l’Intelligenza
Artificiale e la coscienza, perché questa discussione potrebbe avere implicazioni molto importanti e
potenzialmente pericolose per il futuro degli essere umani. Ad oggi nessuno ritiene che l’Intelligenza
Artificiale abbia raggiunto un livello tale da poterla considerare cosciente, e alcuni ritengono che non potrà
mai essere definita come tale. Il punto centrale è capire cosa si intende con coscienza, e purtroppo non è
possibile definire la coscienza in modo unanime, ma piuttosto secondo una visione soggettiva degli individui.
Se si considera la coscienza anche in termini di volontà e responsabilità dell’entità che compie determinate
azioni, allora, si deve considerare la possibilità che queste entità possiedano il libero arbitrio. Questa
considerazione ha impatti sul come andrebbe considerata un’azione di un’entità artificiale nel futuro. È
necessario chiedersi se la volontà di queste unità esista e se la responsabilità debba ricadere su di loro o su chi
le ha programmate.
Le discussioni sul l’Intelligenza Artificiale comportano spesso diverse problematiche dal momento che
impattano sulle domande fondamentali relative alla natura della mente degli essere umani e al loro modo di
comportarsi. Questi temi sono difficili da affrontare dato che impattano le più profonde convinzioni degli
essere umani. I timori maggiori riguardano la possibilità che l’Intelligenza Artificiale possa minacciare la vita
stessa degli esseri viventi. Gli esseri umani considerano il proprio comportamento come guidato dal libero

62
arbitrio, secondo il quale le persone sono in grado di compiere decisioni determinate solamente da loro stesse.
Quindi, le decisioni, in linea di principio, non sono predicibili. Questa assunzione non viene fatta per le entità
artificiali, ma questo non vuol dire che le stesse siano sempre prevedibili, perché se l’entità è in grado di
accedere a previsioni esterne delle sue stesse azioni, allora non è più possibile fare previsioni certe. Questa
assunzione comporta che le Intelligenze Artificiali non faranno sempre scelte sempre prevedibili, ma non per
questo è possibile considerarle come dotate di libero arbitrio. Lo stesso ragionamento può essere esteso al
libero arbitrio degli essere umani. Secondo Harris il libero arbitrio non deve essere inteso come una scelta
intenzionale libera e non determinata da eventi precedenti. È stato anche dimostrato come il cervello riesca a
prendere decisioni prima che la persona sia effettivamente consapevole della scelta.
Considerando ciò che è eticamente giusto o sbagliato fare con l’Intelligenza Artificiale è necessario iniziare a
delineare, già oggi, una legislazione adeguata che specifichi sia possibile fare e cosa non lo sia. I sistemi di
Intelligenza Artificiale devono essere regolamentati con attenzione, e le leggi dovrebbero tenere il passo con
la rapidità con la quale avvengono le innovazioni tecnologiche, andandosi a adattare in maniera costante. La
legge presuppone che chi compie un’azione sia in possesso della capacità di agire, e cioè che chi compie
l’azione comprenda ciò che sta facendo e che abbia la possibilità di scegliere come comportarsi. In questa
definizione potrebbe rientrare un’entità di Intelligenza Artificiale dato che è necessario che comprenda solo
che quella determinata azione sia illegale e non che senta che sia giusto o sbagliato compierla o meno. Non è
necessario che l’azione sia percepita come sbagliata ma è sufficiente che la società la ritenga sbagliata e che
chi la compie sia consapevole di questo. Tuttavia non è possibile ritenere che il fatto che vengano seguite le
regole equivalga a comportarsi in maniera moralmente accettabile. Ad oggi esistono leggi comportamentali
che gli essere umani sono in grado di riconoscere e che non sono espressamente regolate a livello legislativo,
ma che riguardano comportamenti morali tenuti dagli esseri umani, come il rispetto delle file o l’infrangere
determinate regole per il raggiungimento di determinati scopi, come il superamento dei limiti di velocità nel
caso in cui si stia trasportando una persona in fin di vita. Questo rappresenta una sfida tecnologica da superare
dato che le leggi presuppongono sempre un certo margine di discrezionalità individuale che si ritiene in
possesso dei soli esseri umani.
In abito legislativo è bene considerare l’evoluzione della società affinché le leggi rispecchino i valori condivisi
dalla stessa. Sono stati ritrovati documenti nei quali sono stati processati e condannati animali come topi e
maiali dato nel medioevo erano considerati come entità giuridiche in grado di distinguere cosa fosse giusto o
sbagliato fare e che quindi dovessero comportarsi di conseguenza. Una condanna di questo tipo oggi non
sarebbe più possibile dato che questi animali non sono ritenuti in grado di agire moralmente e di seguire
determinate regole imposte dagli esseri umani. Il sistema legislativo si è evoluto nel tempo ed è in grado di
punire diversamente entità giuridiche diverse come le persone e le organizzazioni. Nel caso delle
organizzazioni non è possibile punirle in maniera uguale a come verrebbe punito un essere umano per la stessa
azione, ma viene prevista una pena diversa. Lo stesso principio potrebbe essere applicato alle entità di
Intelligenza Artificiale in futuro. In questo modo potrebbe essere possibile conferire loro delle responsabilità

63
e dei diritti. In futuro potrebbe anche essere possibile che questi, al pari delle società, possiedano dei beni al
fine di risarcire economicamente soggetti ai quali hanno arrecato dei danni.
I dilemmi etici non riguardano solo l’ambito legislativo ma anche in che modo debbano essere usati gli
algoritmi di Intelligenza Artificiale nei diversi campi in cui vengono sviluppati o nei quali potrebbero essere
sviluppati in futuro.
Per quanto riguarda le applicazioni in campo medico spesso si ritiene che i vantaggi dell’utilizzo
dell’Intelligenza Artificiale siano notevoli, e riguardano l’assistenza cognitiva che questi sistemi automatici
sono in grado di fornire per classificare determinate patologie o condizioni dei pazienti ed individuare
correlazioni tra i sintomi e le possibili diagnosi, sempre a livello statistico. Negli ultimi anni comitati etici,
come il Comitato Nazionale per la Bioetica e il Comitato Nazionale per la Biosicurezza hanno evidenziato
come l’utilizzo di strumenti che utilizzano l’Intelligenza Artificiale siano in grado di ridurre il tempo
necessario per lo svolgimento di attività di routine, permettendo al personale sanitario di dedicarsi
maggiormente alla cura del paziente. Non mancano le criticità negli approcci utilizzati dato che si ritiene che
l’assistenza cognitiva automatizzata possa andare a diminuire l’attenzione da parte dei medici, e non essendo,
ancora, affidabili, questi strumenti potrebbero arrecare dei danni ai pazienti. In questi casi si avrebbero dei
problemi in quanto non è chiaro a chi sia in capo la responsabilità dell’errore. Per ovviare a queste
problematiche, sono stati inizialmente proposti dei controlli più specifici, ma è chiaro che serva una
legislazione accurata che tenga conto dei progressi tecnologici e che vada a regolamentarli, in modo tale da
usufruire dei vantaggi che questa tecnologica comporta, mitigandone i rischi59.
In campo medico è stata spesso criticata l’azienda Neuralink per la velocità con la quale sta conducendo
esperimenti nell’impiantare chip neurali all’interno del cervello degli esseri viventi. Molti ex dipendenti si
sono lamentati del fatto che l’azienda si stia occupando principalmente di andare il più velocemente possibile
per sviluppare questa tecnologia innovativa, senza preoccuparsi delle conseguenze etiche che potrebbe avere
sulla società. Questa velocità, applicata ad esperimenti su esseri viventi come gli animali, potrebbe
comprometterne la loro salute. Cosa che sarebbe evitabile procedendo con un approccio più riflessivo e meno
caotico. Un forte ostacolo a questa tecnologia potrebbe essere il dover convincere le persone a farsi impiantare
un chip nella propria scatola cranica. Questo tipo di tecnologia deve essere regolamentata perché, nel caso in
cui potesse essere impiantata liberamente non permetterebbe di essere competitive alle persone che decidono
di non utilizzarla60.
Quando si fa riferimento ai veicoli a guida autonoma ci si chiede spesso cosa debba fare un algoritmo di
Intelligenza Artificiale se fosse costretto a scegliere su interventi di emergenza, salvando potenzialmente vite
umane sulla base di informazioni incerte. Viene posto il caso in cui dovesse scegliere se salvare le persone
all’interno del veicolo evitando un incidente ma causando la collisione con un altro gruppo di persone,
causandone potenzialmente la morte, o se dovesse scegliere di andare incontro all’incidente al fine di non

59
https://www.agendadigitale.eu/sanita/intelligenza-artificiale-e-medicina-opportunita-e-rischi-le-raccomandazioni/
60
https://www.cnet.com/news/elon-musk-shows-neuralink-brain-implant-working-in-a-pig/

64
causare danni alle persone circostanti. Non è quindi chiaro come debba comportarsi questo tipo di veicolo, ma
va precisato che le persone stesse non sono concordi sulle scelte che andrebbero a compiere61.
Il riconoscimento facciale può essere molto utile in determinate situazioni, quali l’identificazione dei criminali
dalle telecamere di sicurezza, ma può diventare molto pericoloso nel momento in cui venga utilizzato per
monitorare le persone. In occidente è utilizzato per la maggior parte dei casi a fini commerciali. Questo non
esclude che si possa incorrere in pratiche poco corrette o che vadano oltre il senso etico riguardo l’analisi delle
previsioni e il controllo del comportamento a scapito dei consumatori stessi. Nelle società occidentali come
quella cinese l’utilizzo che ne viene fatto può essere diverso. Tramite questo riconoscimento è potenzialmente
possibile monitorare la popolazione e intervenire quando si ritiene che alcuni soggetti stiano compiendo
comportamenti inopportuni. Non è chiaro chi debba essere a decidere quali siano questi comportamenti, dato
che dei governi dittatoriali potrebbero utilizzarli per controllare la popolazione ed evitare che la popolazioni
si rivolti al regime. Sono necessarie delle regole comunitarie internazionali che vadano a favorire un utilizzo
etico di questa tecnologia al fine di evitare che venga utilizzata con lo scopo di controllare e sottomettere la
popolazione62.
Uno degli aspetti più critici dell’applicazione dell’Intelligenza Artificiale riguarda le potenziali applicazioni
militari e terroristiche, data la loro pericolosità. Le applicazioni militari sono molto pericolose, ma non vanno
intese come robot che controllano armi al fine di sterminare l’umanità. Questi stessi automi potrebbero
diventare le armi. Potrebbero essere in grado di identificare gli obiettivi in maniera totalmente autonoma.
Diventa necessario quindi instaurare un dibattito etico in modo tale da determinare, a priori, quali siano i rischi
e i benefici che un simile utilizzo potrebbero comportare. Ad oggi è ancora necessario che sia un essere umano
a determinare il processo decisionale prima che venga compiuta un’azione militare, ma non è chiaro se allo
stesso soggetto possa essere difeso da un punto di vista etico e giuridico.
Ad oggi esistono già Intelligenze Artificiali che compiono azioni per conto di terzi, che sono responsabili delle
azioni delle stesse. In futuro questo potrebbe non essere più applicabile data la non prevedibilità di queste
azioni e quindi è necessario decidere se queste entità possano compiere azioni per proprio conto e quindi se
siano responsabili, e in che modo, di queste azioni. Alcuni sostenitori del fatto che le macchine in futuro
potrebbero avere la responsabilità delle proprie azioni si basano sul modello del diritto societario secondo cui
la legge considera le organizzazioni come entità legali che possono compiere contratti e prendere decisioni,
senza che i proprietari delle stesse siano perseguibili legalmente per le stesse. Tuttavia, consentire ai sistemi
di Intelligenza Artificiale di agire in modo indipendente potrebbe risultare molto pericoloso, perché queste,
diversamente dalle organizzazioni, non dipenderebbero dagli esseri umani per prendere decisioni. Facendo un
parallelismo con il sistema di schivi della Guerra civile americana, come lo schiavo poteva possedere beni e
acquistare la propria proprietà dal padrone, lo stesso potrebbe fare l’Intelligenza Artificiale, in futuro. Sistemi
di Intelligenza Artificiale indipendenti potrebbero poi surclassare i competitor umani e sarebbero solo loro
stessi a beneficiarne.

61
https://www.agendadigitale.eu/cultura-digitale/se-lintelligenza-artificiale-uccide-unetica-per-auto-e-armi-autonome/
62
https://ilbolive.unipd.it/it/news/utilizzo-etico-riconoscimento-facciale

65
La preoccupazione maggiori nel rendere autonomi i sistemi di Intelligenza Artificiale è che questi possano
prendere decisioni, in tempi talmente brevi e tramite l’accesso ad enormi volumi di dati, che gli esseri umani
riescono a malapena a percepire. L’emergere di agenti intelligenti che mirano solo a massimizzare l’interesse
dei propri proprietari potrebbe essere deleterio dato che potrebbero non considerare le conseguenze che hanno
sull’ambiente circostante. Le organizzazioni stanno cercando di ottenere informazioni riguardanti tutto quello
che avviene, compreso in che modo viene spostato il mouse al fine di effettuare un acquisto online o che siti
vengono visitanti e con quale frequenza. Un uso potenziale di questo dato potrebbe essere l’aumento delle
tariffe assicurative per quelle persone che frequentano siti dedicati a sport estremi. Questo potrebbe essere
visto come una limitazione della libertà personale delle persone di interagire con determinati contenuti e
sarebbe un atto molto grave. Il beneficio che si otterrebbe potrebbe essere un vantaggio sociale dato dal fatto
le assicurazioni avrebbero maggiori informazioni sui clienti e potrebbero personalizzare maggiormente le
polizze apportando un aumento della domanda e un miglioramento del benessere sociale. Tramite i cookie è
possibile costruire una profiling molto dettagliato delle persone senza conoscere le stesse. Applicando la
statistica ai dati a disposizione e individuando le correlazione è possibile proporre pubblicità mirate che sono
in grado di influenzare i comportamenti al fine di comprare o meno un determinato prodotto. Questa influenza
è possibile in termini statistici e non certi, quindi si ha la certezza che una determinata persona sia influenzata
da quell’annuncio ma si stima che una certa parte delle persone esposte a quella pubblicità sia influenzata dalla
stessa. Gli intelletti sintetici sono quindi in grado di controllare il comportamento di determinati gruppi di
persone, ma non delle singole persone. La conoscenza e la possibilità di influenzare le masse pone diversi
problemi etici su quali campi questi algoritmi debbano operare e in che modo possano effettivamente
influenzare le decisioni delle persone. Questi sistemi sono programmati per raggiungere dei singoli obiettivi
senza considerare gli effetti collaterali che potrebbero avere e potrebbero raggiungere il fine seguendo un
modo di comportarsi che la società troverebbe ripugnante, anche se legale.
La domanda che bisogna porsi è fino a che punto questo tipo di innovazioni permettono di aumentare i benefici
per la società rispetto ai rischi che potrebbero comportare.
L’impatto dell’Intelligenza Artificiale deve essere valutato anche in termini di equità sociale. Diversi studi
hanno dimostrato che il livello generale della felicità della società è più alta quando le disparità economiche
sono ridotte. La soddisfazione delle persone è quindi legata alla media della soddisfazione delle altre persone
piuttosto che riguardo a ciò che possiede rispetto al passato. l’Intelligenza Artificiale potrebbe essere in grado
di aumentare i confort delle persone, ma paradossalmente potrebbe ridurne la felicità dato che andrebbe a
polarizzare ancora di più i redditi delle persone creando una maggiore disparità tra le persone abbienti e le
persone povere. Una persona povera oggi ha accesso a molti più confort e diritti rispetto a una persona ricca
che ha vissuto 200 anni fa, ma la felicità della persona povera è minore dato che rapportandosi ai confort che
hanno le persone contemporanee, non ha accesso a molti di essi. È comunque molto difficile paragonare gli
standard di vita odierni con quelli passati. Spesso quando avviene un’innovazione è impossibile tornare
indietro dato che ci si abitua alla stessa. Tornare indietro vorrebbe dire avere una mancanza in termini della
stessa, cosa che sarebbe stata percepita diversamente se la stessa non ci fosse mai stata. Quindi, la costante

66
polarizzazione dei redditi presente nella nostra società permette di aumentare i confort delle persone ma non
la loro felicità perché rapportandosi alle persone più ricche si avrà sempre una maggior percezione di
disuguaglianza. Gli effetti negativi della disuguaglianza dei redditi non sono inevitabili, ma sicuramente
richiedono un ripensamento delle politiche economiche e sociali che caratterizzano la società, e queste sono
di difficile attuazione.
Negli ultimi anni sono stati svolti numerosi incontri e discussioni riguardanti l’Intelligenza Artificiale da parte
degli esperti nei vari campi che questa innovazione coinvolge. Questo percorso è guidato dall’interesse
generale di chiarire quale sia il ruolo che l’Intelligenza Artificiale potrebbe avere in futuro e che impatti,
positivi o negativi, potrebbe comportare, in modo tale da agire preventivamente. L’opinione pubblica è molto
influenzata dalla visione di film o serie tv che trattano l’argomento dell’Intelligenza Artificiale in modo diverso
da come è effettivamente. Questo porta ad un duplice effetto. Il primo effetto è positivo e riguarda il dibattito
degli sviluppi di Intelligenza Artificiale. Il fatto che il tema dell’intelligenza venga trattato in serie come ‘i
Simpson’ spinge molte persone ad avvicinarsi al dibattito. Negli ultimi anni sono stati realizzati sempre più
episodi dei ‘Simpson’ riguardanti l’Intelligenza Artificiale e, in particolare, riguardo alla robotica e alle auto
a guida autonoma63. Il dibattito alimentato è sicuramente positivo, ma può portare anche un effetto negativo
nel caso in cui le applicazioni mostrate non corrispondano alla realtà effettiva. Questo andrebbe ad influenzare
l’opinione pubblica portandola ad immaginare l’Intelligenza Artificiale in maniera distorta da come è nella
realtà, come accade spesso con i film fantascientifici futuristici. Questo non permette di comprendere i reali
sviluppi, le reali potenzialità e i reali rischi che l’Intelligenza Artificiale comporta e che potrebbe comportare.
Queste discussioni sono necessarie per guidare le innovazioni dell’Intelligenza Artificiale. Max Tegmark ha
fondato il Future of Life Institute (FLI) che si occupa della ricerca dedicata alla valorizzazione dei benefici
che l’Intelligenza Artificiale potrebbe apportare alla vita degli essere umani, andando a minimizzare gli effetti
negativi. Questa organizzazione ha permesso l’incontro e la discussione di alcuni principi che dovrebbero
essere seguiti nel progresso scientifico di questa tecnologia. I vari incontri hanno permesso la stesura di una
lettera aperta64 che esprime preoccupazione sul controllo dell’Intelligenza Artificiale e delle applicazioni della
stessa in ambiti militari, della privacy e dell’etica. La lettera è stata firmata dai maggiori esperti del settore e
da personaggi illustri considerati competenti in materia. Queste iniziative sono fondamentali e andrebbero
sempre più sviluppate al fine di pensare oggi alle soluzioni di domani, in modo tale da non trovarsi
completamente impreparati alle innovazioni tecnologiche e poterle indirizzare verso utilizzi positivi per gli
esseri umani. Il futuro parte dal presente e per questo è necessario il costante monitoraggio e adattamento delle
applicazioni che vengono utilizzate. Nella programmazione degli algoritmi di Intelligenza Artificiale devono
essere evitati pregiudizi e discriminazioni che andrebbero a isolare o penalizzare un determinato gruppo
sociale65. Questa discriminazione non è sempre dovuta ad errori di programmazione, ma può essere intrinseca
nei dati forniti nell’addestramento dell’Intelligenza Artificiale. La tecnologia cambia rapidamente ed è

63
Questi riferimenti riguardano gli episodi ‘Baby non puoi guidare la mia auto’ (stagione 30 episodio 5) e ‘I robot’ (stagione 23
episodio 17)
64
https://futureoflife.org/ai-open-letter
65
https://digital-strategy.ec.europa.eu/en/library/ethics-guidelines-trustworthy-ai

67
necessario aggiornarsi costantemente al fine di tenere il passo. Devono essere creati sistemi adattabili che
permettono di controllare e al tempo stesso di sviluppare le tecniche di Intelligenza Artificiale.
I governi di tutto il mondo si stanno, giustamente, iniziando a preparare alla creazione di un sistema legislativo
con delle guide etiche che devono essere seguite per poter prevenire eventuali comportamenti che potrebbero
rilevarsi dannosi per la società. Le linee guida proposte hanno delineato una serie di requisiti che dovrebbero
avere i sistemi di Intelligenza Artificiale per essere ritenuti affidabili. Tra questi principi rientrano il controllo
e la supervisione costante degli esseri umani sugli algoritmi di Intelligenza Artificiale e questi algoritmi
dovrebbero aiutare le persone a prendere decisioni più informate e promuovere i diritti fondamentali. È
necessario che i sistemi di Intelligenza Artificiale siano resilienti e sicuri al fine di ridurre al minimo e di
prevenire gli eventuali danni che potrebbero causare. Rendendo più trasparenti i sistemi di Intelligenza
Artificiale si andrebbero ad informare maggiormente le persone coinvolte rendendo più chiari gli obiettivi
degli stessi e migliorando la percezione dell’Intelligenza Artificiale stessa. Il Parlamento dell’Unione Europea
ha recentemente adottato alcune proposte che precisano come andare a regolamentare l’Intelligenza Artificiale
al fine di renderla il più efficace possibile, al netto degli standard etici e di privacy. In questa direzione, le
norme devono sempre mettere al centro la persona che deve essere tutelata sia in termini di trattamento delle
informazioni sia in termini di trasparenza dell’utilizzo degli stessi.

3.5 Lavoro:
L’automazione è in grado di cambiare la struttura stessa del lavoro. I progressi tecnologici sono, sicuramente,
in grado di permettere a meno persone di svolgere la stessa quantità di lavoro in un tempo minore. Storicamente
le innovazioni tecnologiche hanno sempre, nel lungo periodo, creato più posti di lavoro di quanti ne siano stati
eliminati. I lavori creati non sono comparabili con quelli sostituiti, soprattutto in termini di competenze
necessarie a svolgerli. Nel caso in cui la sostituzione sia graduale, come avvenuto in passato, è possibile istruire
le nuove generazioni ad adattarsi al cambiamento, ma nel caso in cui la sostituzione sia molto rapida, potrebbe
essere molto difficile riuscire ad adattarsi, soprattutto se il cambiamento dovesse essere continuo. Tramite
l’Intelligenza Artificiale non saranno sostituiti i lavori in sé ma le competenze dato che gli automi potrebbero
essere in grado di acquisire molte più conoscenze molto velocemente riuscendo a sostituire i lavoratori umani.
Storicamente si pensava che le automatizzazioni nell’agricoltura avrebbero eliminato la quasi totalità dei lavori
agricoli degli esseri umani, e così è stato dato che nel 1870 circa l’80% dei lavori erano agricoli, mentre ad
oggi lo sono solo il 2%, tuttavia questo ha permesso alle persone di acquisire altre competenze andando a
creare nuovi lavori. Per comprende se l’Intelligenza Artificiale sostituirà o meno un determinato lavoro in
futuro è necessario chiedersi se gli algoritmi sono in grado di acquisire quelle competenze in maniera
autonoma. Questo è esattamente quello che storicamente è sempre avvenuto, solo che per quanto riguarda la
riduzione del lavoro umano agricolo del 78% ci sono voluti 150 anni, mentre tramite l’automazione
dell’Intelligenza Artificiale la sostituzione potrebbe essere molto più rapida non permettendo di acquisire altre
competenze per i lavori non automatizzati. I primi lavori che saranno sostituiti, probabilmente, saranno quelli
più facilmente automatizzabili, ma non è detto che in futuro che le entità di Intelligenza Artificiale siano in
grado di svolgere qualsiasi lavoro che oggi è svolo da esseri umani.

68
Sono stati condotti numerosi studi sull’impatto che l’Intelligenza Artificiale potrebbe avere sul mondo del
lavoro. L’università di Stanford ha classificato le professioni che nei prossimi anni sono a rischio sostituzione.
In questa classifica sono stati considerati numerosi parametri, tra i quali la ruotine del lavoro ma anche
l’intelligenza sociale, intesa come la necessità di relazione del lavoratore con il consumatore. Citrix e l’istituto
OnePoll hanno svolto un sondaggio66, sottoposto a cinquecento lavoratori italiani di età compresa tra i 18 e 55
anni, in cui è emerso che il 37,2% degli stessi crede che i robot possano effettivamente rubargli il lavoro e che
il 36,2% ritenga che si andrà a creare un ambiente di lavoro disumano per i lavori non automatizzati. Secondo
un’altra indagine, realizzata da Doxa67, il 54% degli intervistati è dell’idea che l’avvento dell’Intelligenza
Artificiale sia un fattore positivo per le aziende, e il 45% esclude che le applicazioni dell’Intelligenza
Artificiale possano andare a sostituire completamente i lavori svolti dalle persone. Non tutte le persone sono
preoccupate alle stesso modo, dato che a risentirne maggiormente potrebbero essere le persone meno
scolarizzate e che non sono in grado di acquisire nuove conoscenze al fine di fare lavori più specializzati, dato
che quelli facilmente automatizzabili potrebbero essere svolti in maniera più efficiente dalle macchine.
In uno studio del McKinsey Global Institute68 emerge come il processo di automazione dei lavori sia già in
atto, ma che questo non sarà così veloce come si potrebbe pensare. Nello studio viene riportato come le persone
e la tecnologia debbano lavorare congiuntamente al fine di esprimere il potenziale del lavoro automatico. Le
stime mostrano come l'automazione potrebbe aumentare la crescita della produttività a livello globale dallo
0,8% all'1,4% su base annua, dal 2015 al 2065. L’automazione completa, ad oggi, non sembra la strada più
percorribile, e potrebbe essere più conveniente automatizzare solo alcune parti specifiche del processo
produttivo. Secondo le stime di questo studio la metà delle attività lavorative attuali potrebbero esser
automatizzate per l’anno 2055. Tuttavia questa stima potrebbero variare anche di 20 anni a seconda dello
sviluppo dei fattori che influenzano il ritmo dell’automazione, come i costi della tecnologia, la
regolamentazione e i vantaggi effettivi delle prestazioni. Per alcuni lavoratori sarà necessario acquisire nuove
competenze per svolgere lavori differenti da quelli che svolgevano e che sono stati automatizzati. Tuttavia, a
detta di questa analisi, l’automazione non estrometterà i lavoratori umani dalla scena lavorativa ma
determinerà una coesione tra gli stessi al fine di ottenere una maggiore produttività.
Un altro report69, elaborato dall’Accenture Technology Vision 2018, ha mostrato come i maggiori progressi
compiuti nel campo dell’Intelligenza Artificiale stiano favorendo le imprese che li utilizzano. Secondo le
stime, il settore manifatturiero potrebbe essere il settore che andrà a subire le maggiori trasformazioni.
L’innovazione più utilizzata potrebbe essere quella di robot automatici in grado di svolgere una serie di
compiti, ma sicuramente non sarebbe l’unica. In accordo con lo studio di McKinsey, nel report emerge come
non si andrà incontro a una perdita dei posti di lavoro di massa, ma le macchine intelligenti andranno ad
integrarsi con i lavori svolti dagli esseri umani. Alcuni lavori saranno sostituiti e saranno richieste maggiori

66
https://www.corrierecomunicazioni.it/lavoro-carriere/competenze/intelligenza-artificiale-italiani-confusi-creera-o-tagliera-il-
lavoro/
67
https://www.ilsole24ore.com/art/ecco-perche-robot-e-intelligenza-artificiale-italia-non-fanno-paura-ABjgpLWB
68
https://www.mckinsey.com/featured-insights/digital-disruption/harnessing-automation-for-a-future-that-works
69
https://www.acantho.it/ai-lintelligenza-artificiale-cambiera-modo-lavorare/

69
competenze per lo svolgimento degli stessi, ma le persone avranno il tempo di adattarsi al cambiamento. Lo
studio prevede un incremento del 10% dell’occupazione, che andrebbe a comportare una crescita di 4,8 trilioni
di dollari per l’economia globale.
Gli studi dell’impatto dell’Intelligenza Artificiale sono solo un punto di partenza e non è detto che nel futuro
si verifichi quanto predetto dato che l’innovazione è costante e in continuo mutamento. È necessario anche
considerare gli impatti sociali che una totale automazione potrebbe avere sugli esseri umani e agire di
conseguenza. La velocità con la quale l’Intelligenza Artificiale permette di accelerare i processi di innovazione
tecnologica rappresenta la più grande minaccia del mondo del lavoro, ma queste innovazioni cambiano anche
le regole del mondo del lavoro dato che sono in grado di modificare il modo in cui le organizzazioni operano.
L’Intelligenza Artificiale è in grado di rendere obsoleti sia i lavori che le competenze. Questa velocità non
permette ai mercati, e di conseguenza alle persone, di adattarsi. Le innovazioni sono in grado di sostituire
semplicemente i lavoratori ma anche di eliminare definitivamente determinati lavori, questo perché
l’Intelligenza Artificiale non è soggetta a limitazioni prettamente umane come la necessità di imporre ordine
alle cose. La velocità comporta anche l’imprevedibilità delle innovazioni dato che queste sono in continuo
mutamento. Questi eventi sono molto difficili da anticipare e spesso sono impossibili da misurare a priori.
Il vantaggio che gli algoritmi di Intelligenza Artificiale hanno sugli esseri umani riguarda la velocità di
esecuzione dei compiti, ed è data dalla velocità di analisi di enormi quantità di dati. Questo permette loro di
prendere decisioni più accurate in tempi inferiori, fornendogli un vantaggio competitivo. Nel caso delle
Intelligenze Artificiali applicate alla finanza, i sistemi di High Frequency Trading (HFT) sono in grado di
analizzare gli strumenti finanziari e compiere transazioni in millesimi di secondo in modo tale da sfruttare
disallineamenti di prezzo dovuti ad oscillazioni di fluttuazioni transitorie. I trader umani sono in grado di
cogliere questi stessi disallineamenti in un tempo notevolmente maggiore e per questo potrebbero non riuscire
ad ottenere profitti dagli stessi e potrebbero essere rimpiazzati da questi algoritmi. Questi sistemi sono in grado
di rendere il mercato più efficiente in un tempo minore ma i profitti non sarebbero equamente distribuiti dato
che i profitti ottenuti andrebbero esclusivamente a favore dell’organizzazione che possiede il sistema di HFT
e non della società. Si possono considerare differentemente algoritmi che permettono di selezionare le
pubblicità da mostrare agli utenti e gli algoritmi che permettono la compravendita di strumenti finanziari
perché i primi sono in concorrenza con altri algoritmi di Intelligenza Artificiale mentre i secondi sono in
concorrenza con gli esseri umani, ed hanno quindi un vantaggio competitivo che non permette una parità di
opportunità.
Prendendo ad esempio la professione legale è possibile che sistemi artificiali riescano a compiere attività di
routine tipiche degli avvocati andando a svolgere questi compiti in maniera più efficace ed efficiente ad un
prezzo minore. Questo ridurrebbe il numero di posti di lavoro degli stessi. Di particolare importanza per questa
professione sono gli algoritmi che analizzano enormi quantità di documenti al fine per la preparazione di un
caso giudiziario. Alcune compagnie come Microsoft, in passato, hanno presentato 25 milioni di pagine di
documenti che la controparte avrebbe dovuto analizzare per una successiva udienza. Per gli esseri umani
sarebbe impossibile svolgere questo compito in maniera adeguata in un breve lasso di tempo. Questa tecnica

70
è detta predictive coding e funziona in maniera similare al filtro anti-spam utilizzato per segnare le e-mail
indesiderate. Nell’ambito di tutti i lavori è molto difficile per gli essere umani avere il quadro completo della
situazione analizzata. In campo medico i dottori sono, spesso, competenti per uno specifica parte del corpo. In
futuro potrebbe essere possibile costruire algoritmi di Intelligenza Artificiale che mettano insieme le varie
competenze dei dottori con le probabilità statistica. Questo permetterebbe di avere un quadro più completo e
con le competenze in grado di comprende ciò che sta succedendo al paziente.
Considerando gli impatti che l’Intelligenza Artificiale potrebbe avere sulla vita, vanno considerati molti aspetti
e non è sempre possibile considerare tutte le possibili conseguenze. È possibile delineare specifiche politiche
e norme che vadano a regolamentare queste innovazioni, ma è necessario aggiornarle continuamente data la
velocità di cambiamento delle innovazioni e di conseguenza della società. Un errore da non commettere è
quello di immaginare l’impatto di una singola innovazione nella società odierna senza considerare il contesto
nel quale si sta sviluppando e che impatto potrebbe avere sulle persone. È difficile, per gli esseri umani,
interpretare le nuove esperienze in termini diversi dalle esperienze passate, e questi sono usati come punto di
riferimento per come viene immaginato il futuro. Questo rende difficile comprende cosa stia effettivamente
avvenendo e formulare piani adeguati alla risoluzione dei possibili problemi che potrebbero presentarsi in
futuro. Le problematiche lavorative potrebbero non riguardare la mancanza di posti di lavoro, ma la difficoltà
dell’acquisizione di nuove competenze e di concorrenza con gli algoritmi di Intelligenza Artificiale che si
evolvono molto più velocemente di quanto riescano a fare le persone. Nessuno è in grado, ad oggi, di dire se
in futuro ci saranno più o meno posti di lavoro. Sicuramente la tendenza è di dover riuscire ad imparare a
convivere con le stesse innovazioni e di utilizzarle al fine di migliorare il processo decisionale.

3.6 Uno sguardo al futuro:


Le parole che vengono utilizzate per descrivere le nuove tecnologie si basano su ciò che è familiare alle
persone. Quando sono state inventati i veicoli, questi erano chiamate carrozze senza cavalli, proprio come ora
i nuovi veicoli vengono chiamati automobili senza conducente. Le nuove tecnologie sono descritte in termini
familiari e passati. È bene considerare che una singola innovazione potrebbe cambiare radicalmente il mondo
in cui le persone vivono e di conseguenza può essere impossibile prevedere come si evolverà lo sviluppo
futuro, anche in relazione a tutte le altre innovazioni che si svilupperanno, dato che anche queste potrebbero
avere un impatto innovativo simile. Non tutti i settori nei quali è applicata l’Intelligenza Artificiale procedono
alla stessa velocità, e non è detto che i settori in maggiore crescita odierni siano gli stessi che saranno più
sviluppati in futuro. Alcuni settori dipendo dalle innovazioni di altri settori, come la robotica che dipende dallo
sviluppo dei materiali e dei macchinari, mentre altri, come il Machine Learning dipendono dalla quantità di
dati disponibili e dalla potenza computazionale. Oggi, le persone del passato vengono giudicate come ingenue
perché non sono state in grado di percepire i cambiamenti in atto, e probabilmente, in futuro si penserà la
stessa cosa delle persone odierne. È facile vedere con il senno di poi gli eventi perché orami si sono verificati
e non sono più mutevoli, mentre nel momento in cui stanno avvenendo può essere impossibile prevedere come
si evolveranno.

71
Tra i più critici dell’Intelligenza Artificiale è spesso riportata l’idea che questa porterà inevitabilmente ad una
singolarità. La singolarità non è una teoria sviluppata solamente in ambito tecnologico, ma in ambito
matematico e fisico, nei quali rappresenta il punto in cui la funzione perde significato. Può anche rappresentare
situazioni nelle quali certi valori tendono all’infinito non rendendo applicabili le leggi che descrivono
l’evoluzione dinamica del sistema, come avviene per i buchi neri. La singolarità tecnologica, riferita al
l’Intelligenza Artificiale, è stata introdotta da Vernor Vinge nel 1993. Secondo la sua opinione, quando verrà
raggiunta l’Intelligenza Artificiale forte non sarà più possibile fare previsioni utili sul futuro. Raggiunta la
singolarità, prevede che l’Intelligenza Artificiale avrà un’intelligenza che aumenterà sempre in maniera
esponenziale, fino ad arrivare a tendere a infinito, come nelle singolarità matematiche o fisiche. Nelle sua
previsione, stimava che circa nel 2023 si avranno i mezzi per creare un’intelligenza sovraumana, e che
porteranno l’era umana al termine. Secondo altre stime la singolarità avverrà tra il 2030 e il 2080. I più critici
riguardo allo sviluppo dell’Intelligenza Artificiale credono che questa non modificherà solo lo stile di vita
umano, ma prenderà anche il controllo sugli umani stessi. A sostegno di questo riportano il problema
dell’incomprensibilità. Questo problema implica che le interazioni delle Intelligenze Artificiali siano
inaspettate e potenzialmente incomprensibili, dato che queste entità potrebbero decide di collaborare tra di
loro e influenzarsi a vicenda in modi sconosciuti e inimmaginabili per i programmatori. I comportamenti
vengono ritenuti incomprensibili dato che l’Intelligenza Artificiale opera come un black box di cui si
comprendono solo gli input inseriti e gli output, ma non il processo di trasformazione dai primi ai secondi.
Creata una prima Intelligenza Artificiale completamente autonoma, in grado migliorandosi costantemente,
questa porterebbe portare ad un’esplosione dell’intelligenza creando altre entità più intelligenti che
renderebbero superflue le invenzioni umane. Tra i critici alcuni ritengono che debba essere utilizzato il
principio di precauzione, secondo il quale non si dovrebbero sviluppare delle innovazioni se alcuni scienziati
ritengono che gli effetti potrebbero essere negativi. Questo principio non è frequentemente applicato in nessun
campo scientifico dato che, anche se solo una piccola parte degli scienziati fosse di quest’idea, si andrebbero
a bloccare tutte le innovazioni tecnologiche.
Secondo Ray Kurzweil, entro il 2099, ci sarà una forte tendenza a fondere il mondo dell’Intelligenza Artificiale
e il pensiero umano. Il processo sarà graduale e, in caso di problemi sarà possibile intervenire per fare in modo
che l’Intelligenza Artificiale apporti dei benefici al genere umano. Per quanto riguarda la singolarità, ritiene
che questa debba essere accolta come una specie di destino manifesto guidato dalla tecnologia. Analizzando i
grafici e i trend storici, Kurzweil, ritiene che questa potrebbe verificarsi intorno al 2045. Sempre secondo la
sua opinione, dopo questa data, il ritmo della cambiamento tecnologico sarà così elevato da trasformare
completamente la vita dell’uomo, e sarà un processo irreversibile. Quest’Intelligenza Artificiale permetterà
alla società di risolvere la maggior parte dei problemi globali. Le previsioni di Kurzweil seguono la sua teoria
della legge dei ritorni accelerati secondo la quale i processi evolutivi sono governati da una curva esponenziale
e tra questi processi debba essere incluso il progresso tecnologico, che permetterà all’essere umano di acquisire
nuove capacità.

72
Tuttavia non tutti credono che l’Intelligenza Artificiale sarà un’entità separata dall’essere umano. Alcuni
ritengono che l’uomo e le macchine si fonderanno insieme, creando un’evoluzione dell’uomo moderno.
Secondo i transumanisti saranno gli esseri umani a provare l’accelerazione tecnologica necessaria
all’evoluzione. Questa scuola di pensiero ritiene che, in futuro, verranno progettate protesi di interi organi,
compreso il cervello, e gli esseri umani si uniranno alle macchine, in modo da esprimere al meglio il potenziale
congiunto. Molti sostenitori di questa teoria ritengono che l’unico modo per evitare che l’Intelligenza
Artificiale prenda il controllo sia quello di fondersi con essa. Questa visione è spesso sottovalutata ma i primi
impianti stanno iniziando ad essere inseriti, sempre volontariamente, negli esseri umani. Gli sviluppi di questa
tecnologia potrebbero partire dagli sviluppi delle tecnologie delle aziende come Neuralink, o da società come
32M ed Epicenter che hanno sviluppato chip da impiantare sotto pelle al fine compiere pagamenti online o per
eliminare schede e password all’interno degli uffici. La visione di chi sostiene quest’idea si basa sul fatto che
l’Intelligenza Artificiale autonoma potrebbe prenderebbe il sopravvento sull’intelligenza umana, e quindi,
l’unica soluzione per evitare che ciò accada è evitare di costruire entità intelligenti autonome e creare congegni
in grado di integrare questa tecnologia all’essere umano.
Le previsioni della singolarità si basano sul fatto che la curva del progresso tecnologico cresca in modo
esponenziale per sempre. Non tutti sono di quest’idea dato che, spesso, anche per le altre innovazioni
tecnologiche c’è stata un crescita esponenziale per un certo periodo di tempo, salvo poi ridurre la crescita con
il passare del tempo. Questa decrescita porta ad una curva ad ‘S’. In questi modelli, spesso vengono utilizzati
i numeri per misurare la crescita dell’intelligenza, ma questo metodo può essere fuorviante. Semplificare
l’intelligenza ad una linea su un grafico potrebbe non avere molto senso ed è, spesso, ritenuto come troppo
semplicistico. È, poi, molto improbabile che la crescita dell’intelligenza segua una crescita esponenziale per
lunghi periodi di tempo. Provare a calcolare in modo probabilistico se l’Intelligenza Artificiale apporterà dei
benefici o se sarà catastrofica può creare diversi problemi dato che non si hanno riferimenti passati e non si
conoscono tutti i possibili sviluppi futuri.
Purtroppo l’affidabilità generale degli esperti, di tutti i settori, di fare previsioni si è, spesso, dimostrata
inattendibile. Questo è dovuto al fatto che, ad oggi, non si hanno e non si considerano tutti gli elementi che
potrebbero influenzare il futuro, e quindi per stime così lontane nel tempo, e per una tecnologia mutevole, è
molto difficile avere previsioni attendibili. Un’altra critica fatta a queste previsioni è che vengono fatte su una
base di dati selezionati per indirizzare la previsione verso stime di questo genere, ottimistiche o pessimistiche
che siano. A questo va aggiunto il fatto che le persone hanno problemi a trattare curve esponenziali perché
piccoli errori nelle stesse potrebbero variare di molto le previsioni e perché non è detto che queste proseguano
esponenzialmente. Molti dei progressi compiuti in ambito dell’Intelligenza Artificiale sono stati compiuti
grazie al miglioramento hardware e software che hanno permesso l’applicazione vecchie di tecniche, che non
era possibile sfruttare senza questi progressi computazionali. Tuttavia non è detto che questo miglioramento
delle componenti proseguirà nel tempo. Per quanto riguarda le applicazioni di Intelligenza Artificiale, fino ad
oggi, si è assistito al fenomeno secondo il quale finché l’Intelligenza Artificiale non riesce a compiere
determinati comportamenti questi sono ritenuti intelligenti, ma nel momento in cui il progresso tecnologico

73
permette la realizzazione degli stessi, questi non vengono più considerati come intelligenti. In questo modo
applicazioni che alcuni anni fa erano considerate impensabili per le macchine, sono entrate nel quotidiano
senza che le loro applicazioni venissero ritenute intelligenti o pericolose.
Ad oggi le macchine sono già in grado di porsi autonomamente degli obiettivi e di modificarli nel tempo, ma
questa capacità è sempre limitata agli scopi per i quali sono progettate. Questo non significa che non possano
causare danni, anche ingenti, ma che questi vadano attribuiti ad un fallimento degli ingeneri piuttosto che alla
volontà delle macchine. Questi errori umani sono evitabili.
L’obbiettivo della maggior parte delle applicazioni di Intelligenza Artificiale è quello di operare senza la
supervisione umana, in modo tale da prendere decisioni indipendenti in base all’adattamento all’ambiente
circostante e alle circostante con le quali interagiscono. È possibile che alcune applicazioni sfuggano al
controllo umano. Questo potrebbe essere dovuto ad errori di programmazione o ad una programmazione
volontaria. Per questa ragione è necessario porre dei vincoli etici di programmazione di quello che possono
fare le Intelligenze Artificiali. È, quindi, molto importante stabilire degli standard professionali e ingegneristici
che vadano ad indirizzare lo sviluppo di questi sistemi. Il bisogno di sviluppare questi principi, anche morali,
sussiste già oggi in modo tale da mitigare comportamenti che non sono desiderabili e che potrebbero avere
gravi ripercussioni, sia nel breve che nel lungo periodo. Queste limitazioni non implicano la creazione di una
morale all’interno delle macchine, ma riguardano l’etica della loro progettazione, considerando anche il
contesto sociale nel quale devono operare. È necessario considerare con molta attenzione ciò che viene
programmato, inserendo degli obiettivi desiderabili, ma è anche indispensabile cercare di prevedere le
conseguenze di quello che non viene programmato.
Nel corso della storia umana le innovazione sono state sempre viste con un certa preoccupazione e allarmismo
dalle persone, soprattutto più anziane, che le stavano vivendo, mentre sono state ben accette dalle generazioni
successive. Crescere con una determinata tecnologia permette di adattarsi meglio alla stessa e viverla come
una cosa più quotidiana e non come un’innovazione. Studi in ambito psicologico hanno notato una resistenza,
nella psiche umana, al cambiamento indipendentemente dall’epoca o dal contesto socio-culturale. L’entità
della resistenza è influenzata dalle esperienza e dai pregiudizi cognitivi. I pregiudizi cognitivi non sono sempre
sbagliati dato che permettono di giungere rapidamente a delle conclusioni in tempi rapidi. Data la rapidità di
ragionamento le conclusioni non sono sempre affidabili. Per quanto riguarda i cambiamenti si tende a ritenere
che sia meglio lo Status Quo piuttosto che andare incontro a qualcosa che non si conosce. In molti casi si
preferisce lo Status Quo perché permette al cervello di optare per la soluzione che richiede uno sforzo minore,
nonostante il cambiamento possa apportare benefici. Questo pregiudizio cognitivo involontario può ostacolare
la comprensione del cambiamento, ritenendolo non positivo70. Le generazioni future, immerse fin dall’infanzia
nelle applicazioni dell’Intelligenza Artificiale, potrebbero avere una propensione all’utilizzo delle stesse
ancora maggiore dato che, per loro, non rappresentano la stessa innovazione che c’è state per i loro genitori o
i loro nonni.

70
https://www.divulgazionedinamica.it/blog/resistenza-al-cambiamento-i-pregiudizi-cognitivi/

74
Nell’ambito del dibattito sulla singolarità tecnologica, spesso, si ha una certa misticità, data dalla percezione
che si potrebbe essere vicini alla fine dell’era umana, o dalla possibilità di mantenere in vita le persone tramite
il trasferimento della coscienza in apparecchi digitali. Alcuni hanno una visione religiosa di questi
avvenimenti. Tuttavia questo racconto apocalittico e futuristico è, sicuramente, molto affascina per un
pubblico generico, ma rischiano di discostarsi troppo dalle evidenze attuali di questa tecnologia. Secondo Jerry
Kaplan queste visioni non sono in linea con la connessione che c’è tra l’attuale tecnologia e le previsioni più
pessimistiche. Non ci sono prove che gli attuali sviluppi dell’Intelligenza Artificiale rappresentino i primi
segnali di macchine onniscienti superintelligenti. È più probabile che l’Intelligenza Artificiale sia utilizzata
per automatizzare la maggior parte dei processi che richiedono l’intervento umano, seguendo il trend in atto
da molto tempo. Kaplan tende a sottolineare che, riguardo al controllo dell’Intelligenza Artificiale, sia i più
ottimisti sia i più pessimisti non abbiano necessariamente torto, ma, che, le previsioni presentate sia distanti
dalla realtà odierna. Tuttavia, ritiene che queste posizioni possano essere utili per alimentare discussioni di
argomenti molto importanti. Secondo la sua opinione, se mai si dovesse verificare la singolarità, questa sarà
preceduta da numerosi segnali e che sarà possibile prendere le adeguate misure per evitarla.
Per quanto riguarda l’Intelligenza Artificiale potrebbe essere fuorviante immaginare un futuro in cui queste
siano somiglianti all’essere umano. È quindi sbagliato antropomorfizzare questa tecnologia perché potrebbe
essere molto più efficiente se progettata secondo caratteristiche fisiche che non rappresentano quelle umane.
È difficile fare previsioni adeguate dato che, spesso, si considerano le innovazioni future in un contesto nel
quale questa sia l’unica innovazione presente, e senza che questa si sia adattata o che abbia fatto adattare le
persone. L’unione dei progressi e il cambiamento della società con essi rende impossibile prevedere come sarà
il futuro e cosa sarà ritenuto corretto. Questo non implica che non sia necessario cercare di indirizzare le
innovazioni tecnologiche verso un futuro nel quale queste siano al servizio degli esseri umani ed evitare che
gli agenti intelligenti prendano il sopravvento. È necessario un constante monitoraggio e una costante
discussione su cosa sia giusto o sbagliato fare in modo tale da comprendere cosa stia avvenendo e poter
intervenire in tempo senza subire passivamente gli effetti delle innovazioni tecnologiche. Le tecnologie
cambiano sempre più velocemente e diventa sempre più difficile tenere il passo con le stesse al fine di
analizzarne le possibili conseguenze. La tendenza delle innovazione tecnologiche è di fondersi e semplificarsi
con le altre tecnologie esistenti al fine di essere sempre più efficienti, rendendo quasi impossibile prevedere
come potrebbero essere effettivamente in futuro. Secondo Kaplan il processo di integrazione tecnologia sarà
lento e a malapena percepibile, dato da piccole concessioni di controllo a intelletti. Pian piano verrà data
sempre più fiducia agli stessi. Una volta iniziato il trend è quasi impossibile tornare indietro dato che una
riduzione dei benefici apportati da queste tecnologie verrebbe vista come una mancanza rispetto a qualcosa
che si aveva in passato. Per questa ragione è essenziale fare dei ragionamenti preliminari. Prendendo ad
esempio i sistemi di frenata ABS, questi sono molto utili durante la guida ma presuppongono un cedimento di
controllo da parte del conducente alla macchina, e questo potrebbe avere pesanti conseguenze etiche nel caso
di incidenti. Il problema di una cessione del controllo è che molto difficile tornare indietro. È necessario fare
una scelta e decidere delle condizioni inziali.

75
Quando si pensa agli algoritmi di Intelligenza Artificiale va eliminata la tendenza ad antropomorfizzare le
applicazioni che potrebbero svilupparsi in futuro. Sicuramente alcune applicazioni potrebbero essere fatte a
somiglianza degli esseri umani o degli animali, ma la maggior parte delle stesse potrebbero avere delle strutture
differenti. Le forme più pericolose potrebbero riguardare gli algoritmi di Intelligenza Artificiale che non sono
visibili o che sono talmente piccoli che sarebbe difficile gestirli. Per queste ragioni è necessario, oggi,
comprendere fino in fondo cosa sta succedendo, in modo tale da poter iniziare a comprendere cosa potrebbe
accadere in futuro e intervenire in tempo. Lasciare che questa tecnologia si propaghi senza delle regole e senza
delle riflessioni preliminari potrebbe essere molto pericoloso. L’Intelligenza Artificiale ha fatto grandi
progressi dai sui primi, semplici, utilizzi. Tuttavia le maggiori potenzialità che ha questa tecnologia sono
inespresse e c’è ancora molto a cui lavorare.
Riprendendo una frase di Jerry Kaplan71:

“Benvenuti nel futuro, che comincia nel passato”

è possibile comprendere quanto sia necessario intervenire oggi al fine di indirizzare le innovazioni
tecnologiche verso la loro miglior applicazione possibile che si vorrà utilizzare in futuro. Non sarà
possibile prevedere tutti gli scenari o tutte le possibili evoluzioni dello sviluppo dell’Intelligenza
Artificiale ma sarà comunque utile fornire delle linee guida e delle indicazioni morali per evitare
comportamenti pericolosi per il controllo e la sopravvivenza del genere umano.

71
Kaplan Jerry. Le persone non servono: lavoro e ricchezza nell’epoca dell’Intelligenza Artificiale. Roma: Luiss, 2016. Pagina 26.

76
4. ADDESTRAMENTO DI UNA RETE NEURALE
4.1 Introduzione:
Compreso il funzionamento delle diverse tipologie di algoritmi di Intelligenza Artificiale, e visto il panorama
attuale e futuro delle applicazioni dell’Intelligenza Artificiale, procediamo con l’utilizzo pratico di un
algoritmo di Intelligenza Artificiale. L’algoritmo implementato, chiamato ‘Neural Algorithm of Artistic
Style72’, ha l’obiettivo di prendere a input 2 immagini, una di contenuto e l’altra di stile, al fine creare
un’immagine di output in cui viene trasferito lo stile della seconda immagine al contenuto della prima
immagine. Trattandosi di un algoritmo open source è possibile modificarlo a proprio piacimento in modo tale
da migliorarlo e adattarlo a seconda degli obiettivi che si vogliono raggiungere73. Tuttavia non è necessario
dover modificare tutto il codice al fine di adattarlo alle proprie esigenze. Una persona che conosce, anche in
maniera marginale, un qualsiasi linguaggio di programmazione è in grado di comprendere il funzionamento
dell’algoritmo e modificare i parametri principali al fine di creare l’immagine più adatta al suo scopo 74. Senza
modificare l’implementazione originale si può utilizzare il codice per create tutte le immagini che si desidera
andando ad inserire il codice in Google Colabory (Colab)75. Si tratta di un ambiente notebook Jupyter che
viene eseguito nel cloud e dispone di quasi tutti i pacchetti per l'apprendimento automatico già installati. È un
notebook gratuito che permette di fare runtime tramite la GPU. Colab è molto intuitivo da utilizzare e permette
anche di modificare il tipo di runtime. In questo caso utilizzeremo il runtime GPU.

4.2 Codice:
Prendendo il codice, senza modificandone l’implementazione di base76, è possibile comprenderne, passo per
passo, il funzionamento. Il primo passaggio da eseguire è quello di importazione del responsy da Github. Per
eseguire correttamente il codice è necessario non considerare le cartelle, se esistenti nella directoty di lavoro,
denominate ‘ComputerVision’ e ‘NeuralStyleTransfer’. Per fare ciò è possibile scrivere il codice seguente77:

%tensorflow_version 1.x

!rm -r ComputerVision NeuralStyleTransfer

!git clone https://github.com/ldfrancis/ComputerVision.git

!cp -r ComputerVision/NeuralStyleTransfer .

72
Si tratta di un algoritmo neurale open source disponibile su https://github.com/log0/neural-style-painting.
73
Per possibile modificare tutte le variabili sottostanti il codice in modo tale da creare un algoritmo che funziona in modo
completamento diverso partendo dal codice originale http://www.chioka.in/tensorflow-implementation-neural-algorithm-of-
artistic-style.
74
https://medium.com/@lawrencedikeu/easy-neural-style-transfer-with-google-colab-a3264789d6ed è possibile utilizzare
questo pacchetto al fine di creare delle immagini senza dover modificare l’implementazione originale del codice.
75
https://colab.research.google.com/notebooks/intro.ipynb#recent=true.
76
https://github.com/ldfrancis/ComputerVision/commit/9dfd734f1f9e531c7ae57a2303716f492f88873f questa è
l’implementazione di base che permette il funzionamento dell’algoritmo.
77
Per tutti i codici scritti sono stati mantenuti i colori mostrati in Colab.

77
La prima riga del codice rimuove le cartelle denominate ‘ComputerVision’ e ‘NeuralStyleTransfer’, se
esistenti. La seconda riga importa il codice da Github, mentre la terza riga copia il codice di base dell’algoritmo
‘Neural Algorithm of Artistic Style’ nella cartella di lavoro, in modo tale da poterlo utilizzare. Una volta
eseguito il codice, nell’output, viene mostrato se sono state rimosse delle cartelle e vengono mostrati il numero
di Enumerating objects, di Counting objects e di Compressing objects che sono stati importati nella directory
del proprio computer.
Nel passaggio successivo si devono andare ad importare le immagini di contenuto e di stile che si vogliono
utilizzare. Prima di inserire le immagini nell’algoritmo è bene eseguire dei controlli sulle loro dimensioni e
sulla loro denominazione. Per inserire le immagini correttamente è bene denominare l’immagine di contenuto
come ‘content’ e l’immagine di stile come ‘style’. Per quanto riguarda le dimensioni, le immagine devono
avere la stessa dimensione. Per importare le immagine si può scrivere il seguente codice:

from google.colab import files

files.upload()

Inserito il codice in Colab, compare la scritta ‘Scegli file’ dalla quale è possibile scegliere le due immagini da
importare all’interno del programma.
A seconda delle immagini che sono state inserite, è possibile impostare le dimensioni delle stesse. Un
passaggio fondamentale è quello di scegliere il numero di interazioni che l’algoritmo deve far compiere alle
immagini per creare l’output finale. Il numero minimo di iterazioni permesso dall’algoritmo è di 100. A
seconda del numero di iterazioni verranno create immagini diverse. Un numero minore di iterazioni andrà ad
creare un’immagine di output meno “fusa”. A priori non è possibile sapere il miglior numero di iterazioni e
questo cambia a seconda dell’obiettivo. È bene tenere in considerazione che un numero maggiore di iterazioni
avrà un costo più alto e impiegherà un tempo maggiore per generare l’output. In quest’ottica è bene considerare
il trade off tra il numero di implementazioni e il tempo necessario per la generazione dell’immagine. Nel
codice seguente vengono definiti l’immagine di contenuto e l’immagine di stile con le immagini inserite
precedentemente e vengono decise la larghezza e l’altezza delle immagini nonché il numero delle iterazioni
che devono essere eseguite:

CONTENT_IMAGE = "content.jpg"

STYLE_IMAGE = "style.jpg"

IMAGE_HEIGHT = 300

IMAGE_WIDTH = 400

ITERATION = 200

Deciso il numero di iterazioni si deve andare a definire il percorso che deve essere seguito dalle immagini:

path_to_content_image = "/ content /" + CONTENT_IMAGE

path_to_style_image = "/ content /" + STYLE_IMAGE

78
Un passaggio non necessario, ma sicuramente molto utile, consiste nel mostrare le immagini di contenuto e di
stile prima dell’interazione. Con questo passaggio è possibile verificare che le immagini inserite siano quelle
corrette e che l’immagine di contenuto sia la ‘CONTENT_IMAGE’ e che l’immagine di stile sia la
‘STYLE_IMAGE’. Questo passaggio non è fondamentale perché anche se non fosse inserito, il codice
funzionerebbe ugualmente, tuttavia è molto utile perché permette di vedere se ci sono errori in modo tale da
modificarli per tempo. Per visualizzare le immagini importate si deve scrivere il codice seguente:

import matplotlib.pyplot as plt

c_image = plt.imread(path_to_content_image)

s_image = plt.imread(path_to_style_image)

print("Content Image of size (height, width) =>


{0}".format(c_image.shape[:-1]))

plt.imshow(c_image)

print("Style Image of size (height, width) =>


{0}".format(s_image.shape[:-1]))

plt.imshow(s_image)

Questa parte di codice, non solo permette di visualizzare le immagini, ma mostra anche le loro dimensioni
inserendole in una tabella numerata sia in altezza che in larghezza. Nel nostro caso l’altezza mostrata sarà di
300 e la larghezza di 400.
Arrivati a questo punto, se il codice non ha dato errori, è possibile andare ad iterare le immagini tra di loro.
Per fare questo è necessario importare il modulo ‘implementNTS’, poi, settare le dimensioni delle immagini
e, infine, eseguire il trasferimento di stile. Si deve inserire il seguente codice:

from NeuralStyleTransfer import implementNTS as NST

NST.setImageDim(IMAGE_WIDTH,IMAGE_HEIGHT)

NST.run(ITERATION,style_image=path_to_style_image,
content_image=path_to_content_image)

A seconda del peso delle immagini e del numero di iterazioni l’algoritmo impiegherà più o meno tempo per
generare l’output. Mentre l’algoritmo procede con le iterazioni, ogni 20 mostrerà i progressi fatti fino a quel
momento. Vengono mostrate le iterazioni eseguite, il costo totale, il costo dell’immagine di contenuto e il
costo dell’immagine di stile.
Quando l’algoritmo ha finito le iterazione non è ancora possibile visualizzare l’immagine generata. Se si è
usato un numero molto elevato di iterazioni può essere comodo avere anche dei passaggi intermedi per capire

79
se l’algoritmo ha funzionato meglio con un numero minore di iterazioni. È possibile salvare le immagini di
output ogni 100 iterazioni tramite il seguente codice:

!ls NeuralStyleTransfer/output/

Salvando le immagini ogni 100 è possibile visualizzare tutte in seguito. Per visualizzare solamente l’immgine
finale si può scrivere il seguente codice:

generated_image_path="/content/NeuralStyleTransfer/output/generated_im
age.jpg"

image = plt.imread(generated_image_path)

plt.imshow(image)

In questo modo si sta solamente visualizzando l’immagine. Se questa è in linea con le nostre aspettative è
possibile eseguire il download della stessa, altrimenti è necessario andare a modificare alcuni parametri ed
eseguire di nuovo tutti i passaggi al fine di ottenere un’immagine diversa. Per eseguire il download dell’output
finale si deve scrivere il codice seguente:

files.download("NeuralStyleTransfer/output/generated_image.jpg")

4.3 Risultati:
Analizzato il funzionamento del codice dell’algoritmo ‘Neural Algorithm of Artistic Style’ è possibile vedere
alcuni risultati generati da diverse immagini di contenuto e di stile per comprendere meglio l’effettivo
funzionamento dell’algoritmo a seconda delle immagini inserite.
Ho sviluppato 3 matrici che hanno da input 4 immagini di contenuto e 4 immagini di stile. Nella ‘Matrice 1’
le immagini sono state iterate per 100 volte, nella ‘Matrice 2’ le immagini sono state iterate per 1000 volte,
mentre nella ‘Matrice 3’ le immagini sono state iterate per 2500 volte. Nel selezionare le immagini di contento
ho scelto un Dinosauro, Homer Simpson, Bojack Horseman e il Colosseo. Sono state scelte queste immagini
perché raffigurano tutte un qualcosa di specifico che sia un oggetto, un animale o un personaggio di fantasia.
Per quanto riguarda le immagini di stile ho scelta di utilizzare 2 immagini che uguali a quelle di contenuto,
che sono Homer Simpson e Bojack Horseman, per vedere in che modo delle immagini come queste che hanno
uno stile di cartone animato possano andare a combinarsi con le immagini di contenuto. Per quanto riguarda
le 2 immagini di stile rimanenti ho utilizzato una foto di un Tramonto e il quadro l’Urlo di Munch perché
penso possano essere più adattate al trasferimento dello stile alle immagini di contenuto.
Partendo con le immagini ottenute con 100 iterazioni è possibile fare alcune considerazioni. Considerando per
primo Homer Simpson, in particolare l’interazione della sua immagine con la sua stessa immagine, notiamo
come l’immagine risultante sia molto più grigiastra e un può più malformata, anche se rimane comunque bene
visibile il personaggio con la ciambella in mano, nonché i colori dell’immagine stessa. La stessa cosa si può
dire per l’iterazione dell’immagine di Bojack Horsment con sé stessA. Come era prevedibile, utilizzare iterare
l’immagine di Bojack Horseman come contenuto e l’immagine di Homer Simpson come stile è diverso
dall’iterare l’immagine di Bojack Horseman come stile e l’immagine di Homer Simpson come contenuto. In

80
entrambi i casi rimane ben visibile l’immagine di contenuto. Tutte quante le immagini le immagini di
contenuto iterate con il tramonto hanno uno stile simile, e lo stesso si può dire per le immagini iterate con il
quadro di Munch. I colori di queste iterazioni sono molto simili dato anche se si notano delle differenze per
quanto riguarda la concentrazione del colore. Nelle immagini iterate con l’Urlo i colori sembrano pennellati,
proprio come nel quadro, mentre nelle immagini iterate con il tramonto i colori sembrano più puntiformi.
Questo non vale per le immagini iterate con Bojack e Homer. Le immagini iterate con Homer contengono tutte
dei puntini neri e uno sfondo tendente all’oro. Le immagini iterate con Bojack non hanno creato grandi
stravolgimenti di stile nelle immagini, ad eccezione dell’iterazione con l’immagine di contenuto del
Dinosauro. In linea generale, per quanto riguarda le 100 iterazioni, le immagini migliori sono quelle realizzate
tramite l’interazione del dinosauro con tutte e 4 le immagini di stile. Hanno comunque creato delle immagini
rilevanti le iterazioni di tutte le immagini con lo stile del Tramonto e dell’Urlo, specialmente le immagini
contenenti il colosseo. Lo stesso non si può dire delle immagini iterate con Bojack e Homer.
Analizzato la prima matrice, contenente le immagini ottenute da 100 iterazioni possiamo andare a vedere cosa
è stato ottenuto utilizzano un numero maggiore di iterazioni.
Matrice 1: 100 Iterazioni

Tramonto Simpson Bojack Urlo di Munch


Content\Style

Dinosauro

Simpson

Bojack

Colosseo

81
Nella ‘Matrice 2’ risalta subito la colonna contente le interazioni con Homer Simpson. Per quanto riguarda
tutte le immagini, i contenuti sono più o meno riconoscibili, in particolare il Colosseo, ma lo stile
dell’immagine non è dei migliori dato che si vedono solo delle chiazze gialle su uno sfondo semi-dorato.
Nell’iterazione di Homer con sé stesso è possibile notare come ci sia stato uno schiarimento generale
dell’immagine ma che ci sia stata anche una sovrapposizione delle facce. L’immagine è comunque
riconoscibile ma non è certo migliorata rispetto all’originale. Non è dello stesso risultato l’unione di Bojack
con sé stesso. In quest’immagine, rispetto alle 100, si è avuto un netto miglioramento che ha riportato
l’immagine all’originale. Le altre immagini di contenuto iterate con Bojack Horseman sono riconoscibili.
Homer ha assunto la colorazione del cavallo. Per quanto riguarda il dinosauro è ben visibile la zampa e il muso
ma per il resto non si riconosce bene lo sfondo. Il Colosseo ha assunto lo sfondo celeste ma risulta in parte
malformato, soprattutto perché alcune parti del cavallo sono sovrapposte ad esso. Anche per quanto riguarda
le 1000 iterazioni risultato migliori le immagini iterate con il Tramonto e con L’Urlo di Munch. In entrambi i
casi le immagini di contenuto si sono amalgamate bene con lo stile dell’altra immagine. Le immagini iterate
con lo stile dell’Urlo di Munch ricalcano lo stile utilizzato dall’artista senza deformarne il contenuto.
Matrice 2: 1000 Iterazioni

Tramonto Simpson Bojack Urlo di Munch


Content\Style

Dinosauro

Simpson

Bojack

Colosseo

82
Nell’ultima matrice (‘Matrice 3’) le immagini sono state iterate per 2500 volte. Come nel caso delle 1000
iterazioni, le immagini ottenute dell’iterazione con lo stile Homer Simpson non hanno generato buoni risultati.
Le immagini risultati contengono sì dei tratti gialli ma, a parte per Homer iterato con sé stesso, le immagini di
contenuto sono irriconoscibili. L’immagine di contenuto del Dinosauro che era stata tra le migliori con le 100
e con le 1000 iterazioni è molto meno riconoscibile. L’immagine di Bojack Horseman iterato con sé stesso ha
mantenuto un’ottima qualità, a differenza di Homer che è peggiorato ulteriormente. L’unione dello stile di
Bojack con il contenuto di Homer è riconoscibile e meglio delle iterazioni precedenti. Le immagini migliori
restano quelle di Homer e Bojack iterate con il Tramonto e con l’Urlo di Munch. In queste 4 immagini i
contenuti sono riconoscibili e si sono amalgamati alla perfezione con lo stile dell’immagine. Homer è forse
quello che ha catturato meglio lo stile del Tramonto dal momento che si riescono a vedere un po’ le nuvole
all’altezza della sua testa nonostante sia molto chiaro quale sia il personaggio del contenuto. Per quanto
riguarda il Colosseo, il contenuto è riconoscibile nelle iterazioni con il tramonto e con l’Urlo di Munch ma
non si ha avuto un miglioramento rispetto alle 1000 iterazioni.

Matrice 3: 2500 Iterazioni

Tramonto Simpson Bojack Urlo di Munch


Content\Style

Dinosauro

Simpson

Bojack

Colosseo

83
Dall’analisi di queste 3 Matrici è possibile trarre alcune conclusioni generali. Per prima cosa è possibile notare
che non sempre a più iterazioni corrisponda un output migliore. Per ogni immagine di contenuto iterata con
un’immagine di stile è bene analizzare precedentemente le caratteristiche intrinseche nelle immagini al fine di
utilizzare un numero di iterazioni ottimale per il caso concreto. Questo è particolarmente visibile dall’unione
del contenuto del Dinosauro con tutti gli stili. Prendendo in considerazione le immagini di stile quelle che
hanno performato meglio sono le immagini rappresentanti un paesaggio e un dipinto. L’algoritmo è stato
scritto con il fine di trasferire lo stile di un quadro o di una foto ad un’immagine, quindi questo risultato non
sorprende. Come non sorprende che dall’unione di Bojack Horseman con sé stesso venga generata
un’immagine quasi identica per contenuto e stile. Sorprende che lo stesso non sia avvenuto con Homer
Simpson. Tutte le immagini di contenuto hanno performato bene con l’Urlo di Munch e con il Tramonto.
Alcune hanno performato meglio con un numero maggiore di iterazioni, come Homer Simpson, altre con un
numero minore, come il Colosseo. Per quanto riguarda l’unione con lo stile di Homer Simpson
nessun’immagine di contenuto ha generato una buona immagine, mentre il contenuto di Homer Simpson
iterato con lo stile di Bojack Horseman ha generato un personaggio riconoscibile.

84
CONCLUSIONI
Questo viaggio all’interno dell’Intelligenza Artificiale è giunto al termine. Abbiamo visto un’applicazione
concreta dell’algoritmo ‘Neural Algorithm of Artistic Style’, che per quanto semplice, permette a chiunque di
creare delle immagini con un determinato contenuto e uno stile particolare. L’utilizzo di intelligenza artificiali
open source può essere molto divertente e permettere una maggiore diffusione degli algoritmi. Questa
diffusione può portare ad un miglioramento dell’algoritmo stesso e, di conseguenza, a un risultato migliore.
Applicazioni di questo tipo non sembrano, oggi, così rivoluzionarie, ma fino qualche anno fa era impensabile
che un’Intelligenza Artificiale potesse modificare in questo modo delle immagini. Intelligenze artificiali di
questo tipo non sono pericolose e il loro sviluppo potrebbe anche portare ad un nuovo tipo di arte. Le immagini
create potrebbero essere convertite in NFT e vendute sul mercato al pari di opere d’arte.
Non tutti i tipi di Intelligenza Artificiale sono pericolosi e la maggior parte di essi vanno a migliorare le
esperienze umane. Tuttavia è necessario che gli ingegneri programmi gli algoritmi in maniera etica e che i
governi intervengano per limitare gli usi di questa tecnologia verso i campi che possono migliorare l’esistenza
umana e non peggiorarla o distruggerla. È necessario un intervento quanto più condiviso possibile da parte di
tutti i governi poiché questa tecnologia potrebbe essere utilizzata per tracciare e sottomettere alcune
popolazioni. Uno scenario del genere non è auspicabile, e al fine di evitarlo è necessario sviluppare quanto
prima delle leggi che limino questo tipo di utilizzi e che permettano a tutti di trarne giovamento. Data la
velocità di sviluppo di questa tecnologia non è possibile prevedere tutti gli scenari di quello che potrà fare
l’Intelligenza Artificiale nel futuro. Questo non significa che non bisogna intervenire in maniera prudenziale
già oggi. Compreso quanto possa essere difficile fare delle previsioni corrette sul futuro, in particolare sul
futuro di una tecnologia in continuo mutamento, è bene non immaginare cosa può accadere in futuro ma cosa
si può fare oggi al fine di indirizzare lo sviluppo dell’Intelligenza Artificiale verso un’applicazione etica e a
vantaggio di tutti gli esseri viventi, non solo di una piccola cerchia di persone. Per fare questo sono necessari
interventi governativi condivisi da tutti i paesi. L’Intelligenza Artificiale del futuro sarà un riflesso degli
sviluppi dell’Intelligenza Artificiale attuale. È bene stabilire delle linee guida su come debba essere utilizzata
l’Intelligenza Artificiale e continuare a monitorare i progressi al fine di creare delle regolamentazioni che
tengano il passo con lo sviluppo tecnologico e con i cambiamenti dei valori degli esseri umani.

85
BIBLIOGRAFIA
Abate Daniele. Robot e intelligenza artificiale: rischi e opportunità. Kindle Unlimited, 2019;
Barberis Federico. Intelligenza artificiale & Machine learning. Kindle Unlimited 2020;
Barrat James. La nostra invenzione finale: l’intelligenza artificiale e la fine dell’età dell’uomo. Roma:
Nutrimenti, 2019;
Cardon Dominique. Che cosa sognano gli algoritmi. Milano: Oscar Mondadori, 2018;
Cucci Alessandro. A tu per tu con il Machine Learning: l’incredibile viaggio di un developer nel favoloso
mondo della Data Science. Reggio Emilia: thedotcompany, 2017;
Damasio, Davison, Dennett, Dreyfus, Edelman, Fodor, Rorty, Searle, Stich. Cervelli che parlano: il dibattito
su mente, coscienza e intelligenza artificiale. Milano: Mondadori, 2003;
Delmastro Marco, Nicita Antonio. Big Data: come stanno cambiando il nostro mondo. Bologna: il Mulino,
2019;
Di Turi Nicola, Gori Marco, Landi Marco. Guida per umani all’intelligenza artificiale: noi al centro di un
mondo nuovo. Firenze: Giunti 2019;
Gardner Howard. Formae mentis: saggio sulla pluralità dell’intelligenza. Milano: Feltrinelli, 2013;
Gosmar Diego. Machine Learning: il sesto chakra dell’intelligenza artificiale. Gosmar, 2020;
Harari Yuval Noah. Homo Deus: breve storia del futuro. Milano, Bompiani, 2017;
Hénin Silvio. AI: Intelligenza Artificiale tra incubo e sogno. Milano: Hoepli, 2019;
Kandel Eric R.. Alla ricerca della memoria perduta: la storia di una nuova scienza della mente. Torino:
Codice edizioni, 2017;
Kaplan Jerry. Intelligenza artificiale: guida al futuro prossimo. Roma: Luiss, 2017;
Kaplan Jerry. Le persone non servono: lavoro e ricchezza nell’epoca dell’intelligenza artificiale. Roma:
Luiss, 2016;
Magrini Marco. Cervello: manuale dell’utente. Kindle Unlimited, 2018.
Mariano Marco. Intelligenza artificiale. Kindle Unlimited, 2019;
Marmo Roberto. Algoritmi per l’intelligenza artificiale. Milano: Hoepli, 2020;
Massaron Luca, Mueller John Paul. Intelligenza artificiale for dummies. Milano: Hoepli, 2020;
Massaron Luca, Mueller John Paul. Machine learning for dummies. Milano: Hoepli, 2020;
Mayer-Schönberger Viktor, Cukier Kenneth. Big Data; una rivoluzione che trasformerà il nostro modo di
vivere – e già minaccia la nostra libertà. Milano: Garzanti, 2019;
Norvig Peter, Russel Stuart. Intelligenza artificiale un approccio moderno, volume 2. Milano: Pearson 2005;
Orban David. Singolarità: con che velocità arriverà il futuro. Milano: Hoepli, 2015;
Perucchietti Enrica. Cyberuomo: dall’intelligenza artificiale all’ibrido uomo-macchina. Bologna: Arianna
editrice, 2019;
Rossi Francesca. Il confine del futuro. Possiamo fidarci dell’intelligenza artificiale?. Milano: Feltrinelli,
2019;
Sottocorona Chiara. #A.I. Challenge: amica o nemica? Come l’Intelligenza Artificiale cambia la nostra vita.
Milano: Hoepli, 2019;
Warwick Kevin. Intelligenza artificiale: le basi. Flaccovio Dario, 2015.

86

Potrebbero piacerti anche