Next: L'universalità dei neuroni di Up: Introduzione alle reti neurali Previous: Introduzione alle reti neurali

Modelli di neurone

Per realizzare un modello di neurone bisogna necessariamente trascurare alcuni aspetti del suo funzionamento microscopico, altrimenti rischieremmo di trovarci con un numero troppo elevato di equazioni ed incognite. Esistono svariati modelli che si differiscono per gli aspetti trascurati, ne elencheremo qualcuno e ci soffermeremo sul più semplice, quello di McCulloch-Pitts. Dal punto di vista matematico un neurone può essere visto come una struttura caratterizzata da un'output, in insieme di pesi, ed un insieme di inputs. L'output in generale può essere rappresentato con \( \mathbf{S} \) \( \in \) \( \left[
0,1\right] \):
$\mathbf{S}(t)=1$: il neurone al momento t è eccitato, quindi produce un output; $\mathbf{S}(t)=0$: il neurone al momento t non è eccitato, quindi non produce alcun output;
S dipende dal potenziale interno V(t) del neurone da una funzione \( \Theta (V) \)di attivazione che solitamente viene scelta tra funzioni di tipo lineare, a gradini, o sigmoidee. Il potenziale interno dipende dagli inputs ricevuti dal neurone attraverso le sinapsi che lo collegano con i dendriti di altri neuroni; ogni sinapsi è caratterizzata da un peso che regola la portata del messaggio che passa da un neurone all'altro, se il peso è 0 allora è come se i due neuroni non fossero collegati. Indichiamo con J\( _{ik} \) \( \in
\left[ -\infty ,\infty \right] \)la sinapsi tra il neurone k, di output S\( _{k} \), ed il neurone i:
J\( _{ik} \)> 0: la sinapsi che connette i due neuroni è eccitativa, ovvero favorisce il passaggio di informazioni; J\( _{ik} \)< 0: la sinapsi è inibitoria.
Il ``messaggio'' passato da k ad i lo esprimiamo con J\( _{ik} \)S\( _{k} \), ovvero l'output di k moltiplicato per il peso della sinapsi tra i due neuroni. Per cui, se un neurone di neurone di output S\( _{i} \) riceve inputs dai neuroni \( \left\{ S_{1},...,S_{k}\right\} \)possiamo esprimere il potenziale V\( _{i} \), quindi S\( _{i} \)come funzioni di tali inputs:
V\( _{i} \) = \( f \) \( \left( t,J_{i1}S_{1}\left( t\right) ,...,J_{ik}S_{k}\left( t\right) \right) \); S\( _{i} \) = \( \Theta (V_{i}) \) = \( \Theta \left( f\left( t,J_{i1}S_{1}\left( t\right) ,...,J_{ik}S_{k}\left( t\right) \right) \right) \);
Generalmente la funzione f si assume essere una sommatoria, per cui le due equazioni diventano del tipo:
\begin{displaymath}
V_{i}=\sum _{j}J_{ij}S_{j}
\end{displaymath} (1)


\begin{displaymath}
S_{i}=\theta \left[ \sum _{j}J_{ij}S_{j}\right]
\end{displaymath} (2)

In questa prima descrizione abbiamo già trascurato alcune elementi, come ad esempio abbiamo assunto che tra due neuroni vi sia solo un contatto sinaptico. A questo punto la natura del modello può variare molto a seconda dei fattori che si decide di trascurare o meno nel modo in cui il potenziale V di un neurone dipende, tramite la funzione f, dagli inputs ricevuti da altri neuroni; ad esempio potremmo tenere conto del ritardo di trasmissione lungo un assone, oppure potremmo aggiungere un fattore casuale che regoli la possibilità o meno che la trasmissione abbia successo. In questa sede non andiamo ad analizzare i modelli più complicati, ci limitiamo a scrivere un paio di esempi di equazioni che si possono ottenere, osservando che sembra che generalmente la funzione f viene presa come sommatoria degli inputs, a meno di prodotti per eventuali altri fattori. Partiamo scrivendo le equazioni più generali dalle quali ricavare poi i modelli.
Dove: \( J_{ik}\in \left\langle -\infty ,\infty \right\rangle \): sinapsi che connette k\( \rightarrow \)i \( \tau _{ik}\in \left[ 0,\infty \right\rangle \): tempo impiegato dal segnale nel tratto k\( \rightarrow \)i \( p_{ik}(t)\in \left\{ 0,1\right\} \): successo o fallimento della trasmissione del messaggio k\( \rightarrow \)i \( S_{k}(t)=\Theta \left[ U_{k}(t)-U_{k}^{*}(t)\right] =\Theta \left[ V_{k}(t)-V^{*}_{k}(t)\right] \): output del neurone (firing state) \( V(t)=V_{reset}+U(t) \): potenziale del neurone \( V^{*}(t)=V_{reset}+U^{*}(t) \): soglia di ``fuoco'' del potenziale del neurone, oltre la quale il messaggio viene trasmesso \( \left\{ \tau ,\rho ,V_{reset}\right\} \): costanti dovute alle proprietà elettriche del neurone, che assumiamo uguali per tutti i neuroni. \( \Delta \ll \frac{\tau }{\rho } \)
Tramite appositi conti e considerazioni di tipo probabilistico sulle variabili casuali \( p_{ij}(t) \)e \( U^{*}_{i}(t) \)possiamo giungere alla seguente equazione:
dove: \( g\left[ x\right] =\int ^{*}_{-\infty }P(u)du \) \( Prob\left[ U_{i}(t)-U^{*}_{i}\in \left[ u,u+du\right] \right] =P(u)du \) con \( 0<du\ll 1 \)
A partire da qui è possibile ricavare la maggior parte dei modelli di neuroni, ne elenchiamo qualcuno:
\( \tau \frac{d}{dt}U_{i}(t)=\sum ^{N}_{k=1}J_{ij}g\left[ U_{k}(t)-U^{*}_{k}\right] -\rho U_{i}(t) \) \( g\left[ U-U^{*}\right] =\int ^{U-U^{*}}_{-\infty }P(u)du \)

\begin{displaymath}
U_{i}(t)=\sum ^{N}_{k=1}J_{ik}S_{k}(t)\end{displaymath}

Poichè in questo modo abbiamo perso tutte le variabili legate al tempo, è necessario recuperare in qualche modo la dinamicità del modello descrivendo lo stato \( S \) del neurone in funzione del valore precedente del potenziale post-sinaptico \( U \):

\begin{displaymath}
S_{i}(t+\Delta )=\theta \left[ U_{i}(t)-U^{*}_{i}\right] \end{displaymath}

Il tempo ora è discretizzato in unità di periodo \( \Delta \) ed otteniamo il modello di McCulloch-Pitts:

\begin{displaymath}
S_{i}(t+\Delta )=\theta \left[ \sum ^{N}_{k=1}J_{ik}S_{k}(t)-U_{i}^{*}\right] \end{displaymath}

Nonostante la sua semplicità questo tipo di modello è universale, nel senso che, costruendone apposite reti, permette di emulare le operazioni di una qualsiasi macchina di Turing finita, nel prossimo paragrafo ci occuperemo proprio di questo. Osserviamo inoltre che si può ottenere questo modello anche senza partire dalle equazioni sopra costruite, ma semplicemente scegliendo di modellizzare un neurone come:
un struttura caratterizzata da un output, un insieme di pesi, ed un insieme di inputs. L'output del neurone i lo indichiamo con \( S_{i} \); gli inputs sono dati dal prodotti degli outputs di altri neuroni e dei pesi \(
J_{ij} \) che determinano la portata del collegamento dal neurone j verso il neurone i. Il potenziale del neurone viene preso come la sommatoria degli inputs ricevuti più una costante \( U^{*}_{i} \). A questo punto, poichè assumiamo che un neurone si ecciti e quindi trasmetta un messaggio quando il suo potenziale supera una certa soglia, possiamo ottenere il modello sopra descritto scegliendo un'apposita \( \theta \). Nel caso, ad esempio, che \( \theta \) sia una funzione a gradini (es \( \theta (x)=0 \) per \( x<0 \), \( \theta (x)=1 \)per \(
x>0 \)), abbiamo che l'output del neurone sarà diverso da zero solo se la somma degli inputs è sufficientemente alta, e la costante \( U^{*}_{i} \)stabilisce quanto alta questa somma debba essere, insomma stabilisce la ``soglia di fuoco'' del neurone.

\begin{displaymath}
U_{i}(t)=f\left[ \phi _{i}(t)\right] \qquad \qquad f\left[ \phi
+2\pi \right] =f\left[ \phi \right]
\end{displaymath} (3)

L'idea è che se le fasi \( \phi _{i}(t) \) dei neuroni sono identiche (\( mod \) \( 2\pi \)), i potenziali dei neuroni oscillano in maniera coordinata, per cui il potenziale del neurone subisce l'influenza degli inputs ricevuti da altri neuroni, altrimenti oscilla con una propria frequenza \( \omega
_{i} \). Le sinapsi eccitatorie devono indurre maggiore coerenza tra due neuroni, mentre quelle inibitorie devono tendere a scordinare i due neuroni. Il più semplice modello gode di tali proprietà è il seguente:

\begin{displaymath}
\frac{d}{dt}\phi_{i}(t)=\omega_{i}+\sum^{N}_{k=1}J_{ik}\sin\left[\phi_{k}(t)-\phi_{i}(t)\right]
\end{displaymath} (4)


next up previous
Next: L'universalità dei neuroni di Up: Introduzione alle reti neurali Previous: Introduzione alle reti neurali
Michele Cerulli 2000-10-29
Google