Visualizzazione post con etichetta MCCN. Mostra tutti i post
Visualizzazione post con etichetta MCCN. Mostra tutti i post

martedì, febbraio 17, 2009

MCCN XIII

Nell'ultima settimana ci siamo occupati ancora una volta di processi puntuali. È stata molto simile alla precedente, solo un po' più didattica, dato che è stata durante la lezione e non durante l'esercitazione

Si trova qua.

mercoledì, febbraio 04, 2009

MCCN XII

Giovedì scorso ci siamo occupati di effetti transienti in processi puntuali. È un argomento è un po' tecnico: proverò a riassumerlo senza troppe formule. Se un processo puntuale non è di Poisson, allora la probabilità che ad un certo punto venga generato un evento dipende dalla distanza nel tempo dell'ultimo evento: questa distanza la chiamo, per ovvi motivi, età del processo. Questa proprietà, in effetti, caratterizza un processo di Poisson.

Quando cominciamo ad osservare il processo, esso avrà un'età ben definita, specificata da noi. Ad ogni tempo successivo, però, l'età sarà essa stessa una variabile casuale. Pare allora ragionevole considerare che anche l'età iniziale sia una variabile casuale.

Supponiamo adesso di conoscere la distribuzione iniziale della variabile casuale in questione: il nostro obiettivo è quello di scrivere un'equazione alle derivate parziali (non stocastica) che spiega come si evolve la distribuzione iniziale delle età. Come si può vedere negli appunti, l'equazione è di prim'ordine, e non di secondo, a differenza delle equazioni di Fokker-Planck (e equazioni simili), che pure tendono a obiettivi simili.

PS: l'articolo su Wiki è ancora un abbozzo. Prometto di metterci mano al più presto...

domenica, gennaio 25, 2009

MCCN XI

L'ultima volta abbiamo trattato di nuovo grafi. In particolare ci siamo occupati del Laplaciano di un grafo non diretto. Supponiamo di avere un grafo con n vertici: il Laplaciano di un grafo è allora la matrice \inline \Delta=(d_{ij}), di dimensione n x n, costruita come segue:

d_{ii} è il grado del nodo i,

d_{ij}=-1 se i e j sono connessi,

d_{ij}=0 se i e j non sono connessi.

La cosa interessante è che il Laplaciano di un grafo ha alcune proprietà in comune col Laplaciano su un aperto di \inline \mathbb R^d. Ad esempio, le soluzioni dell'equazione

\Delta v=0

sono tutte e solo le funzioni v che sono costanti sulle componenti connesse del grafo. Una direzione è facile da capire: se v è costante (diciamo di valore 1) su una componente connessa degl grafo, e 0 altrimenti, allora \inline \Delta v ha per ogni componente un contributo positivo pari al grado del nodo corrispondente e un contributo negativo per ogni nodo con cui è collegata: quindi tutto si semplifica dando 0. Divertente, no?

Un altro bel teorema per il Laplaciano di un grafo è il Teorema di Kirchhoff sul numero degli spanning trees. Mi chiedo se anche questo abbia un corrispettivo per il Laplaciano di un aperto.

mercoledì, gennaio 21, 2009

MCCN X

Giovedì scorso ho spiegato qualcosa sui grafi casuali. Questi sono variabili aleatorie con valori in insiemi di grafi; di solito vengono realizzati utilizzando un qualche tipo di algoritmo casuale.

Faccio un esempio: disegnate N nodi su un foglio e scegliete un valore p fra 0 e 1, che rappresenta la connettività attesa del grafo.

Per ogni lato possibile (sono 0.5N(N+1), quindi prendetevi un po' di tempo) estraete un numero casuale uniformente distribuito tra 0 e 1. Se non avete un generatore di numeri casuali a portata di mano (basta Excel) scegliete un numero fra 1 e 6 al posto di p, e tirate un dado. Se questo numero è minore di p, disegnate il lato che state esaminando. Altimenti no. Il disegno che ottenete dopo aver tirato per tutti i possibili lati è un grafo casuale alla Erdös-Renyi.

La cosa interessante: c'è gente che afferma che le connessioni cerebrali sono, più o meno, un grafo casuale di questo tipo.

lunedì, gennaio 12, 2009

MCCN IX

Giovedì ci siamo occupati di equazioni differenziali ritardate. Quest'ultime sono equazioni della forma

\dot{u}{(t)}=u(t-1)

Il loro carattere distintivo è che la derivata ad un certo tempo dipende dallo stato ad un tempo passato. Questo è importante in alcune questioni di modellazione; nelle neuroscienze, ad esempio, può servire includere in un modello i ritardi nella trasmissione dell'attività dovuti al tragitto che i potenziali d'azione devono percorrere lungo l'assone, o dovuti all'integrazione sinaptica.

Le equazioni con ritardo sono uno degli esemplici più classici di equazioni che possono essere risolte con l'aiuto di spazi di dimensione infinita. Questo lo si può vedere scrivendo l'equazione di cui sopra in forma infinitesimale

u(t+n \epsilon) = u(t) +\epsilon(u(t+(n-1)\epsilon-1))

Se n è un numero finito, allora t+(n-1)e-1 è minore di t, e dato che questo vale per ogni n finito, allora se ne deduce (overspill!) che è necessario conoscere i valori assunti dalla funzione in tutto un intervallo (t-1,t) che precede t, per poterne costruire i valori nell'intervallo (t,t+1).

Questo vuol dire che è necessario specificare una intera funzione come valore iniziale, e quindi lo spazio degli stati è uno spazio di funzioni!

domenica, dicembre 14, 2008

MCCN VIII

Giovedì abbiamo trattato il problema delle correlazioni fra variabili casuali - come al solito, la dispensa è qui.

Una famiglia di variabili casuali è detta indipendente se la distribuzione di probabilità si lascia fattorizzare nel prodotto delle probabilità marginali. Evidentemente, se X eY sono indipendenti, allora EXY=EXEY. In questo caso, si dice che X e Y non sono correlate.

Un errore che avviene molto spesso è quello di confondere correlazione e causalità. Cioè, dall'osservazione di una correlazione non nulla fra due variabili si deduce che una relazione causale fra le due variabili è presente. In realtà, ci sono vari effetti che possono indurre correlazioni.

1) Causalità diretta: ovviamente se X è la causa di Y, allora X e Y saranno correlate. In termini matematici: se Y=f(X), allora le due variabili non sono indipendenti; in genere, dunque, la covarianza delle due variabili, che è una possibile misura della loro correlazione, sarà non nulla.

2) Causalità comune: se X e Y sono due effetti della stessa causa, allora X e Y saranno correlate, in genere. Cioè, se Z è una variabile casuale, e f e g sono due funzioni non invertibili tali che X=f(Z) e Y=g(Z), allora, in generale, X e Y saranno correlate.

3) Dinamiche di reti: supponiamo adesso che X e Y siano immerse in una rete di interazioni. Allora, anche se X e Y non sono causalmente collegate, ne' hanno un input comune, di solito saranno correlate.

Qui trovate un breve script in python che mostra come 1) e 2) sono due effetti di dimensioni comparabili. Vengono create tre reti neurali elementari con delle dinamiche neuronali molto semplici. Ogni neurone può essere attivo o meno; se è attivo, ha una certa probabilità di emettere un potenziale d'azione che può cambiare il livello di attività degli altri neuroni.

La prima rete neurale è formata da un neurone di input e uno di output. Viene misurata il coefficiente di correlazione fra l'input e l'output.
La seconda rete (di controllo) è formata da due copie di reti I/O. Viene misurata il coefficiente di correlazione fra i due output.
La terza rete è formata da un input collegato a due diversi neuroni di output. Viene misurata il coefficiente di correlazione fra i due output.

Si può osservare che nel secondo caso il coefficiente di correlazione è 0 come atteso. Nel primo caso è tipicamente di un ordine di grandezza superiore al terzo caso; dato che però, a seconda dei parametri, le grandezza in gioco variano di più di un ordine di grandezza, non è possibile distinguere 1) da 3) a priori.

PS: ovviamente consiglio di installare python. Se l'avete fatto, per far funzionare lo script copiate il file in una cartella, entrate nella cartella e digitate in una console

'run mininetwork.py'

Dopo qualche secondo appariranno i risultati della simulazione. Se dovesse impiegare troppo tempo, aprite il file dello script e diminuite il numero degli steps della simulazione, si spiega da solo come farlo.

martedì, dicembre 09, 2008

MCCN VII

Giovedì scorso abbiamo incominciato ad occuparci di reti. La prima cosa che abbiamo discusso è il principio di autoconsistenza.

Il principio di autoconsistenza per reti è in qualche maniera simile al principio di autoconsistenza di Novikov per la risoluzione del viaggio nel tempo. Lì si richiede che l'effetto di un'azione sia consistente con la sua causa, in quello per reti si richiede che l'output di un'unità sia consistente col suo input.

Il p.d.a. si può formulare nella maniera seguente. Per prima cosa ci serve il concetto di rete computazionale. Questo è un oggetto costruito nella seguente maniera. I nodi sono delle funzioni che trasformano una variabile di stato (che consideriamo essere nello stesso spazio per tutti i nodi) in un output, eventualmente in maniera probabilistica. L'output è sempre nello stesso spazio per tutti i nodi.

I lati e i loro pesi sono specificati da una certa matrice di connessione. Ogni nodo possiede anche una funzione di input che trasforma gli output di altre unità in una variazione della propria variabile di stato.

Poniamo le variabili di stato in uno stato iniziale. Procediamo quindi per tempi discreti. Al tempo 1 questo viene trasformato in un output, che diventa un input per le altre unità. Questo input viene utilizzato per aggiornare le variabili di stato. A questo punto siamo pronti per il tempo 2 e così via iterando.

Esistono stati stazionari di una rete computazionale? Come si trovano?

Si noti che l'output al tempo n+1 è una funzione dell'input al tempo n, che a sua volta una funzione dell'output al tempo n. In formule

O[n+1]=F(I[n])=G(O[n])

Se input e output sono stazionari otteniamo il sistema

O=F(I), I=G(0)

Questa è la prima equazione di autoconsistenza, dove I e O sono vettori. Si noti che abbiamo soppresso (barando) la dipendenza dalla variabile di stato, e quindi l'equazione non aiuta molto, di solito. Supponiamo adesso che la rete sia omogenea, cioè che le funzioni di input e output e le connessioni siano tutte uguali fra loro, o, alternativamente, scelte in maniera indipendente dalla stessa distribuzione. Allora l'equazione vettoriale precedente si riduce ad una equazione scalare, eventualmente per i valori attesi nel caso probabilistico. Inoltre si ha che l'input è identico all'output e quindi si ottiene la seconda equazione di autoconsistenza

O=F(X,O)

dove abbiamo ripristinato la dipendenza dalla variabile di stato.

martedì, dicembre 02, 2008

MCCN VI

L'ultima volta ci siamo occupati di derivare l'equazione di Fokker-Planck.

Più che spiegare la derivazione, che, come al solito, si trova qua, e forse più interessare spiegare cosa descrive.

Il punto di partenza è una particella singola che si muova sotto l'azione di un'equazione differenziale


\dot{u}(t)= F(t,u(t)) + s(t)


Ovviamente, supponiamo che lo stato iniziale u(0) sia noto. Nell'equazione, s(t) è un segnale casuale che "disturba" il movimento della particella. Supponiamo adesso di avere un insieme di particelle identiche, tutte sottoposte alla stessa dinamica, e che NON interagiscono.

Chiamiando p(t,x) la distribuzione degli stati di queste particelle, possiamo supporre che p(t,x) sarà sottoposta ad una equazione dinamica che sia in qualche maniera derivabile dall'espressione di F e dalle statistiche di s.

Non è sembre possibile farlo, ma in alcuni casi si. Per esempio se s(t) è un rumore bianco e F=0, allora otteniamo un moto browniano, e la corrispondente equazione di Fokker-Planck è l'equazione di diffusione.

Se invece s(t) è un rumore bianco e F(u)=-Cu è una funzione lineare, allora otteniamo un processo di Ornstein–Uhlenbeck. L'equazione di Fokker-Planck è un'equazione di diffusione con un termine di primo grado.

Le cose diventano più complicate se s(t) non è un rumore bianco. Ma questi argomenti sono ben al di la di quanto possiamo trattare su un blog.

martedì, novembre 25, 2008

MCCN V

Sono un po' in ritardo con gli aggiornamenti dalla lezione. La settimana scorsa abbiamo spiegato due cose fondamentali: il teorema del limite centrale e il processo di Wiener. Parliamo un po' del primo.

Il teorema del limite centrale è quella legge che afferma che la somma di variabili casuali i.i.d. converge ad una distribuzione normale. La dimostrazione si può trovare dappertutto: non è difficile, e sono richiesti alcuni ingredienti.

Uno lo voglio spiegare oggi.

Ingrediente 1: la funzione caratteristica e i momenti di una variabile casuale

La funzione caratteristica di una variabile casuale X è definita tramite

\phi_X(t) := {\mathbb E}(e^{itX})

Se X ha una densità, allora la funzione caratteristica altro non è che la trasformata di Fourier della densità. Sfruttando il fatto che si possono scambiare integrale e derivata facciamo questo piccolo calcolo:

\left.\frac{d}{dt}\int e^{itx} f(x)dx \right|_{t=0} = \int ix f(x) dx = i {\mathbb E}(X)

Si vede che il valore atteso di X è la derivata in 0 della funzione caratteristica moltiplicato per -i. Integrando analogamente e inducendo, si ottiene la famosa formula

i^{-n}\left.\frac{d^n}{dt^n}\int e^{itx} f(x)dx \right|_{t=0} = {\mathbb E}(X^n)


Per completezza elenco gli ingredienti necessari a comprendere la dimostrazione classica del teorema del limite centrale.

Ingrediente 2: la formula di Eulero per la definizione di e. Cioè la prima caratterizzazione qui.

Ingrediente 3: lo sviluppo in serie di Taylor di una funzione.

Ingrediente 4: il fatto che la distribuzione normale è invariante sotto l'azione della trasformata di Fourier. Questo è un mistero che ricorre in tutte le parti della matematica.

lunedì, novembre 17, 2008

MCCN0809 - III & IV

Per una settimana sono mancato e la lezione l'ha tenuta un collega.

Giovedì abbiamo introdotto i processi puntuali. Secondo la mia personale opinione, la maniera più elegante per descrivere un processo puntuale è quella tramite l'hazard function che è spiegata nella terza parte dell'1.5 della dispensa.

L'idea (banale) è quella di considerare un processo puntuale come una funzione indicatrice con supporto casuale, e poi determinare la probabilità infinitesimale che ogni punto della retta reale cada nel supporto (casuale) di tale indicatrice.

(Nella precedente lezione si era fatto solo un po' di trasformata di Fourier, nulla di grandioso).

giovedì, ottobre 30, 2008

MCCN0809 - II

Today, the first exercises about real neuroscience models are coming.

giovedì, ottobre 23, 2008

MCCN0809 - I

Da oggi comincerò ad aggiornare il compendio di matematica per il corso di Neuroscienze Computazionali di cui curo le esercitazioni.

L'esercizio più divertente di oggi riguarda il fatto che sistemi dinamici discreti lineari possono essere "sensibili" ad alcuni sottospazi.

Soluzioni lineari a problemi non lineari

Fissiamo una retta R e un vettore v di C^n. C'è una maniera algoritmica, iterativa che permetta di calcolare il vettore u su R che sia più vicino a v?

Ecco la soluzione "dinamica": si costruisca una matrice M che abbia come autospazio per l'autovalore 1 esattamente la retta R e tale che tutti gli altri autovalori siano in valore assoluto minori di 1. Allora non è difficile far vedere che le potenze M^n applicate a v convergono esattamente ad u.

Ovviamente il problema sta nel trovare una M con le proprietà richieste. Altrettanto ovviamente, risolvere questo problema è, purtroppo, esattamente equivalente al problema di trovare u direttamente...