Machine Learning: nozioni di base Introduzione al mondo del Machine Learning: definizioni, concetti di base, principali casi d'uso ed esempi

Machine Learning: nozioni di base

In questa serie di articoli cercheremo di introdurre alcune nozioni di base sul Machine Learning, uno strumento innovativo per la risoluzione di problemi complessi che negli ultimi anni ha destato un enorme interesse – non soltanto tra gli addetti ai lavori, ma anche all’interno della società.

Questo capitolo è dedicato all’introduzione del concetto di Machine Learning in termini generali, mentre gli articoli successivi si occuperanno di approfondire i dettagli relativi ai vari ambiti di applicazione, fino ad arrivare all’analisi di alcuni semplici applicativi e del loro codice sorgente e a una panoramica dei framework più diffusi in questo ambito (Google TensorFlow, IBM Watson Studio, Amazon SageMaker, Azure ML Studio) e relativi linguaggi di programmazione (Python, R, Julia, LISPC#).

Introduzione

Il Machine Learning, noto anche come apprendimento automatico o auto-apprendimento, è un termine contenitore che raccoglie una pluralità di diverse metodologie sviluppate negli ultimi anni dalle principali comunità scientifiche che utilizzano l’informatica come strumento di lavoro. Tra queste, le più famose – ovvero quelle che hanno portato a risultati maggiormente promettenti – sono ad oggi le seguenti:

  • Statistica computazionale, branca della statistica che prevede un forte utilizzo dell’informatica e della programmazione al fine di sviluppare algoritmi per risolvere problemi difficilmente affrontabili per via analitica.
  • Pattern Recognition, una serie di tecniche di analisi e identificazione di elementi comuni (pattern) all’interno di dati grezzi al fine di identificarne la classificazione.
  • Reti Neurali, modelli computazionali composti di “neuroni” artificiali organizzati prendendo come modello una rete neurale biologica.
  • Adaptive Filtering, sistemi dotati di filtri che possono regolare i propri parametri secondo un algoritmo di ottimizzazione.
  • Data Mining, termine che identifica una pluralità di tecniche e metodologie che hanno come scopo l’estrazione di informazioni utili da grandi quantità di dati attraverso metodi automatici o semi-automatici.
  • Algoritmi genetici, metodologie di calcolo euristico utilizzate per risolvere problemi di ottimizzazione per i quali non si conoscono altri algoritmi efficienti di complessità lineare o polinomiale.

Quasi tutti gli argomenti che abbiamo appena elencato vengono oggi convenzionalmente ricondotti all’interno dell’Intelligenza Artificiale, disciplina informatica dedicata allo studio delle tecniche e delle metodologie volte a consentire ai sistemi hardware e software di agire e pensare umanamente (ovvero in modo indistinguibile da un umano) e razionalmente (ovvero rifacendosi alla logica per ottenere il miglior risultato possibile date le informazioni a disposizione); si tratta di una semplificazione sostanzialmente corretta, in quanto il Machine Learning è a sua volta una branca fondamentale dell’Intelligenza Artificiale: possiamo spingerci ad affermare che ad oggi si tratta della sua principale declinazione, essendo riuscito a trovare innumerevoli applicazioni pratiche all’interno di una pluralità di servizi e sistemi attualmente in uso.

Definizione

Partendo da questa importante premessa, possiamo dunque arrivare a una definizione di Machine Learning come il complesso di metodologie volte a insegnare ai sistemi computazionali (computer, robot, software, etc.) ad apprendere e a svolgere azioni ed attività in modo simile a quello degli esseri umani o animali, ovvero imparando dall’esperienza.

Si tratta ovviamente di un obiettivo estremamente ambizioso,  in quanto l’apprendimento “naturale” – tipico dell’uomo e dell’animale – non può che essere riprodotto informaticamente, ovvero con la creazione di modelli matematico-computazionali che consentano di apprendere informazioni direttamente dai dati, senza l’ausilio di criteri matematici e/o equazioni predeterminate. Per questo motivo, come avremo modo di vedere nei prossimi articoli, una delle caratteristiche principali degli algoritmi di Machine Learning è la capacità di auto-misurazione (self-test), ovvero uno strumento che consenta di misurare il miglioramento “adattivo” del sistema man mano che i dati a disposizione – ovvero gli “esempi” da cui apprendere – aumentano.

Finalità pratiche

La definizione che abbiamo dato di Machine Learning ci consente di mettere a fuoco gli obiettivi generali, che come abbiamo visto sono volti alla creazione di un sistema di apprendimento automatico che rispecchi il più possibile quello “naturale” tipico degli organismi biologici intelligenti: ma in termini pratici, a cosa serve questa ricerca? Quali sono gli ambiti di applicazione concreti per un sistema dotato di capacità di auto-apprendimento nella nostra vita quotidiana?

Si tratta di una domanda a cui è ormai fin troppo facile rispondere, in quanto negli ultimi anni il pianeta si è letteralmente riempito di soluzioni che utilizzano algoritmi di Machine Learning per aiutarci a risolvere problemi e renderci la vita più comoda: dai sistemi ABS che controllano la frenata delle nostre automobili al pilota automatico degli aerei, dai “filtri” che applichiamo alle nostre fotografie agli strumenti di supporto alla ricerca sanitaria, dal catalogo prodotti di piattaforme come Neflix e YouTube ai sistemi di analisi ambientale, dai motori di ricerca agli automatismi che determinano gli investimenti finanziari, la nostra esperienza quotidiana è ormai indissolubilmente legata a servizi che integrano questo tipo di metodologie.

Per citare un termine coniato in una importante pubblicazione di settore a cura del Global Initiative on Ethics of Autonomous and Intelligent Systems del 2017, la portata dell’impatto dell’Intelligenza Artificiale basata sulle tecniche di Machine Learning nelle nostre vite può essere descritta come una Eudaimonia, concetto Aristotelico traducibile con “essere in compagnia di un buon demone”: si tratta dunque di una risorsa estremamente utile, ma anche tremendamente potente, al punto da poter provocare effetti perversi se non opportunamente controllata.

I “rischi” della AI

Per ulteriori approfondimenti sul concetto di Eudaimonia e sui rischi connessi all’abuso dell’Intelligenza Artificiale consigliamo di leggere i nostri articoli sul tema:

Approfondimenti

Al netto degli inevitabili rischi connessi all’adozione di tutte le tecnologie “dirompenti”, il Machine Learning è dunque un potente strumento che può aiutarci a risolvere i problemi di una realtà sempre più complessa come quella attuale. Nei prossimi articoli esamineremo in dettaglio ciascuna delle tecnologie di cui si compone e le loro principali applicazioni alla vita reale.

Conclusioni

Per il momento riteniamo utile fermarci qui, rimandando ulteriori approfondimenti e riflessioni sui temi trattati agli articoli elencati sopra: buona lettura!

 

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.