Apprendimento automatico

Da Wikipedia, l'enciclopedia libera.

L'apprendimento automatico (noto in letteratura come Machine Learning) rappresenta una delle aree fondamentali dell'intelligenza artificiale e si occupa della realizzazione di sistemi e algoritmi che si basano su osservazioni come dati per la sintesi di nuova conoscenza. L'apprendimento può avvenire catturando caratteristiche di interesse provenienti da esempi, strutture dati o sensori, per analizzarle e valutarne le relazioni tra le variabili osservate.

Generalità[modifica | modifica sorgente]

Uno degli obiettivi principali di ricerca sull'apprendimento automatico è quello di imparare a riconoscere automaticamente modelli complessi e prendere decisioni intelligenti basate su dati; la difficoltà sta nel fatto che l'insieme di tutti i possibili comportamenti dati tutti gli input possibili è troppo grande per essere coperto da insiemi di esempi osservati (dati di allenamento). Da qui è necessario l'utilizzo di tecniche per generalizzare gli esempi citati, in modo da essere in grado di produrre un rendimento utile per casi nuovi.

Al giorno d'oggi non siamo ancora in grado di riprodurre sistemi di apprendimento automatico simile a quello umano. Tuttavia sono stati inventati algoritmi efficaci per alcuni tipi di compiti di apprendimento, così significative applicazioni commerciali hanno iniziato a comparire.

Per problemi come il riconoscimento vocale, algoritmi basati sull'apprendimento automatico danno i migliori risultati. Nel campo conosciuto come data mining, questi algoritmi sono utilizzati di routine per scoprire preziose conoscenze da grandi basi di dati commerciali contenenti un grande numero di informazioni.

L'apprendimento automatico è di per sé un campo multidisciplinare. Esso si basa sui risultati di intelligenza artificiale, probabilità e statistica, teoria della complessità computazionale, teoria di controllo, teoria dell'informazione, filosofia, psicologia, la neurobiologia e altri campi.

Definizione formale[modifica | modifica sorgente]

Tom M. Mitchell ha fornito una definizione che include qualsiasi programma per computer che migliora le sue prestazioni per un certo compito attraverso l'esperienza. Più precisamente:

Definizione:

« un programma apprende da una certa esperienza E se: nel rispetto di una classe di compiti T, con una misura di prestazione P, la prestazione P misurata nello svolgere il compito T è migliorata dall'esperienza E.[1] »

Ad esempio, un programma per computer che impara a giocare a dama potrebbe migliorare la sua performance, misurata dalla sua abilità a vincere la classe di attività relative al giocare a dama, attraverso l'esperienza ottenuta giocando contro se stesso.

Tipologie di algoritmi[modifica | modifica sorgente]

Gli algoritmi di apprendimento automatico sono tradizionalmente divisi in tre principali tipologie:

Apprendimento supervisionato[modifica | modifica sorgente]

Nell'apprendimento supervisionato il training data è composto da una coppia di esempi determinata da un oggetto di input (tipicamente un vettore) e un valore di output desiderato (anche chiamato supervisory signal). Un algoritmo di apprendimento supervisionato genera una funzione di inferenza (classificatore) che dovrebbe essere in grado di predire il corretto valore di output per ogni input valido.

Apprendimento non supervisionato[modifica | modifica sorgente]

Nell'apprendimento non supervisionato il problema diventa quello di trovare strutture nascoste in strutture dati non preclassificate da cui non è possibile valutare una possibile soluzione. L'apprendimento non supervisionato è strettamente collegato al problema di stima di densità in statistica.

Apprendimento con rinforzo[modifica | modifica sorgente]

La tecnica di programmazione dell'apprendimento per rinforzo si basa sul presupposto di potere ricevere degli stimoli dall'esterno a seconda delle scelte dell'algoritmo. Gli algoritmi per il reinforcement learning tentano di determinare una politica tesa a massimizzare gli incentivi cumulati ricevuti dall'agente nel corso della sua esplorazione del problema. L'apprendimento con rinforzo differisce da quello supervisionato poiché non sono mai presentate delle coppie input-output di esempi noti, né si procede alla correzione esplicita di azioni subottimali.

Volendo, gli algoritmi di apprendimento automatico possono essere classificati anche in base al modo in cui costruiscono la loro "esperienza" sulla base della quale poi effettuano le scelte. Da questo punto di vista si hanno:

Esperienza con apprendimento continuo[modifica | modifica sorgente]

Questi algoritmi partono dal presupposto di disporre di un meccanismo semplice in grado di valutare le scelte dell'algoritmo e quindi premiare o punire l'algoritmo a seconda del risultato, esse sono in grado di adattarsi anche a modifiche sostanziali dell'ambiente: un esempio sono i programmi di riconoscimento del parlato o i programmi di OCR che con l'utilizzo migliorano le loro prestazioni.

Esperienza con addestramento preventivo[modifica | modifica sorgente]

Questi algoritmi partono dalla constatazione che valutare costantemente le azioni dell'algoritmo può essere un procedimento non automatizzabile oppure molto costoso e in questo caso si applica una prima fase in cui si istruisce l'algoritmo e quando il sistema viene ritenuto affidabile viene cristallizzato e reso non più modificabile. Molti componenti elettronici usano delle reti neurali al loro interno, e i pesi sinaptici di queste reti non sono modificabili dato che sono fissati durante la realizzazione del circuito.

Approcci[modifica | modifica sorgente]

Albero di Decisione[modifica | modifica sorgente]

L'albero di decisione è un metodo di apprendimento per approssimazione di una funzione obiettivo discreta in cui l'elemento che apprende è rappresentato da un albero di decisione. Gli alberi di decisione possono essere rappresentati a un insieme di regole if-else per migliorare la leggibilità umana.

Rete neurale artificiale[modifica | modifica sorgente]

Una rete neurale artificiale è un sistema adattivo che cambia la sua struttura basata su informazioni esterne o interne che scorrono attraverso la rete durante la fase di apprendimento. In termini pratici le reti neurali sono strutture non-lineari di dati statistici organizzate come strumenti di modellazione. Esse possono essere utilizzate per simulare relazioni complesse tra ingressi e uscite che altre funzioni analitiche non riescono a rappresentare. Inoltre esse sono robuste agli errori presenti nel training data.

Programmazione Genetica[modifica | modifica sorgente]

Gli algoritmi genetici forniscono un approccio all'apprendimento che è liberamente ispirato all'evoluzione simulata. La ricerca di una soluzione del problema inizia con una popolazione di soluzioni iniziale. I membri della popolazione attuale danno luogo a una popolazione di nuova generazione per mezzo di operazioni quali la mutazione casuale e crossover, che sono modellati sui processi di evoluzione biologica. Ad ogni passo, le soluzioni della popolazione attuale sono valutate rispetto a una determinata misura di fitness, con le ipotesi più adatte selezionate probabilisticamente come semi per la produzione della prossima generazione. Gli algoritmi genetici sono stati applicati con successo a una varietà di compiti di apprendimento e di altri problemi di ottimizzazione. Ad esempio, essi sono stati usati per imparare raccolte di norme per il controllo del robot e per ottimizzare la topologia dei parametri di apprendimento per reti neurali artificiali.

Macchine a vettori di supporto[modifica | modifica sorgente]

Macchine a vettori di supporto (SVM) sono un insieme di metodi di apprendimento supervisionato usati per la classificazione e la regressione di pattern. Dato un insieme di esempi di addestramento, ciascuno contrassegnato come appartenente a due possibili categorie, un algoritmo di addestramento SVM costruisce un modello in grado di prevedere a quale categoria deve appartenere un nuovo esempio di input.

Clustering[modifica | modifica sorgente]

La cluster analisi, o clustering, è l'assegnazione di un insieme di osservazioni in sottogruppi (clusters) in modo che le osservazioni nello stesso cluster sono simili in certe caratteristiche. Il clustering è un metodo di apprendimento non supervisionato, e una tecnica comune per l'analisi statistica dei dati.

Reti Bayesiane[modifica | modifica sorgente]

Il Ragionamento bayesiano fornisce un approccio probabilistico di inferenza. Esso si basa sul presupposto che le quantità di interesse sono disciplinate da distribuzioni di probabilità e che le decisioni ottimali possono essere prese a seguito dell'analisi di queste probabilità insieme ai dati osservati. Nell'ambito dell'apprendimento automatico, la teoria Bayesiana è importante perché fornisce un approccio quantitativo per valutare le prove a sostegno dell'ipotesi alternativa. Il Ragionamento bayesiano fornisce la base per l'apprendimento negli algoritmi che manipolano direttamente le probabilità.

Campi di utilizzo[modifica | modifica sorgente]

  • Intelligenza artificiale:
Rappresentazioni simboliche di apprendimento dei concetti.
Macchina di apprendimento come un problema di ricerca.
Apprendimento come approccio alternativo per migliorare la soluzione dei problemi.
  • Metodi baesiani:
Teorema di Bayes come base per il calcolo delle probabilità di ipotesi.
Il classificatore Naive Bayes.
Limiti teorici della complessità intrinseca dei diversi compiti di apprendimento, misurato in termini di sforzo computazionale.
Procedure per imparare a controllare i processi al fine di ottimizzare gli obiettivi predefiniti e che imparano a predire lo stato successivo del processo che si sta controllando.
Misure di entropia e di contenuto informativo.
Lunghezza minima descrizione delle modalità di apprendimento.
Codici ottimali e la loro relazione alle sequenze di allenamento ottimale per la codifica di una ipotesi.
  • Filosofia:
Rasoio di Occam, suggerisce che l'ipotesi più semplice è la migliore.
Analisi della giustificazione per generalizzare i dati osservati.
  • Psicologia e neurobiologia:
La legge di potenza della pratica, che stabilisce che in un intervallo molto ampio di problemi di apprendimento, il tempo di risposta della gente migliora con la pratica secondo una legge di potenza.
Gli studi neurobiologici motivano modelli di reti neurali artificiali di apprendimento.

Esempi di applicazioni pratiche[modifica | modifica sorgente]

Riconoscimento vocale del testo[modifica | modifica sorgente]

Tutti i sistemi di riconoscimento vocale di maggior successo utilizzano metodi di apprendimento automatico. Ad esempio, il SPHINXsystem [2] impara le strategie di altoparlanti specifici per riconoscere i suoni primitivi (fonemi) e le parole del segnale vocale osservato. Metodi di apprendimento basati su reti neurali e su modelli di Markov nascosti sono efficaci per la personalizzazione automatica di vocabolari, caratteristiche del microfono, rumore di fondo, ecc.

Guida automatica di veicoli[modifica | modifica sorgente]

Metodi di apprendimento automatico sono stati usati per addestrare i veicoli controllati da computer. Ad esempio, il sistema ALVINN[3] ha usato le sue strategie imparato a guidare senza assistenza a 70 miglia all'ora per 90 miglia su strade pubbliche, tra le altre auto. Tecniche simili sono possibili applicazioni in molti problemi di controllo basato su sensori.

Classificazione di nuove strutture astronomiche[modifica | modifica sorgente]

Metodi di apprendimento automatico sono stati applicati ad una varietà di database di grandi dimensioni per imparare regolarità generali implicito nei dati. Ad esempio, algoritmi di apprendimento basati su alberi di decisione sono stati usati dalla NASA per classificare oggetti celesti a partire dal secondo Palomar Observatory Sky Survey [4]. Questo sistema è oggi utilizzato per classificare automaticamente tutti gli oggetti nel Sky Survey, che si compone di tre terabyte di dati immagine.

Giocatore di backgammon di classe mondiale[modifica | modifica sorgente]

I programmi per computer di maggior successo per il gioco del backgammon sono basati su algoritmi di apprendimento. Ad esempio, il miglior programma di computer al mondo per backgammon, TD-Gammon[5], ha sviluppato la sua strategia giocando oltre un milione di partite di prova contro se stesso. Tecniche simili hanno applicazioni in molti problemi pratici in cui gli spazi di ricerca molto rilevanti devono essere esaminati in modo efficiente.

Note[modifica | modifica sorgente]

  1. ^ * Mitchell, T. (1997). Machine Learning, McGraw Hill. ISBN 0-07-042807-7, p.2.
  2. ^ Automatic speech recognition: the development of the SPHINX system, Lee 1989
  3. ^ D. Pomerleau. Alvinn: An autonomous land vehicle in a neural network. In Advances in Neural Information Processing Systems 1, 1989.
  4. ^ Automated Star/Galaxy Classification for Digitized Poss-II, Weir, N., Fayyad, U. M., & Djorgovski, S, Astronomical Journal v.109, p.2401
  5. ^ G. Tesauro, "Temporal difference learning and TD-Gammon." Comm. of the ACM 38:3, 58-68 (1995). TML version at: http://www.research.ibm.com/massive/tdl.html

Bibliografia[modifica | modifica sorgente]

  • Alpaydin, E. (2004), Introduction to Machine Learning, the MIT Press.
  • Langley, P. (1996), Elements of Machine Learning, Morgan Kaufmann.
  • Mitchell, T. (1997), Machine Learning, McGraw Hill. ISBN 0-07-042807-7
  • Witten, I. & Frank, E. (2005), Data Mining: Practical Machine Learning Tools and Techniques, Morgan Kaufmann.

Voci correlate[modifica | modifica sorgente]

Altri progetti[modifica | modifica sorgente]