Primera parte: Infiriendo cómo computa el cerebro

Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Primera parte: Infiriendo c´omo computa el
cerebro
Int. a la Neurociencia Cognitiva y Computacional
31 de marzo de 2011
Registrando
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Nos interesa saber qu´e algoritmo corre el cerebro para resolver
una tarea.
¿Qu´e podemos medir?
Fisiolog´ıa:
T´ecnicas invasivas (pinchar moscas, ratas, monos, etc...)
No invasivas (EEG, NIRS, fMRI, etc...)
Psicof´ısica:
Tipo de respuesta
Tiempo de respuesta
Trabajo pr´actico 1
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Vamos a inferir la algoritmia del c´
omputo humano a partir de
experimentos psicof´ısicos. Grupos de 3 personas. Para el jueves
tienen que indicar tres secciones en orden de preferencia.
Secciones propuestas
Comparaci´
on y representaci´
on num´erica
Adaptaci´on como veh´ıculo para identificar el c´odigo
Algoritmos visuales
Interferencia y l´ımites de la percepci´
on consciente
Inferencia de kernels a partir de regresi´on al ruido
(avanzado)
Lectura
Comparaci´on y representaci´on num´erica
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Comparaci´on y representaci´on num´erica
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
¿Logar´ıtmico o Lineal?
SNARC effect:
Adaptaci´on
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Adaptaci´on
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Adaptaci´on
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Adaptaci´on a caras:
Algoritmos visuales
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Rotaci´on mental:
Algoritmos visuales
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Percepci´on de la luz:
To achieve the task of lightness constancy the
visual system must discount the illumination and
other viewing conditions and estimate the reflectance.
Algoritmos visuales
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Percepci´on de la luz:
Interferencia y l´ımites de la percepci´on consciente
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Psychological Refractory Period effect.
Interferencia y l´ımites de la percepci´on consciente
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Attentional Blink.
Lectura
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
PsychToolBox
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Software para psicof´ısica que usaremos: Psychophysics Toolbox,
versi´on 3. http://psychtoolbox.org/
Psychophysics Toolbox Version 3 (PTB-3) is a
free set of Matlab and GNU/Octave functions for
vision research. It makes it easy to synthesize and
show accurately controlled visual and auditory stimuli
and interact with the observer.
PsychToolBox
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Instalaci´on:
1
Instalar Subversion (SVN)
Windows: http://tortoisesvn.tigris.org/
Mac:
http://downloads.open.collab.net/binaries.html
Linux: Debian/Ubuntu: apt-get install subversion
2
Bajar el instalador http:
//svn.berlios.de/viewvc/*checkout*/osxptb/
trunk/Psychtoolbox/DownloadPsychtoolbox.m
3
En Matlab, ejecutar:
DownloadPsychtoolbox(’<directorio donde
quieren instalar>’)
4
Testearlo: >>ScreenTest
PsychToolBox
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
“Todo” se hace con Screen(...). Primer “experimento”:
pantalla negra, pantalla blanca.
1 screenNum =0;
r e s =[1280 1 0 2 4 ] ;
3 c l r d e p t h =32;
[ wPtr , r e c t ]= S c r e e n ( ’ OpenWindow ’ , screenNum , 0 , [ 0 0 r e s ( 1 ) r e s ( 2 ) ] , c l r d e p t h ) ;
5 b l a c k=B l a c k I n d e x ( wPtr ) ;
w h i t e=W h i t e I n d e x ( wPtr ) ;
7 S c r e e n ( ’ F i l l R e c t ’ , wPtr , b l a c k ) ;
S c r e e n ( wPtr , ’ F l i p ’ ) ;
9
HideCursor ;
11 t i c
w h i l e toc <3
13
;
end
15 S c r e e n ( ’ F i l l R e c t ’ , wPtr , w h i t e ) ;
S c r e e n ( wPtr , ’ F l i p ’ ) ;
17 H i d e C u r s o r ;
tic
19 w h i l e toc <3
;
21 end
Screen ( ’ C l o s e A l l ’ ) ;
23 ShowCursor ;
PsychToolBox
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
PsychToolBox
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
PsychToolBox
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Segundo “experimento”: pantalla negra, pantalla blanca.
1 screenNum =0;
r e s =[1280 1 0 2 4 ] ;
3 c l r d e p t h =32;
[ win , r e c t ]= S c r e e n ( ’ OpenWindow ’ , screenNum , 0 , [ 0 0 r e s ( 1 ) r e s ( 2 ) ] , c l r d e p t h ) ;
5 b l a c k=B l a c k I n d e x ( win ) ;
w h i t e=W h i t e I n d e x ( win ) ;
7 S c r e e n ( ’ F i l l R e c t ’ , win , b l a c k ) ;
9
11
13
15
17
19
21
23
25
27
29
r e f r e s h = S c r e e n ( ’ G e t F l i p I n t e r v a l ’ , win )
% Synchronize to r e t r a c e at s t a r t of t r i a l / animation loop :
v b l = S c r e e n ( ’ F l i p ’ , win ) ;
% Loop : C y c l e t h r o u g h 300 i m a g e s :
tic
f o r i =1:30
% Draw i ’ t h image t o b a c k b u f f e r :
S c r e e n ( ’ DrawTexture ’ , win , myImage ( i ) ) ;
% Show i m a g e s e x a c t l y 2 r e f r e s h c y c l e s a p a r t o f e a c h o t h e r :
i f mod ( i , 2 )==0
S c r e e n ( ’ F i l l R e c t ’ , win , b l a c k ) ;
else
S c r e e n ( ’ F i l l R e c t ’ , win , w h i t e ) ;
end
v b l = S c r e e n ( ’ F l i p ’ , win , v b l + (2 −0.1) ∗ r e f r e s h ) ;
% Keyboard c h e c k s , w h a t e v e r . . . Next l o o p i t e r a t i o n .
end ;
% End o f a n i m a t i o n l o o p , b l a n k s c r e e n , r e c o r d o f f s e t t i m e :
t o f f s e t = S c r e e n ( ’ F l i p ’ , win , v b l + ( 2 − 0 . 5 ) ∗ r e f r e s h ) ;
toc
Screen ( ’ C l o s e A l l ’ ) ;
PsychToolBox
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Dibujando con PsychToolBox:
(Filled) Circles and ellipses:
Screen(’FrameOval’, window, color, boundingrect [, penWidth]);
Screen(’FillOval’, window, color, boundingrect);
(Filled) Rectangles:
Screen(’FrameRect’, window, color, boundingrect [, penWidth]);
Screen(’FillRect’, window, color, boundingrect);
Lines of different thickness and stipple patterns:
Screen(’DrawLine’, window, color, fromH, fromV, toH, toV[,penWidth]);
(Filled) Arcs:
Screen(’DrawArc’, window, color, boundingrect, startAngle, arcAngle);
Screen(’FrameArc’, window, color, boundingrect, startAngle, arcAngle);
Screen(’FillArc’, window, color, boundingrect, startAngle, arcAngle);
(Filled) convex and concave Polygons:
Screen(’FillPoly’, window, color, xy);
PsychToolBox
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Procesando Batch:
En lugar de:
Screen(’FillRect’, win, [red1 green1 blue1], [left1 top1 right1 bot1]);
Screen(’FillRect’, win, [red2 green2 blue2], [left2 top2 right2 bot2]);
...
Screen(’FillRect’, win, [redn greenn bluen], [leftn topn rightn botn]);
Usar:
mycolors = [red1 green1 blue1; red2 green2 blue2; ... ; redn greenn bluen];
myrects = [left1 top1 right1 bot1; left2 top2 right2 bot2; ... ; leftn topn rightn botn];
Screen(’FillRect’, win, mycolors, myrects);
PsychToolBox
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Procesando Batch:
PsychToolBox
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Dibujando con PsychToolBox:
image2D=255*rand(100, 100);
textureIndex=Screen(’MakeTexture’, wPtr, image2D);
Screen(’DrawTexture’, wPtr, textureIndex);
PsychToolBox
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
System control and timing:
T = GetSecs
Query time with microsecond resolution.
Uses highest resolution system clock for measurement of
time.
WaitSecs(duration)
Wait for a specified amount of time ’duration’.
On MacOS/X: Accurate to 0.3 milliseconds on average.
On MS-Windows: Accurate to 2 milliseconds on average
on a modern machine.
Priority() - Switch Matlab process to
realtime-scheduling mode.
PsychToolBox
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
Obteniendo respuestas de teclado y mouse:
[x,y,buttons]=GetMouse(window);: Query current
mouse position and mouse button state.
[down, secs, keycode]=KbCheck; Query current state
of all keys on a keyboard
secs = KbWait; Just like Kb, but it waits until a key on
the keyboard is pressed down and simply returns the time
that the key was pressed
Can detect and report multiple simultaneous keypresses.
Can query multiple keyboards on Linux and OS/X, one on
Windows.
Can mask out dead or stuck keys, often a problem on
Laptops. DisableKeysForKbCheck()
Importante:
Queries are fast, bypassing OS queues and application
event queues.
Despite that: Standard keyboards problematic for RT
PsychToolBox
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
¿El teclado es lento?
PsychToolBox
Primera parte:
Infiriendo
c´
omo
computa el
cerebro
A LABURAR!