HEBBIAN REVERBERATION IN SMALL IDEALIZED NETWORKS Joseph Aulenbrock May 22, 2002 Before Hodgkin and Huxley's experimental measurements and theoretical explanations of action potentials had reached textbooks (for example, Wenger, Jones, & Jones, 1956), the all-or-none phenomenon of action potentials was simply accepted as an experimental fact. Action potentials arose after sufficient stimulation, and the neurons of a network could contribute to each other's stimulation after axonal conduction delays and synaptic delays, to the extent permitted by absolute and relative refractory periods. If powerful computers had been available at that time, the oscillatory behavior of simple hypothetical networks with multiple feedback loops might have been studied with computer simulations. Nonlinear dynamics had not yet taken shape as a separate mathematical discipline, but nonlinear mechanics was available in engineering and physical science. To aid in understanding the oscillations, they might have been regarded as approaching exactly cyclic oscillations similar to classical limit cycles. Such cyclic oscillations are here called cyclic modes. Apart from their representations in computers, cyclic modes are only abstract entities, but they may serve as explanations of observed or calculated oscillations. In particular, cyclic modes may elucidate the mathematical character of the reverberations hypothesized by Hebb (1949, 1972). Does the concept of cyclic modes survive in the more complex realm of Hodgkin-Huxley theory? It is evident from a plot of a typical sequence of Hodgkin-Huxley action potentials in a multiloop network that the heights of the "all-or-none" spikes are not quite uniform, and this arises from slightly different circumstances in the development of the individual action potentials. Further, the spikes are not instantaneous, and therefore do not occur at precisely fixed times which would be referenced in checking for cyclicity. To pursue these questions further, they will be considered in the context of the GENESIS tutorial CPG (Bower & Beeman, 1998). ADAPTATION OF THE CPG TUTORIAL The CPG tutorial is presented as a simulation environment for studying the mathematical basis for central pattern generators (CPGs). CPGs generate oscillatory patterns of muscle activity for such functions as locomotion, breathing, chewing and scratching. But the CPG tutorial is written in a general form which permits wider application. In particular, the duration of stimulation can be shorter than the length of the run, so that sustained reverberatory activities can be studied. The biological existence of such oscillations is still in question, more than fifty years after Hebb's conjecture concerning cell assemblies (Seung, 2000). There are also conceptual difficulties. One is that it is not clear what would finally turn off reverberations. But reverberatory activity appears potentially so explanatory that it should not be neglected. Cyclic modes are clearly relevant to reverberatory activity. They are the nonlinear attractors which reverberations approach in the limit. (An intoduction to nonlinear dynamics is available in Kaplan & Glass, 1995.) Some minor modifications have been introduced in CPG to tailor it to study of reverberations. In preparation, the contents of the CPG directory have been copied to a new directory, and CPG.g has been renamed CPG_Rev.g. In initialize.g, the default run time (STEP) has been changed from 200 to 300 msec, to span more firings of a neuron. The corresponding xmax has been changed in two places in graphs.g. In CPG_Rev.g, the two setclock statements have been changed, one to change the time step dt from 0.1 to 0.0001, and the other to change the output interval from 1 to 0.001 msec. To check for cyclicity, firing times must be calculated precisely. As in the GENESIS spikegen object, the spike time is defined as the time when Vm first becomes positive. These times are determined by first saving all Vm to disk, and then selecting the first positive Vm with a postprocessor, named postpro.g. For saving Vm to disk, I introduced lines of the following form in initialize.g: create asc_file /VmL1 setfield /VmL1 flush 1 leave_open 1 useclock /VmL1 1 addmsg /L1/soma /VmL1 SAVE Vm These lines are for cell L1. They were placed in initialize.g following the line which begins "create xdialog stepsize...." Similar lines were added for cells R1, L2, and R2. The end product of postprocessing is a file which gives the firing order of the four cells. It is named FireOrd2. THE FIRST EXPERIMENT: A SIMPLE LOOP For the first simulation experiment, all inhibitory weights in defaults.g have been reduced to zero. This results in the disappearance of the inhibitory connections in the viewform window. All excitatory weights have been set to zero except the one from L1 to R2. This leaves a network without a loop, so the excitatory weight from R2 to L1 has been changed from zero to 100, giving a simplest possible loop. In inputs.g, CPG originally sets the same default injection for all cells, namely 0.00015 for current and 200 for duration. These have now been set to zero. The desired injection will be set interactively. Now begin the first experiment. Give the command: genesis CPG_Rev After the windows appear, click on "L1 Hidden" in the Inputs window, and in the /L1/Inputs window which appears change "input to /L1/soma" to 0.0004 for current and 10 for duration. In the Graphs window, make L1 visible. Click RESET and STEP in the CPG window. The resulting execution time on my 700MHz laptop is about 11 minutes, and L1 and R2 each fire 9 times. The size of the saved VmL1 and VmR2 files is about 5.2 MB. After quitting CPG, give the command "genesis postpro". The execution time for postpro.g is about 3 minutes. The resulting firing record in the file FireOrd2 is: Table 1 Rounded Spike Time Cell Difference Difference 7.0133 L1 fires 7.0133 7.013 23.9931 R2 fires 16.9798 16.980 40.9992 L1 fires 17.0061 17.006 57.9977 R2 fires 16.9985 16.998 74.9961 L1 fires 16.9984 16.998 91.9945 R2 fires 16.9984 16.998 108.9929 L1 fires 16.9984 16.998 125.9913 R2 fires 16.9984 16.998 142.9897 L1 fires 16.9984 16.998 159.9881 R2 fires 16.9984 16.998 176.9865 L1 fires 16.9984 16.998 193.9849 R2 fires 16.9984 16.998 210.9833 L1 fires 16.9984 16.998 227.9817 R2 fires 16.9984 16.998 244.9801 L1 fires 16.9984 16.998 261.9785 R2 fires 16.9984 16.998 278.9769 L1 fires 16.9984 16.998 295.9753 R2 fires 16.9984 16.998 The listed spike times are the result of a linear interpolation based on the values of Vm just before and after the zero crossing. If they differ by 1 in the 4th decimal place from the spike times found by spikegen, they are more accurate values for the time of zero crossing. In this example, the 4-decimal place differences settle on a fixed value. If this is not true in later examples, a fixed value in the rounded 3-decimal place differences may be accepted as a weaker indication of stability. See the Appendix for further discussion of attainable accuracy. The value of the uniform difference in Table 1 should be compared with the chosen value for axonal conduction delays. This is found in defaults.g, which lists 15 msec for all delays. One such delay accounts for only 15 msec of the differences. The remaining 1.998 msec must arise in the synapse, dendrite and axon hillock. The delays in the synapses and dendrites will vary somewhat depending on the circumstances of their initiation, but their variations may be relatively small. It is expected that the relative refractory period will introduce substantial variations in the delay at the axon hillock. INFLUENCE OF THE REFRACTORY PERIODS In the absolute refractory period, no stimulation, however strong, is enough to generate an action potential. In the relative refractory period, stronger than normal stimulation is required. That is to say, a higher (less negative) Vm is required to open the sodium channels. A plot of required Vm versus the time since the last spike declines very rapidly just after the absolute refractory period. Imagine that the plot of Vm, including the effect of recent stimulation at the synapse(s), is at a relatively low level. Then when the two curves cross, the cell will fire. The refractory periods are intrinsic features of the Hodgkin-Huxley neuron. In the spikegen object, there is a field for "abs_refract". This is an artificial feature whose purpose is really to reject positive values of Vm other than the first, while searching for the time at which the action potential crosses Vm = 0. Its default value is 10 msec. This is too long for the present purpose. Judging from the results of Exercise 7 for the Squid tutorial, on page 49 of BoG (Bower & Beeman, 1998), the intrinsic absolute refractory period will be about 7 or 8 msec. The widths of action potentials at Vm = 0 in the present first experiment were only about 1.15 msec. Therefore it should be satisfactory to set abs_refract in spikegen in cell.g to 3 msec. It is expected that as the axonal conduction delays are reduced moderately, the spacings between spikes will be reduced by approximately the same amount. But this relation will cease when the conduction delay is reduced sufficiently to enter the relative refractory period. Test these expectations by first changing the conduction delay in defaults.g from 15 to 10. Then L1 fires 13 times, and R2 fires 12 times,and the record is as follows: Table 2 Rounded Spike Time Cell Difference Difference 7.0133 L1 fires 7.0133 7.013 18.9689 R2 fires 11.9556 11.956 30.9144 L1 fires 11.9455 11.945 42.9823 R2 fires 12.0679 12.068 55.0488 L1 fires 12.0665 12.066 67.1140 R2 fires 12.0652 12.065 79.1792 L1 fires 12.0652 12.065 91.2444 R2 fires 12.0652 12.065 103.3097 L1 fires 12.0653 12.065 115.3750 R2 fires 12.0653 12.065 127.4403 L1 fires 12.0653 12.065 139.5056 R2 fires 12.0653 12.065 151.5709 L1 fires 12.0653 12.065 163.6362 R2 fires 12.0653 12.065 175.7015 L1 fires 12.0653 12.065 187.7668 R2 fires 12.0653 12.065 199.8321 L1 fires 12.0653 12.065 211.8974 R2 fires 12.0653 12.065 223.9627 L1 fires 12.0653 12.065 236.0280 R2 fires 12.0653 12.065 248.0933 L1 fires 12.0653 12.065 260.1586 R2 fires 12.0653 12.065 272.2239 L1 fires 12.0653 12.065 284.2892 R2 fires 12.0653 12.065 296.3545 L1 fires 12.0653 12.065 From Table 1, assuming that the delays in the synapses, dendrites and axon hillocks are constant, the expected difference in Table 2 would be 16.998 - (15 - 10) = 11.998, which approximates 12.065. In Exercise 7 for the Squid tutorial, the relative refractory period is found to extend to about 16 or 17 msec from the last spike. From the discussion following Table 1, if there were no refractory period the combined delay in the synapse, dendrite, and axon hillock would be about 1.998. Choosing 3 msec for the axonal conduction delay, a signal would travel around the loop in 2 * (3 + 1.998) = 9.996 msec. This invades the relative refractory period, and therfore is not permitted. Firing will be postponed until the Vm required by the refractory period drops to the existing Vm. Test this by changing the conduction delays in defaults.g to 3. Then L1 fires 27 times, R2 fires 26 times, and the first few spikes are as follows: Table 3 Rounded Spike Time Cell Difference Difference 7.0133 L1 fires 7.0133 7.013 12.1186 R2 fires 5.1053 5.105 17.7397 L1 fires 5.6211 5.621 23.3660 R2 fires 5.6263 5.626 28.9598 L1 fires 5.5938 5.594 34.5265 R2 fires 5.5667 5.567 40.1005 L1 fires 5.5740 5.574 45.6699 R2 fires 5.5694 5.569 51.2400 L1 fires 5.5701 5.570 56.8096 R2 fires 5.5695 5.570 62.3792 L1 fires 5.5697 5.570 67.9488 R2 fires 5.5696 5.570 73.5185 L1 fires 5.5696 5.570 79.0881 R2 fires 5.5696 5.570 Beyond this the differences are constant to 300 msec. Without refractory periods, the expected difference in Table 3 would be 16.998 - (15 - 3) = 4.998, which is substantially less than 5.570. For network dynamics, it is important to note the different roles of axonal conduction delay and relative refractory period in determining firing order. The delay due to relative refractory period can vary continuously as the system seeks stability, but the delay due to a particular axon is either there or not there. ONE LOOP OR MANY?: A MISUNDERSTANDING Networks of 3 or 4 neurons will now be considered. With a multiple cell network, notation is needed for ordered specification of connections. The array of synaptic strengths for the first example of a 3-cell network is as follows: L1 R1 L2 R2 L1 0 100 0 100 R1 30 0 0 0 L2 0 0 0 0 R2 30 0 0 0 To provide for symbolic reference, L1, R1, L2, and R2 will be replaced with 1, 2, 3, and 4, and the synaptic strength array will in general be represented by: | s11 s12 s13 s14 | | | | s21 s22 s23 s24 | S = | | , | s31 s32 s33 s34 | | | | s41 s42 s43 s44 | where sij is the synaptic strength from cell i to cell j. Comparing the above 3-cell network with the earlier 2-cell networks, the value of s14 has been retained as 100, while s41 has been reduced to 30. With only these two nonzero strengths, oscillation in the 2-cell network stops after 2 spikes for each cell. With the addition of s12 = 100 and s21 = 30 as indicated in the array above, the resulting 3-cell, 2-loop network has sufficient feedback to keep L1 going. Choosing 3 for the delay in each axon, L1, R1,and R2 each fire 25 times, and the firing order starts as follows: Table 4 Rounded Spike Time Cell Difference Difference 7.0133 L1 fires 7.0133 7.013 12.1186 R1 fires 5.1053 5.105 12.1186 R2 fires 0.0000 0.000 18.4646 L1 fires 6.3460 6.346 23.9592 R1 fires 5.4946 5.495 23.9592 R2 fires 0.0000 0.000 30.3302 L1 fires 6.3710 6.371 35.7826 R1 fires 5.4524 5.452 35.7826 R2 fires 0.0000 0.000 42.1343 L1 fires 6.3517 6.352 47.5887 R1 fires 5.4544 5.454 47.5887 R2 fires 0.0000 0.000 53.9374 L1 fires 6.3487 6.349 59.3920 R1 fires 5.4545 5.455 59.3920 R2 fires 0.0000 0.000 65.7403 L1 fires 6.3484 6.348 71.1949 R1 fires 5.4546 5.455 71.1949 R2 fires 0.0000 0.000 77.5432 L1 fires 6.3483 6.348 82.9977 R1 fires 5.4545 5.455 82.9977 R2 fires 0.0000 0.000 89.3460 L1 fires 6.3483 6.348 94.8005 R1 fires 5.4545 5.455 94.8005 R2 fires 0.0000 0.000 101.1488 L1 fires 6.3483 6.348 106.6033 R1 fires 5.4545 5.454 106.6033 R2 fires 0.0000 0.000 112.9516 L1 fires 6.3483 6.348 118.4061 R1 fires 5.4545 5.454 118.4061 R2 fires 0.0000 0.000 124.7544 L1 fires 6.3483 6.348 130.2089 R1 fires 5.4545 5.454 130.2089 R2 fires 0.0000 0.000 136.5572 L1 fires 6.3483 6.348 142.0117 R1 fires 5.4545 5.454 142.0117 R2 fires 0.0000 0.000 148.3600 L1 fires 6.3483 6.348 153.8145 R1 fires 5.4545 5.454 153.8145 R2 fires 0.0000 0.000 Beyond this the cycle (6.348, 5.454, 0.000) continues to at least 300 msec, except for a deviation of 1 in the 3rd decimal place at 248.2369 msec. It is clear that if the nonzero s12 and s21 were replaced with nonzero s13 and s31, L2 would fire instead of R1. L1 would fire as usual. This might be interpreted as the beginning of "redundancy": two of the possible three loops are sufficient to sustain firing of the main cell L1. Of course all three loops acting together can also sustain L1, as calculated in the following example, in which s13 = 100 and s31 = 30 have been added to the previous example. L1 fires 27 times, the other 3 cells each fire 26 times, and the record is: Table 5 Rounded Spike Time Cell Difference Difference 7.0133 L1 fires 7.0133 7.013 12.1186 L2 fires 5.1053 5.105 12.1186 R1 fires 0.0000 0.000 12.1186 R2 fires 0.0000 0.000 17.8691 L1 fires 5.7505 5.751 23.4684 L2 fires 5.5993 5.599 23.4684 R1 fires 0.0000 0.000 23.4684 R2 fires 0.0000 0.000 29.1957 L1 fires 5.7273 5.727 34.7400 L2 fires 5.5443 5.544 34.7400 R1 fires 0.0000 0.000 34.7400 R2 fires 0.0000 0.000 40.4465 L1 fires 5.7065 5.707 45.9935 L2 fires 5.5470 5.547 45.9935 R1 fires 0.0000 0.000 45.9935 R2 fires 0.0000 0.000 51.6962 L1 fires 5.7027 5.703 57.2433 L2 fires 5.5471 5.547 57.2433 R1 fires 0.0000 0.000 57.2433 R2 fires 0.0000 0.000 62.9455 L1 fires 5.7022 5.702 68.4927 L2 fires 5.5472 5.547 68.4927 R1 fires 0.0000 0.000 68.4927 R2 fires 0.0000 0.000 74.1949 L1 fires 5.7021 5.702 79.7420 L2 fires 5.5472 5.547 79.7420 R1 fires 0.0000 0.000 79.7420 R2 fires 0.0000 0.000 85.4441 L1 fires 5.7021 5.702 90.9913 L2 fires 5.5472 5.547 90.9913 R1 fires 0.0000 0.000 90.9913 R2 fires 0.0000 0.000 96.6934 L1 fires 5.7021 5.702 102.2406 L2 fires 5.5472 5.547 102.2406 R1 fires 0.0000 0.000 102.2406 R2 fires 0.0000 0.000 The rounded differences with 3 decimal places continue in the cycle (5.702, 5.547, 0.000, 0.000) beginning at 62.9455 msec. The differences to 4 decimal places continue in a fixed cycle beginning at 74.1949. The above example can be described as having 3 loops, as is evident from the viewform window and the S-array. Counting loops becomes less meaningful with more connections. In the following example s24 = 30 and s43 = 30 have been added. Again L1 fires 27 times and the other 3 cells fire 26 times, and the record is: Table 6 Rounded Spike Time Cell Difference Difference 7.0133 L1 fires 7.0133 7.013 12.1186 L2 fires 5.1053 5.105 12.1186 R1 fires 0.0000 0.000 12.1186 R2 fires 0.0000 0.000 17.8691 L1 fires 5.7505 5.751 23.3726 L2 fires 5.5035 5.504 23.3726 R2 fires 0.0000 0.000 23.4684 R1 fires 0.0958 0.096 29.1465 L1 fires 5.6780 5.678 34.5787 R2 fires 5.4322 5.432 34.5855 L2 fires 0.0068 0.007 34.6992 R1 fires 0.1137 0.114 40.3421 L1 fires 5.6429 5.643 45.7718 R2 fires 5.4297 5.430 45.7813 L2 fires 0.0094 0.009 45.8998 R1 fires 0.1186 0.119 51.5351 L1 fires 5.6352 5.635 56.9638 R2 fires 5.4288 5.429 56.9742 L2 fires 0.0103 0.010 57.0935 R1 fires 0.1193 0.119 62.7275 L1 fires 5.6340 5.634 68.1560 R2 fires 5.4286 5.429 68.1666 L2 fires 0.0106 0.011 68.2860 R1 fires 0.1194 0.119 73.9198 L1 fires 5.6338 5.634 79.3484 R2 fires 5.4286 5.429 79.3590 L2 fires 0.0106 0.011 79.4784 R1 fires 0.1194 0.119 85.1122 L1 fires 5.6338 5.634 90.5407 R2 fires 5.4285 5.428 90.5513 L2 fires 0.0107 0.011 90.6707 R1 fires 0.1194 0.119 96.3045 L1 fires 5.6338 5.634 101.7330 R2 fires 5.4285 5.428 101.7436 L2 fires 0.0107 0.011 101.8630 R1 fires 0.1194 0.119 107.4968 L1 fires 5.6338 5.634 112.9253 R2 fires 5.4285 5.428 112.9359 L2 fires 0.0107 0.011 113.0553 R1 fires 0.1194 0.119 118.6891 L1 fires 5.6337 5.634 124.1176 R2 fires 5.4285 5.428 124.1282 L2 fires 0.0107 0.011 124.2476 R1 fires 0.1194 0.119 129.8814 L1 fires 5.6338 5.634 135.3099 R2 fires 5.4285 5.428 135.3205 L2 fires 0.0107 0.011 135.4399 R1 fires 0.1194 0.119 141.0737 L1 fires 5.6337 5.634 146.5022 R2 fires 5.4285 5.428 146.5128 L2 fires 0.0107 0.011 146.6322 R1 fires 0.1194 0.119 152.2660 L1 fires 5.6337 5.634 157.6945 R2 fires 5.4285 5.428 157.7051 L2 fires 0.0107 0.011 157.8245 R1 fires 0.1194 0.119 163.4583 L1 fires 5.6337 5.634 168.8868 R2 fires 5.4285 5.428 168.8974 L2 fires 0.0107 0.011 169.0168 R1 fires 0.1194 0.119 174.6506 L1 fires 5.6337 5.634 180.0791 R2 fires 5.4285 5.428 180.0897 L2 fires 0.0107 0.011 180.2091 R1 fires 0.1194 0.119 185.8429 L1 fires 5.6338 5.634 191.2714 R2 fires 5.4285 5.428 191.2820 L2 fires 0.0107 0.011 191.4014 R1 fires 0.1194 0.119 197.0352 L1 fires 5.6337 5.634 202.4637 R2 fires 5.4285 5.428 202.4743 L2 fires 0.0107 0.011 202.5937 R1 fires 0.1194 0.119 208.2275 L1 fires 5.6337 5.634 213.6560 R2 fires 5.4285 5.428 213.6666 L2 fires 0.0107 0.011 213.7860 R1 fires 0.1194 0.119 219.4198 L1 fires 5.6337 5.634 224.8483 R2 fires 5.4285 5.428 224.8589 L2 fires 0.0107 0.011 224.9783 R1 fires 0.1194 0.119 230.6121 L1 fires 5.6337 5.634 236.0406 R2 fires 5.4285 5.428 236.0512 L2 fires 0.0107 0.011 236.1706 R1 fires 0.1194 0.119 241.8044 L1 fires 5.6338 5.634 247.2329 R2 fires 5.4285 5.428 247.2435 L2 fires 0.0107 0.011 247.3629 R1 fires 0.1194 0.119 252.9967 L1 fires 5.6337 5.634 258.4252 R2 fires 5.4285 5.428 258.4358 L2 fires 0.0107 0.011 258.5552 R1 fires 0.1194 0.119 264.1890 L1 fires 5.6337 5.634 269.6175 R2 fires 5.4285 5.428 269.6281 L2 fires 0.0107 0.011 269.7475 R1 fires 0.1194 0.119 275.3813 L1 fires 5.6337 5.634 280.8098 R2 fires 5.4285 5.428 280.8204 L2 fires 0.0107 0.011 280.9398 R1 fires 0.1194 0.119 286.5736 L1 fires 5.6338 5.634 292.0021 R2 fires 5.4285 5.428 292.0127 L2 fires 0.0107 0.011 292.1321 R1 fires 0.1194 0.119 297.7659 L1 fires 5.6338 5.634 The difference between the firing times of R1 and L1 is still varying by 1 in the 4th decimal place near the end of the record. This must be a computational artifact; the particular times at which differences occur can be changed by changing dt. The differences rounded to 3 decimal places show periodicity beyond 85.1122 msec. The simple point to be made in this section is that the firing order in a cycle does not represent a sequence of links in a single loop. The objection has been made that reverberation is implausible because the neurons of a central nervous system are not typically so strongly connected that one alone could fire another, as would be required in a single loop. But the examples in this section are not single loops, and firing of L1 requires summed excitation from 2 other neurons to be sustained. With systems of more neurons the requirement could be many more than 2 neurons. Also, L1 might be purely a sensory neuron, perhaps one of several, and not the representative of the assembly pattern. The essential pattern could exist in the absence of some components. INHIBITION It would be desirable to offer an idealized model of the type of behavior exhibited by the mouse when it perceives the cat, and then freezes, and finally scurries back to its hole. Unfortunately four neurons apparently are not sufficient for all that. But test the action of an inhibitory connection as a simple switch for turning off a behavior pattern. Let the pattern be in cells L1, L2, and R2, and be mediated by the the following synaptic strength array: | 0 0 30 100 | | | | 0 0 -600 0 | S = | | | 100 0 0 30 | | | | 0 0 30 0 | The negative s23 indicates an inhibitory connection from R1 to L2. Continue to use 3 msec for the delay in axons. As in previous examples, the stimulus for the next example will be a current pulse of 0.0004 microamp in cell L1, with duration 10 msec. Then L1, L2, and R2 each fire 22 times, and the firing record is as follows: Table 7 Rounded Spike Time Cell Difference Difference 7.0133 L1 fires 7.0133 7.013 12.1186 R2 fires 5.1053 5.105 13.4924 L2 fires 1.3738 1.374 18.9160 L1 fires 5.4236 5.424 24.2007 R2 fires 5.2847 5.285 27.0111 L2 fires 2.8103 2.810 32.3148 L1 fires 5.3037 5.304 37.4373 R2 fires 5.1225 5.123 40.3829 L2 fires 2.9456 2.946 45.6848 L1 fires 5.3019 5.302 50.8038 R2 fires 5.1190 5.119 53.7798 L2 fires 2.9760 2.976 59.0795 L1 fires 5.2997 5.300 64.1960 R2 fires 5.1165 5.117 67.1813 L2 fires 2.9853 2.985 72.4806 L1 fires 5.2993 5.299 77.5964 R2 fires 5.1157 5.116 80.5841 L2 fires 2.9877 2.988 85.8832 L1 fires 5.2991 5.299 90.9988 R2 fires 5.1155 5.116 93.9871 L2 fires 2.9884 2.988 99.2863 L1 fires 5.2991 5.299 104.4018 R2 fires 5.1155 5.116 107.3903 L2 fires 2.9885 2.989 112.6895 L1 fires 5.2992 5.299 117.8049 R2 fires 5.1154 5.115 120.7935 L2 fires 2.9886 2.989 126.0927 L1 fires 5.2992 5.299 131.2081 R2 fires 5.1154 5.115 134.1967 L2 fires 2.9886 2.989 The record to 3 decimal places becomes cyclic at 107.3903 msec and continues with the cycle to at least 300 msec. If the stimulus at L1 is augmented with a similar stimulus at the inhibitory neuron R1, cells L1, R1, and R2 each fire once as follows: Table 8 Rounded Spike Time Cell Difference Difference 7.0133 L1 fires 7.0133 7.013 7.0133 R1 fires 0.0000 0.000 12.1186 R2 fires 5.1053 5.105 Firings cease beyond 12.1186 msec. Before using the large value -600 for s23, -100 and -300 were tried in this example. They were not sufficient to stop the firings. If the stimulus at the inhibitory neuron is delayed until 50 msec, L1 fires 5 times, R1 once, L2 4 times, and R2 5 times, as follows: Table 9 Rounded Spike Time Cell Difference Difference 7.0133 L1 fires 7.0133 7.013 12.1186 R2 fires 5.1053 5.105 13.4924 L2 fires 1.3738 1.374 18.9160 L1 fires 5.4236 5.424 24.2007 R2 fires 5.2847 5.285 27.0111 L2 fires 2.8103 2.810 32.3148 L1 fires 5.3037 5.304 37.4373 R2 fires 5.1225 5.123 40.3829 L2 fires 2.9456 2.946 45.6848 L1 fires 5.3019 5.302 50.8038 R2 fires 5.1190 5.119 51.2469 R1 fires 0.4431 0.443 53.7798 L2 fires 2.5329 2.533 59.0795 L1 fires 5.2997 5.300 64.1960 R2 fires 5.1165 5.117 Firings cease beyond 64.1960 msec. It has not been shown that an inhibitory connection can be part of a cyclic mode. For such a case, change the above example by diminishing s23 to -100, and add the connection s42 = 60. Stimulate L1 as before. Then L1 and R2 each fire 21 times, R1 and L2 each fire 20 times, and the firing record is as follows: Table 10 Rounded Spike Time Cell Difference Difference 7.0133 L1 fires 7.0133 7.013 12.1186 R2 fires 5.1053 5.105 13.4924 L2 fires 1.3738 1.374 17.5070 R1 fires 4.0146 4.015 18.9160 L1 fires 1.4090 1.409 24.2007 R2 fires 5.2847 5.285 30.0113 L2 fires 5.8106 5.811 30.2967 R1 fires 0.2853 0.285 35.1899 L1 fires 4.8932 4.893 38.1444 R2 fires 2.9545 2.955 43.9192 L2 fires 5.7748 5.775 44.0232 R1 fires 0.1041 0.104 49.1859 L1 fires 5.1626 5.163 52.4932 R2 fires 3.3073 3.307 58.3085 R1 fires 5.8153 5.815 58.4430 L2 fires 0.1345 0.134 63.6848 L1 fires 5.2418 5.242 66.8414 R2 fires 3.1565 3.157 72.6518 R1 fires 5.8105 5.810 72.8189 L2 fires 0.1670 0.167 78.0658 L1 fires 5.2470 5.247 81.2337 R2 fires 3.1679 3.168 87.0395 R1 fires 5.8058 5.806 87.2126 L2 fires 0.1731 0.173 92.4590 L1 fires 5.2464 5.246 95.6265 R2 fires 3.1675 3.168 101.4320 R1 fires 5.8055 5.805 101.6035 L2 fires 0.1716 0.172 106.8501 L1 fires 5.2465 5.247 110.0185 R2 fires 3.1684 3.168 115.8240 R1 fires 5.8055 5.806 115.9945 L2 fires 0.1704 0.170 121.2410 L1 fires 5.2465 5.247 124.4099 R2 fires 3.1689 3.169 130.2154 R1 fires 5.8055 5.806 130.3854 L2 fires 0.1700 0.170 135.6319 L1 fires 5.2465 5.246 138.8009 R2 fires 3.1690 3.169 144.6065 R1 fires 5.8056 5.806 144.7764 L2 fires 0.1698 0.170 150.0229 L1 fires 5.2465 5.246 153.1919 R2 fires 3.1690 3.169 158.9975 R1 fires 5.8056 5.806 159.1674 L2 fires 0.1698 0.170 164.4139 L1 fires 5.2465 5.246 167.5829 R2 fires 3.1690 3.169 173.3885 R1 fires 5.8056 5.806 173.5584 L2 fires 0.1698 0.170 178.8049 L1 fires 5.2465 5.246 181.9739 R2 fires 3.1690 3.169 187.7794 R1 fires 5.8056 5.806 187.9493 L2 fires 0.1698 0.170 193.1958 L1 fires 5.2465 5.247 196.3649 R2 fires 3.1691 3.169 202.1704 R1 fires 5.8056 5.806 202.3403 L2 fires 0.1698 0.170 207.5868 L1 fires 5.2465 5.246 210.7558 R2 fires 3.1690 3.169 216.5614 R1 fires 5.8056 5.806 216.7313 L2 fires 0.1698 0.170 221.9778 L1 fires 5.2465 5.246 225.1468 R2 fires 3.1690 3.169 230.9524 R1 fires 5.8056 5.806 231.1223 L2 fires 0.1698 0.170 236.3688 L1 fires 5.2465 5.247 239.5378 R2 fires 3.1690 3.169 245.3433 R1 fires 5.8055 5.806 245.5132 L2 fires 0.1698 0.170 250.7597 L1 fires 5.2465 5.246 253.9288 R2 fires 3.1691 3.169 259.7343 R1 fires 5.8056 5.806 259.9042 L2 fires 0.1698 0.170 265.1507 L1 fires 5.2465 5.246 268.3197 R2 fires 3.1691 3.169 274.1253 R1 fires 5.8056 5.806 274.2952 L2 fires 0.1698 0.170 279.5417 L1 fires 5.2465 5.246 282.7107 R2 fires 3.1690 3.169 288.5163 R1 fires 5.8056 5.806 288.6862 L2 fires 0.1698 0.170 293.9327 L1 fires 5.2465 5.246 297.1017 R2 fires 3.1690 3.169 The rounded differences in this record settle into a cycle of 4 firings beginning at 115.8240 msec, except for occasional variations of 1 in the 3rd decimal place for the firing of L1. These firings of L1 to 4 decimal places all end in 5, so rounding must depend on variations further out than the 4th decimal place. CONCLUDING REMARKS The records for the examples considered have all either settled into cyclic modes to 3 decimal places within about 100 msec, or have terminated. There has been no indication of chaotic attractors. Hebbian reverberations need not be exactly cyclic to do their jobs. They are essentially combinations of neurons which are all oscillating simultaneously. Presumably the effectiveness of an oscillating neuron in behavior is determined by the frequency and duration of the oscillation. No consideration has been given to the formation of cell assemblies in learning and memory. That could be explored with more neurons. Would 6 be sufficient for a beginning? APPENDIX ATTAINABLE ACCURACY The logically most straightforward way of obtaining precise spike times (defined as zero crossings) from the existing CPG_Rev program would be to use the value 0.0001 msec for both dt and the output interval. Unfortunately this would result in the production of four very long files, each of about 52 MB. Increasing the output interval to 0.001 reduces a file to about 5.2 MB. Precision and a qualified accuracy can be regained through linear interpolation based on the values of Vm just before and after the zero crossing. If the interpolated values differ by 1 in the 4th decimal place from the spike time found by spikegen, they are most likely more accurate values for the time of zero crossing (assuming that Vm versus time is a nearly straight line as it crosses zero). But, accurate or not, it is the values from spikegen that determine subsequent firings. Thus discrepancies of 1 in the 4th decimal place are to be expected. The use of interpolation suggests that the size of files could be reduced further without loss of accuracy, by means of a further increase in the output interval. If the long execution time for CPG_Rev becomes a problem, dt might be increased to 0.001. With interpolation, this might still give satisfactory values for the differences. But a test indicated that the value of spike time near the end of the record would differ by about 0.04 from the values obtained when dt is 0.0001 or 0.00005. REFERENCES Bower, James M. and Beeman, David (1998). The Book of GENESIS, second edn., Springer-Verlag, N.Y. Hebb, D. O. (1949). The Organization of Behavior, Wiley, N.Y. Hebb proposed that reverberations occur in cell assemblies, with cells stimulating one another in the assembly, in a cyclical pattern. His Figure 10 is apparently intended as an abstract representation of the activity in a cell assembly, or perhaps in several assemblies chained together. It is indefinite and confusing. A simpler and more specific example is given in Hebb (1972). Hebb, D. O. (1972). Textbook of Psychology, third edn., Saunders, Philadelphia. Chapter 4 contains an easy introduction to Hebb's theory of cell assemblies. Figure 33 is a simple example of connectivities. Kaplan, Daniel and Glass, Leon (1995). Understanding Nonlinear Dynamics, Springer-Verlag, N.Y. Seung, H. Sebastian (2000). Half a century of Hebb. Nature Neuroscience, Volume 3 Supplement November 2000: page 1166. Seung asks whether the delay activity that has been observed in nervous systems is truly reverberatory activity. He suggests studying the simplest possible examples, and notes that settling the mechanistic question will still be technically demanding. Wouldn't it help to get a head start on the type of computational simulation involved? Wenger, M. A., Jones, F. N. and Jones, M. H. (1956). Physiological Psychology, Henry Holt, N.Y.