Apprendimento automatico: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
Adfc (discussione | contributi)
Riga 1: Riga 1:
[[File:Feed-forward-perceptron.svg|thumb|[[Rete neurale artificiale]] di tipo Feed-forward]]
L''''apprendimento automatico''' (anche chiamato '''intelligenza computazionale''', e in [[lingua inglese|inglese]] come '''machine learning''') rappresenta una delle aree fondamentali nel campo dell'[[intelligenza artificiale]] e si occupa della realizzazione di sistemi e [[algoritmo|algoritmi]] che si basano su osservazioni come dati per la rappresentazione di nuovi contenuti informativi. L'apprendimento può avvenire catturando caratteristiche di interesse provenienti da esempi, strutture dati o [[sensore|sensori]], per analizzarle e valutarne le relazioni tra le variabili osservate. <br />
L''''apprendimento automatico''' (anche chiamato '''machine learning''' dall'inglese) è una branca dell'[[Intelligenza artificiale]] che "fornisce ai computer l'abilità di apprendere senza essere stati esplicitamente programmati"(Arthur Samuel, 1959).<ref> Phil Simon (March 18, 2013). Too Big to Ignore: The Business Case for Big Data. Wiley. p. 89. ISBN 978-1-118-63817-0.</ref>
L'apprendimento automatico è strettamente legato al [[riconoscimento di pattern]] e alla [[teoria computazionale dell'apprendimento]]<ref> http://www.britannica.com/EBchecked/topic/1116194/machine-learning</ref> ed esplora lo studio e la costruzione di algoritmi che possano apprendere da un insieme di dati e fare delle predizioni su questi,<ref>Ron Kohavi; Foster Provost (1998). "Glossary of terms". Machine Learning. 30: 271–27</ref> costruendo in modo induttivo un modello basato su dei campioni. L'apprendimento automatico viene impiegato in quei campi dell'informatica nei quali progettare e programmare [[algoritmi]] espliciti è impraticabile; tra le possibili applicazioni citiamo il filtraggio delle email per evitare [[spam]], l'individuazione di intrusioni in una rete o di intrusi che cercano di violare dati,<ref>[https://techcrunch.com/2016/07/01/exploiting-machine-learning-in-cybersecurity/ TechCrunch].</ref> il [[riconoscimento ottico dei caratteri]]<ref>Wernick, Yang, Brankov, Yourganov and Strother, Machine Learning in Medical Imaging, IEEE Signal Processing Magazine, vol. 27, no. 4, July 2010, pp. 25-38</ref>, i [[motori di ricerca]] e la [[visione artificiale]].


L'apprendimento automatico è strettamente collegato, e spesso si sovrappone con la [[statistica computazionale]], che si occupa dell'elaborazione di predizioni tramite l'uso di computer. L'apprendimento automatico è anche fortemente legato all'[[ottimizzazione matematica]], che fornisce metodi, teorie e domini di applicazione a questo campo.
== Generalità ==
Per usi commerciali, l'apprendimento automatico è conosciuto come [[analisi predittiva]].


==Generalità==
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 comportamento utile per casi nuovi.
[[Tom M. Mitchell]] ha fornito la definizione più citata di apprendimento automatico nel suo libro "Machine Learning": "si dice che un programma apprende dall'esperienza E con riferimento a qualche classe di compiti e con performance P, se le sue performance nello svolgere il compito T, come misurato da P, migliora con l'esperienza E"<ref>Mitchell, T. (1997). Machine Learning. McGraw Hill. p. 2. ISBN 0-07-042807-7.</ref> Questa definizione è rilevante poiché fornisce una definizione operativa dell'apprendimento automatico, invece che in termini cognitivi. Fornendo questa definizione, Mitchell di fatto segue la proposta che [[Alan Turing]] fece nel suo articolo "Computing Machinery and Intelligence", sostituendo la domanda "Le macchine possono pensare?" con la domanda "Le macchine possono fare quello che noi(in quanto entità pensanti) possiamo fare?"<ref>Harnad, Stevan (2008), "The Annotation Game: On Turing (1950) on Computing, Machinery, and Intelligence", in Epstein, Robert; Peters, Grace, The Turing Test Sourcebook: Philosophical and Methodological Issues in the Quest for the Thinking Computer, Kluwer</ref>.


===Tipi di problemi e compiti===
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.
I compiti dell'apprendimento automatico vengono tipicamente classificati in tre ampie categorie, a seconda della natura del "segnale" utilizzato per l'apprendimento o del "feedback" disponibile al sistema di apprendimento. Queste categorie, anche dette paradigmi sono:<ref> Russell, Stuart; Norvig, Peter (2003) [1995]. Artificial Intelligence: A Modern Approach (2nd ed.). Prentice Hall. ISBN 978-0137903955</ref>
*[[Apprendimento supervisionato]]: Al computer vengono forniti degli esempi nella forma di possibili input e i rispettivi output desiderati e l'obiettivo è quello di estrarre una regola generale che associ l'input all'output corretto.
*[[Apprendimento non supervisionato]]: il computer ha lo scopo di trovare una struttura negli input forniti, senza che gli input vengano etichettati in alcun modo.
*[[Apprendimento per rinforzo]]: Il computer interagisce con un ambiente dinamico nel quale cerca di raggiungere un obiettivo (per esempio guidare un veicolo), avendo un insegnante che gli dice solo se ha raggiunto l'obiettivo. Un altro esempio è quello di imparare a giocare un gioco giocando contro un avversario<ref>Machine learning and pattern recognition "can be viewed as two facets of the same field."</ref>


A metà strada tra l'apprendimento supervisionato e quello non supervisionato c'è l'[[apprendimento semi-supervisionato]], nel quale l'insegnante fornisce un dataset incompleto per l'allenamento, cioè un insieme di dati per l'allenamento tra i quali ci sono dati senza il rispettivo output desiderato. La trasduzione è un caso speciale di questo principio, nel quale l'intero insieme delle istanze del problema è noto durante l'apprendimento, eccetto la parte degli output desiderati che è mancante.
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 [[database|basi di dati]] commerciali contenenti un grande numero di informazioni.


Un'altra categorizzazione dei compiti dell'apprendimento automatico si rileva quando si considera l'output desiderato del sistema di apprendimento automatico:<ref>Machine learning and pattern recognition "can be viewed as two facets of the same field."</ref>
L'apprendimento automatico è di per sé un campo [[multidisciplinarità|multidisciplinare]]. Esso si basa sui risultati di [[intelligenza artificiale]], [[probabilità]] e [[statistica]], [[teoria della complessità computazionale]], [[teoria di controllo]], [[teoria dell'informazione]], [[filosofia]], [[psicologia]], [[neurobiologia]] e altri campi.


*Nella [[classificazione]], gli input sono divisi in due o più classi e il sistema di apprendimento deve produrre un modello che assegni gli input non ancora visti a una o più di queste. Questo viene affrontato solitamente in maniera supervisionata. Il filtraggio anti-spam è un esempio di classificazione, dove gli input sono le email e le classi sono "spam" e "non spam".
== Definizione formale ==
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:


*Nella [[regressione]], che è anch'essa un problema supervisionato, l'output e il modello utilizzato sono continui. Un esempio di regressione è la determinazione della quantità di olio presente in un oleodotto, avendo le misurazioni dell'attenuazione dei raggi gamma che passano attraverso il condotto. Un altro esempio è la predizione del valore del tasso di cambio di una valuta nel futuro, dati i suoi valori in tempi recenti.<ref>[[Bishop, C. M.]] (2006), Machine Learning and Pattern Recognition, Clarendon Press, p.5-6</ref>
'''Definizione''':


*Nel [[clustering]] un insieme di input viene diviso in gruppi. Diversamente da quanto accade per la classificazione, i gruppi non sono noti prima, rendendolo tipicamente un compito non supervisionato.
{{Q|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.<ref>* Mitchell, T. (1997). ''Machine Learning'', McGraw Hill. ISBN 0-07-042807-7, p.2.</ref>}}


===Data mining e apprendimento automatico===
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.
{{vedi anche|Data mining}}
L'apprendimento automatico viene a volte unito al [[data mining]],<ref>Mannila, Heikki (1996). Data mining: machine learning, statistics, and databases. Int'l Conf. Scientific and Statistical Database Management. IEEE Computer Society.</ref> che si focalizza maggiormente sull'analisi esplorativa dei dati ed utilizza principalmente il paradigma di apprendimento chiamato "[[apprendimento non supervisionato]]"<ref> Friedman, Jerome H. (1998). "Data Mining and Statistics: What's the connection?". Computing Science and Statistics. 29 (1): 3–9.</ref>. Invece, l'apprendimento automatico può essere anche non supervisionato<ref>http://www.darkreading.com/threat-intelligence/3-flavors-of-machine-learning--who-what-and-where/a/d-id/1324278</ref> .
L'apprendimento automatico e il ''data mining'' infatti si sovrappongo in modo significativo, ma mentre l'apprendimento automatico si concentra sulla previsione basata su proprietà note apprese dai dati, il [[Data mining|data mining]] si concentra sulla scoperta di proprietà prima ''sconosciute'' nei dati. Il data mining sfrutta i metodi dell'apprendimento automatico, ma con obiettivi differenti; d'altro canto, l'apprendimento automatico utilizza i metodi di data mining come metodi di apprendimento non supervisionato o come passi di preprocessing per aumentare l'accuratezza dell'apprendimento. Gran parte della confusione tra le due comunità di ricerca scaturisce dall'assunzione di base del loro operato: nell'apprendimento automatico, le prestazioni sono generalmente valutate in base all'abilità di riprodurre conoscenza già acquisita, mentre in data mining il compito chiave è la scoperta di conoscenza che prima non si aveva.


===Ottimizzazione e apprendimento automatico===
== Tipologie di algoritmi ==
{{vedi anche|Ottimizzazione}}
Gli algoritmi di apprendimento automatico sono tradizionalmente divisi in cinque principali tipologie:
L'apprendimento automatico ha legami molto stretti con l'ottimizzazione: molti problemi di apprendimento sono formulati come la minimizzazione di una qualche funzione di costo su un insieme di esempi di apprendimento. La funzione di costo (o funzione di perdita) rappresenta la discrepanza tra le previsioni del modello che si sta addestrando e le istanze del problema reale. Le differenze tra i due campi (l'apprendimento automatico e l'ottimizzazione) sorge dall'obiettivo della generalizzazione: mentre gli algoritmi di ottimizzazione possono minimizzare la perdita su un insieme di apprendimento, l'apprendimento automatico si preoccupa di minimizzare la perdita su campioni mai visti dalla macchina<ref>{{cite encyclopedia |last1=Le Roux |first1=Nicolas |first2=Yoshua |last2=Bengio |first3=Andrew |last3=Fitzgibbon |title=Improving First and Second-Order Methods by Modeling Uncertainty |encyclopedia=Optimization for Machine Learning |year=2012 |page=404 |editor-last1=Sra |editor-first1=Suvrit |editor-first2=Sebastian |editor-last2=Nowozin |editor-first3=Stephen J. |editor-last3=Wright |publisher=MIT Press}}</ref>.


===Soft computing e apprendimento automatico===
=== Apprendimento supervisionato ===
{{vedi anche|Soft computing}}
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.
La risoluzione automatica di problemi avviene, nel campo dell'informatica, in due modi differenti: tramite paradigmi di ''hard computing'', o tramite paradigmi di ''soft computing''. Per ''hard computing'' si intende la risoluzione di un problema tramite l'esecuzione di un [[algoritmo]] ben definito e decidibile. La maggior parte dei paradigmi di ''hard computing'' sono metodi ormai consolidati, ma presentano alcuni lati negativi: infatti richiedono sempre un modello analitico preciso e definibile, e spesso un alto tempo di computazione.
Le tecniche di ''soft computing'' d'altro canto antepongono il guadagno nella comprensione del comportamento di un sistema a scapito della precisione, spesso non necessaria. I paradigmi di ''soft computing'' si basano su due principi <ref>[[Kecman, V]] (2001), Learning and Soft Computing, [[MIT Press]], ISBN 978-0-262-52790-3</ref>:
* L'apprendimento a partire da dati sperimentali;
* L'integrazione di conoscenza umana, strutturata e preesistente, all'interno di modelli matematici computabili.
L'apprendimento automatico si avvale delle tecniche di ''soft computing''.


===Statistica e apprendimento automatico===
=== Apprendimento non supervisionato ===
{{vedi anche|Statistica}}
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.
L'apprendimento automatico e la statistica sono discipline strettamente collegate. Secondo [[Michael I. Jordan]], le idee dell'apprendimento automatico, dai principi metodologico agli strumenti teorici, sono stati sviluppati prima in statistica<ref name="mi jordan ama">{{cita web|url=http://www.reddit.com/r/MachineLearning/comments/2fxi6v/ama_michael_i_jordan/ckelmtt?context=3|titolo=statistics and machine learning|autore= MI Jordan|sito= reddit| data=2014-09-10|lingua=inglese|accesso=2014-10-01}}</ref>. Jordan ha anche suggerito il termine [[Data science]] come nome con cui chiamare l'intero campo di studi<ref name="mi jordan ama" />.


[[Leo Breiman]] ha distinto due paradigmi statistici di modellazione: modello basato sui dati e modello basato sugli algoritmi<ref>{{cita web|url= http://projecteuclid.org/download/pdf_1/euclid.ss/1009213726| titolo=Statistical Modeling: The Two Cultures|autore=L Breiman| sito= projecteuclid| editore= Cornell University Library| lingua=inglese| accesso=8 August 2015}}</ref>, dove "modello basato sugli algoritmi" indica approssimativamente algoritmi di apprendimento automatico come la [[Foresta casuale|foresta casuale]].
=== Apprendimento con rinforzo ===
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.


Alcuni statistici hanno adottato metodi provenienti dall'apprendimento automatico, il che ha portato alla creazione di una disciplina combinata chiamata "apprendimento statistico"<ref>{{cita libro | nome1=Gareth | cognome1=James | nome2=Daniela | cognome2= Witten | nome3=Trevor |cognome3=Hastie| nome4=Robert |cognome4= Tibshirani | titolo=An Introduction to Statistical Learning | anno=2013 | lingua = inglese| url= http://www-bcf.usc.edu/~gareth/ISL/ |editore=Springer | città= | p=vii}}</ref>.
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:


==Cenni storici==
=== Esperienza con apprendimento continuo ===
L'apprendimento automatico si sviluppa con lo studio dell'intelligenza artificiale, e vi è strettamente collegato: infatti già dai primi tentativi di definire l'intelligenza artificiale come disciplina accademica, alcuni ricercatori si erano mostrati interessati alla possibilità che le macchine imparassero dai dati. Questi ricercatori, in particolare [[Marvin Minsky]], [[Arthur Samuel]] e [[Frank Rosenblatt]], provarono ad avvicinarsi al problema sia attraverso vari metodi formali, sia con quelle che vengono definite [[Rete neurale artificiale|reti neurali]] nei tardi anni '50. Le reti neurali erano allora costituite da singoli [[Percettrone|percettroni]] e da modelli matematici derivati dal [[Modello lineare generalizzato|modello lineare generalizzato]] della statistica, come [[ADALINE]]. Si provò a sfruttare anche ragionamenti [[Teoria della probabilità|probabilistici]], in particolare nelle diagnosi mediche automatiche<ref name="aima">Russell, Stuart; Norvig, Peter (2003) [1995]. Artificial Intelligence: A Modern Approach (2nd ed.). Prentice Hall. ISBN 978-0137903955</ref>.
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 [[Optical Character Recognition|OCR]] che con l'utilizzo migliorano le loro [[prestazioni]].


Sempre negli anni '50, [[Alan Turing]] propose l'idea di una ''macchina che apprende'', ovvero in grado di imparare e dunque diventare intelligente. La proposta specifica di Turing anticipa gli [[Algoritmo genetico|algoritmi genetici]]<ref>{{cita pubblicazione | nome=Alan |cognome=Turing |titolo=COMPUTING MACHINERY AND INTELLIGENCE |rivista=MIND |editore= |città= |volume=59 |numero=236 |anno=1950 |mese=ottobre |pp=433–460 |id= |pmid= |url=http://mind.oxfordjournals.org/content/LIX/236/433 |lingua=inglese |doi=10.1093/mind/LIX.236.433 |accesso=8 giugno 2016 |abstract= }}</ref>.
=== Esperienza con addestramento preventivo ===

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 elettronico|circuito]].
Tuttavia già dalla metà degli anni '50 lo studio dell'intelligenza artificiale si stava concentrando su approcci logici di tipo ''knowledge-based'', nota oggi sotto il nome di [[GOFAI]], causando un distacco tra lo studio dell'IA e quello dell'apprendimento automatico. Sistemi di tipo probabilistico erano invasi di problemi sia teoretici sia pratici in termini di acquisizione e rappresentazione dei dati<ref>Russell, Stuart; Norvig, Peter (2003) [1995]. Artificial Intelligence: A Modern Approach (2nd ed.). Prentice Hall. ISBN 978-0137903955</ref>. Negli anni Ottanta, i [[Sistema esperto|sistemi esperti]] dominavano il campo dell'IA, e i sistemi basati sulla statistica non venivano più studiati<ref name="changing">{{cita pubblicazione | nome=Pat |cognome=Langley |titolo=The changing science of machine learning |rivista=Machine Learning |editore= |città= |volume=82 |numero= |anno=2011 |mese=ottobre |pp=275–279 |id= |pmid= |url= |lingua=inglese |doi=10.1007/s10994-011-5242-y |accesso= |abstract= }}</ref>.
Lo studio dell'apprendimento simbolico e ''knowledge-based'' continuò nell'ambito dell'IA, portando a sviluppare la [[Programmazione logica induttiva|programmazione logica induttiva]], ma ora la ricerca più prettamente statistica si svolgeva al di fuori del campo vero e proprio dell'intelligenza artificiale, nel [[Riconoscimento di pattern|riconoscimento di pattern]] e nell'[[Information retrieval|''information retrieval'']]<ref name="aima"/>.
Un altro motivo per cui lo studio dell'apprendimento automatico fu abbandonato fu la pubblicazione del libro ''Perceptrons: an introduction to computational geometry'' di [[Marvin Minsky]] e [[Seymour Papert]], che vi descrivevano alcune delle limitazioni dei percettroni e delle [[Reti neurali|reti neurali]]. La ricerca sulle reti neurali subì un significativo rallentamento a causa dell'interpretazione del libro, che le descriveva come intrinsecamente limitate<ref>{{cita web|url=http://harveycohen.net/image/perceptron.html|titolo=The Perceptron|nome=Harvey |cognome=Cohen | lingua=inglese| accesso= 5 giugno 2016}}</ref><ref>{{cita web|url=http://www.slideshare.net/bobcolner/a-brief-history-of-machine-learning|titolo=A brief history of machine learning|nome=Robert |cognome=Colner | lingua=inglese| accesso= 5 giugno 2016}}</ref>. Anche la linea di ricerca sulle reti neurali continuò al di fuori del campo dell'IA, portata avanti da ricercatori provenienti da altre discipline quali [[John Hopfield|Hopfield]], [[David Rumelhart|Rumelhart]] e [[Geoffrey Hinton|Hinton]]. Il loro successo principale fu a metà degli anni '80 con la riscoperta della [[Backpropagation|''backpropagation'']]<ref name="aima"/>.

L'apprendimento automatico, sviluppatosi come campo di studi separato dall'IA classica, cominciò a rifiorire negli anni '90. Il suo obiettivo cambiò dall'ottenere l'intelligenza artificiale ad affrontare problemi risolvibili di natura pratica. Distolse inoltre la propria attenzione dagli approcci simbolici che aveva ereditato dall'IA, e si diresse verso metodi e modelli presi in prestito dalla statistica e dalla [[Teoria della probabilità|teoria della probabilità]]<ref name="changing"/>. L'apprendimento automatico ha inoltre beneficiato dalla nascita di [[Internet]], che ha reso l'informazione digitale più facilmente reperibile e distribuibile.

==Teoria dell'apprendimento==
L'obiettivo principe dell'apprendimento automatico è che una macchina sia in grado di generalizzare dalla propria esperienza <ref>[[Bishop, C. M.]] (2006), Pattern Recognition and Machine Learning, Springer, ISBN 0-387-31073-8</ref>, ossia che sia in grado di svolgere ragionamenti [[Induzione|induttivi]]. In questo contesto, per generalizzazione si intende l'abilità di una macchina di portare a termine in maniera accurata esempi o compiti nuovi, che non ha mai affrontato, dopo aver fatto esperienza su un insieme di dati di apprendimento. Gli esempi di addestramento (in inglese chiamati ''training examples'') si assume provengano da una qualche distribuzione di probabilità, generalmente sconosciuta e considerata rappresentativa dello spazio delle occorrenze del fenomeno da apprendere; la macchina ha il compito di costruire un modello probabilistico generale dello spazio delle occorrenze, in maniera tale da essere in grado di produrre previsioni sufficientemente accurate quando sottoposta a nuovi casi.

L'analisi computazionale degli algoritmi di apprendimento automatico e delle loro prestazioni è una branca dell'[[Informatica teorica]] chiamata [[teoria dell'apprendimento]]. Dato che gli esempi di addestramento sono insiemi finiti di dati e non c'è modo di sapere l'evoluzione futura di un modello, la teoria dell'apprendimento non offre alcuna garanzia sulle prestazioni degli algoritmi. D'altro canto, è piuttosto comune che tali prestazioni siano vincolate da limiti probabilistici. Il [[bias-variance tradeoff]] è uno dei modi di quantificare l'[[Errore statistico|errore]] di generalizzazione.

Affinché la generalizzazione offra le migliori prestazioni possibili, la complessità dell'[[Induzione|ipotesi induttiva]] deve essere pari alla complessità della funzione sottostante i dati. Se l'ipotesi è meno complessa della funzione, allora il modello manifesta ''underfitting''. Quando la complessità del modello viene aumentata in risposta, allora l'errore di apprendimento diminuisce. Al contrario invece se l'ipotesi è troppo complessa, allora il modello manifesta [[Overfitting|overfitting]] e la generalizzazione sarà più scarsa<ref>Ethem Alpaydin. "[https://books.google.com/books?id=NP5bBAAAQBAJ&printsec=frontcover&dq=ethem+alpaydin&hl=tr&sa=X&redir_esc=y#v=onepage&q=ethem%20alpaydin&f=false Introduction to Machine Learning]" The MIT Press, 2010</ref>.

Oltre ai limiti di prestazioni, i teorici dell'apprendimento studiano la complessità temporale e la fattibilità dell'apprendimento stesso. Una computazione è considerata fattibile se può essere svolta in [[Complessità temporale#Tempo polinomiale|tempo polinomiale]].

==Approcci==

===Programmazione Logica Induttiva===
{{Vedi anche|Programmazione logica induttiva}}

La [[programmazione logica induttiva]] (anche ILP, dall'inglese ''inductive logic programming'') è un approccio all'apprendimento di regole che usa la [[Programmazione logica|programmazione logica]] come rappresentazione uniforme per gli esempi di input, per la conoscenza di base della macchina, e per le ipotesi. Data una codifica della (nota) conoscenza di base e un insieme di esempi rappresentati come fatti in una base di dati logica, un sistema ILP deriva un programma logico ipotetico da cui conseguono tutti gli esempi positivi, e nessuno di quelli negativi. La [[Programmazione induttiva|programmazione induttiva]] è un campo simile che considera ogni tipo di linguaggio di programmazione per rappresentare le ipotesi invece che soltanto la programmazione logica, come ad esempio [[Programmazione funzionale|programmi funzionali]].


== Approcci ==
=== Albero di decisione ===
=== Albero di decisione ===
{{vedi anche|Albero di decisione}}
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 da un insieme di regole if-else per migliorare la leggibilità umana.
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 da un insieme di regole if-else per migliorare la leggibilità umana.


===Regole di associazione===
=== Rete neurale artificiale ===
{{vedi anche|Regole di associazione}}

L'apprendimento automatico basato su [[Regole di associazione|regole di associazione]] è un metodo di apprendimento che identifica, apprende ed evolve delle "regole" con l'intento di immagazzinare, manipolare e applicare conoscenza. La caratteristica principale di questo tipo di apprendimento è l'identificazione ed utilizzo di un insieme di regole relazionali che rappresenta nel suo insieme la conoscenza catturata dal sistema. Ciò si pone in controtendenza con altri tipi di apprendimento automatico che normalmente identificano un singolo modello che può essere applicato universalmente ad ogni istanza per riuscire a fare su di essa una previsione<ref>{{cita pubblicazione |nome= George W.|cognome= Bassel| nome2= Enrico| cognome2= Blaab| nome3=Julietta| cognome3= Marquez | nome4= Michael J.| cognome4= Holdsworth | nome5= Jaume| cognome5= Bacardit|titolo=Functional Network Construction in Arabidopsis Using Rule-Based Machine Learning on Large-Scale Data Sets |rivista=The Plant Cell |editore= |città= |volume= 23|numero=9 |anno=2011 |mese=9 |pp=3101–3116 | issn=1532-298X| doi=10.1105/tpc.111.088153| id= |pmid=21896882 |url= http://www.plantcell.org/content/23/9/3101|lingua=inglese |accesso= |abstract= }}</ref>. Gli approggi dell'apprendimento basato su regole di associazione includono il [[Sistema immunitario artificiale|sistema immunitario artificiale]].

===Reti Neurali artificiali===
{{vedi anche|Rete neurale artificiale}}
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.
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.
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 ===
===Programmazione genetica===
{{vedi anche|Algoritmo genetico}}
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.
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.


===Reti Bayesiane===
=== Macchine a vettori di supporto ===
{{vedi anche|Reti Bayesiane}}

Il [[Reti Bayesiane|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à.

===Macchine a vettori di supporto===
{{vedi anche|Macchina a vettori di supporto}}
[[Macchine a vettori di supporto]] (''Support Vector Machine'', 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.
[[Macchine a vettori di supporto]] (''Support Vector Machine'', 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 ===
===Apprendimento approfondito===
{{vedi anche|Apprendimento approfondito}}
La discesa dei prezzi per l'hardware e lo sviluppo di [[Graphics Processing Unit|GPU]] per uso personale negli ultimi anni hanno contribuito allo sviluppo del concetto di [[Apprendimento approfondito|apprendimento approfondito]], che consiste nello sviluppare livelli nascosti multipli nelle reti neurali artificiali. Questo approccio tenta di modellizzare il modo in cui il cervello umano processa luce e suoni e li interpreta in vista e udito. Alcune delle applicazioni più affermate dell'apprendimento approfondito sono la [[Visione artificiale|visione artificiale]] e il [[Riconoscimento vocale|riconoscimento vocale]]<ref>Honglak Lee, Roger Grosse, Rajesh Ranganath, Andrew Y. Ng. "[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.149.802&rep=rep1&type=pdf Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations]" Proceedings of the 26th Annual International Conference on Machine Learning, 2009</ref>.

===Tecniche non supervisionate===

====Clustering====
{{vedi anche|Clustering}}

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.
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 ===
Il [[Reti Bayesiane|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 ==
== Esempi di applicazioni pratiche ==
=== Riconoscimento vocale del testo ===
Tutti i sistemi di riconoscimento vocale di maggior successo utilizzano metodi di apprendimento automatico. Ad esempio, il SPHINXsystem<ref>Automatic speech recognition: the development of the SPHINX system, Lee 1989</ref> 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 ===
Metodi di apprendimento automatico sono stati usati per addestrare i veicoli controllati da computer. Ad esempio, il sistema ALVINN<ref>D. Pomerleau. Alvinn: An autonomous land vehicle
in a neural network. In Advances in Neural Information
Processing Systems 1, 1989.</ref> ha usato le sue strategie per imparare a guidare senza assistenza a 70 miglia all'ora per 90 miglia su strade pubbliche, tra le altre auto. Con tecniche simili sono possibili applicazioni in molti problemi di controllo basato su sensori.

=== Classificazione di nuove strutture astronomiche ===
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<ref>Automated Star/Galaxy Classification for Digitized Poss-II, Weir, N., Fayyad, U. M., & Djorgovski, S, Astronomical Journal v.109, p.2401</ref>. 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 ===
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<ref>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</ref>, 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.


== Relazioni con altre discipline ==
* Intelligenza artificiale:
* Intelligenza artificiale:
:Rappresentazioni simboliche di apprendimento dei concetti.
:Rappresentazioni simboliche di apprendimento dei concetti.
Riga 92: Riga 162:
: Gli studi neurobiologici motivano modelli di reti neurali artificiali di apprendimento.
: Gli studi neurobiologici motivano modelli di reti neurali artificiali di apprendimento.


== Esempi di applicazioni pratiche ==
=== Riconoscimento vocale del testo ===
Tutti i sistemi di riconoscimento vocale di maggior successo utilizzano metodi di apprendimento automatico. Ad esempio, il SPHINXsystem<ref>Automatic speech recognition: the development of the SPHINX system, Lee 1989</ref> 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.


==Etica==
=== Guida automatica di veicoli ===
L'apprendimento automatico solleva un numero di problematiche etiche. I sistemi addestrati con insiemi di dati faziosi o pregiudizievoli possono esibire questi pregiudizi quando vengono interpellati: in questo modo possono essere digitalizzati pregiudizi culturali quali il razzismo istituzionale e il [[classismo]]<ref>{{Cita web|url=http://www.nickbostrom.com/ethics/artificial-intelligence.pdf|titolo=The Ethics of Artificial Intelligence|cognome=Bostrom|nome=Nick|data=2011|lingua= inglese|accesso=11 April 2016 }}</ref>. Di conseguenza la raccolta responsabile dei dati può diventare un aspetto critico dell'apprendimento automatico.
Metodi di apprendimento automatico sono stati usati per addestrare i veicoli controllati da computer. Ad esempio, il sistema ALVINN<ref>D. Pomerleau. Alvinn: An autonomous land vehicle
in a neural network. In Advances in Neural Information
Processing Systems 1, 1989.</ref> ha usato le sue strategie per imparare a guidare senza assistenza a 70 miglia all'ora per 90 miglia su strade pubbliche, tra le altre auto. Con tecniche simili sono possibili applicazioni in molti problemi di controllo basato su sensori.


In ragione dell'innata ambiguità dei linguaggi naturali, le macchine addestrate su corpi linguistici necessariamente apprenderanno questa ambiguità<ref>[https://freedom-to-tinker.com/2016/08/24/language-necessarily-contains-human-biases-and-so-will-machines-trained-on-language-corpora/]</ref>.
=== Classificazione di nuove strutture astronomiche ===
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<ref>Automated Star/Galaxy Classification for Digitized Poss-II, Weir, N., Fayyad, U. M., & Djorgovski, S, Astronomical Journal v.109, p.2401</ref>. Questo sistema è oggi utilizzato per classificare automaticamente tutti gli oggetti nel Sky Survey, che si compone di tre terabyte di dati immagine.


==Note==
=== Giocatore di backgammon di classe mondiale ===
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<ref>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</ref>, 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 ==
<references/>
<references/>


== Bibliografia ==
==Bibliografia==
* {{Bibliografia|Bishop, 2006| Bishop, Christopher M. (2006), Pattern Recognition and Machine Learning, Springer, ISBN 0-387-31073-8.}}
*{{Bibliografia|Kecman, 2001| Kecman, Vojislav (2001), Learning and Soft Computing: Support Vector Machines, Neural Networks and Fuzzy Logic Models, MIT Press, ISBN 978-0-262-52790-3}}
* Alpaydin, E. (2004), ''Introduction to Machine Learning'', the MIT Press.
* Alpaydin, E. (2004), ''Introduction to Machine Learning'', the MIT Press.
* Langley, P. (1996), ''Elements of Machine Learning'', Morgan Kaufmann.
* Langley, P. (1996), ''Elements of Machine Learning'', Morgan Kaufmann.
* Mitchell, T. (1997), ''Machine Learning'', McGraw Hill. ISBN 0-07-042807-7
* 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.
* Witten, I. & Frank, E. (2005), ''Data Mining: Practical Machine Learning Tools and Techniques'', Morgan Kaufmann.

{{controllo di autorità}}



== Voci correlate ==
== Voci correlate ==

Versione delle 13:04, 14 dic 2016

Rete neurale artificiale di tipo Feed-forward

L'apprendimento automatico (anche chiamato machine learning dall'inglese) è una branca dell'Intelligenza artificiale che "fornisce ai computer l'abilità di apprendere senza essere stati esplicitamente programmati"(Arthur Samuel, 1959).[1] L'apprendimento automatico è strettamente legato al riconoscimento di pattern e alla teoria computazionale dell'apprendimento[2] ed esplora lo studio e la costruzione di algoritmi che possano apprendere da un insieme di dati e fare delle predizioni su questi,[3] costruendo in modo induttivo un modello basato su dei campioni. L'apprendimento automatico viene impiegato in quei campi dell'informatica nei quali progettare e programmare algoritmi espliciti è impraticabile; tra le possibili applicazioni citiamo il filtraggio delle email per evitare spam, l'individuazione di intrusioni in una rete o di intrusi che cercano di violare dati,[4] il riconoscimento ottico dei caratteri[5], i motori di ricerca e la visione artificiale.

L'apprendimento automatico è strettamente collegato, e spesso si sovrappone con la statistica computazionale, che si occupa dell'elaborazione di predizioni tramite l'uso di computer. L'apprendimento automatico è anche fortemente legato all'ottimizzazione matematica, che fornisce metodi, teorie e domini di applicazione a questo campo. Per usi commerciali, l'apprendimento automatico è conosciuto come analisi predittiva.

Generalità

Tom M. Mitchell ha fornito la definizione più citata di apprendimento automatico nel suo libro "Machine Learning": "si dice che un programma apprende dall'esperienza E con riferimento a qualche classe di compiti e con performance P, se le sue performance nello svolgere il compito T, come misurato da P, migliora con l'esperienza E"[6] Questa definizione è rilevante poiché fornisce una definizione operativa dell'apprendimento automatico, invece che in termini cognitivi. Fornendo questa definizione, Mitchell di fatto segue la proposta che Alan Turing fece nel suo articolo "Computing Machinery and Intelligence", sostituendo la domanda "Le macchine possono pensare?" con la domanda "Le macchine possono fare quello che noi(in quanto entità pensanti) possiamo fare?"[7].

Tipi di problemi e compiti

I compiti dell'apprendimento automatico vengono tipicamente classificati in tre ampie categorie, a seconda della natura del "segnale" utilizzato per l'apprendimento o del "feedback" disponibile al sistema di apprendimento. Queste categorie, anche dette paradigmi sono:[8]

  • Apprendimento supervisionato: Al computer vengono forniti degli esempi nella forma di possibili input e i rispettivi output desiderati e l'obiettivo è quello di estrarre una regola generale che associ l'input all'output corretto.
  • Apprendimento non supervisionato: il computer ha lo scopo di trovare una struttura negli input forniti, senza che gli input vengano etichettati in alcun modo.
  • Apprendimento per rinforzo: Il computer interagisce con un ambiente dinamico nel quale cerca di raggiungere un obiettivo (per esempio guidare un veicolo), avendo un insegnante che gli dice solo se ha raggiunto l'obiettivo. Un altro esempio è quello di imparare a giocare un gioco giocando contro un avversario[9]

A metà strada tra l'apprendimento supervisionato e quello non supervisionato c'è l'apprendimento semi-supervisionato, nel quale l'insegnante fornisce un dataset incompleto per l'allenamento, cioè un insieme di dati per l'allenamento tra i quali ci sono dati senza il rispettivo output desiderato. La trasduzione è un caso speciale di questo principio, nel quale l'intero insieme delle istanze del problema è noto durante l'apprendimento, eccetto la parte degli output desiderati che è mancante.

Un'altra categorizzazione dei compiti dell'apprendimento automatico si rileva quando si considera l'output desiderato del sistema di apprendimento automatico:[10]

  • Nella classificazione, gli input sono divisi in due o più classi e il sistema di apprendimento deve produrre un modello che assegni gli input non ancora visti a una o più di queste. Questo viene affrontato solitamente in maniera supervisionata. Il filtraggio anti-spam è un esempio di classificazione, dove gli input sono le email e le classi sono "spam" e "non spam".
  • Nella regressione, che è anch'essa un problema supervisionato, l'output e il modello utilizzato sono continui. Un esempio di regressione è la determinazione della quantità di olio presente in un oleodotto, avendo le misurazioni dell'attenuazione dei raggi gamma che passano attraverso il condotto. Un altro esempio è la predizione del valore del tasso di cambio di una valuta nel futuro, dati i suoi valori in tempi recenti.[11]
  • Nel clustering un insieme di input viene diviso in gruppi. Diversamente da quanto accade per la classificazione, i gruppi non sono noti prima, rendendolo tipicamente un compito non supervisionato.

Data mining e apprendimento automatico

Lo stesso argomento in dettaglio: Data mining.

L'apprendimento automatico viene a volte unito al data mining,[12] che si focalizza maggiormente sull'analisi esplorativa dei dati ed utilizza principalmente il paradigma di apprendimento chiamato "apprendimento non supervisionato"[13]. Invece, l'apprendimento automatico può essere anche non supervisionato[14] . L'apprendimento automatico e il data mining infatti si sovrappongo in modo significativo, ma mentre l'apprendimento automatico si concentra sulla previsione basata su proprietà note apprese dai dati, il data mining si concentra sulla scoperta di proprietà prima sconosciute nei dati. Il data mining sfrutta i metodi dell'apprendimento automatico, ma con obiettivi differenti; d'altro canto, l'apprendimento automatico utilizza i metodi di data mining come metodi di apprendimento non supervisionato o come passi di preprocessing per aumentare l'accuratezza dell'apprendimento. Gran parte della confusione tra le due comunità di ricerca scaturisce dall'assunzione di base del loro operato: nell'apprendimento automatico, le prestazioni sono generalmente valutate in base all'abilità di riprodurre conoscenza già acquisita, mentre in data mining il compito chiave è la scoperta di conoscenza che prima non si aveva.

Ottimizzazione e apprendimento automatico

Lo stesso argomento in dettaglio: Ottimizzazione.

L'apprendimento automatico ha legami molto stretti con l'ottimizzazione: molti problemi di apprendimento sono formulati come la minimizzazione di una qualche funzione di costo su un insieme di esempi di apprendimento. La funzione di costo (o funzione di perdita) rappresenta la discrepanza tra le previsioni del modello che si sta addestrando e le istanze del problema reale. Le differenze tra i due campi (l'apprendimento automatico e l'ottimizzazione) sorge dall'obiettivo della generalizzazione: mentre gli algoritmi di ottimizzazione possono minimizzare la perdita su un insieme di apprendimento, l'apprendimento automatico si preoccupa di minimizzare la perdita su campioni mai visti dalla macchina[15].

Soft computing e apprendimento automatico

Lo stesso argomento in dettaglio: Soft computing.

La risoluzione automatica di problemi avviene, nel campo dell'informatica, in due modi differenti: tramite paradigmi di hard computing, o tramite paradigmi di soft computing. Per hard computing si intende la risoluzione di un problema tramite l'esecuzione di un algoritmo ben definito e decidibile. La maggior parte dei paradigmi di hard computing sono metodi ormai consolidati, ma presentano alcuni lati negativi: infatti richiedono sempre un modello analitico preciso e definibile, e spesso un alto tempo di computazione. Le tecniche di soft computing d'altro canto antepongono il guadagno nella comprensione del comportamento di un sistema a scapito della precisione, spesso non necessaria. I paradigmi di soft computing si basano su due principi [16]:

  • L'apprendimento a partire da dati sperimentali;
  • L'integrazione di conoscenza umana, strutturata e preesistente, all'interno di modelli matematici computabili.

L'apprendimento automatico si avvale delle tecniche di soft computing.

Statistica e apprendimento automatico

Lo stesso argomento in dettaglio: Statistica.

L'apprendimento automatico e la statistica sono discipline strettamente collegate. Secondo Michael I. Jordan, le idee dell'apprendimento automatico, dai principi metodologico agli strumenti teorici, sono stati sviluppati prima in statistica[17]. Jordan ha anche suggerito il termine Data science come nome con cui chiamare l'intero campo di studi[17].

Leo Breiman ha distinto due paradigmi statistici di modellazione: modello basato sui dati e modello basato sugli algoritmi[18], dove "modello basato sugli algoritmi" indica approssimativamente algoritmi di apprendimento automatico come la foresta casuale.

Alcuni statistici hanno adottato metodi provenienti dall'apprendimento automatico, il che ha portato alla creazione di una disciplina combinata chiamata "apprendimento statistico"[19].

Cenni storici

L'apprendimento automatico si sviluppa con lo studio dell'intelligenza artificiale, e vi è strettamente collegato: infatti già dai primi tentativi di definire l'intelligenza artificiale come disciplina accademica, alcuni ricercatori si erano mostrati interessati alla possibilità che le macchine imparassero dai dati. Questi ricercatori, in particolare Marvin Minsky, Arthur Samuel e Frank Rosenblatt, provarono ad avvicinarsi al problema sia attraverso vari metodi formali, sia con quelle che vengono definite reti neurali nei tardi anni '50. Le reti neurali erano allora costituite da singoli percettroni e da modelli matematici derivati dal modello lineare generalizzato della statistica, come ADALINE. Si provò a sfruttare anche ragionamenti probabilistici, in particolare nelle diagnosi mediche automatiche[20].

Sempre negli anni '50, Alan Turing propose l'idea di una macchina che apprende, ovvero in grado di imparare e dunque diventare intelligente. La proposta specifica di Turing anticipa gli algoritmi genetici[21].

Tuttavia già dalla metà degli anni '50 lo studio dell'intelligenza artificiale si stava concentrando su approcci logici di tipo knowledge-based, nota oggi sotto il nome di GOFAI, causando un distacco tra lo studio dell'IA e quello dell'apprendimento automatico. Sistemi di tipo probabilistico erano invasi di problemi sia teoretici sia pratici in termini di acquisizione e rappresentazione dei dati[22]. Negli anni Ottanta, i sistemi esperti dominavano il campo dell'IA, e i sistemi basati sulla statistica non venivano più studiati[23]. Lo studio dell'apprendimento simbolico e knowledge-based continuò nell'ambito dell'IA, portando a sviluppare la programmazione logica induttiva, ma ora la ricerca più prettamente statistica si svolgeva al di fuori del campo vero e proprio dell'intelligenza artificiale, nel riconoscimento di pattern e nell'information retrieval[20]. Un altro motivo per cui lo studio dell'apprendimento automatico fu abbandonato fu la pubblicazione del libro Perceptrons: an introduction to computational geometry di Marvin Minsky e Seymour Papert, che vi descrivevano alcune delle limitazioni dei percettroni e delle reti neurali. La ricerca sulle reti neurali subì un significativo rallentamento a causa dell'interpretazione del libro, che le descriveva come intrinsecamente limitate[24][25]. Anche la linea di ricerca sulle reti neurali continuò al di fuori del campo dell'IA, portata avanti da ricercatori provenienti da altre discipline quali Hopfield, Rumelhart e Hinton. Il loro successo principale fu a metà degli anni '80 con la riscoperta della backpropagation[20].

L'apprendimento automatico, sviluppatosi come campo di studi separato dall'IA classica, cominciò a rifiorire negli anni '90. Il suo obiettivo cambiò dall'ottenere l'intelligenza artificiale ad affrontare problemi risolvibili di natura pratica. Distolse inoltre la propria attenzione dagli approcci simbolici che aveva ereditato dall'IA, e si diresse verso metodi e modelli presi in prestito dalla statistica e dalla teoria della probabilità[23]. L'apprendimento automatico ha inoltre beneficiato dalla nascita di Internet, che ha reso l'informazione digitale più facilmente reperibile e distribuibile.

Teoria dell'apprendimento

L'obiettivo principe dell'apprendimento automatico è che una macchina sia in grado di generalizzare dalla propria esperienza [26], ossia che sia in grado di svolgere ragionamenti induttivi. In questo contesto, per generalizzazione si intende l'abilità di una macchina di portare a termine in maniera accurata esempi o compiti nuovi, che non ha mai affrontato, dopo aver fatto esperienza su un insieme di dati di apprendimento. Gli esempi di addestramento (in inglese chiamati training examples) si assume provengano da una qualche distribuzione di probabilità, generalmente sconosciuta e considerata rappresentativa dello spazio delle occorrenze del fenomeno da apprendere; la macchina ha il compito di costruire un modello probabilistico generale dello spazio delle occorrenze, in maniera tale da essere in grado di produrre previsioni sufficientemente accurate quando sottoposta a nuovi casi.

L'analisi computazionale degli algoritmi di apprendimento automatico e delle loro prestazioni è una branca dell'Informatica teorica chiamata teoria dell'apprendimento. Dato che gli esempi di addestramento sono insiemi finiti di dati e non c'è modo di sapere l'evoluzione futura di un modello, la teoria dell'apprendimento non offre alcuna garanzia sulle prestazioni degli algoritmi. D'altro canto, è piuttosto comune che tali prestazioni siano vincolate da limiti probabilistici. Il bias-variance tradeoff è uno dei modi di quantificare l'errore di generalizzazione.

Affinché la generalizzazione offra le migliori prestazioni possibili, la complessità dell'ipotesi induttiva deve essere pari alla complessità della funzione sottostante i dati. Se l'ipotesi è meno complessa della funzione, allora il modello manifesta underfitting. Quando la complessità del modello viene aumentata in risposta, allora l'errore di apprendimento diminuisce. Al contrario invece se l'ipotesi è troppo complessa, allora il modello manifesta overfitting e la generalizzazione sarà più scarsa[27].

Oltre ai limiti di prestazioni, i teorici dell'apprendimento studiano la complessità temporale e la fattibilità dell'apprendimento stesso. Una computazione è considerata fattibile se può essere svolta in tempo polinomiale.

Approcci

Programmazione Logica Induttiva

Lo stesso argomento in dettaglio: Programmazione logica induttiva.

La programmazione logica induttiva (anche ILP, dall'inglese inductive logic programming) è un approccio all'apprendimento di regole che usa la programmazione logica come rappresentazione uniforme per gli esempi di input, per la conoscenza di base della macchina, e per le ipotesi. Data una codifica della (nota) conoscenza di base e un insieme di esempi rappresentati come fatti in una base di dati logica, un sistema ILP deriva un programma logico ipotetico da cui conseguono tutti gli esempi positivi, e nessuno di quelli negativi. La programmazione induttiva è un campo simile che considera ogni tipo di linguaggio di programmazione per rappresentare le ipotesi invece che soltanto la programmazione logica, come ad esempio programmi funzionali.

Albero di decisione

Lo stesso argomento in dettaglio: Albero di decisione.

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 da un insieme di regole if-else per migliorare la leggibilità umana.

Regole di associazione

Lo stesso argomento in dettaglio: Regole di associazione.

L'apprendimento automatico basato su regole di associazione è un metodo di apprendimento che identifica, apprende ed evolve delle "regole" con l'intento di immagazzinare, manipolare e applicare conoscenza. La caratteristica principale di questo tipo di apprendimento è l'identificazione ed utilizzo di un insieme di regole relazionali che rappresenta nel suo insieme la conoscenza catturata dal sistema. Ciò si pone in controtendenza con altri tipi di apprendimento automatico che normalmente identificano un singolo modello che può essere applicato universalmente ad ogni istanza per riuscire a fare su di essa una previsione[28]. Gli approggi dell'apprendimento basato su regole di associazione includono il sistema immunitario artificiale.

Reti Neurali artificiali

Lo stesso argomento in dettaglio: Rete neurale artificiale.

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

Lo stesso argomento in dettaglio: Algoritmo genetico.

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.

Reti Bayesiane

Lo stesso argomento in dettaglio: Reti Bayesiane.

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à.

Macchine a vettori di supporto

Lo stesso argomento in dettaglio: Macchina a vettori di supporto.

Macchine a vettori di supporto (Support Vector Machine, 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.

Apprendimento approfondito

Lo stesso argomento in dettaglio: Apprendimento approfondito.

La discesa dei prezzi per l'hardware e lo sviluppo di GPU per uso personale negli ultimi anni hanno contribuito allo sviluppo del concetto di apprendimento approfondito, che consiste nello sviluppare livelli nascosti multipli nelle reti neurali artificiali. Questo approccio tenta di modellizzare il modo in cui il cervello umano processa luce e suoni e li interpreta in vista e udito. Alcune delle applicazioni più affermate dell'apprendimento approfondito sono la visione artificiale e il riconoscimento vocale[29].

Tecniche non supervisionate

Clustering

Lo stesso argomento in dettaglio: Clustering.

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.


Esempi di applicazioni pratiche

Riconoscimento vocale del testo

Tutti i sistemi di riconoscimento vocale di maggior successo utilizzano metodi di apprendimento automatico. Ad esempio, il SPHINXsystem[30] 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

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

Classificazione di nuove strutture astronomiche

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[32]. 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

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[33], 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.


Relazioni con altre discipline

  • 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.


Etica

L'apprendimento automatico solleva un numero di problematiche etiche. I sistemi addestrati con insiemi di dati faziosi o pregiudizievoli possono esibire questi pregiudizi quando vengono interpellati: in questo modo possono essere digitalizzati pregiudizi culturali quali il razzismo istituzionale e il classismo[34]. Di conseguenza la raccolta responsabile dei dati può diventare un aspetto critico dell'apprendimento automatico.

In ragione dell'innata ambiguità dei linguaggi naturali, le macchine addestrate su corpi linguistici necessariamente apprenderanno questa ambiguità[35].

Note

  1. ^ Phil Simon (March 18, 2013). Too Big to Ignore: The Business Case for Big Data. Wiley. p. 89. ISBN 978-1-118-63817-0.
  2. ^ http://www.britannica.com/EBchecked/topic/1116194/machine-learning
  3. ^ Ron Kohavi; Foster Provost (1998). "Glossary of terms". Machine Learning. 30: 271–27
  4. ^ TechCrunch.
  5. ^ Wernick, Yang, Brankov, Yourganov and Strother, Machine Learning in Medical Imaging, IEEE Signal Processing Magazine, vol. 27, no. 4, July 2010, pp. 25-38
  6. ^ Mitchell, T. (1997). Machine Learning. McGraw Hill. p. 2. ISBN 0-07-042807-7.
  7. ^ Harnad, Stevan (2008), "The Annotation Game: On Turing (1950) on Computing, Machinery, and Intelligence", in Epstein, Robert; Peters, Grace, The Turing Test Sourcebook: Philosophical and Methodological Issues in the Quest for the Thinking Computer, Kluwer
  8. ^ Russell, Stuart; Norvig, Peter (2003) [1995]. Artificial Intelligence: A Modern Approach (2nd ed.). Prentice Hall. ISBN 978-0137903955
  9. ^ Machine learning and pattern recognition "can be viewed as two facets of the same field."
  10. ^ Machine learning and pattern recognition "can be viewed as two facets of the same field."
  11. ^ Bishop, C. M. (2006), Machine Learning and Pattern Recognition, Clarendon Press, p.5-6
  12. ^ Mannila, Heikki (1996). Data mining: machine learning, statistics, and databases. Int'l Conf. Scientific and Statistical Database Management. IEEE Computer Society.
  13. ^ Friedman, Jerome H. (1998). "Data Mining and Statistics: What's the connection?". Computing Science and Statistics. 29 (1): 3–9.
  14. ^ http://www.darkreading.com/threat-intelligence/3-flavors-of-machine-learning--who-what-and-where/a/d-id/1324278
  15. ^ Improving First and Second-Order Methods by Modeling Uncertainty, in Optimization for Machine Learning, MIT Press, 2012.
  16. ^ Kecman, V (2001), Learning and Soft Computing, MIT Press, ISBN 978-0-262-52790-3
  17. ^ a b (EN) MI Jordan, statistics and machine learning, su reddit, 10 settembre 2014. URL consultato il 1º ottobre 2014.
  18. ^ (EN) L Breiman, Statistical Modeling: The Two Cultures, su projecteuclid, Cornell University Library. URL consultato l'8 August 2015.
  19. ^ (EN) Gareth James, Daniela Witten, Trevor Hastie e Robert Tibshirani, An Introduction to Statistical Learning, Springer, 2013, p. vii.
  20. ^ a b c Russell, Stuart; Norvig, Peter (2003) [1995]. Artificial Intelligence: A Modern Approach (2nd ed.). Prentice Hall. ISBN 978-0137903955
  21. ^ (EN) Alan Turing, COMPUTING MACHINERY AND INTELLIGENCE, in MIND, vol. 59, n. 236, ottobre 1950, pp. 433–460, DOI:10.1093/mind/LIX.236.433. URL consultato l'8 giugno 2016.
  22. ^ Russell, Stuart; Norvig, Peter (2003) [1995]. Artificial Intelligence: A Modern Approach (2nd ed.). Prentice Hall. ISBN 978-0137903955
  23. ^ a b (EN) Pat Langley, The changing science of machine learning, in Machine Learning, vol. 82, ottobre 2011, pp. 275–279, DOI:10.1007/s10994-011-5242-y.
  24. ^ (EN) Harvey Cohen, The Perceptron, su harveycohen.net. URL consultato il 5 giugno 2016.
  25. ^ (EN) Robert Colner, A brief history of machine learning, su slideshare.net. URL consultato il 5 giugno 2016.
  26. ^ Bishop, C. M. (2006), Pattern Recognition and Machine Learning, Springer, ISBN 0-387-31073-8
  27. ^ Ethem Alpaydin. "Introduction to Machine Learning" The MIT Press, 2010
  28. ^ (EN) George W. Bassel, Enrico Blaab, Julietta Marquez, Michael J. Holdsworth e Jaume Bacardit, Functional Network Construction in Arabidopsis Using Rule-Based Machine Learning on Large-Scale Data Sets, in The Plant Cell, vol. 23, n. 9, settembre 2011, pp. 3101–3116, DOI:10.1105/tpc.111.088153, ISSN 1532-298X (WC · ACNP), PMID 21896882.
  29. ^ Honglak Lee, Roger Grosse, Rajesh Ranganath, Andrew Y. Ng. "Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations" Proceedings of the 26th Annual International Conference on Machine Learning, 2009
  30. ^ Automatic speech recognition: the development of the SPHINX system, Lee 1989
  31. ^ D. Pomerleau. Alvinn: An autonomous land vehicle in a neural network. In Advances in Neural Information Processing Systems 1, 1989.
  32. ^ Automated Star/Galaxy Classification for Digitized Poss-II, Weir, N., Fayyad, U. M., & Djorgovski, S, Astronomical Journal v.109, p.2401
  33. ^ 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
  34. ^ (EN) Nick Bostrom, The Ethics of Artificial Intelligence (PDF), su nickbostrom.com, 2011. URL consultato l'11 April 2016.
  35. ^ [1]

Bibliografia

  • Template:Bibliografia
  • Template:Bibliografia
  • 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.
Controllo di autoritàThesaurus BNCF 58790 · LCCN (ENsh85079324 · GND (DE4193754-5 · J9U (ENHE987007541156405171 · NDL (ENJA001210569


Voci correlate

Altri progetti

Controllo di autoritàThesaurus BNCF 58790 · LCCN (ENsh85079324 · GND (DE4193754-5 · J9U (ENHE987007541156405171 · NDL (ENJA001210569