Molti strumenti che abbiamo oggi a portata di mano - dagli smartphone agli elettrodomestici, dagli apparecchi domotici all'automobile - sembrano molto più
intelligenti che in passato: ricordano i nostri gusti, fanno previsioni, anticipano i nostri desideri e rispondono alle nostre domande. Tutto ciò
è merito di importanti funzionalità di machine learning e deep learning, e più in genere di applicazioni di intelligenza artificiale. Si sente spesso parlare di queste tecnologie, ma non sempre se ne comprende il vero significato. In questa guida, approfondiamo tecnicamente tali tecnologie portando il lettore al
loro utilizzo pratico con un gran numero di esempi. È indispensabile però tracciare bene i confini della tematica e comprendere le aree di azione di ognuna delle
sue branche.
Data Science: da dove tutto inizia
Iniziamo da quella che può essere considerata il grande bacino di queste tecnologie: la data science. Questa è
un'area dell'Informatica che mira a raccogliere tutte le tecniche indispensabili per la comprensione, l'esplorazione e la valorizzazione dei dati.
Ha una natura multidisciplinare che si fonda su matematica e statistica, sfruttando strumenti informatici ma attingendo a piene mani da molti altri campi.
Analizzare dati è sempre stato uno degli scopi fondamentali dell'informatica ma in questi ultimi tempi la tematica ha acquisito un risalto ancora maggiore.
Tecnologie come il cloud computing, i social network e i dispositivi mobili hanno indotto un aumento dell'accumulazione e della condivisione di dati tale da rendere sempre
più interessante tutto ciò che ha a che fare con la data science.
Gli scenari più comuni portano la data science a intrecciarsi con due aree estremamente importanti:
- Big Data: si tratta di contesti in cui i dati vengono accumulati ad altissima velocità, in grandissime quantità e nelle tipologie più disparate.
Anche le operazioni più comuni, in tali circostanze, assumono una notevole complessità tanto che sono stati sviluppati appositi strumenti tra cui
Apache Hadoop e Hive; - Intelligenza Artificiale: è un ambito che riscuote al giorno d'oggi grandissima attenzione sebbene sia qualcosa su cui l'Uomo fa ricerca continua dalla metà del secolo scorso.
Proprio su questa vogliamo concentrarci e nel prossimo paragrafo entriamo un po' più nei suoi dettagli.
Intelligenza Artificiale: come le macchine superano i propri limiti
Lo scopo dell'Intelligenza Artificiale - spesso abbreviata in IA o ancora più spesso in AI, dall'inglese Artificial Intelligence - consiste nel
permettere alle macchine di eseguire autonomamente operazioni che sarebbero più proprie di un essere umano. Da sempre, vediamo i computer come dei
ciechi esecutori: progettiamo un algoritmo per la risoluzione di un problema, lo trasformiamo in codice e glielo facciamo eseguire. La macchina può fare grandi cose
molto velocemente ma solo se guidata dall'Essere Umano in questo modo: tale è la visione della programmazione tradizionale. Per tali motivi,
ogni attività "meno naturale" per una macchina come prendere decisioni, sviluppare un ragionamento autonomo, interpretare il linguaggio naturale o imparare
dall'esperienza è sempre stata vista come una prova davvero complessa da superare, soprattutto per i programmatori che dovevano sviluppare programmi per farla
compiere.
L'Intelligenza Artificiale stravolge questa visione proponendo una macchina più autonoma, in grado di risolvere indipendentemente problemi e dove spesso
il programmatore riveste il ruolo fondamentale di accompagnatore (prepara i dati, controlla il lavoro della macchina, verifica i risultati, etc.), ma non più
di sviluppatore dello specifico algoritmo che risolverà il problema: sarà ora la macchina a idearlo.
Per raggiungere tali obiettivi esistono molte strade e per questo l'Intelligenza Artificiale si ramifica in molte branche. Questa guida ne tratterà
in maniera approfondita due molto importanti:
- Machine Learning: la macchina impara a risolvere problemi studiando dati relativi a situazioni analoghe accumulati in passato. Proprio in questo sta l'aspetto
del "learning" ovvero l'apprendimento, la fase iniziale in cui procedimenti di questo tipo si avvieranno. Fasi fondamentali saranno la corretta accumulazione dei dati
storici, la loro organizzazione e pulizia nonchè la scelta degli algoritmi di appendimento più adatti al problema; - Deep Learning: si tratta di una branca del Machine Learning, da non confondere assolutamente con quest'ultimo. Vede comunque la realizzazione di una fase di
apprendimento ma basata su reti neurali artificiali, modelli ispirati alle reti di neuroni alla base del funzionamento del nostro cervello.
Queste le aree principali che la guida tratterà: non resta altro ora che iniziare a conoscere gli strumenti di cui dovremo servirci.