Ricerca per:

Quali tipologie di AI esistono? – quick guide

Machine Learning o non machine learning? 

Amleto (circa) 

La differenziazione principale tra i vari modelli sussiste nell’esistenza di intelligenze artificiali in grado di imparare dagli eventi e dalle situazioni, o più spesso da un test-set preciso, e AI statiche, fatte e finite, che possono operare solo in un ambiente specifico, che anche se sono in grado di reagire a situazioni disparate, non hanno bisogno di essere allenate. 

In questo articolo ci si riferirà talvolta agli “agenti”, ovvero costrutti software di intelligenza artificiale con un obbiettivo specifico. 

Algoritmi di AI euristiche, alberi decisionali 

Direct Heuristic Search 

Questa categoria raggruppa genericamente tutte quelle AI che data una serie di informazioni sul target, lo stato attuale e le strategie utilizzabili, cercano una soluzione sub-ottimale spesso con una logica greedy (analisi di ogni possibilità), oppure con qualche filtro e ottimizzazione. Sono facili da sviluppare e in genere performanti, ma non hanno possibilità di confronto con algoritmi molto più precisi e avanzati come i Tree Search o le reti neurali. 

Tree Search Algorithms 

fonte: wikipedia.org CC4.0

Forse l’algoritmo più famoso in questa categoria è il MTTS (Monte Carlo tree search), questi algoritmi si occupano di decision making. Grazie a una previsione accurata dei prossimi rami dell’albero, si stabilisce quale stato futuro è il più conveniente, e si esegue la scelta che più avvicina la macchina a quello stato. Altri esempi di algoritmi di Tree Search sono Depth-first search, e Breadth-first search, che però non cercano il ramo più promettente, ma quello esatto, sono quindi più adatti in situazioni in cui la scelta migliore è una e la situazione presenta poche incognite. 

Algoritmi di reti neurali, Artificial Neural Networks (ANNs) 

Decisamente più complicati e costosi dal punto di vista di spazio di archiviazione, le reti neurali artificiali possono essere allenate a partire da un test-set, per poi agire in modo più performante e preciso di molti algoritmi euristici. 

Supervised learning vs Unsupervised learning

Gli algoritmi di apprendimenti “Supervised” sono tutti quelli che si basano su un test-set specificato, ovvero che presenta dei valori di verità che accompagnano i test, come immagini di animali con una label (etichetta), che indica di che animale si tratta. Software basati su questa tecnica sono molto utilizzati nel campo del riconoscimento immagini e del natural language processing, ovvero l’analisi del linguaggio naturale, come il riconoscimento degli stati d’animo e delle opinioni dello scrittore. 

Nella modalità di apprendimento “Unsupervised“, agli agenti viene presentato un test-set completamente non specificato, con un’assenza totale di label, dove l’AI si occupa di stabilire lei stessa le connessioni tra i vari input. Metodo in uso soprattutto nel campo della data science, quando si rende necessario scoprire eventuali densità all’interno di un dataset e evidenziare similarità (anche chiamate modelli) tra gli elementi che lo compongono. 

Reinforcement learning

fonte: filosoft.it

Ricevere un compenso rende qualsiasi task più stimolante per noi umani. Lo stesso vale per le AI. 

Nel reinforcement learning, gli agenti mirano a massimizzare il reward (la ricompensa), ogni azione che porta l’agente ad avvicinarsi all’obbiettivo incrementa il reward, mentre ogni azione controproducente lo decrementerà. Questa strategia di apprendimento è adatta a tutti quegli ambiti in cui non si conosce il metodo perfetto per ottenere quello che si desira. Immaginiamo di dover fare atterrare un drone automatizzato, i terreni, le condizioni atmosferiche, potrebbero cambiare, il drone stesso potrebbe essere danneggiato, non è possibile scrivere a priori una funzione di atterraggio sempre perfetta. Con il reinforcement learning si riesce ad allenare una rete neurale insegnandole come comportarsi sulla base di una ricompensa.  

Il drone sta rallentando? Punteggio positivo, il drone urta qualcosa? Punteggio negativo. Drone schiantato? Bancarotta, e così via. 

Ultimo appunto, cos’è il deep learning? 

Da wikipedia: “The adjective “deep” in deep learning refers to the use of multiple layers in the network”

fonte: moonbooks.org

Una ANN è formata di diversi neuroni che dato un input restituiscono un determinato output. Ciò che rende un algoritmo di machine learning “deep”, è il fatto che a determinati input si assegnano determinati output che sono poi input di altri neuroni. 

Leonardo Bonadimani – Whatar – Filosoft

www.twitch.tv/whatartv

Rischi e responsabilità dell’AI, il punto di vista della Comunità Europea

Inquadramento generale

A differenza di altri ambiti disciplinari la definizione di intelligenza
artificiale è stata oggetto storicamente di lunghi ed interessanti
dibattiti che hanno via via coinvolto filosofi, scienziati, logici. Non
mancano ricadute letterarie di quanto si è aperto dopo i lavori di
Touring ed in particolare la sua formalizzazione di un test per
individuare una IA, test che ha fatto storia non solo nel dibattito
filosofico e scientifico ma anche nella letteratura fantascientifica, da
Asimov a Philip K. Dick, per citare solo i capostipiti. L’interesse per
l’IA di Dick ben approfondito ne “Il cacciatore di androidi” è stato
reso molto noto dalla versione cinematografica di grande successo del
film “Blade Runner” che dedica tutta la scena iniziale al test di
Touring. Non è quindi cosa facile definire l’intelligenza artificiale,
ricavandone una definizione generale. Per gli scopi di questo breve
articolo la possiamo considerare una vera e propria disciplina
appartenente principalmente all’informatica che si occupa di metodi e
tecniche per progettare hardware e software che possono simulare in modo
efficace prestazioni tipiche dell’intelligenza umana. Così possiamo dire
che viene considerata anche dalla Commissione Europea nel suo tentativo
di inquadrare normativamente il fenomeno, allargando oltre ai
presupposti metodologici e teorici dell’informatica, con l’estensione
esplicita alle applicazioni dell’IA nei principali settori sociali.
Nell’allegato alla proposta che analizzeremo nel dettaglio, citata più
avanti, si legge un interessante elenco di quelle che vengono
considerate tecniche e approcci id intelligenza artificiale:

​a) Approcci di apprendimento automatico, compresi l’apprendimento
supervisionato, l’apprendimento non supervisionato e l’apprendimento
per rinforzo, con utilizzo di un’ampia gamma di metodi, tra cui
l’apprendimento profondo (deep learning);

​b) Approcci basati sulla logica e approcci basati sulla conoscenza,
compresi la rappresentazione della conoscenza, la programmazione
induttiva (logica), le basi di conoscenze, i motori inferenziali e
deduttivi, il ragionamento (simbolico) e i sistemi esperti;

​c) Approcci statistici, stima bayesiana, metodi di ricerca e
ottimizzazione.

Ancora più complesso poi, è determinare eventuali responsabilità
giuridiche, in caso di incidenti provocati da problemi di sicurezza
legati ai prodotti IA. Non sempre è individuabile in modo chiaro una
responsabilità umana nel contesto dell’intelligenza artificiale,
potrebbe trattarsi di un prodotto che causa incidenti, oppure
dell’utilizzo che l’umano fa del prodotto, che di per sé è neutro in
fatto di sicurezza, non necessariamente consapevole. Come illustrato nel
corso vi è un dibattito acceso nell’individuare se all’IA vada
attribuita una personalità come al soggetto umano oppure una personalità
giuridica simile a quelle che il diritto attribuisce agli enti ed alle
società. Già nel 2017 la commissione europea aveva elaborato una
risoluzione preliminare che tentava di mettere ordine su questi temi,
con rilievo a possibili danni causati dall’intelligenza artificiale,
dove il problema principale è proprio individuarne la responsabilità.
Così come il nostro codice civile può essere interpretato in una
direzione che permette di inquadrare eventuali danni causati da
intelligenza artificiale.

Per quanto concerne i temi di sicurezza digitale che stanno sotto il
cappello della cybersecurity il 27 giugno 2019 è entrato in vigore il
Regolamento (UE) 2019/881 del Parlamento Europeo.

Il Regolamento in questione, denominato anche “Cyber Security Act”, fa
parte di un processo in atto a livello comunitario volto a rafforzare
sia il quadro giuridico che l’attenzione generale ai temi della
sicurezza informatica. Il regolamento nasce anche in risposta alla
continua progressione degli attacchi informatici, quantomeno dagli anni
2000 in avanti, la crescita dei danni collegati ad attività di crimini
informatici è sicuramente diventata una problematica molto seria e
sentita a tutti i livelli.

Come primo obiettivo, tipico degli atti europei, c’è quello di
sensibilizzare e cooptare gli stati membri in uno sforzo comune
sovranazionale sulle tematiche di difesa da attacchi digitali. Inoltre
vi è enfasi anche su uno sforzo generalizzato di formazione legato a
queste tematiche.

Si individua nell’ENISA (European Union Agency for Cybersecurity) l’ente
deputato alla messa in campo delle strategie europee, e si prevede un
suo rafforzamento ed una sua stabilizzazione. Si estendono i compiti già
in essere all’ENISA e si prevede che essa sia coinvolta dagli stati
membri nella gestione di incidenti di cybersecurity anche nazionali.

Oltre ai compiti già noti leggiamo che all’ENISA viene richiesto di:

  • assistere le istituzioni dell’Unione e gli Stati membri
    “nell’elaborazione e nell’attuazione di politiche relative alla
    cybersicurezza” (art. 4.2. Reg.)
  • “assistere gli Stati membri nell’impegno a migliorare la
    prevenzione, la rilevazione e l’analisi delle minacce informatiche e
    degli incidenti, come pure la capacità di reazione agli stessi,
    fornendo loro le conoscenze e le competenze necessarie”; (art. 6.1 a)
    Reg )
  • “assistere gli Stati membri nello sviluppo di strategie nazionali in
    materia di sicurezza delle reti e dei sistemi informativi (art. 6.1.
    e) Reg.)
    promuove un elevato livello di consapevolezza in materia di
    cybersicurezza, incluse l’igiene informatica (ossia quelle “misure di
    routine che, se attuate e svolte regolarmente da cittadini,
    organizzazioni e imprese, riducono al minimo la loro esposizione a
    rischi derivanti da minacce informatiche”) e l’alfabetizzazione
    informatica, tra cittadini, organizzazioni e imprese (art. 4.7 Reg.)
  • Viene inoltre affidata all’ENISA la promozione dell’uso della
    certificazione europea della cybersicurezza, proprio con l’obiettivo
    di evitare la frammentazione del mercato interno. (Art. 4.6 Reg.).

Attualizzando il dibattito a livello comunitario in fatto di produzione
legislativa la Commissione Europea sta affrontando il tema
dell’Intelligenza artificiale con particolare attenzione da quando la
presidenza vede protagonista Ursula von der Leyen, politica tedesca di
area CDU, precedentemente ministra tedesca sotto vari governi Merkel, e
da poco esiste una proposta di regolamento specifica. La proposta è
molto recente del 21/04/2021, data di trasmissione al Consiglio. Il
presente articolo si occuperà di analizzare alcuni punti salienti di
questa proposta per ricavarne gli spunti necessari a derivare una
definizione di IA e di cybersecurity di rilevanza comunitaria. Sono
consapevole che queste complesse tematiche tecnologiche hanno molti
livelli di approfondimento e campi di applicazione, con significativi
impatti anche a livello di infrastrutture critiche della convivenza
sociale, qui quindi mi limiterò a recepire e commentare quanto
rilevabile dalla lettura della proposta stessa. (Commissione Europea, Document 52021PC0206, Proposta di REGOLAMENTO DEL PARLAMENTO EUROPEO E DEL CONSIGLIO CHE STABILISCE REGOLE ARMONIZZATE SULL’INTELLIGENZA ARTIFICIALE (LEGGE SULL’INTELLIGENZA ARTIFICIALE) E MODIFICA ALCUNI ATTI LEGISLATIVI DELL’UNIONE, Reperibile sul sito https://eur-lex.europa.eu/legal-content/IT/TXT/?uri=CELEX:52021PC0206).

Nel preambolo della proposta denominato contesto si inquadrano i motivi
e gli obiettivi del documento comunitario:

(ndr, in tutti gli estratti, che avranno questo formato con margini ridotti, enfatizziamo con il colore rosso i passaggi a nostro avviso rilevanti allo scopo di questo articolo, che verranno commentati di seguito)
Con il termine intelligenza artificiale (IA) si indica una famiglia di
tecnologie in rapida evoluzione in grado di apportare una vasta gamma di benefici economici e sociali in tutto lo spettro delle attività industriali e sociali. L’uso dell’intelligenza
artificiale, garantendo un miglioramento delle previsioni,
l’ottimizzazione delle operazioni e dell’assegnazione delle risorse e
la personalizzazione dell’erogazione di servizi, può contribuire al
conseguimento di risultati vantaggiosi dal punto di vista sociale e
ambientale nonché fornire vantaggi competitivi fondamentali alle
imprese e all’economia europea. Tale azione è particolarmente
necessaria in settori ad alto impatto, tra i quali figurano quelli dei
cambiamenti climatici, dell’ambiente e della sanità, il settore
pubblico, la finanza, la mobilità, gli affari interni e l’agricoltura.
Tuttavia gli stessi elementi e le stesse tecniche che alimentano i
benefici socio-economici dell’IA possono altresì comportare nuovi rischi o conseguenze negative per le persone fisiche o la società. In considerazione della velocità dei cambiamenti
tecnologici e delle possibili sfide, l’UE si impegna a perseguire un
approccio equilibrato. L’interesse dell’Unione è quello di preservare
la leadership tecnologica dell’UE e assicurare che i cittadini europei
possano beneficiare di nuove tecnologie sviluppate e operanti in
conformità ai valori, ai diritti fondamentali e ai principi
dell’Unione.

Come si può chiaramente leggere, l’IA è vista come una grande
opportunità con potenzialità di innovare molti ambiti sociali ed
economici, allo stesso tempo c’è la consapevolezza che questo grande
potenziale porti con sé rischi o conseguenze negative, è quindi compito
dell’UE trovare il giusto equilibrio tra il perseguimento della
“leadership” tecnologica con il giusto equilibrio che garantisca
ricadute positive e coerenti ai valori ed ai diritti fondamentali per i
cittadini europei. Questa premessa colloca automaticamente la
cybersecurity sul lato della mitigazione di alcuni dei “rischi”
intrinseci all’IA, cioè tutti quei rischi legati all’ulteriore
accelerazione che l’IA darà al versante del cybercrimine volto a violare
identità, catturare informazioni sensibili, violare sistemi di pagamento
e diffondere virus e ramsomware.

Si cita inoltre come la proposta sia coerente con l’impegno politico
della presidente von der Leyen, che nell’agenda europea 2019-2024
prevede uno scatto di ambizione dell’Europa in questo settore, indirizzi
che hanno portato alla pubblicazione nel Febbraio 2020 al Libro bianco
sull’intelligenza artificiale (sottotitolato Un approccio europeo
all’eccellenza e alla fiducia) (Commissione europea, Libro bianco sull’intelligenza artificiale – Un approccio europeo all’eccellenza e alla fiducia (COM(2020) 65 final)

Commissione Europea ed IA

Per quanto concerne l’ambito normativo la commissione esplicita pià
volte che l’IA, così come tutti i temi di sicurezza che comporta, è un
ambito europeo e non nazionale (situazione a cui ci si sta piano piano
abituando, vista anche la lenta ma capillare diffusione del GDPR, che
aveva la medesima impostazione). Il documento che stiamo analizzando in
un suo passaggio chiave lo esplicita come segue:

Gli obiettivi della presente proposta possono essere meglio conseguiti
a livello dell’Unione per evitare un’ulteriore frammentazione del mercato unico in quadri nazionali potenzialmente contraddittori che impediscono la libera circolazione di beni e servizi in cui è integrata l’IA. Un solido quadro normativo europeo per un’IA
affidabile assicurerà altresì parità di condizioni e tutelerà tutte le
persone, rafforzando allo stesso tempo la competitività e la base
industriale dell’Europa nel settore dell’IA. Soltanto un’azione comune a livello di Unione può altresì tutelare la sovranità digitale dell’Unione e sfruttare gli strumenti e i poteri di regolamentazione di quest’ultima per plasmare regole e norme di portata globale.

Per quanto concerne poi i rischi legati all’IA oltre al documento che
stiamo analizzando la produzione comunitaria è significativa, si
affrontano aspetti etici in “Risoluzione del Parlamento europeo del 20
ottobre 2020 recante raccomandazioni alla Commissione concernenti il
quadro relativo agli aspetti etici dell’intelligenza artificiale, della
robotica e delle tecnologie correlate, 2020/2012(INL). La questione
della responsabilità civile è approfondita in una specifica Risoluzione
del Parlamento europeo sempre del 20 Ottobre ”Regime di responsabilità
civile per l’intelligenza artificiale“ (2020/2014(INL). Altro tema
importante e decisivo per la tutela del know how europeo è il diritto
d’autore, su questo aspetto si esprime, nella stessa data, la
Risoluzione ”Diritti di proprietà intellettuale per lo sviluppo di
tecnologie di intelligenza artificiale” – 2020/2015(INI). Infine per
completare i riferimenti utili a comprendere le posizioni dibattute si
rimanda alla risoluzione sull’IA in ambito penale e ai riferimenti in
ambito istruzione, cultura e settore audovisivo. Su tutti questi temi la
Commissione ha avviato una consultazione IA portatori di interessi in
ambito IA (aziende, istituzioni, enti, persone fisiche), che ha avuto un
riscontro unanime sull’esigenza di intervenire a livello europeo con la
specificazione, da più parti, di evitare duplicazioni, obblighi
contrastanti e eccesso di regolamentazione. Ampio risalto viene dato al
potenziale negativo di un uso non normato dell’IA in ambito di dati
personali (filone già ampiamente dibattuto da tempo con riferimento al
GDPR), si legge infatti al paragrafo 3.5:

L’utilizzo dell’IA con le sue caratteristiche specifiche (ad esempio
opacità, complessità, dipendenza dai dati, comportamento autonomo) può
incidere negativamente su una serie di diritti fondamentali sanciti
dalla Carta dei diritti fondamentali dell’Unione europea (“la Carta”).
La presente proposta mira ad assicurare un livello elevato di
protezione di tali diritti fondamentali e ad affrontare varie fonti di
rischio attraverso un approccio basato sul rischio chiaramente
definito.

L’impegno principale è quindi quello di fare chiarezza in un settore
molto complesso, andando a definire in modo il più possibile
inequivocabile tecnologie, ambiti di applicazione, prodotti,
responsabilità, e all’interno di questo sforzo individuare quali di
questi oggetti è ad alto rischio e va particolarmente regolamentato o
addirittura vietato, come si legge nell’articolo 16 del regolamento;

È opportuno vietare l’immissione sul mercato, la messa in servizio o l’uso di determinati sistemi di IA intesi a distorcere il comportamento umano e che possono provocare danni fisici o psicologici. Tali sistemi di IA impiegano componenti subliminali che i singoli individui non sono in grado di percepire, oppure sfruttano le vulnerabilità di bambini e persone, dovute all’età o a incapacità fisiche o mentali. Si tratta di azioni compiute con l’intento di distorcere materialmente il comportamento di una persona, in un modo che provoca o può provocare un danno a tale persona o a un’altra. Tale intento non può essere presunto se la distorsione del comportamento umano è determinata da fattori esterni al sistema di IA, che sfuggono al controllo del fornitore o dell’utente. Tale divieto non dovrebbe ostacolare la ricerca per scopi legittimi in relazione a tali sistemi di IA, se tale ricerca non equivale a un uso del sistema
di IA nelle relazioni uomo-macchina che espone le persone fisiche a
danni e se tale ricerca è condotta conformemente a norme etiche
riconosciute per la ricerca scientifica.

Si fa qui riferimento implicito a “distorsioni” in parte già viste sui
social network, come la profilazione subdola e non consensuale a
finalità pubblicitarie, l’innesco di reazioni comportamentali indotto da
“premi virtuali”, il generale intento manipolatorio di alcune delle
principali tecnologie di entertainment digitale presentate come social
network, per evitare che l’applicazione dell’IA ne risulti alla fine
come un potenziamento senza controllo.

Il tema della Cybersecurity, già di per sé complesso e con confini non
del tutto semplici da tracciare nel mondo delle tecnologie informatiche
convenzionali, diventa ancora più cruciale in ambito IA, tanto che il
documento che stiamo analizzando si preoccupa di approfondire,
quantomeno elencando tutti i risvolti, in modo esaustivo la portata del
tema sicurezza in un mondo che progressivamente convive con sistemi di
intelligenza artificiale; si vedano a questo proposito gli articoli
27-33, in cui si traccia una linea che va dal sistema sanitario,
all’identificazione tramite dati biometrici (quest’ultima tecnologia è
candidata ad essere considerata ad alto rischio, pur essendo una
tecnologia utilizzata proprio per contrastare il furto o scambio di
identità nell’utilizzo di sistemi digitali o nell’accesso fisico a
strutture critiche. Il rischio che si vede è nella forte rilevanza dei
dati registrati e manipolati dai sistemi biometrici), l’IA utilizzata
nella gestione e funzionamento di infrastrutture critiche (traffico
stradale, forniture di luce, acqua, gas, riscaldamento, etc…), nel
settore occupazionale, della gestione del personale, nella formazione,
accesso a prestazioni e servizi pubblici, Un lungo articolo è poi
dedicato ai mezzi di contrasto alla criminalità che intendano dotarsi di
IA per migliorare i loro risultati in termini di individuazione di
comportamenti criminali:

Le azioni delle autorità di contrasto che prevedono determinati usi
dei sistemi di IA sono caratterizzate da un livello significativo di
squilibrio di potere e possono portare alla sorveglianza, all’arresto
o alla privazione della libertà di una persona fisica, come pure avere
altri impatti negativi sui diritti fondamentali garantiti nella Carta.
In particolare, il sistema di IA, se non è addestrato con dati di
elevata qualità, se non soddisfa requisiti adeguati in termini di
accuratezza o robustezza, o se non è adeguatamente progettato e
sottoposto a prova prima di essere immesso sul mercato o altrimenti
messo in servizio, può individuare le persone in modo discriminatorio
o altrimenti errato o ingiusto.

L’accento qui va su eventuali decisioni di privazione di libertà di
persone fisiche, detenzione o altri impatti negativi sui diritti
fondamentali che vengano prese con un significativo ricorso a tecnologie
di IA. Risulta chiaro come queste tecnologie debbano essere
accuratamente testate e robuste, oltre che progettate con alta
affidabilità, è a questo livello come su altri temi molto delicati visti
sopra che si innesta il principio di Security by Design, principio che
sottende il fatto che la sicurezza del prodotto o del sistema non è un
mero test per quanto massivo di quando progettato e prodotto, ma essa
stessa una specifica di progetto, altamente impattante nel disegno del
prodotto stesso, soprattutto nei casi di IA ad alto rischio, dove la
sicurezza diventa uno dei capitoli fondamentali della corretta
progettazione, in gran parte condizionante tutto il contesto di sviluppo
prodotto.

Da questo velocissimo excursus in ambito normativo e regolatorio europeo
si evince per certo che la materia legata all’intelligenza artificiale è
assai complessa soprattutto quando dalle definizioni di principio si
passa all’analisi delle applicazioni concrete e dei potenziali impatti.
Il compito dell’unione risulta essere quindi tuttaltro che semplice, da
un lato cercare di tenere il punto sul fatto che, essendo queste
tecnologie transforntaliere e pervasive risulti illusorio pensare di
poter regolamentarle paese per paese con, per altro, differenze
legislative che renderebbero impossibile per molti aspetti,
l’integrazione comunitaria. Dall’altro lato dimostrare che la governance
europea di questa complessa materia, in forte e continua evoluzione,
risulti efficace ed efficente per ogni stato membro.

Riflessioni finali e conclusione

Da questa rapida lettura del lavoro della commissione europea in ambito
intelligenza artificiale con particolare attenzione agli aspetti della
sicurezza si evincono, semplificando e a fini di sintesi finale, i
seguenti punti:

  • L’IA è una tecnologia pervasiva, coinvolge sia aspetti legati
    all’innovazione ed alla competitività dei paesi, così come aspetti
    fondamentali della vita sociale, dalla sanità, all’istruzione, alla
    difesa.
  • La mappatura normativa del fenomeno IA è necessariamente un work in progress;
  • Si rende necessario, per gli aspetti di coinvolgimento globale del
    fenomeno oltre che di dimensioni, pensare ad un approccio europeo,
    sostanzialmente centralizzato e condiviso, evitando di affrontare
    localmente, stato membro per stato membro, sia gli aspetti
    regolatori che le strategie legislative.
  • Il tema della sicurezza (e quindi anche della cybersicurezza) delle
    applicazioni IA è presente in ognuna delle valutazioni della
    comunità in ambito regolatorio. Possiamo dire che è un tema
    intrisecamente collegato. Si parla in prevalenza di “rischio”, come
    parametro per classificare le applicazioni di IA. Il rischio può
    aumentare sia per la tipologia di prodotto IA che si sta
    considerando (Es: sistemi di autenticazione biometrici) che per il
    settore sociale in cui viene applicata l’IA (es: difesa, sanità). A
    livello regolatorio la comunità europea intende chiarire quanto
    prima, attraverso classificazione, quali di questi aspetti
    presentino rischi alti e, in questi casi, procedere con restrizioni
    specifiche o, in situazioni di elevato e non ancora mitigabile
    rischio, al divieto di introduzione della tecnologia stessa.

Il mio breve excursus si conclude con la constatazione, desunta da più
parti, compresa l’importanza che la comunità europea sta riservando alle
tematiche dell’IA, che questa innovazione tecnologica pervasiva
rappresenterà lo scenario principale su cui si giocheranno sia la
competitività dei paesi (militare, economica), sia lo “stile di vita”
che la popolazione avrà o non avrà, a seconda che il sistema
dell’istruzione, della ricerca, dell’innovazione complessiva del paese
in cui risiede, persegua o meno strategicamente lo sviluppo “accelerato”
di tecnologie basate sull’IA. L’auspicio è quindi che, per l’Italia,
l’adesione convinta alla comunità europea possa colmare un divario già
evidente con altri paesi membri. Ci si riferisce qui alla Francia ed
alla Germania, trascurando paesi Extra europei già molto avanzati come
USA e Cina dove lo spazio competitivo possibile può solo essere di
dimensione europea. Il salto in avanti necessario riguarda sia la
conoscenza generale che la ricerca che la penetrazione nel tessuto
economico sociale dell’IA, e su questi fronti solo la scala europea può
effettivamente accelerare i processi di adeguamento.

Luca Bonadimani

AI e automazione del ciclo di sviluppo software

L’informatica, dalla sua introduzione nella società civile, ha sempre
rappresentato forse il principale fattore per aumentare la produttività
umana sostituendone operazioni ripetitive e soggette ad errore,
soprattutto nell’ambito della gestione, manipolazione, pubblicazione,
ricerca e archiviazione delle informazioni. Una accelerazione, quasi un
cambio di paradigma, lo si deve sicuramente alla crescita globale di
internet. La rete delle reti infatti ha via via permesso la reinvenzione
e la completa automazione di interi processi che sono sempre stati
tradizionalmente gestiti da personale umano. Basti citare la posta
elettronica, l’e-commerce e l’home banking, tre tra le grandi tecnologie
oramai consolidate, rese possibili da internet, che hanno ampiamente
dimostrato di essere tecnologie completamente sostitutive dei rispettivi
processi tradizionali, e non solo sostitutive ma anche migliorative per
l’utilizzatore. Questo fenomeno non ha ancora rappresentato la completa
scomparsa del processo tradizionale (non internet) corrispondente
all’innovazione specifica, ma, in molti casi, la reinvenzione e la
revisione. Si è sempre registrata invece una perdita di posti di lavoro
nei settori colpiti da quelle che vengono, appunto, definite come
“Killer application”. Ci sono evidenti segnali che l’IA sarà una
rivoluzione, se non molto più potente, quantomeno della stessa portata
di Internet, per quanto concerne la intrinseca potenzialità di
trasformazione di processi non solo produttivi ma anche, o soprattutto,
cognitivi.

Nella bibliografia sugli studi recenti ho trovato un paper1 che ritengo
di rilevante interesse per inquadrare il dibattito sull’IA e gli impatti
sull’occupazione futuri. L’autore ci introduce al tema illustrando
come negli ultimi anni, ci sia stato un crescente dibattito pubblico sul
potenziale impatto dell’intelligenza artificiale e dei robot sul lavoro.
Tuttavia, nonostante l’attenzione dedicata al problema dai media
mainstream, l’autore non rileva molti sostanziali passi avanti che
permettano di comprendere lo specifico ruolo che avrà l’IA nella società
del futuro. Quello che raramente appare è la questione di fondo, cioè lo
sviluppo di un’analisi volta a chiarire se l’intelligenza artificiale e
i robot siano proprio come le rivoluzioni tecnologiche del passato, che
causarono cambiamenti profondi nel mondo del lavoro ma ne lasciarono
invariata la struttura fondamentale, o rappresenti qualcosa di nuovo e
non ancora sperimentato dall’umanità. Dal lato tecnologico, la
discussione si concentra spesso su esempi sorprendenti di compiti che
l’IA e robot possono ora svolgere, ma senza mettere questi esempi in
prospettiva sviluppandone tutte le potenzialità. Come si confrontano
queste prestazioni specifiche con l’intera gamma di compiti da svolgere
sul lavoro? Sul versante degli studi economici, invece, la discussione
si concentra spesso sull’analisi dei cambiamenti passati causati dalla
tecnologia, ma senza dimostrare che vi siano analogie con l’IA. Come
facciamo a sapere che l’intelligenza artificiale e i robot
influenzeranno il lavoro nello stesso modo in cui le tecnologie hanno
fatto in passato? Nessuno dei due approcci sposta l’argomento al di là
della semplice ripetizione di conclusioni opposte secondo cui queste
nuove tecnologie causeranno o meno grandi cambiamenti. Per fare qualche
progresso nell’analisi del problema, è utile prestare molta attenzione
al modo in cui finiscono queste discussioni, che spesso è con una
descrizione entusiasta dei nuovi lavori che verranno dall’intelligenza
artificiale e dai robot. Tali descrizioni tendono a coinvolgere lavori
che richiedono pensiero critico, creatività, iniziativa imprenditoriale
e interazione sociale. Infine, di solito c’è una dichiarazione sulla
necessità di migliorare l’istruzione per preparare le persone a questi
nuovi lavori. Sembra quindi molto improbabile farsi un’idea profonda
leggendo i media, soprattutto quando questi ultimi partono con articoli
enfatici che mettono in risalto questo e quel aspetto mirabolante
dell’IA.

Un’altra interessante e divulgativa digressione sul lavoro e l’IA è
stata trattata da Federico Pedrocchi e inserita in una serie di episodi
audio da Audible nel 2018 (La serie parla di IA a tutto campo ed un
episodio è dedicato agli impatti sul lavoro)
2.

Si inizia introducendo il concetto di schiavitù, riferendosi al robot,
come macchina più o meno simile all’essere umano che aiuti o sostituisca
l’uomo in alcuni compiti. Interessante indagare sull’etimologia della
parola robot scoprendo che deriva dal ceco Robot automa
forzato…robòt (o ròbot) s. m. [nel sign. 1, der., attrav. il fr.
robot, dal cèco Robot ‹ròbot›, nome proprio, der. a sua volta di robota
«lavoro», con cui lo scrittore cèco Karel Čapek denominava gli automi
che lavorano al posto degli operai nel suo dramma fantascientifico
R.U.R. del 1920; nel sign. 2, der. direttamente dal cèco robota nel
senso di «lavoro servile; servizio della gleba»]3. Quindi semplici
macchine senza status, utilizzabili per sostituire i compiti degli
aristoi, in modo che questi ultimi potessero concedersi a pensare. Già
aristotele pensava a delle macchine che potessero sostituire l’uomo nel
lavoro e la concezione di schiavitù del mondo greco sembra utilizzare
degli uomini appunto come macchine da lavoro, gli schiavi. Ancora oggi,
come allora, il discorso in cui si inseriscono i robòt è sicuramente la
loro capacità produttiva confrontata con quella dell’essere umano.\
In un dossier del 2017 dell’Harward Business Review Italia, sulle nuove
tecnologie, si traccia un parallelo tra l’introduzione di tecnologia e
l’efficentamento dei processi produttivi, durante tutta la storia del
lavoro umano, la rivoluzione digitale che porterà all’introduzione
dell’IA è in continuità con questa continua ricerca del miglioramento
produttivo. Essendo però una rivoluzione, non si prevede che
quest’ultima sia ordinata e senza sussulti, ma che introduca
discontinuità, cambiamenti di scenario, nuovi player che guadagnano
importanti spazi di mercato, altri storici che vengono invece superati e
inevitabilmente escono di scena.

In questo momento si da per scontato che uomo e macchine intelligenti
lavoreranno assieme, con la seconda che assiste processi decisionali e
aiuta l’umano a lavorare meglio. Ci sono voci critiche rispetto
all’adozione pervasiva dell’IA, la principale delle quali vede nello
scenario dei processi decisionali “data driven” guidati da IA, una
omogeneità eccessiva delle aziende che arrivano sostanzialmente tutte
alle stesse conclusioni perché interpretano i dati con gli stessi
algoritmi. La creatività e la capacità associativa umana è ritenuta
indispensabile per creare vantaggio competitivo. La straordinaria storia
evolutiva delle specie ha portato, in tempi lunghissimi, all’evoluzione
che vede l’umano così ricco di caratteristiche come oggi lo conosciamo,
l’interrogativo che viene spontaneo è, questa ricchezza inesauribile è
codificabile? Per molti studiosi non sembra esserlo, o quantomeno lo è
solo parzialmente, cioè lo sono i comportamenti produttivi o i
comportamenti acquisiti che, anche nell’umano, diventano automatismi
(come per esempio la guida di un veicolo). Queste perplessità
sull’effettiva capacità per l’IA di sostituire le abilità dell’umano
lasciano però aperte molte preoccupazioni sul fronte occupazionale,
soprattutto in un immediato futuro. Nel 2019 uno studio di Saverio
Lovergine presentato all’Università Pontificia Salesiana e reperibile
online, dal titolo “Questa volta è diverso?” presenta le principali
teorie economiche e proiezioni in termini di occupazione
dall’introduzione delle nuove tecnologie, il dato interessante è che lo
spazio delle “macchine” viene visto via via crescere fino ad avere una
sostanziale parità, nel mondo dell’occupazione, non molto lontano da
oggi, cioè nel 2025.

Ci possiamo quindi aspettare che nel futuro prossimo molte attività che
richiedono analisi dati di contesto e decisioni deterministiche basate
sui dati vengano sostituite dall’IA. Si può pensare in questa direzione
a tutte le consulenze semplici basate, appunto, sull’accuratezza dei
dati raccolti, da check up di base dei valori biometrici a
personalizzazione di terapie farmacologiche, a tutto quanto rappresenta
la separazione di oggetti in base al riconoscimento delle immagini ed
alla capacità del calcolatore di accumulare apprendimento a partire
dalle operazioni eseguite: raccolta differenziata rifiuti sul campo (per
esempio in mare), processi di produzione nel settore agroalimentare dove
l’insieme delle condizioni ambientali, metereologici, predittivi e dello
stato del terreno da trattare potranno portare ad una maggiore
accuratezza nel dosaggio di acqua e additivi per la coltivazione o nel
variare alcuni aspetti di ricette nella produzione alimentare. Ma ci si
può anche spingere a pensare che alcune consulenze oggi umane possano un
domani essere offerte da strumenti IA. Si veda in particolare la
consulenza finanziaria sulla sostenibilità economica di un investimento,
di una polizza o sull’opportunità di coprire un rischio con una polizza
ed aspetti di questo tipo. Già il trading online sta ampiamente
sperimentando le tecnologie di IA, si parla infatti di robotrading
riferendosi a sistemi altamente automatizzati che hanno lo scopo di
massimizzare la resa degli investimenti.

Non pretendendo di essere minimamente esaustivi vorrei provare, nello
spazio di questa relazione, a riflettere se, all’interno del ciclo di
sviluppo del software, quindi alla programmazione così come la
conosciamo oggi, vi siano o vi saranno lavori o attività che verranno
sostituite gradualmente da sistemi di IA.

Il ciclo di vita del software è materia indagata in genere
dall’ingegneria del software, che disegna un flusso di attività
principali del processo di sviluppo e spesso le divide in sottoattività,
siamo infatti stati abituati, solo per citarne alcune, a sentir parlare
di analisi, stesura dei requisiti, sviluppo del software, test,
rilascio, etc…

L’approccio nello sviluppo del software è passato velocemente da quella
che può essere definita come un’impostazione “artigianale” o, se
vogliamo, individuale, ad una impostazione industriale, con il
coinvolgimento di grandi team, numerosi in termini di personale
specializzato, fasi, sottofasi, e processi molto raffinati. Il passaggio
ha seguito via via l’aumentare progressivo della complessità dei sistemi
software che venivano e vengono utilizzati, spesso, anche in ambienti ad
altà criticità, come le infrastrutture critiche stesse (centrali
elettriche, forniture di gas, aereospace, etc…).

Ci sono naturalmente filosofie di sviluppo del software diverse e a
volte in contrasto, si pensi al dibattito tra lo sviluppo “a cascata” e
tutte le forme contemporanee che prendono il via dall’Agile development,
che tende a porre maggiore enfasi all’interazione tra l’owner dei
requisiti (il cliente in senso largo) ed il team di sviluppo e non
prevede necessariamente la stesura ed il “congelamento” dell’intero
perimetro dei requisiti prima di dar inizio alla fase di sviluppo ma
piuttosto varie metodologie di prototipazione rapida che consentono di
arrivare velocemente a dei semilavorati che possono poi essere
modificati ed integrati. In ogni caso, per semplificare il dibattito
possiamo pensare a raggruppare le fasi dello sviluppo software in alcune
macro-attività che sono irrinunciabili.

  • Analisi (sotto questa voce ci sono molte sottoattività che vanno dai
    requisiti al costo di progetto)
  • Progettazione (idem come sopra)
  • Sviluppo del codice
  • Sviluppo dei test e risoluzione degli errori
  • Collaudo
  • Messa in produzione o confezionamento prodotto finale
  • Manutenzione ed evoluzione\

Vediamo in seguito quali esperimenti attuali ci possono far pensare che
un domani, non tanto lontano, alcune di queste attività saranno
quantomeno assistite da sistemi di IA.

Esperimenti di IA in campo sviluppo software

Uno spazio rilevante andrebbe dedicato ai passi avanti fatti in ambito
di produzione di strumenti a supporto della progettazione, collegata
anche alla manutenzione ed evoluzione del software, che hanno già
dimostrato in passato di poter generare automaticamente codice, ma lo
ritengo troppo complesso da affrontare sia per le mie attuali competenze
che in questo spazio.

Accenno solo ad un progetto molto noto che prende le mosse da ben prima
dell’attuale enfasi sull’IA e che potrebbe sicuramente essere ripreso in
un ottica assistita, mi riferisco al progetto Rational finito,
successivamente ai suoi primi sviluppi ed al rilascio di punta “Rational
Rose”, in casa IBM e fatto confluire come estensione della piattaforma
open source Eclipse.

Partirei invece qui da due delle fasi che maggiormente sembrano attirare
l’interesse, quantomeno dalla numerosità degli esperimenti in essere, in
campo di applicazione dell’IA allo sviluppo del software. Mi riferisco
alla fase di test e collaudo del software sviluppato.

Soprattutto nelle filosofie che adottano l’Agile/DevOps, gli strumenti
per l’automazione dei test stanno crescendo continuamente di importanza
e il loro livello di sviluppo diventa, in alcuni casi, anche il
discriminante nella scelta di un framework rispetto ad un altro. Proprio
per il continuo rilascio di piccoli moduli caratteristico di questa
metodologia di sviluppo (per altro oramai dominante) il test continuo
diventa una fase indispensabile e sostanzialmente impraticabile a
livello manuale. Oggigiorno infatti i principali casi d’uso del software
vengono scritti come test ed il calcolatore si occupa di rilanciarli
ogni volta che viene fatto un nuovo rilascio, in modo da assicurarsi che
il nuovo codice non abbia inficiato altre parti del software testate e
correttamente funzionanti in precedenza, occorrenza tutt’altro che rara
nella programmazione orientata agli oggetti.

Oltre che risultare, una volta scritti i test, di generale beneficio per
i tempi complessivi di sviluppo (si aumenta la velocità di esecuzione
dei test stessi e si riduce significativamente il tempo di analisi
finalizzato al bug fixing), l’automazione significa soprattutto
ripetibilità dei test, e quindi qualità del software.

Tutto quanto elencato nei paragrafi precedenti non vede ancora
l’assistenza dell’IA, ci si aspetta infatti un cambio di paradigma da
quest’ultima. All’introduzione dell’IA nella fase di testing del
software si chiede oggi la capacità di simulare differenti profili di
utente in base al contesto di utilizzo, in base all’età,
all’alfabetizzazione informatica, al profilo etnico-demografico,
etc…Questo spingerebbe il concetto di test molto oltre l’attuale
perimetro che prevede la simulazione di un utilizzo standard a casi
finiti (anche se spesso numerosissimi) sostanzialmente monoprofilo.

L’altro aspetto in cui si può ben sperare, vista l’ampia diffusione
odierna di queste tecniche, è che l’applicazione del Machine Learning,
cioè della progressiva accumulazione di “esperienza” diagnostica
dell’IA, favorita o dalle segnalazioni umane o da strategie di
“reinforcement” adeguatamente sviluppate, permetta un continuo
miglioramento delle capacità di monitoraggio della qualità di sviluppo
di un software.

All’interno del ciclo di vita di sviluppo di un software direi che è più
semplice ed immediato vedere, se non una sostituzione che mi sembra
lontana e non così vantaggiosa, un progressivo affiancamento dell’IA al
lavoro del test manager, del test designer e del test developer.

Rimanendo in ambito di produzione digitale non si può che leggere con
ottimismo questa potenziale evoluzione, il miglioramento dei test
(sempre intesi con progettazione e supervisione umana), significa
miglioramento della qualità del software prodotto e, come scritto nelle
premesse, essendo quest’ultimo ormai il motore di molte infrastrutture
critiche e di processi di grande riliveo sociale, il miglioramento
generale sia della fruizione che delle situazioni di rischio.

Si stanno costruendo via via applicazioni software sempre più complesse,
il time to market sta diventando un fattore critico per rilasciare
applicazioni che devono essere completamente testate e conformi ai
requisiti a scadenze precise. L’intelligenza artificiale può svolgere un
ruolo chiave nei test del software e può ottenere risultati più accurati
e far risparmiare tempo. Esistono già studi accademici che analizzano
quali tecniche dell’intelligenza artificiale possono essere utilizzate
con vantaggio nel test del software.4 Ci si interroga su possibili
scenari futuri in termini di intelligenza artificiale e test del
software. I risultati sembrano dimostrare che l’utilizzo
dell’intelligenza artificiale guiderà la nuova era del lavoro di
assicurazione della qualità del software (ma non solo, il tema del
controllo qualità assistito da IA sta riguardando e riguarderà sempre
più tutti i processi produttivi manufatturieri) nel prossimo futuro. Si
da per certo che l’AI Software Testing ridurrà il time to market e
aumenterà l’efficienza dell’organizzazione per produrre software più
sofisticato e creerà test automatizzati più intelligenti.

Sempre nell’ambito del software testing un altro fattore d’interesse,
più prospettico che attuale, è quello dell’automazione del test delle
GUI (Graphical User Interface),5 lo studio illustra come
l’interfaccia utente grafica (GUI) e i test del software basati su
eventi possono trarre vantaggi dall’uso delle tecniche di intelligenza
artificiale. Il test della GUI può essere considerato l’area più
impegnativa del test del software. Sebbene i risultati siano abbastanza
preliminari, l’applicazione di diverse tecniche di intelligenza
artificiale per i test della GUI ha dimostrato di produrre risultati
molto promettenti. Tuttavia, l’applicazione delle tecniche di
intelligenza artificiale nei test della GUI, rispetto ai test del
software, richiede ancora moltissima assistenza da parte dei progettisti
per produrre risultati accettabili.

Conclusioni

Secondo il già citato Stuart W. Elliott (ricercatore nella US National Academy of Sciences) nei prossimi anni, dovremo avere una comprensione
molto migliore di come si confrontano le capacità dei computer e degli
esseri umani. Nel fare questo confronto sarà fondamentale considerare la
distribuzione delle competenze tra la forza lavoro sulle differenti
abilità richieste dal mercato, nonché il potenziale realistico di poter
agire all’incremento di quelle competenze in cui i computer hanno già
compiuto progressi sostanziali. Sempre secondo Elliott non basta dire
che alcune persone hanno competenze migliori di quelle fornite dai
computer. Se la tenuta sociale passa nella continuazione di un’economia
basata sul lavoro, è obbligatorio sapere che la maggior parte delle
persone può sviluppare competenze migliori di quelle fornite dai
computer. Sappiamo dalla letteratura sulla diffusione della tecnologia
che spesso l’industria impiega molto tempo per adottare e applicare
nuove tecnologie: tempo per conoscere le tecnologie, perfezionarle per
applicazioni particolari per poi poter investire nelle tecnologie su
larga scala. In molti casi, la diffusione capillare può richiedere
diversi decenni, si veda la recente storia di Internet come fenomeno
globale, che vede l’ecommerce ancora lontano da molte categorie del
commercio. Ciò significa che l’umanità dispone di tempo per capire quali
capacità informatiche esistono attualmente e anticipare come potrebbero
cambiare le competenze necessarie alla forza lavoro nel prossimo o nei
prossimi due decenni. Tuttavia, è altrettanto noto che i cambiamenti ed
i miglioramenti nel settore dell’istruzione sono spesso lenti e
difficili. Quindi anche un decennio o due di preavviso potrebbero non
essere sufficienti per sviluppare le competenze necessarie. Oltre ai
tecnologi ed agli economisti che occupano in maniera prevalente la scena
mediatica sull’IA, risulta essere di fondamentale importanza ascoltare
altri tre tipi di esperti per capire se l’IA e i robot causeranno un
cambiamento fondamentale nella natura del lavoro e nel suo ruolo
nell’economia. Innanzitutto, sarebbe molto utile ascoltare gli psicologi
per capire le capacità che le persone hanno realmente sia di apprendere
che di adeguarsi. In secondo luogo, andrebbero intervistati i
responsabili delle risorse umane di grandi corporations per comprendere
la distribuzione delle competenze tra la forza lavoro per i diversi tipi
di sfide poste dall’IA. Infine, andrebbe aperto un tavolo di confronto
continuo con gli educatori sia per capire cosa sappiamo realmente sul
miglioramento delle competenze umane sia per censire lo stato dell’arte.

Come abbiamo cercato di evidenziare nella breve trattazione di questo
articolo c’è stato un recente aumento di interesse per l’applicazione
delle tecniche di Intelligenza Artificiale ai problemi di Ingegneria del
Software. Questo fenomeno è sia dovuto ai recenti progressi
nell’ingegneria del software guidata da processi di ricerca continua, ma
anche da un continuo approfondimento e sviluppo del ragionamento
probabilistico e delle tecniche di apprendimento automatico per
l’ingegneria del software.

Abbiamo scelto di parlare di IA nell’ingegneria del software un po’ come
sfida, si partiva infatti con l’indicazione di trovare una professione
che potrebbe essere, se non sostituita, profondamente modificata
dall’introduzione dell’IA. Lo sviluppo del software ci sembra, da un
certo punto di vista, la pietra angolare per vedere l’influenza futura
dell’IA, perché da un lato è il processo umano che porta alla
realizzazione dell’IA, dall’altro esso stesso potrebbe beneficiare delle
tecniche che sviluppa per migliorare alcuni aspetti poco efficenti o
lacunosi dell’agire umano in ambito sviluppo software, sempre che si sia
in presenza, in questo caso, di un circolo virtuoso e non del suo
contrario, che auspichiamo sia solo una prospettiva eccessivamente
distopica.

Luca Bonadimani

[1] ELLIOTT, S. (2018). Artificial Intelligence, Robots, and Work: Is
This Time Different? Issues in Science and Technology, 35(1), 40-44.

[2] Federico Pedrocchi. Intelligenza Artificiale. Triwù, Audiobook
Audible, Edizione integrale 2018, Episodio 5 – Perdita di posti di lavoro, un problema da considerare con attenzione.

[3] Treccani, Vocabolario online, voce robòt.

[4] H. Hourani, A. Hammad and M. Lafi, “The Impact of Artificial
Intelligence on Software Testing,” 2019 IEEE Jordan International
Joint Conference on Electrical Engineering and Information
Technology (JEEIT), 2019, pp. 565-570, doi:
10.1109/JEEIT.2019.8717439.

[5] A. Rauf and M. N. Alanazi, “Using artificial intelligence to
automatically test GUI,” 2014 9th International Conference on
Computer Science Education, 2014, pp. 3-5, doi:
10.1109/ICCSE.2014.6926420.