Cos’è il machine learning?
Il machine learning, come è stato definito da Arthur Samuel già nel 1959, è “la scienza che dà l’abilità al computer di imparare senza essere esplicitamente programmato” e fa parte delle tecnologie che oggi definiamo con la sigla A.I., ovvero l’Intelligenza Artificiale.
Come funziona? In poche parole, il machine learning utilizza degli algoritmi che, attraverso un modello matematico, sfruttano i dati per fare delle previsioni. I dati vengono definiti “training data” perché sono quelli che consentono al programma di apprendere e fare previsioni senza dover essere programmati in maniera esplicita.
I vantaggi del machine learning
Il machine learning offre il grande vantaggio di semplificare il processo di programmazione e test rispetto a quello di un programma tradizionale.
Vediamo un esempio concreto: per realizzare un filtro antispam per una casella di posta elettronica, nel caso di un processo di programmazione tradizionale sarebbero necessari questi passaggi:
- Individuare le caratteristiche di ogni email classificabile come spam, per esempio quelle contenenti le parole “4U” o “credit card”.
2. Scrivere un algoritmo per ogni caratteristica riconducibile a una mail spam - Testare il corretto funzionamento del programma, e in caso di insuccesso ripetere gli steps 1 e 2 fino ad ottenere il corretto funzionamento.
Il processo potrebbe diventare anche molto lungo, a seconda del numero di caratteristiche e del risultato dei test.
Se ci avvalessimo invece del machine learning, il programma sarebbe non soltanto pronto in minor tempo, ma sarebbe anche più preciso. Questo perché un filtro spam basato su machine learning apprenderebbe in automatico le caratteristiche necessarie per la previsione, comparando gli esempi di spam con gli esempi non-spam.
Ma non solo: il machine learning offre anche il grande vantaggio dell’automazione: nel caso in cui le mail riconducibili a spam contengano delle variazioni nelle parole che le identificano come spam, come ad esempio “4U” con “For U”, non sarebbe necessario modificare a mano l’algoritmo, come avverrebbe nel caso di un programma tradizionale, ma sarebbe sufficiente inserire i dati aggiornati e creare un nuovo modello attraverso i “training data”.
Categorie di Machine Learning
Il machine learning si suddivide in 4 categorie:
- Supervised Learning
- Unsupervised Learning
- Semi Supervised Learning
- Reinforcement Learning
Supervised Learning
Nel supervised learning lo sviluppatore fornisce all’algoritmo dei Labeled data, ovvero informazioni che contengono dati di input(Instance) con i rispettivi output(Label), in cui (sempre facendo riferimento all’esempio del sistema antispam) gli input corrispondono alle caratteristiche della mail che vogliamo classificare come spam, mentre l’output corrisponde all’identificazione “spam” o “non spam”.
Unsupervised Learning
Per Unsupervised learning si intende la situazione in cui i dati forniti all’algoritmo di machine learning contengono solo dati di input (Instance), senza dati di output.
Questa tipologia di dati viene chiamata unlabeled data.
In questo caso l’algoritmo crea dei cluster/gruppi per separare i dati a seconda delle caratteristiche che è in grado di identificare.
Semisupervised Learning
Alcuni algoritmi di machine learning possono lavorare con dati semi-completi, ovvero in cui i ci sono sia labeled data che unlabeled data, per cui si parla di Semisupervised Learning.
Per fare un esempio concreto, immaginiamo di caricare delle fotografie su Google Photos. Il sistema riconoscerà che nelle foto sono presenti due persone e in quali immagini sono presenti. L’algoritmo chiederà al proprietario delle immagini di dire il nome delle due persone e il nome diventerà una label che il modello userà per identificare la persona in tutte le immagini.
In sostanza, l’algoritmo non farà altro che utilizzare i labeled data che ha a disposizione per identificare gli unlabeled data.
Reinforcement Learning
Il reinforcement learning è invece un sistema di apprendimento che funziona diversamente. In questo caso, l’algoritmo viene applicato ad un agente che inserito in un ambiente, ottiene delle ricompense se ha svolto correttamente alcune azioni, oppure riceve delle penalità nel caso non le abbia svolte in maniera corretta.
L’agente quindi sarà in grado di apprendere autonomamente qual è la strategia corretta da applicare, chiamata policy, per ottenere il maggior numero di ricompense possibile.
Il Workflow del Machine Learning
Il machine learning è una tecnologia in fase di evoluzione costante e incarna grandi potenzialità perché è uno strumento che permette di semplificare molti processi, sia nella vita quotidiana sia per diversi settori come ad esempio quello manifatturiero, dei trasporti, delle comunicazioni…
Ma qual è il flusso di svolgimento di un progetto di machine learning? Eccolo illustrato in maniera semplificata.
Riferimenti: Hands-On Machine Learning with Scikit-Learn & Tensorflow di Aurélien Géron
Aziz Ur Rehman
R&D Department Intern – smeup
My LinkedIn Profile
Naviga per categoria:
Seleziona una categoria d’interesse dal nostro magazine