| Download a free evaluation copy of NeuroSolutions to discover how to apply neural network technology to your artificial intelligence application. |
B.3 Basic Operation of NeuroSolutions
NeuroSolutions' object-oriented user interface organizes its components into palettes. Each palette of components contains a family of components with similar function. For example, all the output displays or probes are contained in a single palette. All the palettes can be found under the palette menu item.
If a palette is open, it will have a checkmark next to it. An opened palette looks and acts like a toolbar with a set of icons. The palettes can be moved and docked just like a standard windows toolbar. Below is an example of the Axon palette.
The Axon family palette
Components can be selected from a palette and stamped onto the breadboard.
B.3.1 Stamping Components
If you put the cursor
over the palette and wait a few seconds, you should see a small
window pop up with the name of the component in it. This is
called a "tool tip", and you can use it to determine
which component you are selecting from the palette. When you
click on a component, the cursor becomes a stamp
when you place it over the breadboard. If you click
again anywhere in the breadboard, the component will be copied to
that location on the breadboard. This operation is called component
stamping.
If you select a
component from a palette and place the cursor over an existing
component from the same family on the breadboard, the cursor will
switch to a
which indicates the current selection will replace
the component on the breadboard.
TUTORIAL EXAMPLE 2
This simple example opens up a new breadboard and allows you to stamp components on it. You should practice opening, closing, and moving palettes. Use tool tips to determine the name of the different components and then stamp a few on the breadboard. Since some families cannot be stamped directly on the breadboard, we suggest you start with the axon palette.
The Axon family palette
If
you select a component that cannot be stamped down, you may need
to click the "selection cursor" button
to return to "selection mode."
B.3.2 On-Line Help
A complete description
of every component is contained within the on-line help. The
easiest way to access the help for a given component is to click
on that component with the Help cursor
. The Help cursor is located on the toolbar. Just
click on it and then move the mouse over the component you want
help for, clicking on the component's icon.
TUTORIAL EXAMPLE 3
This simple example allows you to experiment with using the help cursor to describe each component. This handy feature allows you to quickly and easily determine the function of each component. For now, don't worry too much about the contents of the help files, just practice using the Help cursor.
B.3.3 Connecting Components
Notice that on the axon
family components (as well as those of some other families),
there is a double-diamond contact point on the left
(the FemaleConnector) and a single-diamond
contact on the right
(the MaleConnector). The data flow in
NeuroSolutions is designed to move from left to right on the
breadboard. To connect two components, simply drag the
MaleConnector on the right of a component to the FemaleConnector
on the left of the other component. The connection is visually
indicated by three lines drawn between the components.
You will notice that
while you are dragging the connector, the mouse arrow changes to
a move cursor
, meaning that you can drop the MaleConnector
onto any unoccupied portion of the breadboard. If you
place the cursor over a location that is an invalid connection,
the cursor becomes a crossed circle
, meaning that you cannot drop the MaleConnector in
that place.
An alternative way to connect components is to select the first component (by clicking the left mouse button), then click the right mouse button on the second component, and select "Connect To" from the menu. The three connection lines will be automatically established.
TUTORIAL EXAMPLE 4
This example allows you practice connecting components.
B.3.4 Axons and Synapses
The building-block approach can easily be applied to build adaptive or neural systems. These networks primarily consist of processing elements (PEs) tied together with "weighted" connections. The Axon family (much of the terminology in NeuroSolutions is based on neurobiology) implements the PEs in the network, and the Synapse family implements the weighted connections.
Axon family palette
|
|
|
Axon |
Bias Axon |
Sigmoid Axon |
The Axon family has two functions. The components sum all of their inputs and then apply a function to that sum. The different components in the Axon family apply different functions to the summation of their inputs. Each of the different images on the Axon family icons represents the function that is applied. The Linear Axon (called simply an Axon) just passes the sum of the inputs directly to the output. The Bias Axon sums the input and adds an offset. The Sigmoid Axon applies a thresholding function to the data. A single component of the Axon family can represent any number of PEs.
Synapse family palette
|
|
| Full
Synapse |
Arbitrary
Synapse |
The Synapse family is used to connect Axons together. In general, each connection in a Synapse is assigned a weight that scales the data passing through it. Adjusting these weights is how a neural network or adaptive system is trained to perform the desired task. The member of the Synapse family most commonly used is the Full Synapse and connects every PE in one Axon component to every PE in the other axon component. Thus, the Full Synapse component contains nm connections (and weights) if there are n input PEs and m output PEs. The Arbitrary Synapse allows you to select which of the nm possible connections to make between the axons.
B.3.5 Component Properties
Every NeuroSolutions component has a set of parameters that you can adjust. For instance, the Axon family components contain a parameter that sets the number of PEs represented by that component. You access a component's parameter set through a dialog box called the Inspector.
· You invoke the Inspector for any component on the breadboard by right-clicking its icon and choosing "Properties":
Invoking the Inspector
· You can also invoke the Inspector by left-click selecting an icon and then pressing "Alt+Enter." The Inspector below shows some of the properties of the Linear Axon. Notice that number of PEs in an Axon component can be defined via rows and/or columns, allowing you to create a matrix of PEs.
Sample Inspector
Once the Inspector is open, you can view or modify the parameters of other components by simply clicking on other icons on the breadboard.
A component's parameter set is organized according to property pages. The property pages are labeled on the tabs across the top of the Inspector. You access the various property pages by clicking on these tabs. The leftmost tab typically contains the most commonly used parameters for each component. Many of the other tabs are useful only to advanced users.
If multiple components have the same parameters, you can simultaneously edit the parameters of all the components using the following procedure:
· Invoke the Inspector for the first component.
· Click on the tab of the desired property page
· Hold down the Shift key while left-clicking to select the remaining components.
· Edit any parameter(s) within the Inspector. Any changes you make in the Inspector will be reflected in all selected components, so long as they all have the same parameter.
For example, you can simultaneously change the number of PEs for a group of Axons, even if they have different transfer functions (linear, sigmoid, etc.).
TUTORIAL EXAMPLE 5
This example starts with a small network of connected components and allows you to manipulate the properties of those components with the Inspector.
B.3.6 The Data-Flow Controller and Running the Network
The last family we will
discuss in this section is the Control family. The Control
family is different from the Control toolbar, but they
are related in operation. The Control family contains components
that control how the data flows through the network. The simplest
member of the Control family is the Static Controller
. Its properties include parameters such as the
amount of data in the input file, how many times to run the data
through the network, whether and how the network should learn,
and so forth. Thus, pressing the Start button on the Control
toolbar tells the Static Controller to begin sending data through
the network. The Control toolbar and Controller component work
together to control the network.
The Control toolbar
The Control palette
To explain the properties of the Static Controller, we must define a few terms. An exemplar of data is one complete sample of the input for one time-step. If the network has multiple inputs, then an exemplar corresponds to one piece of data from each input. An epoch is a complete set of data presented to the network. Normally an epoch is the number of data samples in the training set file. If there are 30 samples in a data file, then there are 30 exemplars in an epoch. Many times you may want to present the same data to the network multiple times this is represented as the number of epochs per run.
If you double-click on the Static Controller, you will see a real-time view of the simulation's progress:
Simulation progress display
TUTORIAL EXAMPLE 6
This example starts with a small network of connected components and a Static Controller and allows you to run the network using the control toolbar.
We have now covered the fundamental techniques used in NeuroSolutions. The next two sections discuss the two most important families of components for use in the interactive book. These two families are the Probe family, which allows you to view the parameters or data in the network, and the Input family, which allows you to modify the inputs to the examples.