ioam / topographica

A general-purpose neural simulator focusing on topographic maps.
topographica.org
BSD 3-Clause "New" or "Revised" License
53 stars 32 forks source link

HomeostaticResponse: first_call & plasticity #257

Open sf-issues opened 12 years ago

sf-issues commented 12 years ago

Converted from SourceForge issue 3435657, submitted by ceball Submit Date: 2011-11-09 17:36 GMT

This is obscure, I think, but still a bug: shouldn't the last activity printed in the two examples below be the same?

$ ./topographica -i -p 'dataset="Nature"' -p cortex_density=12 -p retina_density=12 -p lgn_density=12 examples/gcal.ty -c "from topo import pattern; topo.sim['Retina'].set_input_generator(pattern.Gaussian())" topo_t000000.00_c1>>> topo.sim['V1'].output_fns[0].target_activity=1 topo_t000000.00_c2>>> topo.sim.run(1) topo_t000001.00_c3>>> topo.sim['V1'].output_fns[0].y_avg.sum() Out[3]:143.70621296664692 topo_t000001.00_c4>>> topo.sim['V1'].activity.sum() Out[4]:367.4271529557891

$ ./topographica -i -p 'dataset="Nature"' -p cortex_density=12 -p retina_density=12 -p lgn_density=12 examples/gcal.ty -c "from topo import pattern; topo.sim['Retina'].set_input_generator(pattern.Gaussian())" topo_t000000.00_c1>>> topo.sim['V1'].output_fns[0].target_activity=1000 topo_t000000.00_c2>>> topo.sim['V1'].override_plasticity_state(False) topo_t000000.00_c3>>> topo.sim.run(1) topo_t000001.00_c4>>> topo.sim['V1'].output_fns[0].y_avg.sum() Out[4]:144000.0 topo_t000001.00_c5>>> topo.sim['V1'].activity.sum() Out[5]:367.43236060234204 topo_t000001.00_c6>>> topo.sim['V1'].output_fns[0].target_activity=1 topo_t000001.00_c7>>> topo.sim['V1'].override_plasticity_state(True) topo_t000001.00_c8>>> topo.sim.run(1) topo_t000002.00_c9>>> topo.sim['V1'].output_fns[0].y_avg.sum() Out[9]:142709.2085762278 topo_t000002.00_c10>>> topo.sim['V1'].activity.sum() Out[10]:0.0

The problem is the contents of the "if first_call" part of HomeostaticResponse'scall are altering state permanently regardless of the status of plastic. I guess this is unlikely to affect anyone in practise, although maybe there's also a similar problem with randomized_init and it would show up with maps measured at time 0? My brain can't follow the situation through...

(r11819, no diffs)

jlstevens commented 10 years ago

This issue dates back to 2011. I certainly hope there is nothing wrong with Homeostatic response anymore as GCAL has now been published!

I'm not too worried as I am fairly sure we rewrote HomeostaticResponse after this issue was created (e.g. to get rid of Jan's magic number and enable continuous homeostatic update).

jbednar commented 10 years ago

Looks to me like Chris's first example still behaves the same way:

$ ./topographica -i -p 'dataset="Nature"' -p cortex_density=12 -p retina_density=12 -p lgn_density=12 examples/gcal.ty -c "topo.sim.run(0)" -c "from topo import pattern; topo.sim['Retina'].set_input_generator(pattern.Gaussian())" topo_t000000.00_c1>>> topo.sim['V1'].output_fns[0].target_activity=1 topo_t000000.00_c2>>> topo.sim.run(1) topo_t000001.00_c3>>> topo.sim['V1'].output_fns[0].y_avg.sum() Out[3]:144.0 topo_t000001.00_c4>>> topo.sim['V1'].activity.sum() Out[4]:85.362120926173986

I'm not sure what that means, but it does seem like this issue is still relevant if it ever was!