Fundamental Concepts

Yawn is built on top of three fundamental concepts: neural networks, environments and experiments.

A neural network class extends yawn.nn.NeuralNetwork implementing all the computational logic behind a given neural model. Note that although we have chosen the term `neural network' any other machine learning method can be added to Yawn.

A test environment is any program or system capable of supplying train and testing datasets to Yawn and receives predictions in order to process and asses them. For example, the PlainTextEnvironment (yawn.envs.plaintext.PlainTextEnvironment) read data from a text file and produces a text file with the predictions obtained by Yawn. All environment classes extends yawn.envs.Environment.

Finally, an experiment is the combination of a particular setup of a neural network and a test environment.

Networks Committees

A network committee (yawn.nn.committe.NetworkCommittee) is an extension to yawn.nn.NeuralNetwork that does not represents a neural network. Instead, it represents a committee or set of neural networks that are trained with the same dataset (this is not completely true since each network is trained with a different ordering of the dataset). This set can be later used concurrently to generate predictions more statistically valid.

One of the benefits of the NetworkCommittee class is that it can contain different implementations of neural models and/or models with a different set of initial parameters. The networks that are members of a committee are trained in a multi-threaded fashion. Keep this in mind when implementing your own models.