Capitolo 2 : Rete neurale (apprendimento automatico)
Una rete neurale, nota anche come rete neurale artificiale o rete neurale, e conosciuta con le sue abbreviazioni ANN o NN, è un modello utilizzato nell'apprendimento automatico. Questo modello si ispira alla forma e alla funzione delle reti neurali biologiche osservate nei cervelli animali.
I neuroni artificiali che compongono una rete neurale artificiale (ANN) sono unità o nodi collegati che sono modellati sui neuroni che si trovano nel cervello. I bordi che li collegano sono una rappresentazione delle sinapsi che si trovano nel cervello. Dopo aver ricevuto segnali da altri neuroni ad esso collegati, ogni neurone artificiale elabora tali segnali e poi li trasmette ad altri neuroni ad esso collegati. Il "segnale" è un numero reale e la funzione di attivazione è una funzione non lineare che opera sul totale degli input a ciascun neurone. Questa funzione è responsabile del calcolo dell'output di ciascun neurone. Durante il processo di apprendimento, viene utilizzato un peso per determinare la potenza del segnale su ciascun collegamento. Questo peso viene regolato e regolato secondo necessità.
In una situazione tipica, i neuroni sono raggruppati in strati. È possibile che vari livelli eseguano ciascuno una trasformazione univoca sui rispettivi input. È possibile che i segnali passino attraverso numerosi strati intermedi, noti anche come livelli nascosti, mentre si fanno strada dal primo strato, che è il livello di input, all'ultimo strato, che è il livello di output. Quando una rete include almeno due livelli nascosti, viene spesso definita rete neurale profonda per descrivere la rete.
Esistono diverse applicazioni per le reti neurali artificiali, tra cui la modellazione predittiva, il controllo adattivo e la risoluzione dei problemi nell'intelligenza artificiale. Ci sono anche molte altre applicazioni. Hanno la capacità di acquisire conoscenze attraverso l'esperienza e possono trarre inferenze da una raccolta di fatti che sembrano non essere correlati tra loro.
La maggior parte delle volte, le reti neurali vengono addestrate attraverso il processo di limitazione empirica del rischio. Questo approccio si basa sul concetto di ottimizzazione dei parametri della rete al fine di minimizzare la differenza, nota anche come rischio empirico, tra l'output previsto e i valori target effettivi in un particolare set di dati. La stima dei parametri della rete è spesso ottenuta utilizzando approcci basati su gradienti come la retropropagazione. Le reti neurali artificiali (ANN) apprendono dai dati di addestramento etichettati durante la fase di addestramento modificando iterativamente i parametri al fine di ridurre al minimo una funzione di perdita che è stata impostata. Utilizzando questa strategia, la rete è in grado di generalizzare a dati che non ha mai incontrato in precedenza.
Più di due secoli fa, i primi lavori in statistica hanno gettato le basi per le reti neurali profonde che vengono utilizzate oggi. Il tipo più semplice di rete neurale feedforward (FNN) è una rete lineare. Questo tipo di rete è costituito da un singolo strato di nodi di uscita che hanno funzioni di attivazione lineare. Gli ingressi vengono inviati direttamente alle uscite attraverso una serie di pesi. I calcoli vengono eseguiti in ogni nodo per determinare il totale dei prodotti dei pesi e degli input. Al fine di ridurre al minimo gli errori quadratici medi che si verificano tra questi output stimati e i valori obiettivo forniti, è stato creato un aggiustamento dei pesi. Sia il metodo dei minimi quadrati che la regressione lineare sono nomi che sono stati usati per riferirsi a questa tecnica per più di due secoli. Legendre (1805) e Gauss (1795) lo utilizzarono come metodo per determinare un adattamento lineare approssimativo decente a un insieme di punti al fine di fare previsioni riguardanti il movimento dei pianeti.
Il funzionamento dei computer digitali, come l'architettura di von Neumann, è stato tradizionalmente realizzato attraverso l'esecuzione di istruzioni esplicite, con l'accesso alla memoria da parte di un certo numero di processori discreti. Alcune reti neurali, d'altra parte, sono state inizialmente sviluppate come risultato di un tentativo di descrivere l'elaborazione delle informazioni che avviene nei sistemi biologici utilizzando il quadro del connessionismo. L'informatica connessionista, in contrasto con l'approccio di von Neumann, non divide la memoria e l'elaborazione in due categorie distinte.
Nel 1943, Warren McCulloch e Walter Pitts esaminarono la possibilità di ideare un modello computazionale per le reti neurali che non includesse l'apprendimento. La ricerca è stata in grado di essere suddivisa in due metodologie distinte come risultato di questo modello. Il primo metodo si è concentrato sui processi biologici, mentre il secondo metodo era incentrato sull'utilizzo delle reti neurali nel campo della scienza dell'intelligenza artificiale.
D. è nato alla fine degli anni '40. L'apprendimento hebbiano è un'ipotesi di apprendimento che è stata proposta da O. Hebb. Questa ipotesi è stata fondata sul meccanismo della plasticità cerebrale e si è sviluppata in una teoria. Numerose reti neurali antiche, come il percettrone di Rosenblatt e la rete di Hopfield, ne fecero uso nelle loro operazioni. Nel 1954, Farley e Clark effettuarono una simulazione di una rete hebbiana utilizzando dispositivi informatici. Rochester, Holland, Habit e Duda (1956) sono stati quelli che hanno inventato ulteriori macchine computazionali a rete neurale.
L'Ufficio per la ricerca navale degli Stati Uniti ha fornito finanziamenti per lo sviluppo del percettrone, che è stata una delle prime reti neurali artificiali ad essere sviluppata. Il percettrone è stato descritto dallo psicologo Frank Rosenblatt nell'anno 1958.
Un dispositivo simile al percettrone ancora più antico fu sviluppato da Farley e Clark, secondo R. D. Joseph (1960). Scrive che "Farley e Clark del MIT Lincoln Laboratory hanno effettivamente preceduto Rosenblatt nello sviluppo di un dispositivo simile al percettrone". Tuttavia, "hanno lasciato cadere l'argomento".
Come risultato del percettrone, l'interesse del pubblico per la ricerca relativa alle reti neurali artificiali è aumentato, il che ha portato a un aumento significativo dei finanziamenti da parte del governo degli Stati Uniti. "L'età d'oro dell'intelligenza artificiale" è stata alimentata dalle affermazioni ottimistiche degli informatici sulla capacità dei percettroni di replicare l'intelligenza umana. Questa circostanza ha contribuito allo sviluppo dell'intelligenza artificiale.
Non era possibile per i percettroni iniziali avere unità nascoste adattive. Tuttavia, Joseph (1960) ha anche affrontato i percettroni multistrato che includevano uno strato nascosto adattabile sulla loro struttura. Questi concetti sono stati citati e utilizzati da Rosenblatt (1962), che ha anche dato credito al lavoro svolto da H. Sia D. Block che da B. Il cavaliere, W. I primi sforzi che sono stati fatti, tuttavia, non hanno portato a un algoritmo di apprendimento in grado di funzionare per unità nascoste, noto anche come deep learning.
Negli anni '60 e '70 è stata condotta una ricerca fondamentale sulle reti neurali artificiali (ANN). La tecnica di gestione dei dati del Gruppo, sviluppata nel 1965 in Ucraina da Alexey Ivakhnenko e Lapa, è stato il primo algoritmo per l'apprendimento profondo che ha avuto lo scopo previsto. Era un modo per addestrare reti neurali che erano arbitrariamente profonde. Secondo la loro interpretazione, si trattava di un tipo di regressione polinomiale o di una generalizzazione dell'analisi del percettrone di Rosenblatt. Questo metodo, che si basa sull'addestramento strato per strato attraverso l'analisi di regressione, è stato riportato in uno studio pubblicato nel 1971. La rete profonda che è stata sviluppata utilizzando questo metodo comprendeva otto strati. Attraverso l'utilizzo di un set di convalida distinto, vengono eliminate le unità nascoste non necessarie. A causa del fatto che le funzioni di attivazione dei nodi sono calcolate utilizzando i polinomi di Kolmogorov-Gabor, queste sono state anche le prime reti profonde a contenere unità moltiplicative, a volte note come "porte".
Il primo percettrone multistrato di deep learning appreso utilizzando la discesa stocastica del gradiente è stato pubblicato da Shun'ichi Amari nell'anno 1967. Nel corso degli esperimenti al computer condotti da Saito, uno studente di Amari, un percettrone multistrato (MLP) con cinque strati e due strati che potevano essere modificati ha appreso rappresentazioni interne per identificare classi di pattern non linearmente separabili. Come risultato di ulteriori miglioramenti nell'hardware e nelle regolazioni degli iperparametri, la discesa stocastica del gradiente end-to-end è emersa come la tecnica di allenamento più popolare al momento.
Era il 1969 quando Kunihiko Fukushima presentò per la prima volta la funzione di attivazione ReLU, che sta per unità lineare rettificata. È già noto che il raddrizzatore è la funzione di attivazione più utilizzata per il deep learning.
Ciononostante, la ricerca si fermò negli Stati Uniti fino al lavoro di Minsky e Papert (1969), che notarono che i percettroni di base erano incapaci di elaborare il circuito esclusivo-o. Nel caso delle reti profonde proposte da Ivakhnenko (1965) e Amari (1967), questa comprensione era del tutto irrilevante.
Le architetture di deep learning per reti neurali convoluzionali (CNN) con strati convoluzionali e livelli di downsampling e replicazione del peso sono state sviluppate per la prima volta da Kunihiko Fukushima nel 1979 con il Neocognitron. Tuttavia, la retropropagazione non è stata utilizzata per addestrare il...