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)