Regole di Apprendimento delle Reti Neurali – Apprendimento Perceptron & Hebbian

Questo Tutorial approfondito sulle Regole di Apprendimento delle Reti Neurali spiega l’apprendimento Hebbian e l’algoritmo di apprendimento Perceptron con esempi:

Nel nostro precedente tutorial abbiamo parlato della Rete Neurale Artificiale che è un’architettura di un gran numero di elementi interconnessi chiamati neuroni.

Questi neuroni elaborano l’input ricevuto per dare l’output desiderato. I nodi o neuroni sono collegati da ingressi, pesi di connessione e funzioni di attivazione.

La caratteristica principale di una rete neurale è la sua capacità di imparare. Le reti neurali si allenano con esempi noti. Una volta che la rete viene addestrata, può essere usata per risolvere i valori sconosciuti del problema.

=> Leggi la serie completa sull’apprendimento automatico

La rete neurale impara attraverso vari schemi di apprendimento che sono categorizzati come apprendimento supervisionato o non supervisionato.

Negli algoritmi di apprendimento supervisionato, i valori target sono noti alla rete. Essa cerca di ridurre l’errore tra l’output desiderato (target) e l’output effettivo per una performance ottimale. Negli algoritmi di apprendimento non supervisionato, i valori target sono sconosciuti e la rete impara da sola identificando i modelli nascosti nell’input formando cluster, ecc.

Una RNA consiste di 3 parti, cioè input, strato nascosto e strato di output. C’è un singolo strato di input e uno strato di output mentre non ci può essere alcuno strato nascosto o 1 o più strati nascosti che possono essere presenti nella rete. Sulla base di questa struttura la RNA è classificata in reti a singolo strato, multistrato, feed-forward o ricorrenti.

Terminologia importante delle RNA

Prima di classificare le varie regole di apprendimento in RNA, cerchiamo di capire alcune importanti terminologie relative alle RNA.

#1) Pesi: In una ANN, ogni neurone è collegato agli altri neuroni attraverso collegamenti di connessione. Questi collegamenti portano un peso. Il peso ha informazioni sul segnale di ingresso al neurone. I pesi e il segnale di input sono usati per ottenere un output. I pesi possono essere indicati in una forma di matrice che è anche chiamata matrice di connessione.

Ogni neurone è collegato ad ogni altro neurone dello strato successivo attraverso pesi di connessione. Quindi, se ci sono “n” nodi e ogni nodo ha “m” pesi, allora la matrice dei pesi sarà:

W1 rappresenta il vettore di peso a partire dal nodo 1. W11 rappresenta il vettore di peso dal 1° nodo dello strato precedente al 1° nodo dello strato successivo. Allo stesso modo, wij rappresenta il vettore di peso dall'”iesimo” elemento di elaborazione (neurone) al “jesimo” elemento di elaborazione dello strato successivo.

#2) Bias: Il bias viene aggiunto alla rete aggiungendo un elemento di ingresso x (b) = 1 nel vettore di ingresso. Il bias porta anche un peso denotato da w (b).

Il bias gioca un ruolo importante nel calcolo dell’uscita del neurone. Il bias può essere positivo o negativo. Un bias positivo aumenta il peso netto in ingresso, mentre il bias negativo riduce l’ingresso netto.

#3) Soglia: Un valore di soglia è usato nella funzione di attivazione. L’input netto viene confrontato con la soglia per ottenere l’output. In NN, la funzione di attivazione è definita in base al valore di soglia e l’output è calcolato.

Il valore di soglia è:

#4) Tasso di apprendimento: È indicato con alfa ?. Il tasso di apprendimento varia da 0 a 1. È usato per la regolazione del peso durante il processo di apprendimento di NN.

#5) Fattore di momento: Viene aggiunto per una convergenza più veloce dei risultati. Il fattore di slancio viene aggiunto al peso ed è generalmente utilizzato nelle reti di backpropagation.

Confronto delle regole di apprendimento delle reti neurali

Metodi di apprendimento -> Discesa radiale Hebbiano Competitivo Stocastico
Tipo di architettura
||
Single Layer Feedforward ADALINE
Hopfield
Perceptron
Associativo
Memoria
Hopfield
Lineare Vettoriale
Quantizzazione
Multilayer Feed Forward Cascata
Correlazione
Multilayer Feed
Forward
Radial Bias
Function
Neocognitron
Recorrente Rete neurale ricorrente Bidirezionale Auto
Associativa
Memoria
Brain- State- In-a- Box
Hopfield
Adaptive
Teoria della risonanza
Boltzmann
Macchina
Cauchy
Macchina

La classificazione dei vari tipi di apprendimento di ANN è mostrata qui sotto.

Classificazione degli algoritmi di apprendimento supervisionato

  1. Gradient Descent
  2. Stocastico

#1) Gradient Descent Learning

In questo tipo di apprendimento, la riduzione degli errori avviene con l’aiuto dei pesi e della funzione di attivazione della rete. La funzione di attivazione dovrebbe essere differenziabile.

L’aggiustamento dei pesi dipende dal gradiente di errore E in questo apprendimento. La regola di backpropagation è un esempio di questo tipo di apprendimento. Così la regolazione dei pesi è definita come

#2) Apprendimento stocastico

In questo apprendimento, i pesi sono regolati in modo probabilistico.

Classificazione degli algoritmi di apprendimento non supervisionato

  1. Hebbiano
  2. Competitivo

#1) Apprendimento Hebbiano

Questo apprendimento fu proposto da Hebb nel 1949. Si basa sulla regolazione correlativa dei pesi. Le coppie di modelli di input e output sono associate a una matrice di peso, W.

La trasposizione dell’output è presa per l’aggiustamento dei pesi.

#2) Apprendimento competitivo

È una strategia “winner takes all”. In questo tipo di apprendimento, quando un modello di input viene inviato alla rete, tutti i neuroni nello strato competono e solo i neuroni vincenti hanno aggiustamenti di peso.

Mc Culloch-Pitts Neuron

Anche conosciuto come M-P Neuron, questa è la prima rete neurale che fu scoperta nel 1943. In questo modello, i neuroni sono collegati da pesi di connessione, e la funzione di attivazione è usata in modo binario. La soglia è usata per determinare se il neurone si attiva o no.

La funzione del neurone M-P è:

Algoritmo di apprendimento hebbiano

La rete di Hebb fu dichiarata da Donald Hebb nel 1949. Secondo la regola di Hebb, i pesi aumentano proporzionalmente al prodotto di input e output. Ciò significa che in una rete di Hebb, se due neuroni sono interconnessi, allora i pesi associati a questi neuroni possono essere aumentati dai cambiamenti del gap sinaptico.

Questa rete è adatta ai dati bipolari. La regola di apprendimento Hebbian è generalmente applicata alle porte logiche.

I pesi sono aggiornati come:

W (nuovo) = w (vecchio) + x*y

Algoritmo di formazione per la regola di apprendimento Hebbian

Le fasi di formazione dell’algoritmo sono le seguenti:

  • Inizialmente, i pesi sono impostati a zero, cioè.cioè w =0 per tutti gli ingressi i =1 a n e n è il numero totale di neuroni di ingresso.
  • Lasciamo che s sia l’uscita. La funzione di attivazione per gli ingressi è generalmente impostata come una funzione di identità.
  • La funzione di attivazione per l’uscita è anche impostata su y= t.
  • Le regolazioni di peso e il bias sono regolati a:
  • I passi da 2 a 4 sono ripetuti per ogni vettore di ingresso e uscita.

Esempio della regola di apprendimento Hebbian

Impieghiamo la funzione logica AND con ingressi bipolari usando l’apprendimento Hebbian

X1 e X2 sono ingressi, b è il bias preso come 1, il valore target è l’uscita dell’operazione logica AND sugli ingressi.

Input Input Bias Target
X1 X2 b y
1 1 1 1
1 -1 1 -1
-1 1 1 -1
-1 -1 1 -1

#1) Inizialmente, i pesi sono impostati a zero e anche il bias è impostato a zero.

W1=w2=b=0

#2) Il primo vettore di input è preso come = e il valore target è 1.

I nuovi pesi saranno:

#3) I pesi sopra sono i nuovi pesi finali. Quando viene passato il secondo input, questi diventano i pesi iniziali.

#4) Prendi il secondo input = . Il target è -1.

#5) Allo stesso modo, gli altri input e i pesi sono calcolati.

La tabella sottostante mostra tutti gli input:

Hebb Net per la funzione AND

Algoritmo di apprendimento Perceptron

Le reti Perceptron sono reti feed-forward a singolo strato. Sono anche chiamate reti a singolo perceptron. Il Perceptron consiste in uno strato di input, uno strato nascosto e uno strato di output.

Lo strato di input è collegato allo strato nascosto attraverso pesi che possono essere inibitori o eccitatori o zero (-1, +1 o 0). La funzione di attivazione usata è una funzione binaria a gradini per lo strato di ingresso e lo strato nascosto.

L’uscita è

Y= f (y)

La funzione di attivazione è:

L’aggiornamento dei pesi avviene tra lo strato nascosto e lo strato di uscita per corrispondere all’uscita target. L’errore è calcolato sulla base dell’uscita effettiva e dell’uscita desiderata.

Se l’uscita corrisponde all’obiettivo, allora non ha luogo alcun aggiornamento dei pesi. I pesi sono inizialmente impostati su 0 o 1 e regolati successivamente fino a trovare una soluzione ottimale.

I pesi nella rete possono essere impostati inizialmente su qualsiasi valore. L’apprendimento di Perceptron convergerà al vettore dei pesi che dà un output corretto per tutti i modelli di formazione degli input e questo apprendimento avviene in un numero finito di passi.

La regola di Perceptron può essere usata sia per input binari che bipolari.

Regola di apprendimento per Perceptron a uscita singola

#1) Lasciate che ci siano “n” vettori di input di allenamento e che x (n) e t (n) siano associati ai valori target.

#2) Inizializzate i pesi e il bias. Impostateli a zero per facilitare il calcolo.

#3) Lasciate che il tasso di apprendimento sia 1.

#4) Lo strato di input ha una funzione di attivazione identica quindi x (i)= s ( i).

#5) Per calcolare l’output della rete:

#6) La funzione di attivazione viene applicata sull’input della rete per ottenere un output.

#7) Ora in base all’uscita, si confronta il valore target desiderato (t) e l’uscita attuale.

#8) Continuare l’iterazione fino a quando non c’è nessun cambiamento di peso. Fermarsi una volta che questa condizione è raggiunta.

Regola di apprendimento per Perceptron a uscita multipla

#1) Lasciate che ci siano “n” vettori di input di allenamento e che x (n) e t (n) siano associati ai valori target.

#2) Inizializzare i pesi e il bias. Impostateli a zero per facilitare il calcolo.

#3) Lasciate che il tasso di apprendimento sia 1.

#4) Lo strato di input ha una funzione di attivazione identica quindi x (i)= s ( i).

#5) Per calcolare l’output di ogni vettore di output da j= 1 a m, l’input della rete è:

#6) La funzione di attivazione viene applicata sull’input della rete per ottenere un output.

#7) Ora in base all’uscita, si confronta il valore target desiderato (t) e l’uscita effettiva e si effettuano le regolazioni dei pesi.

w è il vettore dei pesi dei collegamenti di connessione tra l’iesimo ingresso e il jesimo neurone di uscita e t è l’uscita target per l’unità di uscita j.

#8) Continuare l’iterazione finché non c’è cambiamento di peso. Fermarsi una volta raggiunta questa condizione.

Esempio della regola di apprendimento di Perceptron

Implementazione della funzione AND usando una rete Perceptron per ingressi e uscite bipolari.

Il modello di ingresso sarà x1, x2 e bias b. Sia i pesi iniziali 0 e il bias 0. La soglia è impostata a zero e il tasso di apprendimento è 1.

AND Gate

X1 X2 Target
1 1 1
1 -1 -1
-1 1 -1
-1 -1 -1

#1) X1=1 , X2= 1 e target output = 1
W1=w2=wb=0 e x1=x2=b=1, t=1
Net input= y =b + x1*w1+x2*w2 = 0+1*0 +1*0 =0

Come soglia è zero quindi:

Da qui otteniamo, uscita = 0. Ora controlliamo se l’output (y) = target (t).

y = 0 ma t= 1 che significa che questi non sono uguali, quindi l’aggiornamento dei pesi ha luogo.

I nuovi pesi sono 1, 1, e 1 dopo che il primo vettore di input è presentato.

#2) X1= 1 X2= -1 , b= 1 e target = -1, W1=1 ,W2=2, Wb=1
Input netto= y =b + x1*w1+x2*w2 = 1+1*1 + (-1)*1 =1
L’output netto per input= 1 sarà 1 da:

Quindi di nuovo, target = -1 non corrisponde all’output reale =1. Gli aggiornamenti dei pesi hanno luogo.

Ora i nuovi pesi sono w1 = 0 w2 =2 e wb =0

Similmente, continuando con il prossimo set di input, otteniamo la seguente tabella:

Gli EPOCHS sono il ciclo di modelli di input alimentati al sistema finché non c’è nessun cambiamento di peso richiesto e l’iterazione si ferma.

Algoritmo di apprendimento di Widrow Hoff

Conosciuto anche come Delta Rule, segue la regola della discesa del gradiente per la regressione lineare.

Aggiorna i pesi di connessione con la differenza tra il valore target e quello di uscita. È l’algoritmo di apprendimento del minimo quadrato che rientra nella categoria dell’algoritmo di apprendimento supervisionato.

Questa regola è seguita da ADALINE (Adaptive Linear Neural Networks) e MADALINE. A differenza di Perceptron, le iterazioni delle reti Adaline non si fermano, ma convergono riducendo l’errore quadratico medio minimo. MADALINE è una rete di più di una ADALINE.

Il motivo della regola di apprendimento delta è di minimizzare l’errore tra l’uscita e il vettore obiettivo.

I pesi nelle reti ADALINE sono aggiornati da:

Il minimo errore quadratico medio = (t- yin)2, ADALINE converge quando viene raggiunto il minimo errore quadratico medio.

Conclusione

In questo tutorial, abbiamo discusso i due algoritmi cioè la regola di apprendimento Hebbian e la regola di apprendimento Perceptron. La regola di Hebbian si basa sulla regola che il vettore dei pesi aumenta proporzionalmente all’input e al segnale di apprendimento, cioè l’output. I pesi sono incrementati aggiungendo il prodotto dell’input e dell’output al vecchio peso.

W (nuovo) = w (vecchio) +x*y

L’applicazione delle regole di Hebb si trova nell’associazione di modelli, nella classificazione e nei problemi di categorizzazione.

La regola di apprendimento Perceptron può essere applicata sia alla rete a uscita singola che a quella a classi multiple. L’obiettivo della rete Perceptron è di classificare il modello di input in una particolare classe di membri. I neuroni di ingresso e il neurone di uscita sono collegati attraverso collegamenti con pesi.

I pesi sono regolati per far corrispondere l’uscita effettiva con il valore target. Il tasso di apprendimento è impostato da 0 a 1 e determina la scalabilità dei pesi.

I pesi sono aggiornati secondo:

Oltre a queste regole di apprendimento, gli algoritmi di apprendimento automatico imparano attraverso molti altri metodi, cioè supervisionato, non supervisionato, rinforzo. Alcuni degli altri comuni algoritmi di ML sono Back Propagation, ART, Kohonen Self Organizing Maps, ecc.

Speriamo che ti siano piaciuti tutti i tutorial di questa serie di Machine Learning!

=> Visita qui per l’esclusiva serie Machine Learning

.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.