Machine Learning e Knowledge Discovery

In italiano dovremmo tradurre Machine Learning come apprendimento automatico inteso come abilità delle macchine (intese come computer) di apprendere senza essere state esplicitamente e preventivamente programmate.

A coniare per primo il termine fu Arthur Lee Samuel, scienziato americano pioniere nel campo dell’Intelligenza Artificiale, nel 1959 anche se, ad oggi, la definizione più accreditata dalla comunità scientifica è quella fornita da un altro americano, Tom Michael Mitchell, direttore del dipartimento Machine Learning della Carnegie Mellon University:

«si dice che un programma apprende dall’esperienza E con riferimento a alcune classi di compiti T e con misurazione della performance P, se le sue performance nel compito T, come misurato da P, migliorano con l’esperienza E».

Detta in parole più semplici: il Machine Learning permette ai computer di imparare dall’esperienza; c’è apprendimento quando le prestazioni del programma migliorano dopo lo svolgimento di un compito o il completamento di un’azione (anche errata, partendo dall’assunto che anche per l’uomo vale il principio “sbagliando di impara”).

Guardano il Machine Learning da una prospettiva informatica, anziché scrivere il codice di programmazione attraverso il quale, passo dopo passo, si “dice” alla macchina cosa fare, al computer vengono forniti solo dei set di dati inseriti in un generico algoritmo che sviluppa una propria logica per svolgere la funzione, l’attività, il compito richiesti.

Le applicazioni di Machine Learning sono già oggi molto numerose, alcune delle quali entrate comunemente nella nostra vita quotidiana senza che in realtà ce ne rendessimo conto.

Pensiamo per esempio all’utilizzo dei motori di ricerca: attraverso una o più parole chiave, questi motori restituiscono liste di risultati (le cosiddette SERP – Search Engine Results Page) che sono l’effetto di algoritmi di Machine Learning con apprendimento non supervisionato (forniscono come output informazioni ritenute attinenti alla ricerca effettuata in base all’analisi di schemi, modelli, strutture nei dati).

Altro esempio comune è legato ai filtri anti-spam delle e-mail basati su sistemi di Machine Learning che imparano continuamente sia ad intercettare messaggi di posta elettronica sospetti o fraudolenti sia ad agire di conseguenza (per esempio eliminandoli prima che vengano distribuiti sulle caselle personali degli utenti). Sistemi di questo tipo, anche con sofisticazioni maggiori, vengono per esempio impiegati anche nel settore Finance per la prevenzione delle frodi (come la clonazione della carta di credito), dei furti di dati e identità; gli algoritmi imparano ad agire mettendo in correlazione eventi, abitudini degli utenti, preferenze di spesa, ecc.; informazioni attraverso le quali riescono poi a identificare in real-time eventuali comportamenti anomali che potrebbero appunto identificare un furto od una frode.

Interessanti esempi di Machine Learning con apprendimento supervisionato arrivano dal settore della ricerca scientifica in campo medico dove gli algoritmi imparano a fare previsioni sempre più accurate per prevenire lo scatenarsi di epidemie oppure per effettuare diagnosi di tumori o malattie rare in modo accurato e tempestivo.

E ancora, sempre nell’ambito dell’apprendimento supervisionato, ci sono interessanti applicazioni di Machine Learning a livello di riconoscimento vocale o identificazione della scrittura manuale.

Come accennato, i sistemi che si basano sull’apprendimento con rinforzo stanno alla base dello sviluppo delle auto a guida autonoma che, proprio attraverso il Machine Learning, imparano a riconoscere l’ambiente circostante (con i dati raccolti da sensori, GPS, ecc.) e ad adattare il loro “comportamento” in base alle specifiche situazioni che devono affrontare/superare.

Anche i cosiddetti sistemi di raccomandazione sfruttano il Machine Learning imparando dal comportamento e dalle preferenze degli utenti che navigano su siti web, piattaforme o applicazioni mobile; ne sono un esempio quelli che comunemente ci siamo abituati a vedere ed utilizzare sulle piattaforme di eCommerce come Amazon o di intrattenimento e accesso a contenuti come Netflix o Spotify.

La Knowledge Discovery invece, è il processo di scoperta di conoscenze utili da una raccolta di dati. Questa tecnica di data mining ampiamente utilizzata è un processo che include la preparazione e la selezione dei dati, la pulizia dei dati, l’integrazione delle conoscenze pregresse sui set di dati e l’interpretazione di soluzioni accurate dai risultati osservati.

Le principali aree di applicazione KDD comprendono marketing, rilevamento di frodi, telecomunicazioni e produzione.

Tradizionalmente, il data mining e la scoperta della conoscenza sono stati eseguiti manualmente. Con il passare del tempo, la quantità di dati in molti sistemi ha raggiunto dimensioni superiori a quelle del terabyte e non è più possibile mantenerla manualmente. Inoltre, per l’esistenza di successo di qualsiasi azienda, la scoperta di modelli sottostanti nei dati è considerata essenziale. Di conseguenza, sono stati sviluppati diversi strumenti software per scoprire dati nascosti e fare ipotesi, che formavano una parte dell’intelligenza artificiale.

Il processo KDD ha raggiunto il suo picco negli ultimi 10 anni. Attualmente ospita diversi approcci alla scoperta, tra cui l’apprendimento induttivo, le statistiche bayesiane, l’ottimizzazione della query semantica, l’acquisizione di conoscenze per sistemi esperti e la teoria dell’informazione. L’obiettivo finale è quello di estrarre conoscenze di alto livello dai dati di basso livello.

KDD include attività multidisciplinari. Ciò comprende l’archiviazione e l’accesso ai dati, gli algoritmi di ridimensionamento a enormi serie di dati e l’interpretazione dei risultati. Il processo di pulizia dei dati e di accesso ai dati incluso nel data warehousing facilitano il processo di KDD. L’intelligenza artificiale supporta anche la KDD scoprendo leggi empiriche dalla sperimentazione e dalle osservazioni. Gli schemi riconosciuti nei dati devono essere validi su nuovi dati e possedere un certo grado di certezza. Questi modelli sono considerati nuove conoscenze. I passaggi coinvolti nell’intero processo di KDD sono:

  1. Identifica l’obiettivo del processo KDD dal punto di vista del cliente.
  2. Comprendere i domini delle applicazioni coinvolti e le conoscenze necessarie
  3. Selezionare un set di dati di destinazione o un sottoinsieme di campioni di dati su cui eseguire la scoperta.
  4. Pulire e preelaborare i dati decidendo le strategie per gestire i campi mancanti e modificare i dati secondo i requisiti.
  5. Semplifica i set di dati rimuovendo le variabili indesiderate. Quindi, analizzare le funzioni utili che possono essere utilizzate per rappresentare i dati, a seconda dell’obiettivo o dell’attività.
  6. Abbina gli obiettivi di KDD con i metodi di data mining per suggerire modelli nascosti.
  7. Scegli gli algoritmi di data mining per scoprire schemi nascosti. Questo processo comprende decidere quali modelli e parametri potrebbero essere appropriati per il processo KDD complessivo.
  8. Cerca i pattern di interesse in una particolare forma di rappresentazione, che include regole di classificazione o alberi, regressione e clustering.
  9. Interpretare la conoscenza essenziale dai modelli estratti.
  10. Usa la conoscenza e incorporala in un altro sistema per ulteriori azioni.
  11. Documentalo e crea rapporti per le parti interessate.
Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...