Tecnologie di IA


Sfruttando l’esperienza fatta nel campo della Programmazione Software utilizzerò tali concetti per illustrare i principi alla base dell’Intelligenza Artificiale, senza scendere in dettagli tecnici ma rimanendo su un livello introduttivo.

 

Programmazione Tradizionale

Un Programma SW tradizionale può essere schematizzato come indicato nell’immagine seguente:

SW 1 EN

La sequenza delle attività prevede innanzi tutto che siano stabilite le Regole cui deve attenersi lo specifico programma, si implementano quindi tali Regole nel Programma SW; da questo punto in poi ogni volta che il Programma SW riceve un gruppo di Dati in ingresso produce i Risultati attesi.

Un esempio banale può essere un programma per il calcolo del Codice Fiscale, le Regole sono quelle stabilite dallo Stato, i Dati sono quelli anagrafici del cittadino, il Risultato è il CF.

L’equivalente della Programmazione SW per gli elaboratori è definita Machine Learning.

 

Apprendimento delle Macchine (Machine Learning)

Al contrario del caso precedente, il ML si pone l’obiettivo di ricavare le Regole dall’osservazione del fenomeno, per poi utilizzarle nella Predizione del fenomeno stesso.

In questo caso la sequenza della attività prevede una fase di osservazione del fenomeno e acquisizione dei dati relativi, definita Apprendimento (Learning), necessaria a stabilire le Regole.

SW 2 EN

cui fa seguito quella di applicazione di quanto appreso, definita Predizione.

SW 3 EN

Per utilizzare lo stesso esempio precedente, se si sottopongono alla macchina un adeguato numero di CF e relativi Dati Anagrafici la macchina è in grado di costruirne le Regole, quindi di fornire autonomamente il CF corrispondente a specifici Dati Anagrafici.

Il ML si suddivide in 3 distinte categorie in relazione ai dati di cui si dispone, da cui derivano le specifiche modalità di Apprendimento; tali categorie sono normalmente definiti Algoritmi.

ML

Apprendimento non Supervisionato (Unsupervised Learning)

Questa Categoria (Gruppo di Algoritmi) non produce alcuna Previsione poiché non dispone di Risultati per la fase di Apprendimento.

Si utilizza per suddividere i campioni analizzati in diversi Gruppi (Clustering) determinando le similitudini che stabiliscono l’appartenenza a un gruppo o l’altro (si usano tecniche statistiche di Correlazione e di Pattern Identification).

Tipici esempi di utilizzo sono:

  • Segmentazione dei Clienti
  • Marketing Ad Personam
  • Sistemi di Raccomandazione (suggerimenti sulle scelte da fare)
  • Rappresentazione Visuale Big Data
  •  ...

Apprendimento Supervisionato (Supervised Learning)

Questa Categoria sostanzialmente riproduce andamenti di funzioni matematiche complesse; si dispone di Risultati per la fase di Apprendimento, quindi Previsione e relativo calcolo dell’Errore.

Ciascuna entità di cui si vuole effettuare una stima viene definita Classe, se la Classe è unica, la Predizione rappresenta la probabilità che l’entità in oggetto appartenga a tale Classe (es. probabilità che l’animale della foto sia un gatto), si utilizza la tecnica statistica definita Regressione; se le Classi sono molteplici la Predizione è composta da tanti valori quante sono le Classi e ciascuno rappresenta la probabilità di appartenenza alla Classe (es. Classi: “Gatti”, “Cani” e “Conigli” la Predizione fatta sulla stessa foto precedente fornirà le 3 probabilità di appartenenza alle specie animali), la tecnica statistica utilizzata è definita Classificazione.

Tipici esempi di utilizzo sono:

  • Previsione di fenomeni legati al tempo (Borsa, Meteo, Traffico, etc.)
  • Previsioni Marketing
  • Diagnosi Mediche
  • Classificazioni Immagini
  •  ...

Apprendimento con Rinforzo (Reinforcement Learning)

Categoria che non utilizza per l’Apprendimento i Risultati ma il metodo «Trial and Error» che introduce volutamente degli errori (che rappresentano il rinforzo) per accrescere l’apprendimento e poter prendere delle decisioni sempre più accurate. In pratica la macchina apprende dalle esperienze passate quali sono le migliori decisioni da prendere a fronte di specifiche situazioni.

Si utilizza per il Supporto alle Decisioni o Decisioni Autonome.

Tipici esempi di utilizzo sono:

  • Partecipazioni a giochi (es. scacchi)
  • Movimenti dei Robot
  • Veicoli a Guida Autonoma
  • Sistemi di Supporto alle Decisioni
  •  ...

Di seguito il riepilogo di quanto appena illustrato.

Flusso en

 

Per finire, alcuni esempi di applicazioni di ML alle immagini, i cui risultati sono di comprensione immediata.

 

Ricostruzione delle Immagini

Image Restoration 1Image Restoration 2Image Restoration 3 

 

Colorazione delle Immagini

 Colorization 1

Colorization 2Colorization 3

 

Trasferimento di Stile

Style Transfer 1Style Transfer 2

Style Transfer 3

 

  

Before Middle After