News and Blog

Design degli algoritmi: dai tradizionali a quelli ad apprendimento automatico

Articolo 2 - RUBRICA Giribone
Antiriciclaggio e ComplianceNews

Design degli algoritmi: dai tradizionali a quelli ad apprendimento automatico

A cura di Pier Giuseppe Giribone

Nell’articolo precedente della rubrica si era trattata la differenza esistente tra Intelligenza Artificiale (AI) e Machine Learning (ML), motivando perché quest’ultimo poteva essere considerato un suo particolare caso.

In questo secondo articolo si cercherà di fornire una definizione di Machine Learning e di chiarire le principali differenze di funzionamento intercorrenti tra un tradizionale algoritmo e uno concepito secondo i moderni paradigmi di apprendimento.

In modo estremamente intuitivo, si può affermare che il Machine Learning comprenda la scienza (ed arte) di programmare un computer in modo tale che questo possa “imparare” in modo autonomo dai dati.

Storicamente questo concetto era già stato espresso in termini visionari nel 1959 dall’informatico statunitense Arthur Lee Samuel, il quale definì il ML come quel campo di studio che fornisce ai calcolatori l’abilità di imparare senza che questi siano esplicitamente programmati.

Nel 1997 lo scienziato Tom Michael Mitchell ha fornito una definizione più tecnica e, in un certo senso, più precisa in merito alla definizione di apprendimento automatico: “Si dice che un programma per computer apprende dall’esperienza E rispetto ad un qualche compito assegnato T e a qualche misura di prestazione P, se la sua prestazione per portare a termine il task T, misurata da P, migliora con l’esperienza E”.

Tale definizione che può risultare di non immediata intuizione, merita sicuramente un esempio chiarificatore.

Abbiamo generalmente dimestichezza con il software che consente di gestire la posta elettronica e, in particolare, è noto cosa si intende per “spam filter” (ossia l’algoritmo che si avvale dei paradigmi moderni di apprendimento artificiale al fine di filtrare eventuali mail indesiderate).

Questo è un tipico programma di Machine Learning (ML) che, forniti gli esempi di mail considerate spam (contrassegnate dall’utente stesso) e/o mail ricevute considerate regolari (quelle non indesiderate alle quali l’utente ha risposto), può imparare autonomamente a contrassegnare in automatico una mail come spam.

Gli esempi che il sistema usa per imparare definiscono il training set. Ciascun set di dati fornito come addestramento è detto training instance o sample.

In questo caso, secondo la definizione fornita da Mitchell, si potrebbe affermare che il task T per lo spam filter è quello di flaggare una nuova mail come indesiderata, l’esperienza E è data dai training data e la performance P, che misura il livello di apprendimento, può essere, ad esempio, definita come la percentuale di mail correttamente classificate dal sistema.

Un algoritmo che ha a disposizione una grande mole di dati, ma al quale non sia assegnato un obiettivo specifico e una relativa metrica di performance con la quale misurare nel tempo quanto efficientemente stia raggiungendo la convergenza, non può essere considerato un programma che lavori seguendo i paradigmi di Machine Learning.

Se si scaricasse una copia statica di Wikipedia su un pc, il computer avrebbe una enorme mole di informazioni e dati, ma questi, non essendo gestiti/ordinati, non porterebbero a una nuova conoscenza: quale tipo di task infatti il software imparerebbe a fare meglio? Il mero download programmatico di una copia di una enciclopedia non costituisce dunque Machine Learning.

Al fine di comprendere la differenza progettuale tra un algoritmo tradizionale e uno che implementa i paradigmi di Machine Learning, ci mettiamo nei panni di uno sviluppatore che si proponga di stendere le logiche per scrivere il programma sopra citato di spam filter.

L’approccio algoritmico tradizionale prevedrebbe un flow-chart contenente le seguenti istruzioni:

  1. I) Si considerano tutti gli elementi che tipicamente possono caratterizzare uno spam. Ad esempio si noterebbero parole/frasi ricorrenti nell’oggetto della mail comprendenti «4U», «credit card», «free». Si potrebbero notare altri pattern nell’indirizzo mail o nel corpo potenzialmente utili.
  2. II) Si scriverebbe un algoritmo di rilevamento (detection) per ciascuno di questi pattern emersi nell’analisi precedente e il software contrassegnerà le mail spam qualora fossero rilevati un certo numero di questi pattern.

III) Si testerà il programma e si ripeterà I) e II) sintanto che l’algoritmo avrà raggiunto performance soddisfacenti.

È evidente che essendo un problema complesso, il programma sarà caratterizzato da una lista lunghissima di regole piuttosto complesse da mantenere in modo efficiente.

Uno spam filter basato su tecniche ML impara automaticamente quali parole e frasi sono corretti predittori di spam, grazie al rilevamento di pattern inusuali che caratterizzano le mail non desiderate da quelle regolari, grazie al confronto effettuato nel training set.

Il programma risulterà così più snello, semplice da mantenere e caratterizzato da una maggiore probabilità di accuratezza.

Che cosa potrebbe succedere se uno spammer segnala che tutte le mail che contengono «4U» sono bloccate? Potrebbe semplicemente iniziare a scrivere semplicemente «For U». Uno spam filter che impiega tecniche di programmazione tradizionali dovrebbe essere aggiornato con una nuova regola che blocchi anche le mail «For U».

Se lo spammer rileva inadeguato il nostro sistema di filtering, dovremmo costantemente definire e aggiungere nuove regole.

A differenza dell’approccio di programmazione tradizionale, uno spam filter basato su tecniche di Machine Learning automaticamente possiede la capacità di notare che le parole «For U» sono diventate inusualmente frequenti tra quelli contrassegnate dall’utente come spam e di conseguenza agire in autonomia.

L’algoritmo, pertanto, inizierà automaticamente a flaggare questo tipo di mail senza l’intervento manuale dell’utente: esso ha imparato una nuova regola, guidata dall’esperienza dell’utente.

L’impiego di algoritmi di ML risulta quindi particolarmente interessante nella risoluzione di problemi complessi, per i quali non sono definibili a priori le regole che governano il sistema da rappresentare.

Compreso cosa si intende per Machine Learning e le principali differenze di design algoritmico tra un programma tradizionale ed uno adibito all’apprendimento automatico, il prossimo articolo avrà per oggetto la classificazione delle diverse tipologie di Machine Learning in funzione delle differenti tipologie di apprendimento.

Arthur Lee Samuel, Pioniere nel campo dell’intelligenza artificiale e dei videogiochi per computer, coniò il termine “machine learning” nel 1959. Creò con successo il primo programma di dama basato sull’apprendimento automatico, fornendo una dimostrazione precoce dei concetti fondamentali dell’intelligenza artificiale.

Newsletter

Antiriciclaggio
& Compliance
Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Price
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
  • Attributes
  • Custom attributes
  • Custom fields
Click outside to hide the comparison bar
Compare