Rete neurale artificiale - Reti di Hopfield

La rete neurale di Hopfield è stata inventata dal Dr. John J. Hopfield nel 1982. È costituita da un singolo strato che contiene uno o più neuroni ricorrenti completamente connessi. La rete Hopfield viene comunemente utilizzata per attività di associazione automatica e ottimizzazione.

Rete Hopfield discreta

Una rete Hopfield che opera in modo a linee discrete o, in altre parole, si può dire che i modelli di input e output sono vettori discreti, che possono essere di natura binaria (0,1) o bipolare (+1, -1). La rete ha pesi simmetrici senza auto-connessioni, ovvero,wij = wji e wii = 0.

Architettura

Di seguito sono riportati alcuni punti importanti da tenere a mente sulla rete Hopfield discreta:

  • Questo modello è costituito da neuroni con un'uscita invertente e una non invertente.

  • L'output di ogni neurone dovrebbe essere l'input di altri neuroni ma non l'input del sé.

  • Il peso / forza della connessione è rappresentato da wij.

  • Le connessioni possono essere eccitatorie oltre che inibitorie. Sarebbe eccitatorio, se l'uscita del neurone fosse uguale all'input, altrimenti inibitorio.

  • I pesi dovrebbero essere simmetrici, cioè wij = wji

L'uscita da Y1 andando a Y2, Yi e Yn avere i pesi w12, w1i e w1nrispettivamente. Allo stesso modo, altri archi hanno i pesi su di essi.

Algoritmo di formazione

Durante l'allenamento della rete Hopfield discreta, i pesi verranno aggiornati. Come sappiamo, possiamo avere vettori di input binari e vettori di input bipolari. Quindi, in entrambi i casi, gli aggiornamenti del peso possono essere effettuati con la seguente relazione

Case 1 - Modelli di input binari

Per un insieme di modelli binari s(p), p = 1 to P

Qui, s(p) = s1(p), s2(p),..., si(p),..., sn(p)

La matrice del peso è data da

$$ w_ {ij} \: = \: \ sum_ {p = 1} ^ P [2s_ {i} (p) - \: 1] [2s_ {j} (p) - \: 1] \: \: \: \: \: per \: i \: \ neq \: j $$

Case 2 - Pattern di input bipolari

Per un insieme di modelli binari s(p), p = 1 to P

Qui, s(p) = s1(p), s2(p),..., si(p),..., sn(p)

La matrice del peso è data da

$$ w_ {ij} \: = \: \ sum_ {p = 1} ^ P [s_ {i} (p)] [s_ {j} (p)] \: \: \: \: \: for \ : i \: \ neq \: j $$

Algoritmo di test

Step 1 - Inizializza i pesi, che si ottengono dall'algoritmo di addestramento utilizzando il principio di Hebbian.

Step 2 - Eseguire i passaggi 3-9, se le attivazioni della rete non sono consolidate.

Step 3 - Per ogni vettore di input X, eseguire i passaggi 4-8.

Step 4 - Rendere l'attivazione iniziale della rete uguale al vettore di input esterno X come segue -

$$ y_ {i} \: = \: x_ {i} \: \: \: per \: i \: = \: 1 \: a \: n $$

Step 5 - Per ogni unità Yi, eseguire i passaggi 6-9.

Step 6 - Calcola l'ingresso netto della rete come segue -

$$ y_ {ini} \: = \: x_ {i} \: + \: \ displaystyle \ sum \ limits_ {j} y_ {j} w_ {ji} $$

Step 7 - Applicare l'attivazione come segue sull'input netto per calcolare l'output -

$$ y_ {i} \: = \ begin {cases} 1 & if \: y_ {ini} \:> \: \ theta_ {i} \\ y_ {i} & if \: y_ {ini} \: = \: \ theta_ {i} \\ 0 & if \: y_ {ini} \: <\: \ theta_ {i} \ end {cases} $$

Qui $ \ theta_ {i} $ è la soglia.

Step 8 - Trasmetti questo output yi a tutte le altre unità.

Step 9 - Testare la rete per la congiunzione.

Valutazione della funzione energetica

Una funzione energetica è definita come una funzione che è funzione legata e non crescente dello stato del sistema.

Funzione energetica Ef⁡, ⁡ chiamato anche Lyapunov function determina la stabilità della rete Hopfield discreta ed è caratterizzato come segue:

$$ E_ {f} \: = \: - \ frac {1} {2} \ displaystyle \ sum \ limits_ {i = 1} ^ n \ displaystyle \ sum \ limits_ {j = 1} ^ n y_ {i} y_ {j} w_ {ij} \: - \: \ displaystyle \ sum \ limits_ {i = 1} ^ n x_ {i} y_ {i} \: + \: \ displaystyle \ sum \ limits_ {i = 1} ^ n \ theta_ {i} y_ {i} $$

Condition - In una rete stabile, ogni volta che lo stato del nodo cambia, la funzione energetica di cui sopra diminuirà.

Supponiamo che quando node i ha cambiato stato da $ y_i ^ {(k)} $ a $ y_i ^ {(k \: + \: 1)} $ ⁡quindi la variazione di energia $ \ Delta E_ {f} $ è data dalla seguente relazione

$$ \ Delta E_ {f} \: = \: E_ {f} (y_i ^ {(k + 1)}) \: - \: E_ {f} (y_i ^ {(k)}) $$

$$ = \: - \ left (\ begin {array} {c} \ displaystyle \ sum \ limits_ {j = 1} ^ n w_ {ij} y_i ^ {(k)} \: + \: x_ {i} \: - \: \ theta_ {i} \ end {array} \ right) (y_i ^ {(k + 1)} \: - \: y_i ^ {(k)}) $$

$$ = \: - \ :( net_ {i}) \ Delta y_ {i} $$

Qui $ \ Delta y_ {i} \: = \: y_i ^ {(k \: + \: 1)} \: - \: y_i ^ {(k)} $

La variazione di energia dipende dal fatto che solo un'unità alla volta può aggiornare la sua attivazione.

Rete continua di Hopfield

In confronto alla rete discreta di Hopfield, la rete continua ha il tempo come variabile continua. Viene anche utilizzato nell'associazione automobilistica e nei problemi di ottimizzazione come il problema del venditore in viaggio.

Model - Il modello o l'architettura possono essere costruiti aggiungendo componenti elettrici come amplificatori che possono mappare la tensione di ingresso alla tensione di uscita su una funzione di attivazione del sigmoide.

Valutazione della funzione energetica

$$ E_f = \ frac {1} {2} \ displaystyle \ sum \ limits_ {i = 1} ^ n \ sum _ {\ substack {j = 1 \\ j \ ne i}} ^ n y_i y_j w_ {ij} - \ displaystyle \ sum \ limits_ {i = 1} ^ n x_i y_i + \ frac {1} {\ lambda} \ displaystyle \ sum \ limits_ {i = 1} ^ n \ sum _ {\ substack {j = 1 \\ j \ ne i}} ^ n w_ {ij} g_ {ri} \ int_ {0} ^ {y_i} a ^ {- 1} (y) dy $$

Qui λ è il parametro di guadagno e gri conduttanza di ingresso.