8
Advancing the Design of the Neural Pulsers Kevin Haywood

Neural Pulsars: Kevin Haywood

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Neural Pulsars: Kevin Haywood

Advancing the Design of the Neural Pulsers

Kevin Haywood

Page 2: Neural Pulsars: Kevin Haywood

Foundations

Neural nets are a mainstay of artificial intelligence research, the models that will be used here are derived from the earliest work in the field, the McCulloch-Pitts Cells of 1943.1 Neural nets in general excel at certain types of computation, such as pattern recognition, which are very difficult to perform using other methods. They also possess the unique ability to learn through evolution, so that they become extremely efficient in handling a given task.

At their most basic, neural nets are formed by neurons, and the connections between them. Neurons receive input signals from other neurons, and output a signal to other neurons. Each neuron possesses a quality known as its threshold of activation, which is the level of input required to make the neuron output a signal in response. The many possible combinations of inputs, thresholds, and outputs amongst neurons in a network result in a system that is capable of great complexity.

In recent years, electronic musical equipment has begun to appear that operate on metaphors of neural networks, and this emergence into my field of expertise has finally produced an environment from which I can make meaningful inquiries. The systems relevant to this proposal are not capable of learning, but they do base their operation on the unique neural net properties of threshold activation, interconnectedness, and signal feedback. The strategies of implementation and degrees of artistic licence vary between designers, and the differences are quite radical between the two examples that are currently implemented in analog hardware: the Resonator Neuronium, by Jürgen Michaelis,2 and the Wiard Neural Pulsers, by Grant Richter.3

The Resonator Neuronium (Figure 1) is a complete analog synthesizer that uses neural circuitry to generate all of its sound-shaping functions. Its complex architecture weaves together the traditional disparate building blocks of audio synthesis into a larger symbiotic system, where every element has a degree of influence over every other.

In contrast, the Wiard Neural Pulsers (Figure 2) is intended as a single, specialized module in a far larger modular synthesis system. Instead of dealing with smoothly-varying signals, the Neural Pulsers operate with pulses, like in Figure 3 – abrupt transitions in voltage lasting about 10 milliseconds. This type of signal is often called a “trigger,” because of its common use in analog synthesizers as a timing function, triggering the start of events within the system. Therefore, the primary use of the Neural Pulsers is as a multi- part rhythm generator. It also interfaces easily with the many sensor systems that can interpret triggers, such as those commonly used for interactive performance and installation.

While the designers of both systems have documented their efforts online, The Neural Pulsers is the much simpler, and hence more approachable circuit. It’s also directly signal-compatible with the modular equipment that I have. Therefore, I chose to prototype and analyze the Neural Pulsers as a beginning for my explorations. What I will propose then is a rethinking of Richter’s research into the development of experimental hardware neurons for music synthesizers, yeilding a device whose functionality is an order of magnitude greater than the previous implementation.

10V

0V10mS

2

Michaelis Resonator Neuronium, 2005

Wiard Neural Pulsers, 2003

A pulse waveform

Fig. 1

Fig. 2

Fig. 3

Page 3: Neural Pulsars: Kevin Haywood

The Wiard Neural Pulsers

Richter’s Neural Pulsers circuit consists of two distinct parts: a master timing clock, and the neurons themselves. The clock defines discrete time – the synchronous moments at which the neurons’ states are updated – and simultaneously provides the logic to drive the neurons. Figure 4 shows how the clock is divided, with 4 outputs whose divisions correspond to musical whole, half, quarter, and eighth notes. The eighth note output is actually the clock itself, and therefore the smallest unit of time in the circuit. In most cases, at least one of these outputs is patched to the neurons, and usually two or more are used in combination. The use of banana jacks for patching makes it easy to distribute the signal from a single output to multiple inputs, so that any one neuron is capable of influencing all of the others. The use of discrete time in the circuit imposes a unique characteristic, and that is the ever-present logic delay. A neuron that receives input at time t cannot act upon that input until time t + 1. This fundamental property can be exploited, and must always be kept in mind when analyzing a patch’s state.

Figure 5 details the core of the circuit, which is the 4 identical McCulloch-Pitts neurons. These exist in the simplest form possible, with two equally-weighted excitatory inputs, and a single overriding inhibitory input. Inputs are excitatory if the signals coming into them contribute positively toward reaching the threshold – the level at which the neuron will “fire,” and send a signal from its output. Inhibiting inputs have the opposite effect, reducing the overall input level. The value of all inputs are considered simultaneously, and weighting describes the relative influence of one input in comparison to another. Equally-weighted inputs of the same type are interchangable. The inhibitory input in this design is not equally-weighted to the excitatory inputs, but is said to be overriding because irregardless of what other signals are present, a signal at this inhibitory input will disable the neuron’s output at the next clock cycle.

The threshold of a neuron in the Neural Pulsers is set by a 3-position switch to the level of 0, 1, or 2. This arrangement defines the Boolean logic gates NOT, OR, and AND, respectively. A logical TRUE state results if the combination of pulses at the inputs satisfies the selected function, causing the neuron to fire, and output a pulse at the next clock. This pulse appears at a status indicator LED, and at two identical outputs – one banana jack, for patching back into the system, and one 3.5mm jack, for driving any external device that can respond to +10V triggers.

To summarize the threshold logic:

• A neuron with threshold 2 (AND) needs two excitatory signals and no inhibitory signal present at time t in order to fire at t + 1.

• A neuron with threshold 1 (OR) needs only a single signal, at either of the excitatory inputs, with no inhibitory signal present at time t in order to fire at t + 1.

• A neuron with threshold 0 (NOT) will always fire at time t + 1, unless there was an inhibitory signal present at time t.

• This also determines that a threshold 0 neuron wlll not fire at the first clock cycle of a patch’s operation, because the neuron always takes a full clock cycle to check its inputs before it can process them.

1

EXC 0

OUT2

INH

EIGHTH QUARTER HALF WHOLE

3

The divided clock outputs of the Neural Pulsers.

The panel layout of a single Wiard neuron, shown at actual size.

Fig. 4

Fig. 5

Page 4: Neural Pulsars: Kevin Haywood

Understanding the Diagrams to Follow

A patch is formed by interconnecting any of the available clocks, inputs, and outputs. The I/O diagrams chart all relevant details of a patch over the course of time. The timelines span 17 clock cycles (eighth notes) in order to show a patch’s initial state, as well as to indicate what happens when the logic settles into a loop. I/O points are color-coded, unfilled circles, corresponding to the real-world banana jacks that they represent. Clock and neuron outputs are red, excitatory inputs are blue, and inhibitory inputs are grey. Connections made by patch cables are indicated in black.

A path extends from every jack onto the I/O graph, with one exception: the clock ouputs. The clock’s output patterns never change, and so they are assumed present to reduce clutter. If they were mapped onto the grid, they would appear as in Figure 6. A solid circle indicates each time a signal appears at a jack. The clock output jacks will normally be shown unmapped, positioned to the left of the neurons, as in Figure 7.

The neuron itself is situated between the clock outputs and its I/O graph, with its three input jacks on the left, and the sole output jack on the right. The threshold of the neuron is printed directly upon it, and this is the first thing to note, since it will factor in all remaining calculations. For Figure 7’s neuron to fire at the next clock cycle (neurons always require 1 clock cycle to process their inputs), there must be no inhibitory pulse present, and the sum of its excitatory inputs must be greater than or equal to 1.

At step 1, the neuron has 1 inhibitory pulse, and 1 excitatory pulse at its inputs. Because of the inhibitory pulse, the neuron will not fire at the next clock cycle, and indeed, there is no output pulse indicated at step 2 of the graph. Step 2 has no inputs at all, and since this neuron needs at least 1 to fire, there will also be no output from the neuron at step 3. At step 3, a single excitatory pulse arrives, and unlike step 1, there is no inhibitory pulse present. Therefore, at step 4 the neuron finally fires an output pulse in response! This simple pattern then repeats indefinitely.

In this example, no other neurons were used, but the logic is the same no matter how many are interconnected. The essential rule to remember is that, while pulses are transferred instantaneously from output to input, there is always a single clock cycle delay required to process inputs into an output pulse.

1 5 9 13 171

¼

½

1 5 9 13 171

¼

½1

4

Visualization of the clock outputs A single Wiard neuron driven by two of the clock outputs

Fig. 6 Fig. 7

Page 5: Neural Pulsars: Kevin Haywood

Working with the Wiard Neural Pulsers

Despite multiple neurons and patching possibilities, the Wiard module turns out to be a very simplistic device. As configured, it’s capable of little more than the most basic output sequences. The central role of the clock in rhythm generation makes it nearly impossible to create irregular patterns. The most complex output is realized through the techniques of signal duplication, delay, and feedback.

Signal duplication has many uses, such as routing the output of neuron A into both the excitatory input of neuron B and the inhibitory input of neuron C. The firing of A will then make B and C operate very differently at precicely the same moment.

Delay is induced by routing a signal into an excitatory input of a neuron with threshold 1, and then taking the identical, but one-cycle-behind output. It can be used to unbalance the otherwise static outputs from the clock, when mixed together through another neuron.

Feedback occurs when a neuron’s output is routed into one of its inputs. As pointed out by Minsky in his analysis of McCulloch-Pitts, this creates a 1-bit memory, where a neuron’s firing state at time t depends upon its firing state at time t - 1.4

Another of the Neural Pulsers’ strengths is the external output available from each neuron, which makes them capable of driving 4 discrete voices, for example. If delay is implemented serially in each of the 4 neurons, the logical equivalent of a musical canon is produced, as in Figure 8.

1 5 9 13 17

C

B

A

D

1

¼

½

1

1

1

0

1 5 9 13 17

A

1

¼

½ B

C

D

1

1

1

1

5

Canonic pulse train of length n, followed by n stages of inactivity, where n is the number of neurons used.

Creating an irregular pattern at D by using B as a delay.

Fig. 8

Fig. 9

Page 6: Neural Pulsars: Kevin Haywood

Advancing the Design of the Neural Pulsers

I initially thought that the most significant limitation of the Wiard Neural Pulsers was the small number of neurons used. A simple delay function requires one neuron per stage, and functions of any complexity use up the 4 neural elements quickly. Conversely, it is generous to describe any function available from 4 neurons in this implementation as complex. It seemed that the logical answer was simply more neurons, and I estimate that having 10 or so would yield greater possibilities. Still, I don’t imagine that the brute addition of 6 or more neurons would make this system into more than the sum of its parts – what I imagine instead is more of the same. With 36 faceplate elements already, the physical and financial burdens of this method of enhancement rule it out.

What I’ve done instead is to reevaluate the architecture of the system. Having read Minsky’s excerpt on McCulloch-Pitts cells, I already knew that other implementations were possible. I thought through several uninspiring alternatives before arriving at my solution, which completely reconfigures the input, threshold, and output stages, leaving behind most of the unneccesary restrictions of Richter’s design.

The first enhancement is to reconfigure the neuron input stage. The Wiard neurons suffer from having their only inhibitory input be one with total precedence. From this point on, I’ll refer to such overriding behavior as a disabling input, because I see enormous potential in introducing a pair of inhibitory inputs which merely subtract from the input value, rather than incapacitate a neuron entirely. Sharing equal weighting with the existing adding excitatory inputs, the new subtracting inhibitory inputs would expand the range of incremental change available at the input summer. Five inputs configured as in Figure 10 can present the levels {+2, +1, 0, -1, -2} and the logical NOT to the threshold comparator.

+2+1

0-1

6

Reconfigured Input stage, featuring a pairof subtracting inhibiting inputs.

Reconfigured Threshold and Output stages, withsynchronous discrete outputs for each possible threshold.

Fig. 10

Fig. 11

Page 7: Neural Pulsars: Kevin Haywood

This is two more levels than the threshold switch is capable of distinguishing, so the switch now becomes a bottleneck, limiting the expanded sensitivity of the new input stage. A switch with more poles could take its place, but the dilemna importantly reveals that there is no benefit in maintaining the existing threshold/output architecture, where a single comparison produces a single output. Figure 11 shows that if instead, each of the 4 possible thresholds {+2, +1, 0, -1} are given synchronous, independent logic outputs, the traditional threshold mechanism can be discarded, leaving an open and far more flexible logic device. The neural structure that results from the above changes is so much more powerful than the original Wiard design, that a single neuron of the proposed format can rival the functionality of the 4 that were previously used.

The great amount of I/O points in the proposed neuron require a subsequent expansion of the visual feedback system, to clarify the complex interconnections available. The output LEDs in the Neural Pulsers are perfect at this task, and my implementation will assign one to every I/O point, in addition to a central clock LED. The status of every part of the module can then always be known, making the task of logic routing an intiutive one.

The final enhancements upgrade the clock, adding 3.5mm jacks for each clock division output, as well as one for an external clock input. These simple additions complete the integration of the neuron with external equipment, allowing the neuron to be synchronized to the timing of another device as either master or slave. I can also be then driven by non-regular pulse patterns generated from elsewhere. The clock rate should also be expanded into the audio range, so that neurons’ pulse outputs can be used as harmonic generators.

+2+1

0-1

1 5 9 13 17

1

¼

½ 210

-1

1 5 9 13 17

1

¼

½ 210

-1

7

Proposed neuron core, with LED status indicators. Shown at actual size.

Irregularity.

Generating an incremental increase in threshold from minimum to maximum, then resetting and repeating.

Fig. 12

Fig. 13

Fig. 14

Page 8: Neural Pulsars: Kevin Haywood

Footnotes

1) McCulloch, W. S. and Pitts, W. “A Logical Calculus of the Ideas Immanent in Nervous Activity” ©1943

2) http://www.jayemsonic.de/2l2-resoneurotext.html

3) http://www.musicsynthesizer.com/Neurons/Neurons1.html

4) Minsky, Marvin “Computation: Finite and Infinite Machines” ©1967 Prentice-Hall Excerpted at http://www.musicsynthesizer.com/Neurons/Neurons1.html

8