3.2 Overview of the Main Object Types

This section describes the main ways in which the many tasks involved in neural network simulation have been divided up and assigned to different types of objects. It is essential to understand this division of labor in order to use the software effectively.

There are four central components to a neural network simulation as we see it:

  • The Network, including layers, units, connections, etc. (see section 10 Networks (Layers, Units, etc)).
  • The Environment on which the network is to be trained and tested (see section 12 Environments, Events, and Patterns).
  • The Scheduling of training, which determines how long to train the network, with what environment, etc. (see section 11 Processes and Statistics).
  • The Logging of the results of training and testing. One can view these results as a graph, a table of numbers, or a grid of color chips that represent values in a graphical similar to that used in the viewing of networks (see section 13 Logs and Graphs).

    Since all of these components work together in a given simulation, we have grouped them all under a Project object (see section 9 Projects (and Defaults, Scripts)), which also has some additional objects (defaults and scripts) that make life easier. Thus, when you start a simulation, the first thing you do is create a new project, and then start creating networks, environments, etc. within this project.

    Of the different simulation components, the Scheduling one is probably the least intuitive. Indeed, we might have decided instead that networks knew how to train themselves, or that environments would know how to train networks. The main reasons we chose to make Scheduling a separate major category of function in the software are: 1) The ways in which one trains and tests a network are common to different types of networks and learning algorithms. 2) Many different kinds of training and testing schedules can be performed on the same network and environment. 3) Scheduling depends in part on the nature of the network and the nature of the environment, so that putting this task in either of these separately would lead to strange dependencies of networks on environments or vice versa.

    Thus, one can think of the scheduling function as being similar to that of a movie director, who coordinates the actors and the camera operators, set designers, etc. to produce a finished product. Similarly, the scheduler coordinates the network with the environment and other elements to direct the overall process of training and testing. For more information on how scheduling is implemented in the software see section 11.2 The Schedule Process (SchedProcess).