Qual è la differenza tra machine learning, deep learning e reti neurali?
Risposta di Tommaso Tosi , Saggista in Robotica, IA e Neuroscienze Computazionali, su quora.it
Il deep learning è un caso particolare di machine learning, e le reti neurali sono i sistemi di calcolo sui quali essi sono implementati ed operano algoritmicamente. Ma quali sono le caratteristiche sostanziali che le differenziano?
La differenza tra machine learning, deep learning e reti neurali
Machine learning
Il machine learning (apprendimento automatico) è quella branca dell’intelligenza artificiale che riguarda lo studio, la costruzione e l’implementazione di algoritmi. Questi permettono ai sistemi di calcolo sui quali sono implementati di imparare e fare previsioni in modo automatico a partire da un insieme di dati in ingresso, costruendo modelli previsionali e riducendo il peso degli errori in conclusione di ogni processo d’apprendimento.
Deep learning
Il deep learning (apprendimento profondo, talvolta tradotto con apprendimento approfondito), è quel caso particolare di feature learning, a sua volta branca del machine learning, che caratterizza i processi di reti neurali artificiali dotate di due o più strati (spesso chiamate multilayed o a hidden layers) capaci di processare informazioni in modo non-lineare, in relazione alla particolare funzione di attivazione scelta.
Si può ritrovare una spiegazione approfondita di cos’è e di come funziona il deep learning in questo link e, poiché deep learning è logicamente anche machine learning, la spiegazione mostra come funziona anche il secondo.
Rete neurale
Una rete neurale, invece, essendo essenzialmente un processore distribuito basato sul modello del sistema nervoso centrale umano, è generalmente composta da unità computazionali elementari dette neuroni, concepibili come nodi di una rete con determinate capacità di elaborazione e tra loro interconnessi (o connessi a cascata).
I neuroni formali sono in grado di ricevere in input una combinazione di segnali dall’esterno o provenienti da altri neuroni, e quindi trasformarli tramite una particolare funzione chiamata funzione di attivazione, immagazzinando così i dati nei parametri della rete e in special modo nei pesi associati ad ogni connessione.
Si ha poi la restituzione di un output: un risultato generalmente dipendente dalla finalità per la quale la rete neurale è stata costruita (classificazione, riconoscimento, approssimazione, ecc.).
Leggi anche Google AutoDraw: da scarabocchio a icona è un attimo grazie al machine learning
Il rapporto tra i dati in ingresso e quelli in uscita è generalmente determinato:
- dalla tipologia delle unità elementari utilizzate: complessità della struttura interna, classe della funzione di attivazione usata;
- dalla struttura formale della rete: numero, orientamento e direzione dei nodi, rappresentabili secondo gli strumenti della teoria dei grafi;
- dai valori dei parametri interni associati ai neuroni e alle relative interconnessioni: da determinare mediante opportuni algoritmi di apprendimento.
Ora, i neuroni sono tipicamente disposti lungo delle linee orizzontali dette strati, comunicano con i neuroni degli strati inferiori e superiori trasformando non-linearmente i segnali da strato a strato. I loro pesi sono iterativamente “aggiustati” grazie a determinati algoritmi di apprendimento automatico – uno dei più noti ed utili è quello della discesa stocastica del gradiente (stochastic gradient descent).
L’intelligenza artificiale è l’ambito di origine
L’intelligenza artificiale, come branca dell’informatica (in quanto scienza della calcolabilita o della computazione) è l’ambito naturale in cui storicamente sono nate le reti neurali e le branche del machine learning e del deep learning, nonché il campo entro al quale risulta sensato parlarne.
Così si può dire che il deep learning, a partire dagli anni 2000, è il terzo tentativo storico di emulare il calcolo distribuito e la capacità di astrazione e di rappresentazione gerarchica del cervello umano, dopo la nascita della cibernetica negli anni ‘40, ’50 e ’60 e dell’avvento del connessionismo negli anni ’80 e 90′ con la prima costruzione di reti neurali.
Meglio Intelligenza artificiale o reti neurali? Cosa è preferibile?
Le reti neurali sono preferibili al cosiddetto approccio knowledge-based dell’intelligenza artificiale (basato su architetture von Neumann e sul modello teorico della macchina di Turing universale) quando si tratta di identificare, riconoscere ed isolare caratteristiche precise in fenomeni fisicamente determinabili (immagini, suoni, insiemi di dati).
Essenzialmente frammenta e riaggrega i dai in input nei pattern, poi ignora i pattern irrilevanti all’individuazione del fenomeno richiesto, e successivamente integra i pattern rilevanti così da presentare in output la miglior descrizione possibile (in relazione alla programmazione della rete e al fine richiesto) della caratteristica voluta in partenza.
Riguardo alla preferibilità di machine learning e deep learning, che si implementano su reti neurali, la questione essenziale è ancora più semplice: per garantire una rappresentazione significativa occorre che le caratteristiche desiderate siano isolate e riorganizzate in vari livelli gerarchici di estrazione; quindi occorrono reti profonde o multilayed, che grazie ai molti strati ed alla correzione sistematica dei pesi neurali permettono di raggiungere classificazioni e riconoscimenti sufficientemente precisi.
Così per compiti finalizzati al raggiungimento di obiettivi molto specifici e rigorosi vanno necessariamente utilizzate tecniche di deep learning, mentre per compiti sufficientemente elementari gestibili da reti neurali ad un solo strato nascosto può bastare anche il solo machine learning.
Risposta originariamente apparsa su Quora: Qual è la differenza tra machine learning, deep learning e reti neurali? Dove è preferibile uno rispetto agli altri?
Qual è la differenza tra machine learning, deep learning e reti neurali?