• No results found

The pre-motor cortex

7.3 Neural implementation

7.3.1 The pre-motor cortex

The pre-motor cortex is modeled using the dynamical movement primitives (DMPs) system structure [159, 97] as a means of specifying desired trajectories in task space. A basic implementation of DMPs have been implemented in spiking neurons, capable of generating complex trajectories after a single demonstration of the desired path. This path is sent to the primary motor cortex where it is used to guide the arm using operational space control.

Figure 7.6 shows a diagram of the pre-motor cortex model. The PM is provided a

‘start pulse’ signal, which is a step function that transitions an oscillator from a default resting state into its limit cycle activity pattern. Figure 7.7 shows the step function, goal signals, and the activity of the oscillator and forcing function’s ramp signal. While the start pulse function is active the goal states are the starting positions for the arm, driving the x and y populations to the initial end-effector position. The start pulse also inhibits output from the forcing function, allowing the x and y point attractor systems to converge quickly to their targets. These initial trajectory positions are projected from x and y into

0 10 20 30 40 50

Root mean squared error per trace

Figure 7.5: Top: The path traced out by the arm during correction of incorrect Jacobian kinematic parameters. On the left is the path as drawn out in Cartesian coordinates, where points farther back in time are lighter. The red ellipse is the target path. On the right the x and y dimensions of the trajectory are plotted against time in black, with the target values plotted in red. Bottom: A diagram of the root-squared error while learning to trace an ellipse using the adaptive transform component. The error is calculated as the summed root-squared distance from the target values during over each full trace of the ellipse.

Oscillator

Force Func

Start Pulse

M1

Figure 7.6: A model of the pre-motor cortex based on implementing dynamic movement prim-itives. In this diagram the two DMPs are for the x and y paths followed by a single trajectory.

To generate different trajectories the system needs to specify a different output from the forcing function into ˙x and ˙y. The solid arrow is a normal connection, the solid circle is inhibitory.

M1, which then moves the arm to the starting location for the trajectory. When the start pulse finishes the goal input to x and y will change and move the system towards the end-points of the trajectories.

At the same time, the oscillator is providing a high-frequency signal with a non-zero mean to the forcing function (as shown in Figure 7.7), which takes the value represented in the forcing function from 0 to 1. The reason for using an oscillator as opposed to just a constant signal is that the small fluctuations of the oscillating signal help to prevent the forcing function population from getting stuck in small pockets of representation (which have an effect similar to local minima) when integrating. While little difference is noticeable when the ramp integrates quickly to 1, the use of the oscillator becomes important when slowing down the speed of the trajectory, i.e. reducing the size of the input signal to the

0.0 0.2 0.4 0.6 0.8 1.0

0.485 0.490 0.495 0.500 0.505 0.510 0.515 os c x

Figure 7.7: The step function (start pulse) and dependent signals. Goal signals: The input to the x and y point attractors, driving them to the initial points of the trajectory while the step function is active and to the goal points of the trajectory when the step function goes to zero. Oscillator: The step function pushes the oscillator from its resting state at (.5, .5) to the top right of the plot. Once the step function goes to zero the oscillator enters its limit cycle activity pattern. Forcing function ramp: The step function inhibits this output; when the step function goes to zero the forcing function integrates one of the oscillator output dimensions. From this ramp signal both the x (green) and y (red) forcing function are decoded.

4 2 0 2 4 Represented value

0 100 200 300 400 500 600

Neuron firing rates

Neural saturation

Figure 7.8: The firing rates of the neurons as the represented signal changes. Saturation of the neurons refers to a point (approximated by the dashed blue lines) where differences in the represented value do not cause sufficient change in the neural activity to accurately decode the signal. The decoded value increases to the point of saturation and then grows no further, even with a constantly growing input.

forcing function population. As the value in the forcing function population moves from 0 to 1, a function is decoded from the neural activity that is projected into the ˙x and ˙y populations, altering their dynamics of x and y. As a result, the forcing function moves the system state to the target along the expected trajectory.

Saturation of the neurons is used to ensure that the ramping signal stops at 1 and doesn’t continue growing forever. Intuitively, at some point all of the neurons will either be firing at their maximum rate or not at all, as shown in Figure 7.8. By setting up the decoders such that this point represents 1, it can be guaranteed that 1 is the maximum value possible to be represented by this population. This is referred to as neural saturation.

There has been much work extending the DMP architecture [97], allowing the sys-tem to generalize both spatially and sys-temporally, incorporate syssys-tem feedback, and execute independently or couple multiple DMPs to each other or other signals from the environ-ment. I have implemented a basic model of the full DMP architecture in spiking neurons here, which lays the groundwork for the development of neural models that include such extensions.