Rete neurale artificiale - Concetti di base
Le reti neurali sono dispositivi di calcolo parallelo, che è fondamentalmente un tentativo di creare un modello computerizzato del cervello. L'obiettivo principale è sviluppare un sistema per eseguire vari compiti computazionali più velocemente dei sistemi tradizionali. Queste attività includono il riconoscimento e la classificazione di modelli, l'approssimazione, l'ottimizzazione e il raggruppamento dei dati.
Cos'è la rete neurale artificiale?
Artificial Neural Network (ANN) è un efficiente sistema di calcolo il cui tema centrale è preso in prestito dall'analogia delle reti neurali biologiche. Le ANN sono anche denominate "sistemi neurali artificiali" o "sistemi di elaborazione distribuita parallela" o "sistemi connessionisti". ANN acquisisce una vasta collezione di unità che sono interconnesse in un modello per consentire la comunicazione tra le unità. Queste unità, chiamate anche nodi o neuroni, sono semplici processori che operano in parallelo.
Ogni neurone è connesso con un altro neurone tramite un collegamento di connessione. Ogni collegamento di connessione è associato a un peso che contiene informazioni sul segnale di ingresso. Questa è l'informazione più utile per i neuroni per risolvere un particolare problema perché il peso di solito eccita o inibisce il segnale che viene comunicato. Ogni neurone ha uno stato interno, chiamato segnale di attivazione. I segnali di uscita, che vengono prodotti dopo aver combinato i segnali di ingresso e la regola di attivazione, possono essere inviati ad altre unità.
Una breve storia di ANN
La storia di ANN può essere suddivisa nelle seguenti tre epoche:
ANN durante gli anni Quaranta e Sessanta
Alcuni sviluppi chiave di questa era sono i seguenti:
1943 - Si è ipotizzato che il concetto di rete neurale sia iniziato con il lavoro del fisiologo Warren McCulloch e del matematico Walter Pitts, quando nel 1943 modellarono una semplice rete neurale usando circuiti elettrici per descrivere come potrebbero funzionare i neuroni nel cervello .
1949- Il libro di Donald Hebb, The Organization of Behaviour , sottolinea il fatto che l'attivazione ripetuta di un neurone da parte di un altro ne aumenta la forza ogni volta che vengono utilizzati.
1956 - Una rete di memoria associativa è stata introdotta da Taylor.
1958 - Un metodo di apprendimento per il modello neuronale di McCulloch e Pitts denominato Perceptron è stato inventato da Rosenblatt.
1960 - Bernard Widrow e Marcian Hoff hanno sviluppato modelli chiamati "ADALINE" e "MADALINE".
ANN durante gli anni '60 e '80
Alcuni sviluppi chiave di questa era sono i seguenti:
1961 - Rosenblatt ha tentato senza successo, ma ha proposto lo schema di "backpropagation" per reti multistrato.
1964 - Taylor ha costruito un circuito vincente prendi tutto con inibizioni tra le unità di output.
1969 - Multilayer perceptron (MLP) è stato inventato da Minsky e Papert.
1971 - Kohonen ha sviluppato memorie associative.
1976 - Stephen Grossberg e Gail Carpenter hanno sviluppato la teoria della risonanza adattiva.
ANN dagli anni '80 ad oggi
Alcuni sviluppi chiave di questa era sono i seguenti:
1982 - Lo sviluppo principale è stato l'approccio energetico di Hopfield.
1985 - La macchina Boltzmann è stata sviluppata da Ackley, Hinton e Sejnowski.
1986 - Rumelhart, Hinton e Williams hanno introdotto la regola delta generalizzata.
1988 - Kosko ha sviluppato Binary Associative Memory (BAM) e ha anche fornito il concetto di Fuzzy Logic in ANN.
La rassegna storica mostra che sono stati compiuti progressi significativi in questo campo. Stanno emergendo chip basati su reti neurali e si stanno sviluppando applicazioni per problemi complessi. Sicuramente, oggi è un periodo di transizione per la tecnologia delle reti neurali.
Neurone biologico
Una cellula nervosa (neurone) è una cellula biologica speciale che elabora le informazioni. Secondo una stima, il numero di neuroni è enorme, circa 10 11 con numerose interconnessioni, circa 10 15 .
Diagramma schematico
Lavoro di un neurone biologico
Come mostrato nel diagramma sopra, un tipico neurone è costituito dalle seguenti quattro parti con l'aiuto delle quali possiamo spiegarne il funzionamento:
Dendrites- Sono rami simili ad alberi, responsabili della ricezione delle informazioni da altri neuroni a cui è collegato. In un altro senso, possiamo dire che sono come le orecchie del neurone.
Soma - È il corpo cellulare del neurone ed è responsabile dell'elaborazione delle informazioni ricevute dai dendriti.
Axon - È proprio come un cavo attraverso il quale i neuroni inviano le informazioni.
Synapses - È la connessione tra l'assone e altri dendriti neuronali.
ANN rispetto a BNN
Prima di dare un'occhiata alle differenze tra Rete neurale artificiale (ANN) e Rete neurale biologica (BNN), diamo uno sguardo alle somiglianze basate sulla terminologia tra queste due.
Rete neurale biologica (BNN) | Rete neurale artificiale (ANN) |
---|---|
Soma | Nodo |
Dendriti | Ingresso |
Sinapsi | Pesi o interconnessioni |
Axon | Produzione |
La tabella seguente mostra il confronto tra ANN e BNN sulla base di alcuni criteri citati.
Criteri | BNN | ANN |
---|---|---|
Processing | Massicciamente parallela, lenta ma superiore a ANN | Massicciamente parallelo, veloce ma inferiore a BNN |
Size | 10 11 neuroni e 10 15 interconnessioni | 10 da 2 a 10 4 nodi (dipende principalmente dal tipo di applicazione e dal progettista di rete) |
Learning | Possono tollerare l'ambiguità | Sono necessari dati molto precisi, strutturati e formattati per tollerare l'ambiguità |
Fault tolerance | Le prestazioni peggiorano con danni anche parziali | È in grado di offrire prestazioni robuste, quindi ha il potenziale per essere tollerante ai guasti |
Storage capacity | Memorizza le informazioni nella sinapsi | Memorizza le informazioni in posizioni di memoria continue |
Modello di rete neurale artificiale
Il diagramma seguente rappresenta il modello generale di ANN seguito dalla sua elaborazione.
Per il modello generale di rete neurale artificiale di cui sopra, l'input netto può essere calcolato come segue:
$$ y_ {in} \: = \: x_ {1} .w_ {1} \: + \: x_ {2} .w_ {2} \: + \: x_ {3} .w_ {3} \: \ dotso \: x_ {m} .w_ {m} $$
cioè, input netto $ y_ {in} \: = \: \ sum_i ^ m \: x_ {i} .w_ {i} $
L'uscita può essere calcolata applicando la funzione di attivazione sull'ingresso netto.
$$ Y \: = \: F (y_ {in}) $$
Output = funzione (input netto calcolato)