Visto che il percettrone aveva degli evidenti limiti e la sua
monodirezionalità non corrisponde ad una struttura normale biologica, Hopfield
riprese come esempio il cervello in quanto sistema associativo, in cui cioè
tutti i neuroni sono in comunicazione fra loro, quindi ognuno può comunicare
con tutti o almeno con una grande maggioranza e non solo con uno strato successivo.
Questo avviene anche in caso di specializzazione dei tessuti celebrali: in ogni
strato i neuroni comunicano anche fra loro.

Le reti di Hopfield sono probabilmente la classe meglio compresa di reti ricorrenti. Esse usano connessioni bidirezionali con pesi simmetrici. Tutte le unità sono sia di ingresso che di uscita (non c’è un input particolare, ma l’input e l’output sono dati dallo stato globale dei neuroni della rete), la funzione di attivazione è la funzione segno e i livelli di attivazione possono essere solo ±1. Una rete di Hopfield funziona come una memoria associativa; ovvero, dopo l'addestramento su un insieme di esempi, un nuovo stimolo porterà la rete a stabilizzarsi su una configurazione di attivazioni corrispondente all'esempio nell'insieme di addestramento che assomiglia di più al nuovo stimolo. Per esempio se l'insieme di addestramento consiste in un insieme di fotografie e il nuovo stimolo è un pezzetto di una delle fotografie allora i livelli di attivazione della rete riprodurranno la fotografia da cui il pezzetto e stato preso (è importante osservare che le fotografie originarie non sono immagazzinate separatamente nella rete: ciascun peso è una codifica parziale di tutte le fotografie). Uno dei risultati teorici più interessanti e che una rete di Hopfield può immagazzinare in modo affidabile fino a 0.138 * N esempi di training, dove N e il numero di unità della rete.
Anche le macchine di Boltzmann usano pesi simmetrici, ma comprendono unità che non sono né di ingresso né di uscita. Esse usano anche una funzione di attivazione stocastica, tale che la probabilità che l'output sia 1 è una qualche funzione dell'ingresso pesato complessivo. Le macchine di Boltzmann sono soggette quindi a transizioni di stato che assomigliano a una ricerca della configurazione che approssima meglio l'insieme di addestramento.
Una macchina di Boltzmann può quindi essere vista come una memoria autoassociativa: si fissano dall'esterno i valori delle attivazioni di alcune unità, e si lascia che la rete completi il pattern di attivazioni in base ai pesi tra le unità. In una rete basata sulle macchine di Boltzmann non esiste quindi una distinzione tra unità di input ed output : ogni unità può essere di input o output se la sua attivazione è' fissata dall'esterno o deve essere individuata dalla rete. Nelle macchine di Boltzmann esistono quindi le unità visibili (visible) e le unità nascoste (hidden). Le unità visibili forniscono una interfaccia tra le rete ed il mondo esterno mentre le unità nascoste sono utilizzate dalla rete per creare una rappresentazione interna del mondo esterno.